You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Devirtualizer] Handle default witnesses for generic requirements.
The witness thunks for default witnesses are different from the
witness thunks for normal witnesses, because default witnesses take
'Self' (the whole conforming type) rather than having it substituted
away. Cope with this difference while still substituting the innermost
generic parameters for a generic requirement.
%fn = witness_method $ConformingGenericStruct<Int>, #ResilientProtocolWithGeneric.defaultB!1 : $@convention(witness_method) <T where T : ResilientProtocolWithGeneric><U where U : Q> (@in U, @in_guaranteed T) -> ()
99
+
%result = apply %fn<ConformingGenericStruct<Int>, Int>(%1, %0) : $@convention(witness_method) <T where T : ResilientProtocolWithGeneric><U where U : Q> (@in U, @in_guaranteed T) -> ()
0 commit comments