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

Side by Side Diff: tests/compiler/dart2js/equivalence/id_equivalence_test.dart

Issue 2999003002: Add more tested features to closure_test (Closed)
Patch Set: Created 3 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:io'; 5 import 'dart:io';
6 import 'package:async_helper/async_helper.dart'; 6 import 'package:async_helper/async_helper.dart';
7 import 'package:compiler/src/common.dart'; 7 import 'package:compiler/src/common.dart';
8 import 'package:compiler/src/compiler.dart'; 8 import 'package:compiler/src/compiler.dart';
9 import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; 9 import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
10 import 'package:compiler/src/elements/elements.dart'; 10 import 'package:compiler/src/elements/elements.dart';
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 } 56 }
57 }); 57 });
58 } 58 }
59 59
60 /// Compute a descriptive mapping of the [Id]s in [_member] as a 60 /// Compute a descriptive mapping of the [Id]s in [_member] as a
61 /// [MemberElement]. 61 /// [MemberElement].
62 /// 62 ///
63 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans 63 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
64 /// for the data origin. 64 /// for the data origin.
65 void computeAstMemberData(Compiler compiler, MemberEntity _member, 65 void computeAstMemberData(Compiler compiler, MemberEntity _member,
66 Map<Id, String> actualMap, Map<Id, SourceSpan> sourceSpanMap) { 66 Map<Id, String> actualMap, Map<Id, SourceSpan> sourceSpanMap,
67 {bool verbose: false}) {
67 MemberElement member = _member; 68 MemberElement member = _member;
68 ResolvedAst resolvedAst = member.resolvedAst; 69 ResolvedAst resolvedAst = member.resolvedAst;
69 if (resolvedAst.kind != ResolvedAstKind.PARSED) return; 70 if (resolvedAst.kind != ResolvedAstKind.PARSED) return;
70 new ResolvedAstComputer( 71 new ResolvedAstComputer(
71 compiler.reporter, actualMap, sourceSpanMap, resolvedAst) 72 compiler.reporter, actualMap, sourceSpanMap, resolvedAst)
72 .run(); 73 .run();
73 } 74 }
74 75
75 /// Mixin used for0computing a descriptive mapping of the [Id]s in a member. 76 /// Mixin used for0computing a descriptive mapping of the [Id]s in a member.
76 class ComputerMixin { 77 class ComputerMixin {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 return computeMemberName(element.enclosingClass?.name, element.name); 141 return computeMemberName(element.enclosingClass?.name, element.name);
141 } 142 }
142 } 143 }
143 144
144 /// Compute a descriptive mapping of the [Id]s in [member] as a kernel based 145 /// Compute a descriptive mapping of the [Id]s in [member] as a kernel based
145 /// member. 146 /// member.
146 /// 147 ///
147 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans 148 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
148 /// for the data origin. 149 /// for the data origin.
149 void computeIrMemberData(Compiler compiler, MemberEntity member, 150 void computeIrMemberData(Compiler compiler, MemberEntity member,
150 Map<Id, String> actualMap, Map<Id, Spannable> spannableMap) { 151 Map<Id, String> actualMap, Map<Id, Spannable> spannableMap,
152 {bool verbose: false}) {
151 KernelBackendStrategy backendStrategy = compiler.backendStrategy; 153 KernelBackendStrategy backendStrategy = compiler.backendStrategy;
152 KernelToElementMapForBuilding elementMap = backendStrategy.elementMap; 154 KernelToElementMapForBuilding elementMap = backendStrategy.elementMap;
153 MemberDefinition definition = elementMap.getMemberDefinition(member); 155 MemberDefinition definition = elementMap.getMemberDefinition(member);
154 assert(definition.kind == MemberKind.regular, 156 assert(definition.kind == MemberKind.regular,
155 failedAt(member, "Unexpected member definition $definition")); 157 failedAt(member, "Unexpected member definition $definition"));
156 new IrComputer(actualMap, spannableMap).run(definition.node); 158 new IrComputer(actualMap, spannableMap).run(definition.node);
157 } 159 }
158 160
159 /// IR visitor for computing a descriptive mapping of the [Id]s in a member. 161 /// IR visitor for computing a descriptive mapping of the [Id]s in a member.
160 class IrComputer extends AbstractIrComputer with ComputerMixin { 162 class IrComputer extends AbstractIrComputer with ComputerMixin {
161 IrComputer(Map<Id, String> actualMap, Map<Id, SourceSpan> spannableMap) 163 IrComputer(Map<Id, String> actualMap, Map<Id, SourceSpan> spannableMap)
162 : super(actualMap, spannableMap); 164 : super(actualMap, spannableMap);
163 165
164 @override 166 @override
165 String computeNodeValue(ir.TreeNode node) { 167 String computeNodeValue(ir.TreeNode node) {
166 if (node is ir.VariableDeclaration) { 168 if (node is ir.VariableDeclaration) {
167 return computeLocalName(node.name); 169 return computeLocalName(node.name);
168 } else if (node is ir.FunctionDeclaration) { 170 } else if (node is ir.FunctionDeclaration) {
169 return computeLocalName(node.variable.name); 171 return computeLocalName(node.variable.name);
172 } else if (node is ir.FunctionExpression) {
173 return computeLocalName('');
170 } else if (node is ir.MethodInvocation) { 174 } else if (node is ir.MethodInvocation) {
171 return computeDynamicInvokeName(node.name.name); 175 return computeDynamicInvokeName(node.name.name);
172 } else if (node is ir.PropertyGet) { 176 } else if (node is ir.PropertyGet) {
173 return computeDynamicGetName(node.name.name); 177 return computeDynamicGetName(node.name.name);
174 } 178 }
175 return '<unknown:$node>'; 179 return '<unknown:$node>';
176 } 180 }
177 181
178 @override 182 @override
179 String computeMemberValue(ir.Member member) { 183 String computeMemberValue(ir.Member member) {
180 return computeMemberName(member.enclosingClass?.name, member.name.name); 184 return computeMemberName(member.enclosingClass?.name, member.name.name);
181 } 185 }
182 } 186 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698