// Copyright (c) 2020, 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.

// @dart = 2.9

// Tests that lazily-loaded fields are properly reset after hot restarts.

import 'package:expect/expect.dart';
import 'dart:_runtime' as dart;

double lazy = 3.14;

class Lazies {
  static String s = "default";
}

main() {
  Expect.equals(Lazies.s, "default");
  Lazies.s = "set";
  Expect.equals(Lazies.s, "set");
  Expect.equals(lazy, 3.14);
  lazy = 2.72;
  Expect.equals(lazy, 2.72);

  dart.hotRestart();

  Expect.equals(Lazies.s, "default");
  Lazies.s = "set";
  Expect.equals(Lazies.s, "set");
  Expect.equals(lazy, 3.14);
  lazy = 2.72;
  Expect.equals(lazy, 2.72);

  dart.hotRestart();
  dart.hotRestart();

  Expect.equals(Lazies.s, "default");
  Expect.equals(lazy, 3.14);
}
