blob: f32a74d18874bbafc6aa2883a918a5891b3ab8d6 [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';
// Adapted from:
// https://github.com/dart-lang/sdk/blob/be2aabd91c67f7f331c49cb74e18fe5e469f04db/runtime/vm/isolate_reload_test.cc#L6537
enum Enum2 { member1, member2 }
enum Enum1 {
member1({Enum2.member1, Enum2.member2}),
member2({Enum2.member2}),
member3({Enum2.member1}),
member4({Enum2.member2, Enum2.member1}),
member5({Enum2.member1}),
member6({Enum2.member1});
const Enum1(this.set);
final Set<Enum2> set;
}
var retained;
helper(e) {
return switch (e as Enum1) {
Enum1.member1 => 'a',
Enum1.member2 => 'b',
Enum1.member3 => 'c',
Enum1.member4 => 'd',
Enum1.member5 => 'e',
Enum1.member6 => 'f',
};
}
Future<void> main() async {
retained = Enum1.member4;
await hotReload();
Expect.equals('d', helper(retained));
}
/** DIFF **/
/*
// Adapted from:
// https://github.com/dart-lang/sdk/blob/be2aabd91c67f7f331c49cb74e18fe5e469f04db/runtime/vm/isolate_reload_test.cc#L6537
+enum Enum2 { member1, member2 }
+
enum Enum1 {
member1({Enum2.member1, Enum2.member2}),
member2({Enum2.member2}),
@@ -20,10 +22,17 @@ enum Enum1 {
final Set<Enum2> set;
}
-enum Enum2 { member1, member2 }
-
var retained;
-helper(e) {}
+helper(e) {
+ return switch (e as Enum1) {
+ Enum1.member1 => 'a',
+ Enum1.member2 => 'b',
+ Enum1.member3 => 'c',
+ Enum1.member4 => 'd',
+ Enum1.member5 => 'e',
+ Enum1.member6 => 'f',
+ };
+}
Future<void> main() async {
retained = Enum1.member4;
*/