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

Side by Side Diff: tests/compiler/dart2js/closure/closure_test.dart

Issue 2960633002: Split KernelToElementMap into sub-interfaces (Closed)
Patch Set: Created 3 years, 5 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/closure.dart'; 7 import 'package:compiler/src/closure.dart';
8 import 'package:compiler/src/common.dart'; 8 import 'package:compiler/src/common.dart';
9 import 'package:compiler/src/compiler.dart'; 9 import 'package:compiler/src/compiler.dart';
10 import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; 10 import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 .run(); 43 .run();
44 } 44 }
45 45
46 /// Compute closure data mapping for [member] as a kernel based element. 46 /// Compute closure data mapping for [member] as a kernel based element.
47 /// 47 ///
48 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans 48 /// Fills [actualMap] with the data and [sourceSpanMap] with the source spans
49 /// for the data origin. 49 /// for the data origin.
50 void computeKernelClosureData(Compiler compiler, MemberEntity member, 50 void computeKernelClosureData(Compiler compiler, MemberEntity member,
51 Map<Id, String> actualMap, Map<Id, SourceSpan> sourceSpanMap) { 51 Map<Id, String> actualMap, Map<Id, SourceSpan> sourceSpanMap) {
52 KernelBackendStrategy backendStrategy = compiler.backendStrategy; 52 KernelBackendStrategy backendStrategy = compiler.backendStrategy;
53 KernelToElementMap elementMap = backendStrategy.elementMap; 53 KernelToElementMapForBuilding elementMap = backendStrategy.elementMap;
54 GlobalLocalsMap localsMap = backendStrategy.globalLocalsMapForTesting; 54 GlobalLocalsMap localsMap = backendStrategy.globalLocalsMapForTesting;
55 ClosureDataLookup closureDataLookup = backendStrategy.closureDataLookup; 55 ClosureDataLookup closureDataLookup = backendStrategy.closureDataLookup;
56 new ClosureIrChecker(actualMap, sourceSpanMap, elementMap, member, 56 new ClosureIrChecker(actualMap, sourceSpanMap, elementMap, member,
57 localsMap.getLocalsMap(member), closureDataLookup) 57 localsMap.getLocalsMap(member), closureDataLookup)
58 .run(elementMap.getMemberNode(member)); 58 .run(elementMap.getMemberNode(member));
59 } 59 }
60 60
61 /// Ast visitor for computing closure data. 61 /// Ast visitor for computing closure data.
62 class ClosureAstComputer extends AbstractResolvedAstComputer { 62 class ClosureAstComputer extends AbstractResolvedAstComputer {
63 final ClosureDataLookup<ast.Node> closureDataLookup; 63 final ClosureDataLookup<ast.Node> closureDataLookup;
(...skipping 29 matching lines...) Expand all
93 93
94 /// Kernel IR visitor for computing closure data. 94 /// Kernel IR visitor for computing closure data.
95 class ClosureIrChecker extends AbstractIrComputer { 95 class ClosureIrChecker extends AbstractIrComputer {
96 final ClosureDataLookup<ir.Node> closureDataLookup; 96 final ClosureDataLookup<ir.Node> closureDataLookup;
97 final ClosureRepresentationInfo info; 97 final ClosureRepresentationInfo info;
98 final KernelToLocalsMap _localsMap; 98 final KernelToLocalsMap _localsMap;
99 99
100 ClosureIrChecker( 100 ClosureIrChecker(
101 Map<Id, String> actualMap, 101 Map<Id, String> actualMap,
102 Map<Id, SourceSpan> sourceSpanMap, 102 Map<Id, SourceSpan> sourceSpanMap,
103 KernelToElementMap elementMap, 103 KernelToElementMapForBuilding elementMap,
104 MemberEntity member, 104 MemberEntity member,
105 this._localsMap, 105 this._localsMap,
106 this.closureDataLookup) 106 this.closureDataLookup)
107 : this.info = closureDataLookup.getClosureRepresentationInfo(member), 107 : this.info = closureDataLookup.getClosureRepresentationInfo(member),
108 super(actualMap, sourceSpanMap); 108 super(actualMap, sourceSpanMap);
109 109
110 @override 110 @override
111 String computeNodeValue(ir.Node node) { 111 String computeNodeValue(ir.Node node) {
112 if (node is ir.VariableDeclaration) { 112 if (node is ir.VariableDeclaration) {
113 Local local = _localsMap.getLocal(node); 113 Local local = _localsMap.getLocal(node);
(...skipping 13 matching lines...) Expand all
127 127
128 /// Compute a string representation of the data stored for [local] in [info]. 128 /// Compute a string representation of the data stored for [local] in [info].
129 String computeLocalValue(ClosureRepresentationInfo info, Local local) { 129 String computeLocalValue(ClosureRepresentationInfo info, Local local) {
130 StringBuffer sb = new StringBuffer(); 130 StringBuffer sb = new StringBuffer();
131 if (info.variableIsUsedInTryOrSync(local)) { 131 if (info.variableIsUsedInTryOrSync(local)) {
132 sb.write('inTry'); 132 sb.write('inTry');
133 } 133 }
134 // TODO(johnniwinther,efortuna): Add more info (captured, boxed etc.). 134 // TODO(johnniwinther,efortuna): Add more info (captured, boxed etc.).
135 return sb.toString(); 135 return sb.toString();
136 } 136 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698