Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(426)

Unified Diff: tests/compiler/dart2js/jsinterop/world_test.dart

Issue 2443953002: Introduce isAbstractlyInstantiated to avoid exact masks of abstract classes. (Closed)
Patch Set: Updated cf. comments. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/compiler/dart2js/class_set_test.dart ('k') | tests/compiler/dart2js/world_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/jsinterop/world_test.dart
diff --git a/tests/compiler/dart2js/jsinterop/world_test.dart b/tests/compiler/dart2js/jsinterop/world_test.dart
index e994791f4406b44850a34dead5fa310dd48d4017..074860f0945313d297829c39fa6e80deb021e421 100644
--- a/tests/compiler/dart2js/jsinterop/world_test.dart
+++ b/tests/compiler/dart2js/jsinterop/world_test.dart
@@ -21,6 +21,7 @@ void main() {
testClasses() async {
test(String mainSource,
{List<String> directlyInstantiated: const <String>[],
+ List<String> abstractlyInstantiated: const <String>[],
List<String> indirectlyInstantiated: const <String>[]}) async {
TypeEnvironment env = await TypeEnvironment.create(
r"""
@@ -120,6 +121,13 @@ $mainSource
"Expected $name to be directly instantiated in `${mainSource}`:"
"\n${world.dump(cls)}");
}
+ if (abstractlyInstantiated.contains(name)) {
+ isInstantiated = true;
+ Expect.isTrue(
+ world.isAbstractlyInstantiated(cls),
+ "Expected $name to be abstractly instantiated in `${mainSource}`:"
+ "\n${world.dump(cls)}");
+ }
if (indirectlyInstantiated.contains(name)) {
isInstantiated = true;
Expect.isTrue(
@@ -139,19 +147,19 @@ $mainSource
await test('main() {}');
await test('main() => newA();',
- directlyInstantiated: ['A', 'B', 'C', 'D'],
+ abstractlyInstantiated: ['A', 'B', 'C', 'D'],
indirectlyInstantiated: ['Object', 'Interceptor', 'JavaScriptObject']);
await test('main() => newB();',
- directlyInstantiated: ['A', 'B', 'C', 'D'],
+ abstractlyInstantiated: ['A', 'B', 'C', 'D'],
indirectlyInstantiated: ['Object', 'Interceptor', 'JavaScriptObject']);
await test('main() => newC();',
- directlyInstantiated: ['A', 'B', 'C', 'D'],
+ abstractlyInstantiated: ['A', 'B', 'C', 'D'],
indirectlyInstantiated: ['Object', 'Interceptor', 'JavaScriptObject']);
await test('main() => newD();',
- directlyInstantiated: ['A', 'B', 'C', 'D'],
+ abstractlyInstantiated: ['A', 'B', 'C', 'D'],
indirectlyInstantiated: ['Object', 'Interceptor', 'JavaScriptObject']);
await test('main() => newE();', directlyInstantiated: ['E']);
@@ -159,6 +167,7 @@ $mainSource
await test('main() => newF();', directlyInstantiated: ['F']);
await test('main() => [newD(), newE()];',
- directlyInstantiated: ['A', 'B', 'C', 'D', 'E'],
+ directlyInstantiated: ['E'],
+ abstractlyInstantiated: ['A', 'B', 'C', 'D'],
indirectlyInstantiated: ['Object', 'Interceptor', 'JavaScriptObject']);
}
« no previous file with comments | « tests/compiler/dart2js/class_set_test.dart ('k') | tests/compiler/dart2js/world_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698