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
+14 -15
View File
@@ -65,22 +65,21 @@ void main() {
testWidgets('DialogHost renders the child + the dialog over a backdrop', (tester) async {
final r = DialogRouter();
await tester.pumpWidget(Directionality(
textDirection: TextDirection.ltr,
child: DialogHost(
router: r,
child: const ColoredBox(color: Color(0xFF111111), child: SizedBox.expand()),
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: DialogHost(
router: r,
child: const ColoredBox(color: Color(0xFF111111), child: SizedBox.expand()),
),
),
));
);
await tester.pump();
// No dialog open yet — backdrop + modal not present.
expect(find.byType(GestureDetector), findsNothing);
// Open one.
final future = r.show<String>((ctx, dismiss) {
return GestureDetector(
onTap: () => dismiss('inner'),
child: const SizedBox(width: 100, height: 100),
);
return GestureDetector(onTap: () => dismiss('inner'), child: const SizedBox(width: 100, height: 100));
});
await tester.pump();
// Backdrop + inner-wrapper + my own each add a GestureDetector.
@@ -129,7 +128,10 @@ void main() {
test('fire emits an OsLifecycleEvent on the bus', () async {
final bus = DaemonBus();
final bridge = OsBridge(log: Logger(minLevel: LogLevel.error), events: bus);
final bridge = OsBridge(
log: Logger(minLevel: LogLevel.error),
events: bus,
);
final got = bus.on<OsLifecycleEvent>().first;
bridge.fire('resumed');
final e = await got.timeout(const Duration(seconds: 1));
@@ -154,10 +156,7 @@ void main() {
final wc = WindowControls();
// Pre-register a handler that throws MissingPluginException for
// every call, exercising each method's catch clause.
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(
const MethodChannel('clide/window'),
(call) async => throw MissingPluginException(),
);
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(const MethodChannel('clide/window'), (call) async => throw MissingPluginException());
await wc.startResize(ResizeEdge.bottomRight);
await wc.startDrag();
await wc.minimize();