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
+4 -16
View File
@@ -24,14 +24,8 @@ void main() {
});
test('scope key validation — rejects non-standard prefixes', () async {
expect(
() => store.get<String>('nothing.here'),
throwsA(isA<ArgumentError>()),
);
expect(
() => store.set('notascope.key', 'v'),
throwsA(isA<ArgumentError>()),
);
expect(() => store.get<String>('nothing.here'), throwsA(isA<ArgumentError>()));
expect(() => store.set('notascope.key', 'v'), throwsA(isA<ArgumentError>()));
});
test('app.* scope round-trips via YAML on disk', () async {
@@ -56,10 +50,7 @@ void main() {
});
test('setting a project.* key without an open project throws', () async {
expect(
() => store.set('project.thing', 'x'),
throwsA(isA<StateError>()),
);
expect(() => store.set('project.thing', 'x'), throwsA(isA<StateError>()));
});
test('project scope is isolated from app scope', () async {
@@ -106,10 +97,7 @@ void main() {
});
test('setting a project-scoped key without a project throws StateError', () async {
expect(
() async => store.set<int>('project.unset', 1),
throwsA(isA<StateError>()),
);
expect(() async => store.set<int>('project.unset', 1), throwsA(isA<StateError>()));
});
test('ext.* keys default to app scope; project overrides app for the same key', () async {