blob: 40e905774c243c015ab45f3fd6b34c31df64b999 [file] [log] [blame] [edit]
// 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';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/be2aabd91c67f7f331c49cb74e18fe5e469f04db/runtime/vm/isolate_reload_test.cc#L2464
enum A {
A1(B.B1),
A2(null),
A3(B.B3);
const A(this.a);
final a;
}
enum B {
B1(C.C1, 1),
B2(C.C2, 2),
B3(null, 3);
const B(this.b, this.x);
final b;
final x;
}
enum C {
C1(null),
C2(A.A2),
C3(A.A3);
const C(this.c);
final c;
}
var a1;
var a1_hash;
var a2;
var a2_hash;
var a3;
var a3_hash;
var b1;
var b1_hash;
var b2;
var b2_hash;
var b3;
var b3_hash;
var c1;
var c1_hash;
var c2;
var c2_hash;
var c3;
var c3_hash;
Future<void> main() async {
a1 = A.A1;
a1_hash = a1.hashCode;
a2 = A.A2;
a2_hash = a2.hashCode;
a3 = A.A3;
a3_hash = a3.hashCode;
b1 = B.B1;
b1_hash = b1.hashCode;
b2 = B.B2;
b2_hash = b2.hashCode;
b3 = B.B3;
b3_hash = b3.hashCode;
c1 = C.C1;
c1_hash = c1.hashCode;
c2 = C.C2;
c2_hash = c2.hashCode;
c3 = C.C3;
c3_hash = c3.hashCode;
await hotReload();
Expect.identical(a1, A.A1, 'i-a1');
Expect.equals(a1.hashCode, A.A1.hashCode, 'h-a1');
Expect.identical(a2, A.A2, 'i-a2');
Expect.equals(a2.hashCode, A.A2.hashCode, 'h-a2');
Expect.identical(a3, A.A3, 'i-a3');
Expect.equals(a3.hashCode, A.A3.hashCode, 'h-a3');
Expect.identical(b1, B.B1, 'i-b1');
Expect.equals(b1.hashCode, B.B1.hashCode, 'h-b1');
Expect.identical(b2, B.B2, 'i-b2');
Expect.equals(b2.hashCode, B.B2.hashCode, 'h-b2');
Expect.identical(b3, B.B3, 'i-b3');
Expect.equals(b3.hashCode, B.B3.hashCode, 'h-b3');
Expect.identical(c1, C.C1, 'i-c1');
Expect.equals(c1.hashCode, C.C1.hashCode, 'h-c1');
Expect.identical(c2, C.C2, 'i-c2');
Expect.equals(c2.hashCode, C.C2.hashCode, 'h-c2');
Expect.identical(c3, C.C3, 'i-c3');
Expect.equals(c3.hashCode, C.C3.hashCode, 'h-c3');
}
/** DIFF **/
/*
// https://github.com/dart-lang/sdk/blob/be2aabd91c67f7f331c49cb74e18fe5e469f04db/runtime/vm/isolate_reload_test.cc#L2464
enum A {
- A1(B.B1, 1),
- A2(null, 2),
- A3(B.B3, 3);
+ A1(B.B1),
+ A2(null),
+ A3(B.B3);
- const A(this.a, this.x);
+ const A(this.a);
final a;
- final x;
}
enum B {
- B1(C.C1),
- B2(C.C2),
- B3(null);
+ B1(C.C1, 1),
+ B2(C.C2, 2),
+ B3(null, 3);
- const B(this.b);
+ const B(this.b, this.x);
final b;
+ final x;
}
enum C {
*/