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
slavapestov opened this issue
Mar 30, 2017
· 3 comments
Assignees
Labels
bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler in itselfcrashBug: A crash, i.e., an abnormal termination of softwareSILGenArea → compiler: The SIL generation stage
SIL verification failed: convert_function cannot change function ABI
different number of parameters
@callee_owned (@in (Int, Float)) -> ()
@callee_owned (Int, Float) -> ()
class C<T> {
func f(t: T) {
print(t)
}
}
class B : C<(Int, Float)> {
override func f(t: (Int, Float)) {
print(t)
}
}
let fn1: (C<(Int, Float)>) -> ((Int, Float)) -> () = C.f
let fn2: (B) -> ((Int, Float)) -> () = B.f
fn1(B())((100, 200.0))
fn2(B())((100, 200.0))
fn1 works, fn2 does not. Maybe the convert_function should just be an emitOrigToSubst(), except you'll need to figure out the right AST types to use there.
The text was updated successfully, but these errors were encountered:
@slavapestov If you end up solving this, could you tag me in the PR? I'm very interested in learning how you go about solving it! I unfortunately have had to put this down yet again.
bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler in itselfcrashBug: A crash, i.e., an abnormal termination of softwareSILGenArea → compiler: The SIL generation stage
Additional Detail from JIRA
md5: f1ac0b74e18c9f0db9faf5c365bc1948
Issue Description:
fn1 works, fn2 does not. Maybe the convert_function should just be an emitOrigToSubst(), except you'll need to figure out the right AST types to use there.
The text was updated successfully, but these errors were encountered: