Skip to content

Commit 1491eb0

Browse files
committed
[NFC] Drop Some Superfluous Null Signature Guards
1 parent d86551d commit 1491eb0

File tree

11 files changed

+24
-56
lines changed

11 files changed

+24
-56
lines changed

lib/AST/ASTContext.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,6 @@ static VarDecl *getPointeeProperty(VarDecl *&cache,
913913
NominalTypeDecl *nominal = (ctx.*getNominal)();
914914
if (!nominal) return nullptr;
915915
auto sig = nominal->getGenericSignature();
916-
if (!sig) return nullptr;
917916
if (sig.getGenericParams().size() != 1) return nullptr;
918917

919918
// There must be a property named "pointee".

lib/AST/Attr.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -945,10 +945,7 @@ bool DeclAttribute::printImpl(ASTPrinter &Printer, const PrintOptions &Options,
945945
if (target)
946946
Printer << "target: " << target << ", ";
947947
SmallVector<Requirement, 4> requirementsScratch;
948-
ArrayRef<Requirement> requirements;
949-
if (auto sig = attr->getSpecializedSignature())
950-
requirements = sig.getRequirements();
951-
948+
auto requirements = attr->getSpecializedSignature().getRequirements();
952949
auto *FnDecl = dyn_cast_or_null<AbstractFunctionDecl>(D);
953950
if (FnDecl && FnDecl->getGenericSignature()) {
954951
auto genericSig = FnDecl->getGenericSignature();

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5298,12 +5298,8 @@ class GenericSignatureBuilder::InferRequirementsWalker : public TypeWalker {
52985298
// Infer from generic typealiases.
52995299
if (auto TypeAlias = dyn_cast<TypeAliasType>(ty.getPointer())) {
53005300
auto decl = TypeAlias->getDecl();
5301-
auto genericSig = decl->getGenericSignature();
5302-
if (!genericSig)
5303-
return Action::Continue;
5304-
53055301
auto subMap = TypeAlias->getSubstitutionMap();
5306-
for (const auto &rawReq : genericSig.getRequirements()) {
5302+
for (const auto &rawReq : decl->getGenericSignature().getRequirements()) {
53075303
if (auto req = rawReq.subst(subMap))
53085304
Builder.addRequirement(*req, source, nullptr);
53095305
}
@@ -8078,8 +8074,6 @@ void GenericSignatureBuilder::dump(llvm::raw_ostream &out) {
80788074
}
80798075

80808076
void GenericSignatureBuilder::addGenericSignature(GenericSignature sig) {
8081-
if (!sig) return;
8082-
80838077
for (auto param : sig.getGenericParams())
80848078
addGenericParameter(param);
80858079

@@ -8605,15 +8599,12 @@ AbstractGenericSignatureRequest::evaluate(
86058599
// If there are no added requirements, we can form the signature directly
86068600
// with the added parameters.
86078601
if (addedRequirements.empty()) {
8608-
ArrayRef<Requirement> requirements;
8609-
if (baseSignature) {
8610-
addedParameters.insert(addedParameters.begin(),
8611-
baseSignature.getGenericParams().begin(),
8612-
baseSignature.getGenericParams().end());
8613-
requirements = baseSignature.getRequirements();
8614-
}
8602+
addedParameters.insert(addedParameters.begin(),
8603+
baseSignature.getGenericParams().begin(),
8604+
baseSignature.getGenericParams().end());
86158605

8616-
return GenericSignature::get(addedParameters, requirements);
8606+
return GenericSignature::get(addedParameters,
8607+
baseSignature.getRequirements());
86178608
}
86188609

86198610
// If the request is non-canonical, we won't need to build our own

lib/SILGen/SILGenLazyConformance.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,9 @@ void SILGenModule::emitLazyConformancesForFunction(SILFunction *F) {
324324
void SILGenModule::emitLazyConformancesForType(NominalTypeDecl *NTD) {
325325
auto genericSig = NTD->getGenericSignature();
326326

327-
if (genericSig) {
328-
for (auto reqt : genericSig.getRequirements()) {
329-
if (reqt.getKind() != RequirementKind::Layout)
330-
useConformancesFromType(reqt.getSecondType()->getCanonicalType());
331-
}
327+
for (auto reqt : genericSig.getRequirements()) {
328+
if (reqt.getKind() != RequirementKind::Layout)
329+
useConformancesFromType(reqt.getSecondType()->getCanonicalType());
332330
}
333331

334332
if (auto *ED = dyn_cast<EnumDecl>(NTD)) {

lib/SILOptimizer/Mandatory/Differentiation.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,6 @@ static bool diagnoseUnsatisfiedRequirements(ADContext &context,
203203
return false;
204204

205205
// If there are no derivative requirements, return false.
206-
if (!derivativeGenSig)
207-
return false;
208206
auto requirements = derivativeGenSig.getRequirements();
209207
if (requirements.empty())
210208
return false;

lib/SILOptimizer/Utils/Generics.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1570,9 +1570,8 @@ void FunctionSignaturePartialSpecializer::addCallerRequirements() {
15701570

15711571
/// Add requirements from the callee's signature.
15721572
void FunctionSignaturePartialSpecializer::addCalleeRequirements() {
1573-
if (CalleeGenericSig)
1574-
addRequirements(CalleeGenericSig.getRequirements(),
1575-
CalleeInterfaceToSpecializedInterfaceMap);
1573+
addRequirements(CalleeGenericSig.getRequirements(),
1574+
CalleeInterfaceToSpecializedInterfaceMap);
15761575
}
15771576

15781577
std::pair<GenericEnvironment *, GenericSignature>

lib/Sema/CSSimplify.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9048,13 +9048,11 @@ ConstraintSystem::simplifyOpaqueUnderlyingTypeConstraint(Type type1, Type type2,
90489048
replacements);
90499049
assert(underlyingTyVar);
90509050

9051-
if (auto dcSig = DC->getGenericSignatureOfContext()) {
9052-
for (auto param : dcSig.getGenericParams()) {
9053-
addConstraint(ConstraintKind::Bind,
9054-
openType(param, replacements),
9055-
DC->mapTypeIntoContext(param),
9056-
locator);
9057-
}
9051+
for (auto param : DC->getGenericSignatureOfContext().getGenericParams()) {
9052+
addConstraint(ConstraintKind::Bind,
9053+
openType(param, replacements),
9054+
DC->mapTypeIntoContext(param),
9055+
locator);
90589056
}
90599057

90609058
addConstraint(ConstraintKind::Equal, type1, underlyingTyVar, locator);

lib/Sema/ConstraintSystem.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,11 +1402,7 @@ static void bindArchetypesFromContext(
14021402
continue;
14031403
}
14041404

1405-
// If it's not generic, there's nothing to do.
14061405
auto genericSig = parentDC->getGenericSignatureOfContext();
1407-
if (!genericSig)
1408-
break;
1409-
14101406
for (auto *paramTy : genericSig.getGenericParams()) {
14111407
Type contextTy = cs.DC->mapTypeIntoContext(paramTy);
14121408
bindPrimaryArchetype(paramTy, contextTy);

lib/Sema/TypeCheckEffects.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,10 @@ PolymorphicEffectKindRequest::evaluate(Evaluator &evaluator,
112112
return PolymorphicEffectKind::Always;
113113
}
114114

115-
if (auto genericSig = decl->getGenericSignature()) {
116-
for (auto req : genericSig.getRequirements()) {
117-
if (req.getKind() == RequirementKind::Conformance) {
118-
if (req.getProtocolDecl()->hasPolymorphicEffect(kind)) {
119-
return PolymorphicEffectKind::ByConformance;
120-
}
115+
for (auto req : decl->getGenericSignature().getRequirements()) {
116+
if (req.getKind() == RequirementKind::Conformance) {
117+
if (req.getProtocolDecl()->hasPolymorphicEffect(kind)) {
118+
return PolymorphicEffectKind::ByConformance;
121119
}
122120
}
123121
}

lib/Sema/TypeCheckProtocol.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3703,9 +3703,6 @@ static bool hasSelfSameTypeConstraint(const ValueDecl *req) {
37033703
return false;
37043704

37053705
const auto genericSig = genCtx->getGenericSignature();
3706-
if (!genericSig)
3707-
return false;
3708-
37093706
const auto selfTy = proto->getSelfInterfaceType();
37103707
for (const auto &constr : genericSig.getRequirements()) {
37113708
if (constr.getKind() != RequirementKind::SameType)
@@ -3728,7 +3725,6 @@ static Optional<std::pair<RequirementRepr *, Requirement>>
37283725
getAdopteeSelfSameTypeConstraint(ClassDecl *selfClass, ValueDecl *witness) {
37293726
auto genericSig =
37303727
witness->getInnermostDeclContext()->getGenericSignatureOfContext();
3731-
if (!genericSig) return None;
37323728

37333729
// First, search for any bogus requirements.
37343730
auto it = llvm::find_if(genericSig.getRequirements(),

0 commit comments

Comments
 (0)