Remove old frontend equivalence tests
Change-Id: I18b4b9979aea44b4dec64a5f1a32e67118b54a97
Reviewed-on: https://dart-review.googlesource.com/54222
Reviewed-by: Sigmund Cherem <sigmund@google.com>
diff --git a/tests/compiler/dart2js/closure/closure_test.dart b/tests/compiler/dart2js/closure/closure_test.dart
index 9cd4a87..96f99de 100644
--- a/tests/compiler/dart2js/closure/closure_test.dart
+++ b/tests/compiler/dart2js/closure/closure_test.dart
@@ -8,12 +8,10 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
import 'package:compiler/src/js_model/locals.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:compiler/src/universe/world_builder.dart';
import 'package:compiler/src/util/util.dart';
import 'package:expect/expect.dart';
@@ -26,27 +24,11 @@
main(List<String> args) {
asyncTest(() async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
- await checkTests(dataDir, computeClosureData, computeKernelClosureData,
+ await checkTests(dataDir, computeKernelClosureData,
skipForKernel: skipForKernel, args: args);
});
}
-/// Compute closure data mapping for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
-/// for the data origin.
-void computeClosureData(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ClosureDataLookup<ast.Node> closureDataLookup =
- compiler.backendStrategy.closureDataLookup as ClosureDataLookup<ast.Node>;
- new ClosureAstComputer(compiler.reporter, actualMap, member.resolvedAst,
- closureDataLookup, compiler.codegenWorldBuilder,
- verbose: verbose)
- .run();
-}
-
/// Compute closure data mapping for [member] as a kernel based element.
///
/// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
@@ -75,61 +57,6 @@
.run(definition.node);
}
-/// Ast visitor for computing closure data.
-class ClosureAstComputer extends AstDataExtractor with ComputeValueMixin {
- final ClosureDataLookup<ast.Node> closureDataLookup;
- final CodegenWorldBuilder codegenWorldBuilder;
- final bool verbose;
-
- ClosureAstComputer(DiagnosticReporter reporter, Map<Id, ActualData> actualMap,
- ResolvedAst resolvedAst, this.closureDataLookup, this.codegenWorldBuilder,
- {this.verbose: false})
- : super(reporter, actualMap, resolvedAst) {
- pushMember(resolvedAst.element as MemberElement);
- }
-
- visitFunctionExpression(ast.FunctionExpression node) {
- Entity localFunction = resolvedAst.elements.getFunctionDefinition(node);
- if (localFunction is LocalFunctionElement) {
- pushMember(localFunction.callMethod);
- pushLocalFunction(node);
- super.visitFunctionExpression(node);
- popLocalFunction();
- popMember();
- } else {
- super.visitFunctionExpression(node);
- }
- }
-
- visitLoop(ast.Loop node) {
- pushLoopNode(node);
- super.visitLoop(node);
- popLoop();
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal) {
- if (element.isFunction) {
- LocalFunctionElement localFunction = element;
- return computeObjectValue(localFunction.callMethod);
- } else {
- LocalElement local = element;
- return computeLocalValue(local);
- }
- }
- // TODO(johnniwinther,efortuna): Collect data for other nodes?
- return null;
- }
-
- @override
- String computeElementValue(Id id, covariant MemberElement element) {
- // TODO(johnniwinther,efortuna): Collect data for the member
- // (has thisLocal, has box, etc.).
- return computeObjectValue(element);
- }
-}
-
/// Kernel IR visitor for computing closure data.
class ClosureIrChecker extends IrDataExtractor with ComputeValueMixin<ir.Node> {
final MemberEntity member;
diff --git a/tests/compiler/dart2js/closure/data/test_type.dart b/tests/compiler/dart2js/closure/data/test_type.dart
index c74d190..aaadba2 100644
--- a/tests/compiler/dart2js/closure/data/test_type.dart
+++ b/tests/compiler/dart2js/closure/data/test_type.dart
@@ -38,7 +38,6 @@
class Class3<T> {
/*element: Class3.method3:hasThis*/
method3(dynamic o) {
- /*ast.fields=[o],free=[o],hasThis*/
/*kernel.fields=[o],free=[o],hasThis*/
/*strong.fields=[o,this],free=[o,this],hasThis*/
T local() => o;
diff --git a/tests/compiler/dart2js/closure/data/type_annotations.dart b/tests/compiler/dart2js/closure/data/type_annotations.dart
index 329252f..112565e 100644
--- a/tests/compiler/dart2js/closure/data/type_annotations.dart
+++ b/tests/compiler/dart2js/closure/data/type_annotations.dart
@@ -48,7 +48,6 @@
class Class2<T> {
/*element: Class2.method2:hasThis*/
method2() {
- /*ast.hasThis*/
/*kernel.hasThis*/
/*strong.fields=[this],free=[this],hasThis*/
dynamic local(T t) => t;
@@ -64,7 +63,6 @@
class Class3<T> {
/*element: Class3.method3:hasThis*/
method3(dynamic o) {
- /*ast.fields=[o],free=[o],hasThis*/
/*kernel.fields=[o],free=[o],hasThis*/
/*strong.fields=[o,this],free=[o,this],hasThis*/
T local() => o;
@@ -108,7 +106,6 @@
class Class6<T> {
/*element: Class6.method6:hasThis*/
method6() {
- /*ast.hasThis*/
/*kernel.hasThis*/
/*strong.fields=[this],free=[this],hasThis*/
dynamic local(T t) {
@@ -129,7 +126,6 @@
class Class7<T> {
/*element: Class7.method7:hasThis*/
method7(dynamic o) {
- /*ast.fields=[o],free=[o],hasThis*/
/*kernel.fields=[o],free=[o],hasThis*/
/*strong.fields=[o,this],free=[o,this],hasThis*/
T local() {
diff --git a/tests/compiler/dart2js/closure/show.dart b/tests/compiler/dart2js/closure/show.dart
index ae6eb5e..870eea9 100644
--- a/tests/compiler/dart2js/closure/show.dart
+++ b/tests/compiler/dart2js/closure/show.dart
@@ -16,7 +16,6 @@
argParser.addFlag('callers', defaultsTo: false);
ArgResults results = argParser.parse(args);
- ComputeMemberDataFunction astFunction = computeClosureData;
ComputeMemberDataFunction kernelFunction = computeKernelClosureData;
- await show(results, astFunction, kernelFunction);
+ await show(results, kernelFunction);
}
diff --git a/tests/compiler/dart2js/deferred_loading/deferred_loading_test.dart b/tests/compiler/dart2js/deferred_loading/deferred_loading_test.dart
index 37b9fed..8abed7c 100644
--- a/tests/compiler/dart2js/deferred_loading/deferred_loading_test.dart
+++ b/tests/compiler/dart2js/deferred_loading/deferred_loading_test.dart
@@ -7,7 +7,6 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/deferred_load.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
@@ -32,9 +31,7 @@
main(List<String> args) {
asyncTest(() async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
- await checkTests(
- dataDir, computeAstOutputUnitData, computeKernelOutputUnitData,
- computeClassDataFromAst: computeAstClassOutputUnitData,
+ await checkTests(dataDir, computeKernelOutputUnitData,
computeClassDataFromKernel: computeKernelClassOutputUnitData,
libDirectory: new Directory.fromUri(Platform.script.resolve('libs')),
skipForKernel: skipForKernel,
@@ -81,46 +78,6 @@
return 'OutputUnit(${unit.name}, {$sb})';
}
-/// Compute closure data mapping for [member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data computed about what the resulting OutputUnit
-/// is.
-void computeAstOutputUnitData(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- OutputUnitData data = compiler.backend.outputUnitData;
- String value = outputUnitString(data.outputUnitForEntity(member));
-
- _registerValue(computeElementId(member), value, member, member.sourcePosition,
- actualMap, compiler.reporter);
-
- if (member is FieldElement && member.isConst) {
- var node = member.initializer;
- var constant = compiler.constants.getConstantValue(member.constant);
- if (constant.isPrimitive) return;
- _registerValue(
- new NodeId(node.getBeginToken().charOffset, IdKind.node),
- outputUnitString(data.outputUnitForConstant(constant)),
- member,
- new SourceSpan(member.resolvedAst.sourceUri,
- node.getBeginToken().charOffset, node.getEndToken().charEnd),
- actualMap,
- compiler.reporter);
- }
-}
-
-void computeAstClassOutputUnitData(
- Compiler compiler, ClassEntity _cls, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- ClassElement cls = _cls;
- OutputUnitData data = compiler.backend.outputUnitData;
- String value = outputUnitString(data.outputUnitForEntity(cls));
-
- _registerValue(new ClassId(cls.name), value, cls, cls.sourcePosition,
- actualMap, compiler.reporter);
-}
-
/// OutputData for [member] as a kernel based element.
///
/// At this point the compiler has already been run, so it is holding the
diff --git a/tests/compiler/dart2js/deferred_loading/libs/deferred_typed_map_lib1.dart b/tests/compiler/dart2js/deferred_loading/libs/deferred_typed_map_lib1.dart
index 36d7d4a..e5b0dc7 100644
--- a/tests/compiler/dart2js/deferred_loading/libs/deferred_typed_map_lib1.dart
+++ b/tests/compiler/dart2js/deferred_loading/libs/deferred_typed_map_lib1.dart
@@ -9,8 +9,7 @@
/*element: table:OutputUnit(1, {lib})*/
const table =
-/*ast.null*/
-/*!ast.OutputUnit(1, {lib})*/
+/*OutputUnit(1, {lib})*/
const <int, FF>{1: f1, 2: f2};
/*element: f1:OutputUnit(1, {lib})*/
diff --git a/tests/compiler/dart2js/deferred_loading/libs/type_argument_dependency_lib2.dart b/tests/compiler/dart2js/deferred_loading/libs/type_argument_dependency_lib2.dart
index bf70190..a5a50fd 100644
--- a/tests/compiler/dart2js/deferred_loading/libs/type_argument_dependency_lib2.dart
+++ b/tests/compiler/dart2js/deferred_loading/libs/type_argument_dependency_lib2.dart
@@ -2,7 +2,6 @@
// 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.
-/*ast.class: A:OutputUnit(1, {c})*/
/*kernel.class: A:OutputUnit(1, {c})*/
/*strong.class: A:OutputUnit(main, {})*/
/*omit.class: A:OutputUnit(main, {})*/
diff --git a/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart b/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
index 82bea10..7ffae04 100644
--- a/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
+++ b/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
@@ -463,10 +463,9 @@
/// [setUpFunction] is called once for every test that is executed.
/// If [forUserSourceFilesOnly] is true, we examine the elements in the main
/// file and any supporting libraries.
-Future checkTests(Directory dataDir, ComputeMemberDataFunction computeFromAst,
- ComputeMemberDataFunction computeFromKernel,
+Future checkTests(
+ Directory dataDir, ComputeMemberDataFunction computeFromKernel,
{bool testStrongMode: true,
- List<String> skipForAst: const <String>[],
List<String> skipForKernel: const <String>[],
List<String> skipForStrong: const <String>[],
bool filterActualData(IdValue idValue, ActualData actualData),
@@ -475,7 +474,6 @@
Directory libDirectory: null,
bool forUserLibrariesOnly: true,
Callback setUpFunction,
- ComputeClassDataFunction computeClassDataFromAst,
ComputeClassDataFunction computeClassDataFromKernel,
int shards: 1,
int shardIndex: 0,
@@ -564,27 +562,6 @@
if (setUpFunction != null) setUpFunction();
- if (skipForAst.contains(name) || strongModeOnlyTest) {
- print('--skipped for ast-----------------------------------------------');
- } else {
- print('--from ast------------------------------------------------------');
- List<String> options = [Flags.useOldFrontend]..addAll(testOptions);
- if (trustTypeAnnotations) {
- options.add(Flags.trustTypeAnnotations);
- }
- MemberAnnotations<IdValue> annotations = expectedMaps[astMarker];
- CompiledData compiledData1 = await computeData(
- entryPoint, memorySourceFiles, computeFromAst,
- computeClassData: computeClassDataFromAst,
- options: options,
- verbose: verbose,
- forUserLibrariesOnly: forUserLibrariesOnly,
- globalIds: annotations.globalData.keys);
- if (await checkCode(astName, entity.uri, code, annotations, compiledData1,
- fatalErrors: !testAfterFailures)) {
- hasFailures = true;
- }
- }
if (skipForKernel.contains(name) ||
(testStrongMode && strongModeOnlyTest)) {
print('--skipped for kernel--------------------------------------------');
diff --git a/tests/compiler/dart2js/equivalence/show_helper.dart b/tests/compiler/dart2js/equivalence/show_helper.dart
index bbf0b1d..c3549b5 100644
--- a/tests/compiler/dart2js/equivalence/show_helper.dart
+++ b/tests/compiler/dart2js/equivalence/show_helper.dart
@@ -18,7 +18,6 @@
argParser.addFlag('verbose', negatable: true, defaultsTo: false);
argParser.addFlag('colors', negatable: true);
argParser.addFlag('all', negatable: false, defaultsTo: false);
- argParser.addFlag('use-kernel', negatable: false, defaultsTo: false);
argParser.addFlag('strong', negatable: false, defaultsTo: false);
argParser.addFlag('omit-implicit-checks',
negatable: false, defaultsTo: false);
@@ -27,17 +26,14 @@
return argParser;
}
-show(ArgResults argResults, ComputeMemberDataFunction computeAstData,
- ComputeMemberDataFunction computeKernelData,
- {ComputeClassDataFunction computeAstClassData,
- ComputeClassDataFunction computeKernelClassData,
+show(ArgResults argResults, ComputeMemberDataFunction computeKernelData,
+ {ComputeClassDataFunction computeKernelClassData,
List<String> options: const <String>[]}) async {
if (argResults.wasParsed('colors')) {
useColors = argResults['colors'];
}
bool verbose = argResults['verbose'];
bool strongMode = argResults['strong'];
- bool useKernel = argResults['use-kernel'] || strongMode;
bool omitImplicitChecks = argResults['omit-implicit-checks'];
bool trustTypeAnnotations = argResults['trust-type-annotations'];
@@ -53,9 +49,6 @@
}
options = new List<String>.from(options);
- if (!useKernel) {
- options.add(Flags.useOldFrontend);
- }
if (strongMode) {
options.add(Flags.strongMode);
}
@@ -65,10 +58,8 @@
if (omitImplicitChecks) {
options.add(Flags.omitImplicitChecks);
}
- CompiledData data = await computeData(
- entryPoint, const {}, useKernel ? computeKernelData : computeAstData,
- computeClassData:
- useKernel ? computeKernelClassData : computeAstClassData,
+ CompiledData data = await computeData(entryPoint, const {}, computeKernelData,
+ computeClassData: computeKernelClassData,
options: options,
forUserLibrariesOnly: false,
skipUnprocessedMembers: true,
diff --git a/tests/compiler/dart2js/inference/callers_test.dart b/tests/compiler/dart2js/inference/callers_test.dart
index b88f07f..60bc82f 100644
--- a/tests/compiler/dart2js/inference/callers_test.dart
+++ b/tests/compiler/dart2js/inference/callers_test.dart
@@ -8,13 +8,11 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/inferrer/inferrer_engine.dart';
import 'package:compiler/src/inferrer/type_graph_inferrer.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:kernel/ast.dart' as ir;
import '../equivalence/id_equivalence.dart';
import '../equivalence/id_equivalence_helper.dart';
@@ -24,26 +22,11 @@
asyncTest(() async {
Directory dataDir =
new Directory.fromUri(Platform.script.resolve('callers'));
- await checkTests(dataDir, computeMemberAstCallers, computeMemberIrCallers,
+ await checkTests(dataDir, computeMemberIrCallers,
args: args, options: [stopAfterTypeInference]);
});
}
-/// Compute callers data for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data.
-void computeMemberAstCallers(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ResolvedAst resolvedAst = member.resolvedAst;
- compiler.reporter.withCurrentElement(member.implementation, () {
- new CallersAstComputer(compiler.reporter, actualMap, resolvedAst,
- compiler.globalInference.typesInferrerInternal)
- .run();
- });
-}
-
abstract class ComputeValueMixin<T> {
TypeGraphInferrer get inferrer;
@@ -69,37 +52,6 @@
}
}
-/// AST visitor for computing side effects data for a member.
-class CallersAstComputer extends AstDataExtractor
- with ComputeValueMixin<ast.Node> {
- final TypeGraphInferrer inferrer;
-
- CallersAstComputer(DiagnosticReporter reporter, Map<Id, ActualData> actualMap,
- ResolvedAst resolvedAst, this.inferrer)
- : super(reporter, actualMap, resolvedAst);
-
- @override
- String computeElementValue(Id id, AstElement element) {
- if (element.isParameter) {
- return null;
- } else if (element.isLocal && element.isFunction) {
- LocalFunctionElement localFunction = element;
- return getMemberValue(localFunction.callMethod);
- } else {
- MemberElement member = element.declaration;
- return getMemberValue(member);
- }
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal && element.isFunction) {
- return computeElementValue(id, element);
- }
- return null;
- }
-}
-
/// Compute callers data for [member] from kernel based inference.
///
/// Fills [actualMap] with the data.
diff --git a/tests/compiler/dart2js/inference/data/await.dart b/tests/compiler/dart2js/inference/data/await.dart
index 03099d8..07c562b 100644
--- a/tests/compiler/dart2js/inference/data/await.dart
+++ b/tests/compiler/dart2js/inference/data/await.dart
@@ -17,7 +17,6 @@
/*element: _method1:[null]*/
_method1(
- /*ast.[null|subclass=Object]*/
/*kernel.[null|subclass=Object]*/
/*strong.[null|subclass=JSInt]*/
o) {}
@@ -35,7 +34,6 @@
/*element: _method2:[null]*/
_method2(
- /*ast.[null|subclass=Object]*/
/*kernel.[null|subclass=Object]*/
/*strong.[null|subclass=JSInt]*/
o) {}
@@ -56,7 +54,6 @@
/*element: _method4:[null]*/
_method4(
- /*ast.[null|subclass=Object]*/
/*kernel.[null|subclass=Object]*/
/*strong.[null|subclass=JSInt]*/
o) {}
diff --git a/tests/compiler/dart2js/inference/data/call_method_function_typed_value.dart b/tests/compiler/dart2js/inference/data/call_method_function_typed_value.dart
index e938ddb..5d5c0f4 100644
--- a/tests/compiler/dart2js/inference/data/call_method_function_typed_value.dart
+++ b/tests/compiler/dart2js/inference/data/call_method_function_typed_value.dart
@@ -6,7 +6,6 @@
import "package:expect/expect.dart";
-/*ast.element: f:[subclass=JSNumber]*/
/*kernel.element: f:[subclass=JSNumber]*/
/*strong.element: f:[subclass=JSInt]*/
int f(int /*[null|subclass=Object]*/ i) => 2 /*invoke: [exact=JSUInt31]*/ * i;
diff --git a/tests/compiler/dart2js/inference/data/closure_tracer_28919.dart b/tests/compiler/dart2js/inference/data/closure_tracer_28919.dart
index 96ea43a..eb8b96c 100644
--- a/tests/compiler/dart2js/inference/data/closure_tracer_28919.dart
+++ b/tests/compiler/dart2js/inference/data/closure_tracer_28919.dart
@@ -64,11 +64,9 @@
probe2methods(methods);
}
-/*ast.element: probe2res:[null|subclass=Object]*/
/*kernel.element: probe2res:[null|subclass=Object]*/
/*strong.element: probe2res:[null|subclass=JSInt]*/
probe2res(
- /*ast.[null|subclass=Object]*/
/*kernel.[null|subclass=Object]*/
/*strong.[null|subclass=JSInt]*/
x) =>
diff --git a/tests/compiler/dart2js/inference/data/closurization_instance_call.dart b/tests/compiler/dart2js/inference/data/closurization_instance_call.dart
index 0c98bcc..d42efcd 100644
--- a/tests/compiler/dart2js/inference/data/closurization_instance_call.dart
+++ b/tests/compiler/dart2js/inference/data/closurization_instance_call.dart
@@ -28,21 +28,18 @@
var local = c. /*[exact=Class]*/ method;
local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
local();
local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
local.call();
return local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
diff --git a/tests/compiler/dart2js/inference/data/closurization_local_call.dart b/tests/compiler/dart2js/inference/data/closurization_local_call.dart
index 25e3bcd..c14d3c4 100644
--- a/tests/compiler/dart2js/inference/data/closurization_local_call.dart
+++ b/tests/compiler/dart2js/inference/data/closurization_local_call.dart
@@ -25,21 +25,18 @@
var local = /*[exact=JSUInt31]*/ () => 42;
local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
local();
local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
local.call();
return local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
diff --git a/tests/compiler/dart2js/inference/data/closurization_static_call.dart b/tests/compiler/dart2js/inference/data/closurization_static_call.dart
index 6a28213..7881009 100644
--- a/tests/compiler/dart2js/inference/data/closurization_static_call.dart
+++ b/tests/compiler/dart2js/inference/data/closurization_static_call.dart
@@ -28,21 +28,18 @@
var local = method;
local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
local();
local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
local.call();
return local
.
- /*ast.invoke: [subtype=Function]*/
/*kernel.invoke: [subtype=Function]*/
/*strong.invoke: [subclass=Closure]*/
toString();
diff --git a/tests/compiler/dart2js/inference/data/expose_this_closure.dart b/tests/compiler/dart2js/inference/data/expose_this_closure.dart
index b60e4c9..d49b4e2 100644
--- a/tests/compiler/dart2js/inference/data/expose_this_closure.dart
+++ b/tests/compiler/dart2js/inference/data/expose_this_closure.dart
@@ -59,7 +59,6 @@
abstract class SuperClass1 {
/*element: SuperClass1.:[exact=Class3]*/
SuperClass1(
- /*ast.[null|subclass=Object]*/
/*kernel.[null|subclass=Object]*/
/*strong.[null|subclass=JSInt]*/
o);
diff --git a/tests/compiler/dart2js/inference/data/expose_this_mask.dart b/tests/compiler/dart2js/inference/data/expose_this_mask.dart
index b1033c6..84feb4a 100644
--- a/tests/compiler/dart2js/inference/data/expose_this_mask.dart
+++ b/tests/compiler/dart2js/inference/data/expose_this_mask.dart
@@ -167,9 +167,7 @@
class Class6 {
/*element: Class6.field6a:[exact=JSUInt31]*/
var field6a;
- /*ast.element: Class6.field6b:[exact=JSUInt31]*/
- /*kernel.element: Class6.field6b:[null|exact=JSUInt31]*/
- /*strong.element: Class6.field6b:[null|exact=JSUInt31]*/
+ /*element: Class6.field6b:[null|exact=JSUInt31]*/
var field6b;
/*element: Class6.:[exact=Class6]*/
@@ -185,15 +183,11 @@
/*element: SubClass6.:[exact=SubClass6]*/
SubClass6() : field6b = 42;
- /*ast.element: SubClass6.access:[exact=JSUInt31]*/
- /*kernel.element: SubClass6.access:[null|exact=JSUInt31]*/
- /*strong.element: SubClass6.access:[null|exact=JSUInt31]*/
+ /*element: SubClass6.access:[null|exact=JSUInt31]*/
get access => super.field6b;
}
-/*ast.element: subclassFieldWrite:[exact=JSUInt31]*/
-/*kernel.element: subclassFieldWrite:[null|exact=JSUInt31]*/
-/*strong.element: subclassFieldWrite:[null|exact=JSUInt31]*/
+/*element: subclassFieldWrite:[null|exact=JSUInt31]*/
subclassFieldWrite() {
new Class6();
return new SubClass6(). /*[exact=SubClass6]*/ access;
@@ -207,9 +201,7 @@
class Class9 {
/*element: Class9.field9a:[exact=JSUInt31]*/
var field9a;
- /*ast.element: Class9.field9b:[exact=JSUInt31]*/
- /*kernel.element: Class9.field9b:[null|exact=JSUInt31]*/
- /*strong.element: Class9.field9b:[null|exact=JSUInt31]*/
+ /*element: Class9.field9b:[null|exact=JSUInt31]*/
var field9b;
/*element: Class9.:[exact=Class9]*/
@@ -225,18 +217,14 @@
/*element: SubClass9a.:[exact=SubClass9a]*/
SubClass9a() : field9b = 42;
- /*ast.element: SubClass9a.access:[exact=JSUInt31]*/
- /*kernel.element: SubClass9a.access:[null|exact=JSUInt31]*/
- /*strong.element: SubClass9a.access:[null|exact=JSUInt31]*/
+ /*element: SubClass9a.access:[null|exact=JSUInt31]*/
get access => super.field9b;
}
/*element: SubClass9b.:[exact=SubClass9b]*/
class SubClass9b extends Class9 {}
-/*ast.element: subclassesFieldWrite:[exact=JSUInt31]*/
-/*kernel.element: subclassesFieldWrite:[null|exact=JSUInt31]*/
-/*strong.element: subclassesFieldWrite:[null|exact=JSUInt31]*/
+/*element: subclassesFieldWrite:[null|exact=JSUInt31]*/
subclassesFieldWrite() {
new Class9();
new SubClass9b();
diff --git a/tests/compiler/dart2js/inference/data/field_type.dart b/tests/compiler/dart2js/inference/data/field_type.dart
index 5fe9757..2f2e8d3 100644
--- a/tests/compiler/dart2js/inference/data/field_type.dart
+++ b/tests/compiler/dart2js/inference/data/field_type.dart
@@ -348,8 +348,8 @@
}
class A16 {
- // TODO(johnniwinther): Investigate with these differ.
- /*ast.element: A16.f16:Union([exact=JSString], [exact=JSUInt31])*/
+ // TODO(johnniwinther): Investigate with these differ this includes `null`.
+ // The ast version didn't.
/*kernel.element: A16.f16:Union([exact=JSString], [null|exact=JSUInt31])*/
/*strong.element: A16.f16:Union([exact=JSString], [null|exact=JSUInt31])*/
var f16;
@@ -609,7 +609,6 @@
/*element: A24.+:Value([exact=JSString], value: "foo")*/
operator +(
- /*ast.[exact=JSUInt31]*/
/*kernel.[exact=JSUInt31]*/
/*strong.[empty]*/
other) =>
diff --git a/tests/compiler/dart2js/inference/data/for_in.dart b/tests/compiler/dart2js/inference/data/for_in.dart
index d71083f..562897a 100644
--- a/tests/compiler/dart2js/inference/data/for_in.dart
+++ b/tests/compiler/dart2js/inference/data/for_in.dart
@@ -32,7 +32,6 @@
// Return element from a for-in loop on a list literal.
////////////////////////////////////////////////////////////////////////////////
-/*ast.element: forInReturn:[null|subclass=Object]*/
/*kernel.element: forInReturn:[null|subclass=Object]*/
/*strong.element: forInReturn:[null|subclass=JSInt]*/
forInReturn() {
diff --git a/tests/compiler/dart2js/inference/data/general.dart b/tests/compiler/dart2js/inference/data/general.dart
index 1ca6af3..ea317d5 100644
--- a/tests/compiler/dart2js/inference/data/general.dart
+++ b/tests/compiler/dart2js/inference/data/general.dart
@@ -589,8 +589,7 @@
var a = topLevelGetter();
// Make [a] a captured variable. This should disable receiver
// specialization on [a].
- (/*ast.[null|subclass=Object]*/
- /*kernel.[null|subclass=Object]*/
+ (/*kernel.[null|subclass=Object]*/
/*strong.[null|exact=JSString]*/
() => a.toString())();
a - 42;
@@ -671,7 +670,6 @@
/*element: A.generative:[exact=A]*/
A.generative();
- /*ast.element: A.==:Union([exact=JSBool], [exact=JSUInt31])*/
/*kernel.element: A.==:Union([exact=JSBool], [exact=JSUInt31])*/
/*strong.element: A.==:[exact=JSBool]*/
operator ==(/*Union([exact=JSString], [exact=JSUInt31])*/ other) =>
diff --git a/tests/compiler/dart2js/inference/data/if_null.dart b/tests/compiler/dart2js/inference/data/if_null.dart
index d9cca46..640ef25 100644
--- a/tests/compiler/dart2js/inference/data/if_null.dart
+++ b/tests/compiler/dart2js/inference/data/if_null.dart
@@ -29,9 +29,7 @@
/*element: _ifNotNullInvoke:[null|exact=JSBool]*/
_ifNotNullInvoke(/*[null|exact=JSUInt31]*/ o) {
return o?.
- /*ast.[null|exact=JSUInt31]*/
- /*kernel.[exact=JSUInt31]*/
- /*strong.[exact=JSUInt31]*/
+ /*[exact=JSUInt31]*/
isEven;
}
diff --git a/tests/compiler/dart2js/inference/data/js_interop.dart b/tests/compiler/dart2js/inference/data/js_interop.dart
index 168b52e..c20543d 100644
--- a/tests/compiler/dart2js/inference/data/js_interop.dart
+++ b/tests/compiler/dart2js/inference/data/js_interop.dart
@@ -20,7 +20,6 @@
{/*[exact=JSUInt31]*/ a, /*Value([exact=JSString], value: "")*/ b});
}
-/*ast.element: anonymousClass:[null|subclass=Object]*/
/*kernel.element: anonymousClass:[null|subclass=Object]*/
/*strong.element: anonymousClass:[null|subclass=JavaScriptObject]*/
anonymousClass() => new Class1(a: 1, b: '');
diff --git a/tests/compiler/dart2js/inference/data/list.dart b/tests/compiler/dart2js/inference/data/list.dart
index 1b31de9..6592f98 100644
--- a/tests/compiler/dart2js/inference/data/list.dart
+++ b/tests/compiler/dart2js/inference/data/list.dart
@@ -104,9 +104,7 @@
// Create a Uint32List using a parenthesized literal int as length.
////////////////////////////////////////////////////////////////////////////////
-/*ast.element: newUint32List:Container([exact=NativeUint32List], element: [subclass=JSUInt32], length: null)*/
-/*kernel.element: newUint32List:Container([exact=NativeUint32List], element: [subclass=JSUInt32], length: 13)*/
-/*strong.element: newUint32List:Container([exact=NativeUint32List], element: [subclass=JSUInt32], length: 13)*/
+/*element: newUint32List:Container([exact=NativeUint32List], element: [subclass=JSUInt32], length: 13)*/
newUint32List() => new Uint32List((13));
////////////////////////////////////////////////////////////////////////////////
diff --git a/tests/compiler/dart2js/inference/data/logical_if.dart b/tests/compiler/dart2js/inference/data/logical_if.dart
index 9313a84..596907a 100644
--- a/tests/compiler/dart2js/inference/data/logical_if.dart
+++ b/tests/compiler/dart2js/inference/data/logical_if.dart
@@ -248,9 +248,7 @@
if (!(o is! Class10)) {
o
.
- /*ast.invoke: Union([exact=Class10], [exact=JSUInt31])*/
- /*kernel.invoke: [exact=Class10]*/
- /*strong.invoke: [exact=Class10]*/
+ /*invoke: [exact=Class10]*/
toString();
}
}
@@ -278,9 +276,7 @@
} else {
o
.
- /*ast.invoke: Union([exact=Class11], [exact=JSUInt31])*/
- /*kernel.invoke: [exact=Class11]*/
- /*strong.invoke: [exact=Class11]*/
+ /*invoke: [exact=Class11]*/
toString();
}
}
diff --git a/tests/compiler/dart2js/inference/data/map_tracer_const.dart b/tests/compiler/dart2js/inference/data/map_tracer_const.dart
index 2bfe52f..4da5254 100644
--- a/tests/compiler/dart2js/inference/data/map_tracer_const.dart
+++ b/tests/compiler/dart2js/inference/data/map_tracer_const.dart
@@ -2,7 +2,6 @@
// 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.
-/*ast.element: closure:Union([exact=JSDouble], [exact=JSUInt31])*/
/*kernel.element: closure:Union([exact=JSDouble], [exact=JSUInt31])*/
/*strong.element: closure:[exact=JSUInt31]*/
int closure(int /*Union([exact=JSDouble], [exact=JSUInt31])*/ x) {
diff --git a/tests/compiler/dart2js/inference/data/optimizer_hints.dart b/tests/compiler/dart2js/inference/data/optimizer_hints.dart
index bf8463c..57ea72c 100644
--- a/tests/compiler/dart2js/inference/data/optimizer_hints.dart
+++ b/tests/compiler/dart2js/inference/data/optimizer_hints.dart
@@ -57,7 +57,6 @@
// As above but without the annotation.
////////////////////////////////////////////////////////////////////////////////
-/*ast.element: notTrustReturnTypeString:[null|subclass=Object]*/
/*kernel.element: notTrustReturnTypeString:[null|subclass=Object]*/
/*strong.element: notTrustReturnTypeString:[null|exact=JSString]*/
String notTrustReturnTypeString() {
@@ -84,7 +83,6 @@
/*element: _notTrustParameterTypeString:[null]*/
_notTrustParameterTypeString(
String
- /*ast.[null|subclass=Object]*/
/*kernel.[null|subclass=Object]*/
/*strong.[null|exact=JSString]*/
o) {}
diff --git a/tests/compiler/dart2js/inference/data/parameters_notrust.dart b/tests/compiler/dart2js/inference/data/parameters_notrust.dart
index 41503d2..d031544 100644
--- a/tests/compiler/dart2js/inference/data/parameters_notrust.dart
+++ b/tests/compiler/dart2js/inference/data/parameters_notrust.dart
@@ -20,7 +20,6 @@
// within the method and therefore infer the return type to be an int.
////////////////////////////////////////////////////////////////////////////////
-/*ast.element: _dontTrustParameters:Union([exact=JSString], [exact=JSUInt31])*/
/*kernel.element: _dontTrustParameters:Union([exact=JSString], [exact=JSUInt31])*/
/*strong.element: _dontTrustParameters:[exact=JSUInt31]*/
_dontTrustParameters(int /*Union([exact=JSString], [exact=JSUInt31])*/ i) {
diff --git a/tests/compiler/dart2js/inference/data/postfix_prefix.dart b/tests/compiler/dart2js/inference/data/postfix_prefix.dart
index f7428dd..9ede9a2 100644
--- a/tests/compiler/dart2js/inference/data/postfix_prefix.dart
+++ b/tests/compiler/dart2js/inference/data/postfix_prefix.dart
@@ -18,10 +18,7 @@
/*element: A.[]=:[null]*/
operator []=(/*[empty]*/ index, /*[subclass=JSNumber]*/ value) {}
- // TODO(johnniwinther): Investigate why these differ.
- /*ast.element: A.returnDynamic1:Union([exact=JSString], [exact=JSUInt31])*/
- /*kernel.element: A.returnDynamic1:[exact=JSUInt31]*/
- /*strong.element: A.returnDynamic1:[exact=JSUInt31]*/
+ /*element: A.returnDynamic1:[exact=JSUInt31]*/
returnDynamic1() => /*[subclass=A]*/ /*update: [subclass=A]*/ foo
/*invoke: Union([exact=JSString], [exact=JSUInt31])*/ --;
@@ -33,10 +30,7 @@
returnNum2() => /*[subclass=A]*/ /*update: [subclass=A]*/ foo
/*invoke: Union([exact=JSString], [exact=JSUInt31])*/ -= 42;
- // TODO(johnniwinther): Investigate why these differ.
- /*ast.element: A.returnDynamic2:Union([exact=JSString], [exact=JSUInt31])*/
- /*kernel.element: A.returnDynamic2:[exact=JSUInt31]*/
- /*strong.element: A.returnDynamic2:[exact=JSUInt31]*/
+ /*element: A.returnDynamic2:[exact=JSUInt31]*/
returnDynamic2() => this
/*[subclass=A]*/ /*update: [subclass=A]*/ [index]
/*invoke: Union([exact=JSString], [exact=JSUInt31])*/ --;
@@ -55,9 +49,7 @@
returnEmpty3() {
dynamic a = this;
return a. /*[subclass=A]*/
- /*ast.update: [subclass=A]*/
- /*kernel.update: [empty]*/
- /*strong.update: [empty]*/
+ /*update: [empty]*/
bar
/*invoke: [empty]*/ --;
}
@@ -84,10 +76,7 @@
/*element: B.[]:[exact=JSUInt31]*/
operator [](/*[empty]*/ index) => 42;
- // TODO(johnniwinther): Investigate why these differ.
- /*ast.element: B.returnString1:Value([exact=JSString], value: "string")*/
- /*kernel.element: B.returnString1:[empty]*/
- /*strong.element: B.returnString1:[empty]*/
+ /*element: B.returnString1:[empty]*/
returnString1() =>
super.foo /*invoke: Value([exact=JSString], value: "string")*/ --;
@@ -100,10 +89,7 @@
returnDynamic2() =>
super.foo /*invoke: Value([exact=JSString], value: "string")*/ -= 42;
- // TODO(johnniwinther): Investigate why these differ.
- /*ast.element: B.returnString2:Value([exact=JSString], value: "string")*/
- /*kernel.element: B.returnString2:[empty]*/
- /*strong.element: B.returnString2:[empty]*/
+ /*element: B.returnString2:[empty]*/
returnString2() => super[index]
/*invoke: Value([exact=JSString], value: "string")*/ --;
diff --git a/tests/compiler/dart2js/inference/data/refine_locals.dart b/tests/compiler/dart2js/inference/data/refine_locals.dart
index 54a4013..8711587 100644
--- a/tests/compiler/dart2js/inference/data/refine_locals.dart
+++ b/tests/compiler/dart2js/inference/data/refine_locals.dart
@@ -114,21 +114,15 @@
/*Union([exact=Class2], [null|exact=Class1])*/ o) {
o
?.
- /*ast.invoke: Union([exact=Class2], [null|exact=Class1])*/
- /*kernel.invoke: Union([exact=Class1], [exact=Class2])*/
- /*strong.invoke: Union([exact=Class1], [exact=Class2])*/
+ /*invoke: Union([exact=Class1], [exact=Class2])*/
method1();
o
?.
- /*ast.invoke: [null|exact=Class1]*/
- /*kernel.invoke: [exact=Class1]*/
- /*strong.invoke: [exact=Class1]*/
+ /*invoke: [exact=Class1]*/
method0();
o
?.
- /*ast.invoke: [null|exact=Class1]*/
- /*kernel.invoke: [exact=Class1]*/
- /*strong.invoke: [exact=Class1]*/
+ /*invoke: [exact=Class1]*/
method2();
return o;
}
diff --git a/tests/compiler/dart2js/inference/inference_equivalence.dart b/tests/compiler/dart2js/inference/inference_equivalence.dart
deleted file mode 100644
index 638eab5..0000000
--- a/tests/compiler/dart2js/inference/inference_equivalence.dart
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (c) 2017, 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.
-
-/// Helper program that tests the equivalence between old and new inferrer data
-/// on a dart program or directory of dart programs.
-
-import 'dart:async';
-import 'dart:io';
-import 'package:args/args.dart';
-import 'package:compiler/src/filenames.dart';
-import 'package:compiler/src/inferrer/inferrer_engine.dart';
-import '../equivalence/id_equivalence_helper.dart';
-import 'inference_test_helper.dart';
-import '../equivalence/id_equivalence.dart';
-
-main(List<String> args) {
- mainInternal(args);
-}
-
-Future<bool> mainInternal(List<String> args,
- {bool whiteList(Uri uri, Id id)}) async {
- ArgParser argParser = new ArgParser(allowTrailingOptions: true);
- argParser.addFlag('verbose', negatable: true, defaultsTo: false);
- argParser.addFlag('colors', negatable: true);
- ArgResults argResults = argParser.parse(args);
- if (argResults.options.contains('colors')) {
- useColors = true;
- }
- bool verbose = argResults['verbose'];
-
- InferrerEngineImpl.useSorterForTesting = true;
-
- bool success = true;
- for (String arg in argResults.rest) {
- Uri uri = Uri.base.resolve(nativeToUriPath(arg));
- List<Uri> uris = <Uri>[];
- if (FileSystemEntity.isDirectorySync(arg)) {
- for (FileSystemEntity file in new Directory.fromUri(uri).listSync()) {
- if (file is File && file.path.endsWith('.dart')) {
- uris.add(file.uri);
- }
- }
- } else {
- uris.add(uri);
- }
- for (Uri uri in uris) {
- StringBuffer sb = new StringBuffer();
- ZoneSpecification specification = new ZoneSpecification(
- print: (self, parent, zone, line) => sb.writeln(line));
-
- try {
- print('--$uri------------------------------------------------------');
- bool isSuccess = await runZoned(() {
- return testUri(uri, verbose: verbose, whiteList: whiteList);
- }, zoneSpecification: specification);
- if (!isSuccess) {
- success = false;
- print(' skipped due to compile-time errors');
- }
- } catch (e, s) {
- success = false;
- print(sb);
- print('Failed: $e\n$s');
- }
- }
- }
-
- return success;
-}
-
-Future<bool> testUri(Uri uri,
- {bool verbose: false, bool whiteList(Uri uri, Id id)}) {
- return compareData(
- uri, uri, const {}, computeMemberAstTypeMasks, computeMemberIrTypeMasks,
- options: [stopAfterTypeInference],
- forUserLibrariesOnly: false,
- skipUnprocessedMembers: true,
- skipFailedCompilations: true,
- verbose: verbose,
- whiteList: whiteList);
-}
diff --git a/tests/compiler/dart2js/inference/inference_test_helper.dart b/tests/compiler/dart2js/inference/inference_test_helper.dart
index 2b9c68f..7796132 100644
--- a/tests/compiler/dart2js/inference/inference_test_helper.dart
+++ b/tests/compiler/dart2js/inference/inference_test_helper.dart
@@ -8,10 +8,7 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
-import 'package:compiler/src/resolution/send_structure.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:compiler/src/types/types.dart';
import 'package:compiler/src/js_model/locals.dart';
import 'package:compiler/src/kernel/element_map.dart';
@@ -45,8 +42,7 @@
runTests(List<String> args, [int shardIndex]) {
asyncTest(() async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
- await checkTests(
- dataDir, computeMemberAstTypeMasks, computeMemberIrTypeMasks,
+ await checkTests(dataDir, computeMemberIrTypeMasks,
libDirectory: new Directory.fromUri(Platform.script.resolve('libs')),
forUserLibrariesOnly: true,
args: args,
@@ -58,21 +54,6 @@
});
}
-/// Compute type inference data for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data.
-void computeMemberAstTypeMasks(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ResolvedAst resolvedAst = member.resolvedAst;
- compiler.reporter.withCurrentElement(member.implementation, () {
- new TypeMaskAstComputer(compiler.reporter, actualMap, resolvedAst,
- compiler.globalInference.results)
- .run();
- });
-}
-
abstract class ComputeValueMixin<T> {
GlobalTypeInferenceResults<T> get results;
@@ -103,63 +84,6 @@
}
}
-/// AST visitor for computing inference data for a member.
-class TypeMaskAstComputer extends AstDataExtractor
- with ComputeValueMixin<ast.Node> {
- final GlobalTypeInferenceResults<ast.Node> results;
- final GlobalTypeInferenceElementResult<ast.Node> result;
-
- TypeMaskAstComputer(DiagnosticReporter reporter,
- Map<Id, ActualData> actualMap, ResolvedAst resolvedAst, this.results)
- : result = results.resultOfMember(resolvedAst.element as MemberElement),
- super(reporter, actualMap, resolvedAst);
-
- @override
- String computeElementValue(Id id, AstElement element) {
- if (element.isParameter) {
- ParameterElement parameter = element.implementation;
- return getParameterValue(parameter);
- } else if (element.isLocal && element.isFunction) {
- LocalFunctionElement localFunction = element;
- return getMemberValue(localFunction.callMethod);
- } else {
- MemberElement member = element.declaration;
- return getMemberValue(member);
- }
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal && element.isFunction) {
- return computeElementValue(id, element);
- } else if (element != null && element.isParameter) {
- return computeElementValue(id, element);
- } else if (node is ast.SendSet) {
- SendStructure sendStructure = elements.getSendStructure(node);
- if (sendStructure?.kind == SendStructureKind.INDEX_SET) {
- return getTypeMaskValue(result.typeOfSend(node));
- } else if (id.kind == IdKind.invoke) {
- return getTypeMaskValue(result.typeOfOperator(node));
- } else if (id.kind == IdKind.update) {
- return getTypeMaskValue(result.typeOfSend(node));
- } else if (id.kind == IdKind.node) {
- return getTypeMaskValue(result.typeOfGetter(node));
- }
- } else if (node is ast.Send) {
- return getTypeMaskValue(result.typeOfSend(node));
- } else if (node is ast.ForIn) {
- if (id.kind == IdKind.iterator) {
- return getTypeMaskValue(result.typeOfIterator(node));
- } else if (id.kind == IdKind.current) {
- return getTypeMaskValue(result.typeOfIteratorCurrent(node));
- } else if (id.kind == IdKind.moveNext) {
- return getTypeMaskValue(result.typeOfIteratorMoveNext(node));
- }
- }
- return null;
- }
-}
-
/// Compute type inference data for [member] from kernel based inference.
///
/// Fills [actualMap] with the data.
diff --git a/tests/compiler/dart2js/inference/show.dart b/tests/compiler/dart2js/inference/show.dart
index 94402a7..0602a54 100644
--- a/tests/compiler/dart2js/inference/show.dart
+++ b/tests/compiler/dart2js/inference/show.dart
@@ -19,21 +19,16 @@
argParser.addFlag('callers', defaultsTo: false);
ArgResults results = argParser.parse(args);
- ComputeMemberDataFunction astFunction;
ComputeMemberDataFunction kernelFunction;
if (results['side-effects']) {
- astFunction = computeMemberAstSideEffects;
kernelFunction = computeMemberIrSideEffects;
}
if (results['callers']) {
InferrerEngineImpl.retainDataForTesting = true;
- astFunction = computeMemberAstCallers;
kernelFunction = computeMemberIrCallers;
} else {
InferrerEngineImpl.useSorterForTesting = true;
- astFunction = computeMemberAstTypeMasks;
kernelFunction = computeMemberIrTypeMasks;
}
- await show(results, astFunction, kernelFunction,
- options: [/*stopAfterTypeInference*/]);
+ await show(results, kernelFunction, options: [/*stopAfterTypeInference*/]);
}
diff --git a/tests/compiler/dart2js/inference/side_effects_test.dart b/tests/compiler/dart2js/inference/side_effects_test.dart
index a92944e..e60006d 100644
--- a/tests/compiler/dart2js/inference/side_effects_test.dart
+++ b/tests/compiler/dart2js/inference/side_effects_test.dart
@@ -8,11 +8,9 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:compiler/src/world.dart';
import 'package:kernel/ast.dart' as ir;
import '../equivalence/id_equivalence.dart';
@@ -22,29 +20,13 @@
asyncTest(() async {
Directory dataDir =
new Directory.fromUri(Platform.script.resolve('side_effects'));
- await checkTests(
- dataDir, computeMemberAstSideEffects, computeMemberIrSideEffects,
+ await checkTests(dataDir, computeMemberIrSideEffects,
args: args,
options: [stopAfterTypeInference],
skipForStrong: ['closure_call.dart']);
});
}
-/// Compute side effects data for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data.
-void computeMemberAstSideEffects(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ResolvedAst resolvedAst = member.resolvedAst;
- compiler.reporter.withCurrentElement(member.implementation, () {
- new SideEffectsAstComputer(compiler.reporter, actualMap, resolvedAst,
- compiler.backendClosedWorldForTesting)
- .run();
- });
-}
-
abstract class ComputeValueMixin<T> {
ClosedWorld get closedWorld;
@@ -56,37 +38,6 @@
}
}
-/// AST visitor for computing side effects data for a member.
-class SideEffectsAstComputer extends AstDataExtractor
- with ComputeValueMixin<ast.Node> {
- final ClosedWorld closedWorld;
-
- SideEffectsAstComputer(DiagnosticReporter reporter,
- Map<Id, ActualData> actualMap, ResolvedAst resolvedAst, this.closedWorld)
- : super(reporter, actualMap, resolvedAst);
-
- @override
- String computeElementValue(Id id, AstElement element) {
- if (element.isParameter) {
- return null;
- } else if (element.isLocal && element.isFunction) {
- LocalFunctionElement localFunction = element;
- return getMemberValue(localFunction.callMethod);
- } else {
- MemberElement member = element.declaration;
- return getMemberValue(member);
- }
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal && element.isFunction) {
- return computeElementValue(id, element);
- }
- return null;
- }
-}
-
/// Compute side effects data for [member] from kernel based inference.
///
/// Fills [actualMap] with the data.
diff --git a/tests/compiler/dart2js/inference/swarm_test.dart b/tests/compiler/dart2js/inference/swarm_test.dart
deleted file mode 100644
index c374b3f..0000000
--- a/tests/compiler/dart2js/inference/swarm_test.dart
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) 2017, 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:async_helper/async_helper.dart';
-import 'package:expect/expect.dart';
-import '../equivalence/id_equivalence.dart';
-import 'inference_equivalence.dart';
-
-main(List<String> args) {
- asyncTest(() async {
- Expect.isTrue(
- await mainInternal(['samples-dev/swarm/swarm.dart']..addAll(args),
- whiteList: (Uri uri, Id id) {
- if (uri.pathSegments.last == 'date_time.dart' &&
- '$id' == 'IdKind.node:15944') {
- // DateTime.== uses `if (!(other is DateTime))` for which kernel is
- // smarter.
- return true;
- }
- return false;
- }));
- });
-}
diff --git a/tests/compiler/dart2js/inlining/inlining_test.dart b/tests/compiler/dart2js/inlining/inlining_test.dart
index 36e7b3f..18951fc 100644
--- a/tests/compiler/dart2js/inlining/inlining_test.dart
+++ b/tests/compiler/dart2js/inlining/inlining_test.dart
@@ -8,13 +8,10 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:compiler/src/js_backend/backend.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
-import 'package:compiler/src/ssa/builder.dart' as ast;
import 'package:compiler/src/ssa/builder_kernel.dart' as kernel;
import 'package:compiler/src/universe/world_impact.dart';
import 'package:compiler/src/universe/use.dart';
@@ -26,24 +23,7 @@
JavaScriptBackend.cacheCodegenImpactForTesting = true;
asyncTest(() async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
- await checkTests(
- dataDir, computeMemberAstInlinings, computeMemberIrInlinings,
- args: args, skipForAst: ['external.dart']);
- });
-}
-
-/// Compute type inference data for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data.
-void computeMemberAstInlinings(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ResolvedAst resolvedAst = member.resolvedAst;
- compiler.reporter.withCurrentElement(member.implementation, () {
- new InliningAstComputer(
- compiler.reporter, actualMap, resolvedAst, compiler.backend)
- .run();
+ await checkTests(dataDir, computeMemberIrInlinings, args: args);
});
}
@@ -98,55 +78,6 @@
}
}
-/// AST visitor for computing inlining data for a member.
-class InliningAstComputer extends AstDataExtractor
- with ComputeValueMixin<ast.Node> {
- final JavaScriptBackend backend;
-
- InliningAstComputer(DiagnosticReporter reporter,
- Map<Id, ActualData> actualMap, ResolvedAst resolvedAst, this.backend)
- : super(reporter, actualMap, resolvedAst);
-
- @override
- ConstructorBodyEntity getConstructorBody(
- covariant ConstructorElement constructor) {
- return constructor.enclosingClass.lookupConstructorBody(constructor.name);
- }
-
- @override
- String getTooDifficultReason(MemberEntity member) {
- if (member is MethodElement) {
- if (member is ConstructorElement && member.isDefaultConstructor) {
- return null;
- }
- return ast.InlineWeeder.cannotBeInlinedReason(member.resolvedAst, null,
- enableUserAssertions: true);
- }
- return null;
- }
-
- @override
- String computeElementValue(Id id, AstElement element) {
- if (element.isParameter) {
- return null;
- } else if (element.isLocal && element.isFunction) {
- LocalFunctionElement localFunction = element;
- return getMemberValue(localFunction.callMethod);
- } else {
- MemberElement member = element.declaration;
- return getMemberValue(member);
- }
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal && element.isFunction) {
- return computeElementValue(id, element);
- }
- return null;
- }
-}
-
/// Compute type inference data for [member] from kernel based inference.
///
/// Fills [actualMap] with the data.
diff --git a/tests/compiler/dart2js/inlining/inlining_viewer.dart b/tests/compiler/dart2js/inlining/inlining_viewer.dart
index 9ec0739..9b11031 100644
--- a/tests/compiler/dart2js/inlining/inlining_viewer.dart
+++ b/tests/compiler/dart2js/inlining/inlining_viewer.dart
@@ -10,6 +10,5 @@
main(List<String> args) async {
JavaScriptBackend.cacheCodegenImpactForTesting = true;
- await show(createArgParser().parse(args), computeMemberAstInlinings,
- computeMemberIrInlinings);
+ await show(createArgParser().parse(args), computeMemberIrInlinings);
}
diff --git a/tests/compiler/dart2js/jumps/data/complex_loops.dart b/tests/compiler/dart2js/jumps/data/complex_loops.dart
index 5495006..d5f73e2 100644
--- a/tests/compiler/dart2js/jumps/data/complex_loops.dart
+++ b/tests/compiler/dart2js/jumps/data/complex_loops.dart
@@ -22,11 +22,9 @@
}
complexForInLoopWithContinueLookalike2(list) {
- /*kernel.0@continue*/
- /*strong.0@continue*/
+ /*0@continue*/
for (int i in list) {
label:
- /*ast.0@break*/
{
if (i % 2 == 0) /*target=0*/ break label;
print(i);
diff --git a/tests/compiler/dart2js/jumps/jump_test.dart b/tests/compiler/dart2js/jumps/jump_test.dart
index b18da0e..ddc8766 100644
--- a/tests/compiler/dart2js/jumps/jump_test.dart
+++ b/tests/compiler/dart2js/jumps/jump_test.dart
@@ -8,13 +8,11 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/jumps.dart';
import 'package:compiler/src/js_model/locals.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import '../equivalence/id_equivalence.dart';
import '../equivalence/id_equivalence_helper.dart';
import 'package:kernel/ast.dart' as ir;
@@ -22,23 +20,12 @@
main(List<String> args) {
asyncTest(() async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
- await checkTests(dataDir, computeJumpsData, computeKernelJumpsData,
+ await checkTests(dataDir, computeKernelJumpsData,
options: [Flags.disableTypeInference, stopAfterTypeInference],
args: args);
});
}
-/// Compute closure data mapping for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
-/// for the data origin.
-void computeJumpsData(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- new JumpsAstComputer(compiler.reporter, actualMap, member.resolvedAst).run();
-}
-
/// Compute closure data mapping for [member] as a kernel based element.
///
/// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
@@ -116,85 +103,6 @@
}
}
-/// Ast visitor for computing jump data.
-class JumpsAstComputer extends AstDataExtractor with JumpsMixin {
- JumpsAstComputer(DiagnosticReporter reporter, Map<Id, ActualData> actualMap,
- ResolvedAst resolvedAst)
- : super(reporter, actualMap, resolvedAst);
-
- void run() {
- super.run();
- processData();
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- // Node values are computed post-visit in [processData].
- return null;
- }
-
- @override
- String computeElementValue(Id id, AstElement element) {
- return null;
- }
-
- @override
- visitLoop(ast.Loop node) {
- JumpTarget target = elements.getTargetDefinition(node);
- if (target != null) {
- NodeId id = createLoopId(node);
- SourceSpan sourceSpan = computeSourceSpan(node);
- targets[target] = new TargetData(index++, id, sourceSpan, target);
- }
- super.visitLoop(node);
- }
-
- @override
- visitGotoStatement(ast.GotoStatement node) {
- JumpTarget target = elements.getTargetOf(node);
- assert(target != null, 'No target for $node.');
- NodeId id = createGotoId(node);
- SourceSpan sourceSpan = computeSourceSpan(node);
- gotos.add(new GotoData(id, sourceSpan, target));
- super.visitGotoStatement(node);
- }
-
- @override
- visitLabeledStatement(ast.LabeledStatement node) {
- if (node.statement is! ast.Loop && node.statement is! ast.SwitchStatement) {
- JumpTarget target = elements.getTargetDefinition(node.statement);
- if (target != null) {
- NodeId id = createLabeledStatementId(node);
- SourceSpan sourceSpan = computeSourceSpan(node);
- targets[target] = new TargetData(index++, id, sourceSpan, target);
- }
- }
- super.visitLabeledStatement(node);
- }
-
- @override
- visitSwitchStatement(ast.SwitchStatement node) {
- JumpTarget target = elements.getTargetDefinition(node);
- if (target != null) {
- NodeId id = createLoopId(node);
- SourceSpan sourceSpan = computeSourceSpan(node);
- targets[target] = new TargetData(index++, id, sourceSpan, target);
- }
- super.visitSwitchStatement(node);
- }
-
- @override
- visitSwitchCase(ast.SwitchCase node) {
- JumpTarget target = elements.getTargetDefinition(node);
- if (target != null) {
- NodeId id = createSwitchCaseId(node);
- SourceSpan sourceSpan = computeSourceSpan(node);
- targets[target] = new TargetData(index++, id, sourceSpan, target);
- }
- super.visitSwitchCase(node);
- }
-}
-
/// Kernel IR visitor for computing jump data.
class JumpsIrChecker extends IrDataExtractor with JumpsMixin {
final KernelToLocalsMap _localsMap;
diff --git a/tests/compiler/dart2js/rti/data/closure.dart b/tests/compiler/dart2js/rti/data/closure.dart
index 8b23eeb..df64b7e 100644
--- a/tests/compiler/dart2js/rti/data/closure.dart
+++ b/tests/compiler/dart2js/rti/data/closure.dart
@@ -13,7 +13,6 @@
f() {
// TODO(johnniwinther): Optimize local function type signature need.
return
- /*ast.*/
/*kernel.*/
/*strong.needsSignature*/
/*omit.needsSignature*/
diff --git a/tests/compiler/dart2js/rti/data/function_subtype_local5.dart b/tests/compiler/dart2js/rti/data/function_subtype_local5.dart
index b1cb012..6fb64c6 100644
--- a/tests/compiler/dart2js/rti/data/function_subtype_local5.dart
+++ b/tests/compiler/dart2js/rti/data/function_subtype_local5.dart
@@ -18,12 +18,10 @@
class C<T> {
void test(String nameOfT, bool expectedResult) {
// TODO(johnniwinther): Optimize local function type signature need.
- /*ast.*/
/*kernel.*/
/*strong.needsSignature*/
/*omit.needsSignature*/
int foo(bool a, [String b]) => null;
- /*ast.*/
/*kernel.*/
/*strong.needsSignature*/
/*omit.needsSignature*/
diff --git a/tests/compiler/dart2js/rti/data/generic_method_instantiate.dart b/tests/compiler/dart2js/rti/data/generic_method_instantiate.dart
index 0162882..2d0d2ce 100644
--- a/tests/compiler/dart2js/rti/data/generic_method_instantiate.dart
+++ b/tests/compiler/dart2js/rti/data/generic_method_instantiate.dart
@@ -8,7 +8,6 @@
/*class: B:deps=[method],explicit=[B<A>],needsArgs*/
class B<T> {}
-/*ast.element: method:*/
/*kernel.element: method:*/
/*strong.element: method:needsArgs*/
/*omit.element: method:needsArgs*/
diff --git a/tests/compiler/dart2js/rti/data/generic_method_is.dart b/tests/compiler/dart2js/rti/data/generic_method_is.dart
index a2cfa4a..6339de6 100644
--- a/tests/compiler/dart2js/rti/data/generic_method_is.dart
+++ b/tests/compiler/dart2js/rti/data/generic_method_is.dart
@@ -2,7 +2,6 @@
// 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.
-/*ast.element: method:direct,explicit=[method.T]*/
/*kernel.element: method:direct,explicit=[method.T]*/
/*strong.element: method:direct,explicit=[method.T],needsArgs*/
/*omit.element: method:direct,explicit=[method.T],needsArgs*/
diff --git a/tests/compiler/dart2js/rti/data/list_to_set.dart b/tests/compiler/dart2js/rti/data/list_to_set.dart
index 83762b3..427ecc9 100644
--- a/tests/compiler/dart2js/rti/data/list_to_set.dart
+++ b/tests/compiler/dart2js/rti/data/list_to_set.dart
@@ -2,12 +2,10 @@
// 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.
-/*ast.class: global#List:deps=[Class,EmptyIterable,Iterable,JSArray,ListIterable,SetMixin,SubListIterable],explicit=[List],implicit=[List.E],indirect,needsArgs*/
/*kernel.class: global#List:deps=[Class,EmptyIterable,Iterable,JSArray,ListIterable,SetMixin],explicit=[List],implicit=[List.E],indirect,needsArgs*/
/*strong.class: global#List:deps=[Class,EmptyIterable,Iterable,JSArray,ListIterable,SetMixin,makeListFixedLength],direct,explicit=[List,List.E,List<JSArray.E>,List<String>,List<makeListFixedLength.T>],implicit=[List.E],needsArgs*/
/*omit.class: global#List:deps=[Class,EmptyIterable,Iterable,JSArray,ListIterable,SetMixin],explicit=[List],implicit=[List.E],indirect,needsArgs*/
-/*ast.class: global#JSArray:deps=[List],explicit=[JSArray],implicit=[JSArray.E],indirect,needsArgs*/
/*kernel.class: global#JSArray:deps=[EmptyIterable,List,ListIterable,SetMixin,SubListIterable],explicit=[JSArray],implicit=[JSArray.E],indirect,needsArgs*/
/*strong.class: global#JSArray:deps=[ArrayIterator,EmptyIterable,List,ListIterable,SetMixin,SubListIterable],explicit=[Iterable<JSArray.E>,JSArray,JSArray.E,JSArray<ArrayIterator.E>,List<JSArray.E>],implicit=[JSArray.E],indirect,needsArgs*/
/*omit.class: global#JSArray:deps=[EmptyIterable,List,ListIterable,SetMixin,SubListIterable],explicit=[JSArray],implicit=[JSArray.E],indirect,needsArgs*/
diff --git a/tests/compiler/dart2js/rti/data/local_function_signatures.dart b/tests/compiler/dart2js/rti/data/local_function_signatures.dart
index 5759a26..b7c851c 100644
--- a/tests/compiler/dart2js/rti/data/local_function_signatures.dart
+++ b/tests/compiler/dart2js/rti/data/local_function_signatures.dart
@@ -6,7 +6,6 @@
class Class1 {
method1() {
- /*ast.*/
/*kernel.*/
/*strong.needsSignature*/
/*omit.needsSignature*/
diff --git a/tests/compiler/dart2js/rti/data/subtype_named_args.dart b/tests/compiler/dart2js/rti/data/subtype_named_args.dart
index d7014bf..452b820 100644
--- a/tests/compiler/dart2js/rti/data/subtype_named_args.dart
+++ b/tests/compiler/dart2js/rti/data/subtype_named_args.dart
@@ -6,28 +6,23 @@
import 'package:expect/expect.dart';
-/*ast.class: A:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
-/*kernel.class: A:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
+/*class: A:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
class A {}
class A1 {}
class A2 {}
-/*ast.class: B:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
-/*kernel.class: B:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
+/*class: B:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
class B implements A, A1, A2 {}
-/*ast.class: C:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
-/*kernel.class: C:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
+/*class: C:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
class C implements B {}
-/*ast.class: D:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
-/*kernel.class: D:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
+/*class: D:explicit=[dynamic Function({a:A,b:B,c:C,d:D}),dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
class D implements C {}
-/*ast.class: G:explicit=[dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
-/*kernel.class: G:explicit=[dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
+/*class: G:explicit=[dynamic Function({f1:dynamic Function({a:A,b:B,c:C,d:D}),f2:dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>}),f3:dynamic Function({v:dynamic,x:dynamic,y:dynamic,z:dynamic})}),dynamic Function({g:G<A,B,C,D>,l:List<List<B>>,m:Map<num,int>})]*/
class G<T, S, U, W> {}
typedef classesFunc({A a, B b, C c, D d});
diff --git a/tests/compiler/dart2js/rti/data/subtype_named_args1.dart b/tests/compiler/dart2js/rti/data/subtype_named_args1.dart
index 0312132..8d5cf9c 100644
--- a/tests/compiler/dart2js/rti/data/subtype_named_args1.dart
+++ b/tests/compiler/dart2js/rti/data/subtype_named_args1.dart
@@ -8,8 +8,7 @@
class A {}
-/*ast.class: B:explicit=[dynamic Function({a:B})]*/
-/*kernel.class: B:explicit=[dynamic Function({a:B}),dynamic Function({f:dynamic Function({a:B})})]*/
+/*class: B:explicit=[dynamic Function({a:B}),dynamic Function({f:dynamic Function({a:B})})]*/
class B implements A {}
/*class: C:explicit=[dynamic Function({c:C})]*/
diff --git a/tests/compiler/dart2js/rti/emission/closure_function.dart b/tests/compiler/dart2js/rti/emission/closure_function.dart
index 099dee0..9b11f64 100644
--- a/tests/compiler/dart2js/rti/emission/closure_function.dart
+++ b/tests/compiler/dart2js/rti/emission/closure_function.dart
@@ -9,7 +9,6 @@
main() {
test(
- /*ast.checks=[],functionType,instance*/
/*kernel.checks=[],functionType,instance*/
/*strong.checks=[],instance*/ () {});
test(null);
diff --git a/tests/compiler/dart2js/rti/emission/closure_signature_unneeded.dart b/tests/compiler/dart2js/rti/emission/closure_signature_unneeded.dart
index ac72186..6ffe4e3 100644
--- a/tests/compiler/dart2js/rti/emission/closure_signature_unneeded.dart
+++ b/tests/compiler/dart2js/rti/emission/closure_signature_unneeded.dart
@@ -11,7 +11,6 @@
// TODO(johnniwinther): The signature is not needed since the type isn't a
// potential subtype of the checked function types.
return
- /*ast.checks=[$signature],instance*/
/*kernel.checks=[$signature],instance*/
/*strong.checks=[],instance*/
(T t, String s) {};
diff --git a/tests/compiler/dart2js/rti/emission/list.dart b/tests/compiler/dart2js/rti/emission/list.dart
index 565ea00..5be9f09 100644
--- a/tests/compiler/dart2js/rti/emission/list.dart
+++ b/tests/compiler/dart2js/rti/emission/list.dart
@@ -4,7 +4,6 @@
import 'package:meta/dart2js.dart';
-/*ast.class: global#JSArray:checkedInstance,checks=[$isIterable],instance*/
/*kernel.class: global#JSArray:checkedInstance,checks=[$isIterable],instance*/
/*strong.class: global#JSArray:checkedInstance,checks=[$isIterable,$isList],instance*/
diff --git a/tests/compiler/dart2js/rti/emission/map_literal.dart b/tests/compiler/dart2js/rti/emission/map_literal.dart
index 4df5013..2dbeda8 100644
--- a/tests/compiler/dart2js/rti/emission/map_literal.dart
+++ b/tests/compiler/dart2js/rti/emission/map_literal.dart
@@ -2,14 +2,12 @@
// 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.
-/*ast.class: global#Map:instance*/
/*kernel.class: global#Map:instance*/
/*strong.class: global#Map:checkedInstance,checks=[],instance*/
/*class: global#LinkedHashMap:*/
/*class: global#JsLinkedHashMap:checks=[],instance*/
-/*ast.class: global#double:checks=[],instance,typeArgument*/
/*kernel.class: global#double:checks=[],instance,typeArgument*/
/*strong.class: global#double:checkedInstance,checks=[],instance,typeArgument*/
diff --git a/tests/compiler/dart2js/rti/rti_emission_test.dart b/tests/compiler/dart2js/rti/rti_emission_test.dart
index 5408325..3878ea1 100644
--- a/tests/compiler/dart2js/rti/rti_emission_test.dart
+++ b/tests/compiler/dart2js/rti/rti_emission_test.dart
@@ -8,14 +8,11 @@
import 'package:compiler/src/common.dart';
import 'package:compiler/src/compiler.dart';
import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
-import 'package:compiler/src/elements/elements.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/js_backend/runtime_types.dart';
import 'package:compiler/src/js_emitter/model.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
-import 'package:compiler/src/ssa/builder.dart' as ast;
import 'package:kernel/ast.dart' as ir;
import '../equivalence/id_equivalence.dart';
import '../equivalence/id_equivalence_helper.dart';
@@ -28,9 +25,7 @@
new Directory.fromUri(Platform.script.resolve('emission'));
await checkTests(
dataDir,
- computeAstRtiMemberEmission,
computeKernelRtiMemberEmission,
- computeClassDataFromAst: computeAstRtiClassEmission,
computeClassDataFromKernel: computeKernelRtiClassEmission,
args: args,
skipForStrong: [
@@ -57,24 +52,6 @@
static const String functionType = 'functionType';
}
-void computeAstRtiMemberEmission(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ResolvedAst resolvedAst = member.resolvedAst;
- compiler.reporter.withCurrentElement(member.implementation, () {
- new RtiMemberEmissionAstComputer(
- compiler.reporter, actualMap, resolvedAst, compiler)
- .run();
- });
-}
-
-void computeAstRtiClassEmission(
- Compiler compiler, ClassEntity cls, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- new RtiClassEmissionAstComputer(compiler, actualMap).computeClassValue(cls);
-}
-
abstract class ComputeValueMixin<T> {
Compiler get compiler;
ProgramLookup lookup;
@@ -121,51 +98,6 @@
}
}
-class RtiClassEmissionAstComputer extends DataRegistry
- with ComputeValueMixin<ast.Node> {
- final Compiler compiler;
- final Map<Id, ActualData> actualMap;
-
- RtiClassEmissionAstComputer(this.compiler, this.actualMap);
-
- DiagnosticReporter get reporter => compiler.reporter;
-
- void computeClassValue(covariant ClassElement cls) {
- Id id = new ClassId(cls.name);
- registerValue(cls.sourcePosition, id, getClassValue(cls), cls);
- }
-}
-
-class RtiMemberEmissionAstComputer extends AstDataExtractor
- with ComputeValueMixin<ast.Node> {
- final Compiler compiler;
-
- RtiMemberEmissionAstComputer(DiagnosticReporter reporter,
- Map<Id, ActualData> actualMap, ResolvedAst resolvedAst, this.compiler)
- : super(reporter, actualMap, resolvedAst);
-
- @override
- String computeElementValue(Id id, AstElement element) {
- if (element.isParameter) {
- return null;
- } else if (element.isLocal && element.isFunction) {
- LocalFunctionElement localFunction = element;
- return getMemberValue(localFunction.callMethod);
- } else {
- MemberElement member = element.declaration;
- return getMemberValue(member);
- }
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal && element.isFunction) {
- return computeElementValue(id, element);
- }
- return null;
- }
-}
-
void computeKernelRtiMemberEmission(
Compiler compiler, MemberEntity member, Map<Id, ActualData> actualMap,
{bool verbose: false}) {
diff --git a/tests/compiler/dart2js/rti/rti_need_test_helper.dart b/tests/compiler/dart2js/rti/rti_need_test_helper.dart
index 567e519..d13dae2 100644
--- a/tests/compiler/dart2js/rti/rti_need_test_helper.dart
+++ b/tests/compiler/dart2js/rti/rti_need_test_helper.dart
@@ -13,12 +13,10 @@
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/resolution_types.dart';
import 'package:compiler/src/elements/types.dart';
-import 'package:compiler/src/tree/nodes.dart' as ast;
import 'package:compiler/src/js_backend/runtime_types.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
import 'package:compiler/src/kernel/kernel_strategy.dart';
-import 'package:compiler/src/ssa/builder.dart' as ast;
import 'package:compiler/src/universe/selector.dart';
import 'package:compiler/src/universe/world_builder.dart';
import 'package:kernel/ast.dart' as ir;
@@ -34,9 +32,7 @@
cacheRtiDataForTesting = true;
asyncTest(() async {
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
- await checkTests(
- dataDir, computeAstRtiMemberNeed, computeKernelRtiMemberNeed,
- computeClassDataFromAst: computeAstRtiClassNeed,
+ await checkTests(dataDir, computeKernelRtiMemberNeed,
computeClassDataFromKernel: computeKernelRtiClassNeed,
options: [],
skipForStrong: [
@@ -52,30 +48,6 @@
});
}
-/// Compute RTI need data for [_member] as a [MemberElement].
-///
-/// Fills [actualMap] with the data.
-void computeAstRtiMemberNeed(
- Compiler compiler, MemberEntity _member, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- MemberElement member = _member;
- ResolvedAst resolvedAst = member.resolvedAst;
- compiler.reporter.withCurrentElement(member.implementation, () {
- new RtiMemberNeedAstComputer(
- compiler.reporter, actualMap, resolvedAst, compiler)
- .run();
- });
-}
-
-/// Compute RTI need data for [cls] from the old frontend.
-///
-/// Fills [actualMap] with the data.
-void computeAstRtiClassNeed(
- Compiler compiler, ClassEntity cls, Map<Id, ActualData> actualMap,
- {bool verbose: false}) {
- new RtiClassNeedAstComputer(compiler, actualMap).computeClassValue(cls);
-}
-
class Tags {
static const String needsTypeArguments = 'needsArgs';
static const String needsSignature = 'needsSignature';
@@ -259,70 +231,6 @@
}
}
-abstract class AstMixin implements ComputeValueMixin<ast.Node> {
- @override
- ClassEntity getFrontendClass(ClassEntity cls) {
- return cls;
- }
-
- @override
- MemberEntity getFrontendMember(MemberEntity member) {
- return member;
- }
-
- @override
- Local getFrontendClosure(MemberEntity member) {
- if (member is SynthesizedCallMethodElementX) return member.expression;
- return null;
- }
-}
-
-class RtiClassNeedAstComputer extends DataRegistry
- with ComputeValueMixin<ast.Node>, AstMixin {
- final Compiler compiler;
- final Map<Id, ActualData> actualMap;
-
- RtiClassNeedAstComputer(this.compiler, this.actualMap);
-
- DiagnosticReporter get reporter => compiler.reporter;
-
- void computeClassValue(covariant ClassElement cls) {
- Id id = new ClassId(cls.name);
- registerValue(cls.sourcePosition, id, getClassValue(cls), cls);
- }
-}
-
-/// AST visitor for computing inlining data for a member.
-class RtiMemberNeedAstComputer extends AstDataExtractor
- with ComputeValueMixin<ast.Node>, AstMixin {
- final Compiler compiler;
-
- RtiMemberNeedAstComputer(DiagnosticReporter reporter,
- Map<Id, ActualData> actualMap, ResolvedAst resolvedAst, this.compiler)
- : super(reporter, actualMap, resolvedAst);
-
- @override
- String computeElementValue(Id id, AstElement element) {
- if (element.isParameter) {
- return null;
- } else if (element.isLocal && element.isFunction) {
- LocalFunctionElement localFunction = element;
- return getMemberValue(localFunction.callMethod);
- } else {
- MemberElement member = element.declaration;
- return getMemberValue(member);
- }
- }
-
- @override
- String computeNodeValue(Id id, ast.Node node, [AstElement element]) {
- if (element != null && element.isLocal && element.isFunction) {
- return computeElementValue(id, element);
- }
- return null;
- }
-}
-
/// Compute RTI need data for [member] from the new frontend.
///
/// Fills [actualMap] with the data.
diff --git a/tests/compiler/dart2js/rti/show.dart b/tests/compiler/dart2js/rti/show.dart
index f4ab741..6c0ff7f 100644
--- a/tests/compiler/dart2js/rti/show.dart
+++ b/tests/compiler/dart2js/rti/show.dart
@@ -18,23 +18,16 @@
argParser.addFlag('emission');
ArgResults results = argParser.parse(args);
- ComputeMemberDataFunction computeAstData;
ComputeMemberDataFunction computeKernelData;
- ComputeClassDataFunction computeAstClassData;
ComputeClassDataFunction computeKernelClassData;
if (results['emission']) {
- computeAstData = computeAstRtiMemberEmission;
computeKernelData = computeKernelRtiMemberEmission;
- computeAstClassData = computeAstRtiClassEmission;
computeKernelClassData = computeKernelRtiClassEmission;
} else {
- computeAstData = computeAstRtiMemberNeed;
computeKernelData = computeKernelRtiMemberNeed;
- computeAstClassData = computeAstRtiClassNeed;
computeKernelClassData = computeKernelRtiClassNeed;
}
- await show(results, computeAstData, computeKernelData,
- computeAstClassData: computeAstClassData,
+ await show(results, computeKernelData,
computeKernelClassData: computeKernelClassData);
}