Commits

Slava Pestov committed 5a6d1c9ea2a
SILGen: Better handle function conversions with both a signature and representation change We need to be careful to do them in the right order when there's bridging involved. This still doesn't completely solve the problem, because of blocks appearing as function arguments. For example, Sema right now allows a conversion from @convention(block) (@convention(block) () -> ()) -> () to (() -> ()) -> (), but the thunk runs into difficulties because the bridging thunk only converts the outermost function, and the re-abstraction thunk hits an assertion on the inner thunk because it is not able to perform representation changes. One solution would be to actually unify bridging thunks with re-abstraction thunks, now that re-abstraction thunks can convert between AST types. Progress on <rdar://problem/22470076>. Swift SVN r31883