New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SR-14160] Runtime crash on passing functions with incompatible representations #56539
Comments
cc theindigamer (JIRA User) |
I don't understand why, but if we constraint the generic arguments to objc convertible it runs fine, so maybe is just a runtime issue? import Foundation
func a<K: NSObject, V: NSObject>(d: [K: V], p: @convention(thin) (K, V) -> Void) {
_ = d.lazy.map(p) // NO crash
p(d.first!.key, d.first!.value) // No crash.
}
let v = [1 as NSNumber: "1" as NSString]
a(d: v, p: { _,_ in })
print("finished") |
I think this might be the same problem as https://bugs.swift.org/browse/SR-14058 , we should be emitting a compile-time error. |
I like the idea of creating an umbrella task =] |
theindigamer (JIRA User) Here it is https://bugs.swift.org/browse/SR-14169 |
@swift-ci create |
Attachment: Download
Environment
Xcode 12.3 (12C33)
Additional Detail from JIRA
md5: d343b7970380688af4185c9df548b637
Parent-Task:
relates to:
Issue Description:
Both compiles fine, but crashes at runtime because of thick-to-thin conversion
Note: Removing @convention(thin) this executes fine
I think the compiler should emit a conversion mismatch diagnostic.
![](Screen Shot 2021-02-05 at 22.13.59.png)
![](Screen Shot 2021-02-05 at 22.09.57.png)
The text was updated successfully, but these errors were encountered: