Skip to content

Commit 923113d

Browse files
committed
[Generic signature builder] switch (...), not chained if (... ==).
1 parent f1dba0e commit 923113d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1842,22 +1842,29 @@ class GenericSignatureBuilder::InferRequirementsWalker : public TypeWalker {
18421842
if (isOuterArchetype(subjectPA))
18431843
return Action::Continue;
18441844

1845-
if (req->getKind() == RequirementKind::Conformance) {
1845+
switch (req->getKind()) {
1846+
case RequirementKind::Conformance: {
18461847
auto proto = req->getSecondType()->castTo<ProtocolType>();
18471848
if (Builder.addConformanceRequirement(subjectPA, proto->getDecl(),
18481849
source)) {
18491850
return Action::Stop;
18501851
}
1851-
} else if (req->getKind() == RequirementKind::Layout) {
1852+
break;
1853+
}
1854+
case RequirementKind::Layout:
18521855
if (Builder.addLayoutRequirement(
18531856
subjectPA, req->getLayoutConstraint(), source)) {
18541857
return Action::Stop;
18551858
}
1856-
} else {
1859+
break;
1860+
case RequirementKind::Superclass:
18571861
if (Builder.addSuperclassRequirement(subjectPA, req->getSecondType(),
18581862
source)) {
18591863
return Action::Stop;
18601864
}
1865+
break;
1866+
case RequirementKind::SameType:
1867+
llvm_unreachable("covered by outer switch");
18611868
}
18621869
break;
18631870
}

0 commit comments

Comments
 (0)