chore: adopt Dart 3.9 toolchain — honest floor + tall-style reformat (T-353)

Raise the declared minimums in pubspec.yaml to what our deps already
require: Flutter >=3.35.0 / Dart >=3.9.0 (was 3.19.0 / 3.5.0). alchemist
0.12 needs Flutter 3.32; Dart 3.9 first ships in Flutter 3.35, so 3.35 is
the binding floor. Pin the exact build toolchain in .fvmrc (Flutter
3.44.1).

Moving to the Dart 3.9 language level switches `dart format` to the new
"tall" style and enables two new lints. This commit is the resulting
mechanical churn, isolated from any behaviour change:
  - whole-tree `dart format` reformat (tall style)
  - `dart fix` for unnecessary_underscores + use_null_aware_elements

No runtime behaviour change; `make test` green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-11 12:11:53 +02:00
co-authored by Claude Opus 4.8
parent bcea5f15b7
commit 6d0ebab721
444 changed files with 7587 additions and 12849 deletions
+13 -9
View File
@@ -53,11 +53,13 @@ void main() {
test('publish + subscribe round-trip through the message bus', () async {
Message? received;
f.services.extensions.register(_SugarExt((ctx) async {
final first = ctx.subscribe(channel: 'greet').first;
ctx.publish('greet', {'hello': 'world'});
received = await first;
}));
f.services.extensions.register(
_SugarExt((ctx) async {
final first = ctx.subscribe(channel: 'greet').first;
ctx.publish('greet', {'hello': 'world'});
received = await first;
}),
);
await f.services.extensions.activate('sugar.ext');
expect(received, isNotNull);
expect(received!.publisher, 'sugar.ext');
@@ -68,10 +70,12 @@ void main() {
test('t + tr resolve against the extension namespace', () async {
String? t;
String? tr;
f.services.extensions.register(_SugarExt((ctx) async {
t = ctx.t('missing.key');
tr = ctx.tr('missing.key', replacers: const []);
}));
f.services.extensions.register(
_SugarExt((ctx) async {
t = ctx.t('missing.key');
tr = ctx.tr('missing.key', replacers: const []);
}),
);
await f.services.extensions.activate('sugar.ext');
// No catalog loaded for this namespace → i18n falls back, but the
// sugar getters still execute and return a non-null string.