$ the-wire · showcase
Swift type join considers toll-free bridging; Kotlin aligns JS/Wasm companion init
By RepoJournal · Filed · About Mobile platforms
Swift's type join now accounts for toll-free bridging, while Kotlin aligns JS/Wasm companion object initialization with the JVM.
Swift's type join implementation now considers toll-free bridging [1], so expressions like a dictionary mixing NSNumber and CFBoolean infer [String: NSNumber] instead of [String: CFBoolean?]. This is a behavior change for code that relied on the old optional-typed inference. Separately, Swift's RemoteInspection now bails out of the opaque type requirement walk when a read fails [2], preventing dereferences of std::nullopt and use of garbage data. Kotlin aligns JS/Wasm with the JVM for the init order of companion objects from super types [3], fixing KT-87710. Kotlin also commonised the FP parser and stringifier between Wasm and Native [4], fixing KT-88414; the new shared code was rewritten from the C++ Harmony implementation and tested against K/N and JVM implementations on random generated cases. Flutter's AbsorbPointer sample now includes an IgnorePointer counterpart so the side-by-side makes the distinction observable [5], addressing issue 87936. Flutter also rolled Skia, Fuchsia SDK, and Dart SDK updates [6][7][8].
Action items
- → Review Swift code that mixes toll-free bridged types in collections and may depend on old inference apple/swift [plan]
- → Test Kotlin JS/Wasm projects that rely on companion object initialization order JetBrains/kotlin [monitor]
- → Update Flutter samples or tests that depend on the old AbsorbPointer example flutter/flutter [monitor]
References
- [1] Sema: Consider toll-free bridging in type join implementation ↗ apple/swift
- [2] [RemoteInspection] Check the reads in the opaque type requirement walk. ↗ apple/swift
- [3] [JS/Wasm]: Align with JVM the init order of companion objects from super types. ↗ JetBrains/kotlin
- [4] [Wasm] Commonise FP parser and stringifier with Native ↗ JetBrains/kotlin
- [5] Make the AbsorbPointer sample show the difference from IgnorePointer ↗ flutter/flutter
- [6] Roll Skia from 0b4249b26b38 to b392fb672d13 (6 revisions) (#192016) ↗ flutter/flutter
- [7] Roll Fuchsia Linux SDK from J123CwfDPYyVDpkMl... to o9DikEfRoFyVK3LKD... (#192031) ↗ flutter/flutter
- [8] Roll Dart SDK from 391ff83cd1d3 to 76abdf94faa8 (1 revision) (#192021) ↗ flutter/flutter