The Wire · Showcase
Swift Kills PlatformKind::none, Flutter Rolls ICU
By RepoJournal · Filed · About Mobile platforms
Swift's AST just deleted a footgun that has been a "common source of bugs" [ref:6], while Flutter quietly pulled in a new ICU revision [ref:3].
Swift's compiler internals got a double hit this morning: the AST removes `PlatformKind::none` [1] in favor of `std::optional<PlatformKind>`, a cleanup that should eliminate a whole class of uninitialized-platform bugs, and the Sema type-checker gains a staging flag [2] that lets bindings involving type variables join, behind `-solver-enable-type-var-joins` for now. On the Flutter side, they're rolling the Fuchsia Linux SDK [3] and ICU to drop an unused data file [4], with the ICU roll explicitly excluding `nfkc_scf.nrm` from the bundle to trim footprint. None of these are breaking changes, but the Swift PlatformKind removal touches the AST API, so anyone with a custom pass should watch for compile errors. The Flutter autorolls are routine, but keep an eye on them: if either breaks the tree, the roller is set to revert on its own. All told, this is a quiet but solid day for both platforms, with the most impact landing in Swift's compiler internals.
One email a day. Unsubscribe in one click.
Keep up with Mobile platforms in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review your Swift AST passes for `PlatformKind::none` usage; the enum element is being removed apple/swift [plan]
- → Test your code with `-solver-enable-type-var-joins` flag apple/swift [monitor]
- → Watch autoroll status for the Fuchsia SDK and ICU rolls; be ready to revert if breakage lands flutter/flutter [monitor]
References
- [1] AST: Remove `PlatformKind::none` ↗ apple/swift
- [2] Sema: Allow joining bindings involving type variables ↗ apple/swift
- [3] Roll Fuchsia Linux SDK from ic6GjOSn-KN508XyK... to Cqs-NyeELd60hqv1e... (#191547) flutter/flutter
- [4] Roll ICU from d578f2e8b7bd to 8cc91d9b6ab9 (1 revision) (#191542) flutter/flutter