// Copyright (c) 2024, 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';

var value = "after";

Future<void> main() async {
  // Declare an unreferenced lazy static field.
  Expect.equals(0, hotReloadGeneration);
  await hotReload();

  // The lazy static field changes value but remains unread.
  Expect.equals(1, hotReloadGeneration);
  await hotReload();

  // The lazy static is now read and contains the updated value.
  Expect.equals(2, hotReloadGeneration);
  Expect.equals("before", value);
  await hotReload();

  // The lazy static is updated and read but retains the old value.
  Expect.equals(3, hotReloadGeneration);
  Expect.equals("before", value);
}

/** DIFF **/
/*
@@ -5,7 +5,7 @@
 import 'package:expect/expect.dart';
 import 'package:reload_test/reload_test_utils.dart';
 
-var value = "before";
+var value = "after";
 
 Future<void> main() async {
   // Declare an unreferenced lazy static field.
@@ -17,7 +17,6 @@
   await hotReload();
 
   // The lazy static is now read and contains the updated value.
-  print(value);
   Expect.equals(2, hotReloadGeneration);
   Expect.equals("before", value);
   await hotReload();
*/
