Skip to content

Commit 4017baa

Browse files
committed
SIL Parser: Simplify witness_method parsing
1 parent b2e85f7 commit 4017baa

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

lib/ParseSIL/ParseSIL.cpp

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4084,17 +4084,13 @@ bool SILParser::parseSILInstruction(SILBuilder &B) {
40844084
P.diagnose(TyLoc, diag::sil_witness_method_not_protocol);
40854085
return true;
40864086
}
4087-
ProtocolConformanceRef Conformance(proto);
4088-
if (!isa<ArchetypeType>(LookupTy)) {
4089-
auto lookup = P.SF.getParentModule()->lookupConformance(LookupTy, proto);
4090-
if (!lookup) {
4091-
P.diagnose(TyLoc, diag::sil_witness_method_type_does_not_conform);
4092-
return true;
4093-
}
4094-
Conformance = ProtocolConformanceRef(*lookup);
4087+
auto conformance = P.SF.getParentModule()->lookupConformance(LookupTy, proto);
4088+
if (!conformance) {
4089+
P.diagnose(TyLoc, diag::sil_witness_method_type_does_not_conform);
4090+
return true;
40954091
}
4096-
4097-
ResultVal = B.createWitnessMethod(InstLoc, LookupTy, Conformance, Member,
4092+
4093+
ResultVal = B.createWitnessMethod(InstLoc, LookupTy, *conformance, Member,
40984094
MethodTy);
40994095
break;
41004096
}

0 commit comments

Comments
 (0)