[tests] Porting deleted super member tests to the hot reload framework.

Change-Id: Ibdbe23fe2da83c9583e0aa4b2b3a2794a8762b67
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/414663
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Mark Zhou <markzipan@google.com>
diff --git a/tests/hot_reload/call_deleted_super_field_getter/main.0.dart b/tests/hot_reload/call_deleted_super_field_getter/main.0.dart
new file mode 100644
index 0000000..e80c360
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_field_getter/main.0.dart
@@ -0,0 +1,34 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3480
+
+var retained;
+
+class C {
+  var deleted = 'hello';
+}
+
+class D extends C {
+  curry() => () => super.deleted;
+}
+
+helper() {
+  retained = D().curry();
+}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
diff --git a/tests/hot_reload/call_deleted_super_field_getter/main.1.dart b/tests/hot_reload/call_deleted_super_field_getter/main.1.dart
new file mode 100644
index 0000000..63b9921
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_field_getter/main.1.dart
@@ -0,0 +1,52 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3480
+
+var retained;
+
+class C {}
+
+class D extends C {}
+
+helper() {}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
+
+/** DIFF **/
+/*
+ 
+ var retained;
+ 
+-class C {
+-  var deleted = 'hello';
+-}
++class C {}
+ 
+-class D extends C {
+-  curry() => () => super.deleted;
+-}
++class D extends C {}
+ 
+-helper() {
+-  retained = D().curry();
+-}
++helper() {}
+ 
+ Future<void> main() async {
+   helper();
+*/
diff --git a/tests/hot_reload/call_deleted_super_field_setter/main.0.dart b/tests/hot_reload/call_deleted_super_field_setter/main.0.dart
new file mode 100644
index 0000000..c4fe249
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_field_setter/main.0.dart
@@ -0,0 +1,34 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3513
+
+var retained;
+
+class C {
+  var deleted;
+}
+
+class D extends C {
+  curry() => () => super.deleted = 'hello';
+}
+
+helper() {
+  retained = D().curry();
+}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
diff --git a/tests/hot_reload/call_deleted_super_field_setter/main.1.dart b/tests/hot_reload/call_deleted_super_field_setter/main.1.dart
new file mode 100644
index 0000000..a3f8c0c
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_field_setter/main.1.dart
@@ -0,0 +1,52 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3513
+
+var retained;
+
+class C {}
+
+class D extends C {}
+
+helper() {}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
+
+/** DIFF **/
+/*
+ 
+ var retained;
+ 
+-class C {
+-  var deleted;
+-}
++class C {}
+ 
+-class D extends C {
+-  curry() => () => super.deleted = 'hello';
+-}
++class D extends C {}
+ 
+-helper() {
+-  retained = D().curry();
+-}
++helper() {}
+ 
+ Future<void> main() async {
+   helper();
+*/
diff --git a/tests/hot_reload/call_deleted_super_function/main.0.dart b/tests/hot_reload/call_deleted_super_function/main.0.dart
new file mode 100644
index 0000000..1cb2796
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_function/main.0.dart
@@ -0,0 +1,36 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3348
+
+var retained;
+
+class C {
+  deleted() {
+    return 'hello';
+  }
+}
+
+class D extends C {
+  curry() => () => super.deleted();
+}
+
+helper() {
+  retained = D().curry();
+}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
diff --git a/tests/hot_reload/call_deleted_super_function/main.1.dart b/tests/hot_reload/call_deleted_super_function/main.1.dart
new file mode 100644
index 0000000..58fc099
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_function/main.1.dart
@@ -0,0 +1,54 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3348
+
+var retained;
+
+class C {}
+
+class D extends C {}
+
+helper() {}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
+
+/** DIFF **/
+/*
+ 
+ var retained;
+ 
+-class C {
+-  deleted() {
+-    return 'hello';
+-  }
+-}
++class C {}
+ 
+-class D extends C {
+-  curry() => () => super.deleted();
+-}
++class D extends C {}
+ 
+-helper() {
+-  retained = D().curry();
+-}
++helper() {}
+ 
+ Future<void> main() async {
+   helper();
+*/
diff --git a/tests/hot_reload/call_deleted_super_function_arity_change/main.0.dart b/tests/hot_reload/call_deleted_super_function_arity_change/main.0.dart
new file mode 100644
index 0000000..139508a
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_function_arity_change/main.0.dart
@@ -0,0 +1,36 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3381
+
+var retained;
+
+class C {
+  deleted() {
+    return 'hello';
+  }
+}
+
+class D extends C {
+  curry() => () => super.deleted();
+}
+
+helper() {
+  retained = D().curry();
+}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
diff --git a/tests/hot_reload/call_deleted_super_function_arity_change/main.1.dart b/tests/hot_reload/call_deleted_super_function_arity_change/main.1.dart
new file mode 100644
index 0000000..e4d1ed1
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_function_arity_change/main.1.dart
@@ -0,0 +1,57 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3381
+
+var retained;
+
+class C {
+  deleted(newParameter) {
+    return 'hello';
+  }
+}
+
+class D extends C {}
+
+helper() {}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
+
+/** DIFF **/
+/*
+ var retained;
+ 
+ class C {
+-  deleted() {
++  deleted(newParameter) {
+     return 'hello';
+   }
+ }
+ 
+-class D extends C {
+-  curry() => () => super.deleted();
+-}
++class D extends C {}
+ 
+-helper() {
+-  retained = D().curry();
+-}
++helper() {}
+ 
+ Future<void> main() async {
+   helper();
+*/
diff --git a/tests/hot_reload/call_deleted_super_getter/main.0.dart b/tests/hot_reload/call_deleted_super_getter/main.0.dart
new file mode 100644
index 0000000..71b22c5
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_getter/main.0.dart
@@ -0,0 +1,36 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3414
+
+var retained;
+
+class C {
+  get deleted {
+    return 'hello';
+  }
+}
+
+class D extends C {
+  curry() => () => super.deleted;
+}
+
+helper() {
+  retained = D().curry();
+}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
diff --git a/tests/hot_reload/call_deleted_super_getter/main.1.dart b/tests/hot_reload/call_deleted_super_getter/main.1.dart
new file mode 100644
index 0000000..57b9583
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_getter/main.1.dart
@@ -0,0 +1,54 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3414
+
+var retained;
+
+class C {}
+
+class D extends C {}
+
+helper() {}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
+
+/** DIFF **/
+/*
+ 
+ var retained;
+ 
+-class C {
+-  get deleted {
+-    return 'hello';
+-  }
+-}
++class C {}
+ 
+-class D extends C {
+-  curry() => () => super.deleted;
+-}
++class D extends C {}
+ 
+-helper() {
+-  retained = D().curry();
+-}
++helper() {}
+ 
+ Future<void> main() async {
+   helper();
+*/
diff --git a/tests/hot_reload/call_deleted_super_setter/main.0.dart b/tests/hot_reload/call_deleted_super_setter/main.0.dart
new file mode 100644
index 0000000..569ab0b
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_setter/main.0.dart
@@ -0,0 +1,34 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3447
+
+var retained;
+
+class C {
+  set deleted(x) {}
+}
+
+class D extends C {
+  curry() => () => super.deleted = 'hello';
+}
+
+helper() {
+  retained = D().curry();
+}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
diff --git a/tests/hot_reload/call_deleted_super_setter/main.1.dart b/tests/hot_reload/call_deleted_super_setter/main.1.dart
new file mode 100644
index 0000000..4c41e9d
--- /dev/null
+++ b/tests/hot_reload/call_deleted_super_setter/main.1.dart
@@ -0,0 +1,52 @@
+// 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/cb96256bc2be8021c649da6d36c010de97cd3986/runtime/vm/isolate_reload_test.cc#L3447
+
+var retained;
+
+class C {}
+
+class D extends C {}
+
+helper() {}
+
+Future<void> main() async {
+  helper();
+  Expect.equals('hello', retained());
+  await hotReload();
+
+  Expect.throws<NoSuchMethodError>(
+    retained,
+    (error) => '$error'.contains('deleted'),
+  );
+}
+
+/** DIFF **/
+/*
+ 
+ var retained;
+ 
+-class C {
+-  set deleted(x) {}
+-}
++class C {}
+ 
+-class D extends C {
+-  curry() => () => super.deleted = 'hello';
+-}
++class D extends C {}
+ 
+-helper() {
+-  retained = D().curry();
+-}
++helper() {}
+ 
+ Future<void> main() async {
+   helper();
+*/