File tree Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -3861,6 +3861,10 @@ void IRGenSILFunction::visitFullApplySite(FullApplySite site) {
38613861 }
38623862 }
38633863
3864+ // Lower the arguments and return value in the callee's generic context.
3865+ GenericContextScope scope (IGM,
3866+ origCalleeType->getInvocationGenericSignature ());
3867+
38643868 Explosion llArgs;
38653869 WitnessMetadata witnessMetadata;
38663870 auto emission = getCallEmissionForLoweredValue (
@@ -3873,9 +3877,6 @@ void IRGenSILFunction::visitFullApplySite(FullApplySite site) {
38733877
38743878 emission->begin ();
38753879
3876- // Lower the arguments and return value in the callee's generic context.
3877- GenericContextScope scope (IGM, origCalleeType->getInvocationGenericSignature ());
3878-
38793880 auto &calleeFP = emission->getCallee ().getFunctionPointer ();
38803881
38813882 // Allocate space for the coroutine buffer.
Original file line number Diff line number Diff line change @@ -359,3 +359,15 @@ struct SomeStruct {
359359func someFunc( ) async throws ( SmallError) -> SomeStruct {
360360 SomeStruct ( x: 42 , y: 23 , z: 25 )
361361}
362+
363+ // Used to crash the compiler -- https://github.com/swiftlang/swift/issues/80732
364+ protocol PAssoc < T> : AnyObject {
365+ associatedtype T
366+ func foo( ) async throws ( SmallError) -> ( any PAssoc < T > )
367+ }
368+
369+ class MyProtocolImpl < T> : PAssoc {
370+ func foo( ) async throws ( SmallError) -> ( any PAssoc < T > ) {
371+ fatalError ( )
372+ }
373+ }
You can’t perform that action at this time.
0 commit comments