File tree 2 files changed +16
-3
lines changed
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) {
3861
3861
}
3862
3862
}
3863
3863
3864
+ // Lower the arguments and return value in the callee's generic context.
3865
+ GenericContextScope scope (IGM,
3866
+ origCalleeType->getInvocationGenericSignature ());
3867
+
3864
3868
Explosion llArgs;
3865
3869
WitnessMetadata witnessMetadata;
3866
3870
auto emission = getCallEmissionForLoweredValue (
@@ -3873,9 +3877,6 @@ void IRGenSILFunction::visitFullApplySite(FullApplySite site) {
3873
3877
3874
3878
emission->begin ();
3875
3879
3876
- // Lower the arguments and return value in the callee's generic context.
3877
- GenericContextScope scope (IGM, origCalleeType->getInvocationGenericSignature ());
3878
-
3879
3880
auto &calleeFP = emission->getCallee ().getFunctionPointer ();
3880
3881
3881
3882
// Allocate space for the coroutine buffer.
Original file line number Diff line number Diff line change @@ -359,3 +359,15 @@ struct SomeStruct {
359
359
func someFunc( ) async throws ( SmallError) -> SomeStruct {
360
360
SomeStruct ( x: 42 , y: 23 , z: 25 )
361
361
}
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