blob: 8e7fe46bde2b743ff6f00d062f96f26209a78244 [file] [log] [blame]
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
import 'package:reload_test/reload_test_utils.dart';
late String noInitializer;
late int withInitializer = 1;
class Lates {
static late String noInitializer;
static late int withInitializer = 2;
}
class LatesGeneric<T> {
static late String noInitializer;
static late int withInitializer = 3;
}
Future<void> main() async {
// Late statics should throw on get when not initialized.
Expect.throws(() => noInitializer);
Expect.throws(() => Lates.noInitializer);
Expect.throws(() => LatesGeneric.noInitializer);
// Set uninitialized static late fields again.
noInitializer = 'set via setter';
Lates.noInitializer = 'Lates set via setter';
LatesGeneric.noInitializer = 'LatesGeneric set via setter';
// All statics should contain their set values.
Expect.equals('set via setter', noInitializer);
Expect.equals('Lates set via setter', Lates.noInitializer);
Expect.equals('LatesGeneric set via setter', LatesGeneric.noInitializer);
Expect.equals(1, withInitializer);
Expect.equals(2, Lates.withInitializer);
Expect.equals(3, LatesGeneric.withInitializer);
await hotRestart();
}
/** DIFF **/
/*
}
Future<void> main() async {
- // Set uninitialized static late fields. Avoid calling getters for these
- // statics to ensure they are reset even if they are never accessed.
+ // Late statics should throw on get when not initialized.
+ Expect.throws(() => noInitializer);
+ Expect.throws(() => Lates.noInitializer);
+ Expect.throws(() => LatesGeneric.noInitializer);
+
+ // Set uninitialized static late fields again.
noInitializer = 'set via setter';
Lates.noInitializer = 'Lates set via setter';
LatesGeneric.noInitializer = 'LatesGeneric set via setter';
- // Initialized statics should contain their values.
+ // All statics should contain their set values.
+ Expect.equals('set via setter', noInitializer);
+ Expect.equals('Lates set via setter', Lates.noInitializer);
+ Expect.equals('LatesGeneric set via setter', LatesGeneric.noInitializer);
Expect.equals(1, withInitializer);
Expect.equals(2, Lates.withInitializer);
Expect.equals(3, LatesGeneric.withInitializer);
*/