[tests] Porting VM tests for calling deleted class members to the hot reload framework
Change-Id: I0104f25f5522b38bfe09a9546d602a2b0884c008 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/410942 Commit-Queue: Mark Zhou <markzipan@google.com> Reviewed-by: Nate Biggs <natebiggs@google.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3256
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
factory C.deleted() => new C();
|
||||
C();
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3256
|
||||
|
||||
var retained;
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
|
||||
var retained;
|
||||
|
||||
-class C {
|
||||
- factory C.deleted() => new C();
|
||||
- C();
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,30 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3287
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
factory C.deleted() => new C();
|
||||
C();
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3287
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
factory C.deleted(newParameter) => new C();
|
||||
C();
|
||||
}
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
- factory C.deleted() => new C();
|
||||
+ factory C.deleted(newParameter) => new C();
|
||||
C();
|
||||
}
|
||||
|
||||
helper() {
|
||||
- retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,30 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3318
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
factory C.deleted() => new C();
|
||||
C();
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3318
|
||||
|
||||
var retained;
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
|
||||
var retained;
|
||||
|
||||
-class C {
|
||||
- factory C.deleted() => new C();
|
||||
- C();
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,31 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L2980
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
static deleted() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L2980
|
||||
|
||||
var retained;
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
// https://github.com/dart-lang/sdk/blob/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L2980
|
||||
|
||||
var retained;
|
||||
-
|
||||
-class C {
|
||||
- static deleted() {
|
||||
- return 'hello';
|
||||
- }
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = () => C.deleted();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,31 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3010
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
static deleted() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3010
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
static deleted(newParameter) {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
- static deleted() {
|
||||
+ static deleted(newParameter) {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
helper() {
|
||||
- retained = () => C.deleted();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,32 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3041
|
||||
|
||||
var retained;
|
||||
|
||||
first(flag) {
|
||||
if (flag) throw 'first!';
|
||||
}
|
||||
|
||||
class C {
|
||||
static deleted(_) {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = (bool flag) => C.deleted(first(flag));
|
||||
return retained(false);
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws(helper, (error) => '$error'.contains('first!'));
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3041
|
||||
|
||||
var retained;
|
||||
|
||||
first(flag) {
|
||||
if (flag) throw 'first!';
|
||||
}
|
||||
|
||||
class C {}
|
||||
|
||||
helper() {
|
||||
return retained(true);
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws(helper, (error) => '$error'.contains('first!'));
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
if (flag) throw 'first!';
|
||||
}
|
||||
|
||||
-class C {
|
||||
- static deleted(_) {
|
||||
- return 'hello';
|
||||
- }
|
||||
-}
|
||||
+class C {}
|
||||
|
||||
helper() {
|
||||
- retained = (bool flag) => C.deleted(first(flag));
|
||||
- return retained(false);
|
||||
+ return retained(true);
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
*/
|
||||
@@ -0,0 +1,29 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3164
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
C.deleted();
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3164
|
||||
|
||||
var retained;
|
||||
|
||||
class C {}
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
|
||||
var retained;
|
||||
|
||||
-class C {
|
||||
- C.deleted();
|
||||
-}
|
||||
+class C {}
|
||||
|
||||
helper() {
|
||||
- retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,29 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3195
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
C.deleted();
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3195
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
C.deleted(newParameter);
|
||||
}
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
- C.deleted();
|
||||
+ C.deleted(newParameter);
|
||||
}
|
||||
|
||||
helper() {
|
||||
- retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,29 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3226
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
C.deleted();
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
// 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/c0819ff165a2557e6537700363594f2ddaf2a96e/runtime/vm/isolate_reload_test.cc#L3226
|
||||
|
||||
var retained;
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
|
||||
var retained;
|
||||
|
||||
-class C {
|
||||
- C.deleted();
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = () => C.deleted().toString();
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,31 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3073
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
static get deleted {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted;
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3073
|
||||
|
||||
var retained;
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
|
||||
var retained;
|
||||
|
||||
-class C {
|
||||
- static get deleted {
|
||||
- return 'hello';
|
||||
- }
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = () => C.deleted;
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,29 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3103
|
||||
|
||||
var retained;
|
||||
|
||||
class C {
|
||||
static set deleted(x) {}
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = () => C.deleted = 'hello';
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3103
|
||||
|
||||
var retained;
|
||||
|
||||
helper() {
|
||||
return retained();
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws<NoSuchMethodError>(
|
||||
helper,
|
||||
(error) => '$error'.contains('deleted'),
|
||||
);
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
|
||||
var retained;
|
||||
|
||||
-class C {
|
||||
- static set deleted(x) {}
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = () => C.deleted = 'hello';
|
||||
return retained();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,31 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3133
|
||||
|
||||
var retained;
|
||||
|
||||
first(flag) {
|
||||
if (flag) throw 'first!';
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
class C {
|
||||
static set deleted(x) {}
|
||||
}
|
||||
|
||||
helper() {
|
||||
retained = (bool flag) => C.deleted = first(flag);
|
||||
return retained(false);
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws(helper, (error) => '$error'.contains('first!'));
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
// 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/13f5fc6b168d8b6e5843d17fb9ba77f1343a7dfe/runtime/vm/isolate_reload_test.cc#L3133
|
||||
|
||||
var retained;
|
||||
|
||||
first(flag) {
|
||||
if (flag) throw 'first!';
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
helper() {
|
||||
return retained(true);
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
helper();
|
||||
await hotReload();
|
||||
Expect.throws(helper, (error) => '$error'.contains('first!'));
|
||||
}
|
||||
|
||||
/** DIFF **/
|
||||
/*
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
-class C {
|
||||
- static set deleted(x) {}
|
||||
-}
|
||||
-
|
||||
helper() {
|
||||
- retained = (bool flag) => C.deleted = first(flag);
|
||||
- return retained(false);
|
||||
+ return retained(true);
|
||||
}
|
||||
|
||||
Future<void> main() async {
|
||||
*/
|
||||
Reference in New Issue
Block a user