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

Side by Side Diff: pkg/compiler/lib/src/kernel/kernel_visitor.dart

Issue 2324213003: build kernel for the entire program after resolution (Closed)
Patch Set: Created 4 years, 3 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 import 'package:kernel/frontend/accessors.dart' 6 import 'package:kernel/frontend/accessors.dart'
7 show 7 show
8 Accessor, 8 Accessor,
9 IndexAccessor, 9 IndexAccessor,
10 NullAwarePropertyAccessor, 10 NullAwarePropertyAccessor,
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 final Map<JumpTarget, ir.LabeledStatement> breakTargets = 192 final Map<JumpTarget, ir.LabeledStatement> breakTargets =
193 <JumpTarget, ir.LabeledStatement>{}; 193 <JumpTarget, ir.LabeledStatement>{};
194 194
195 final Map<LocalElement, ir.VariableDeclaration> locals = 195 final Map<LocalElement, ir.VariableDeclaration> locals =
196 <LocalElement, ir.VariableDeclaration>{}; 196 <LocalElement, ir.VariableDeclaration>{};
197 197
198 final Map<CascadeReceiver, ir.VariableGet> cascadeReceivers = 198 final Map<CascadeReceiver, ir.VariableGet> cascadeReceivers =
199 <CascadeReceiver, ir.VariableGet>{}; 199 <CascadeReceiver, ir.VariableGet>{};
200 200
201 final Map<ir.Node, Element> nodeToElement = <ir.Node, Element>{};
202 final Map<ir.Node, Node> nodeToAst = <ir.Node, Node>{};
203
204 ir.Node associateElement(ir.Node node, Element element) { 201 ir.Node associateElement(ir.Node node, Element element) {
205 nodeToElement[node] = element; 202 kernel.nodeToElement[node] = element;
206 return node; 203 return node;
207 } 204 }
208 205
209 ir.Node associateNode(ir.Node node, Node ast) { 206 ir.Node associateNode(ir.Node node, Node ast) {
210 nodeToAst[node] = ast; 207 kernel.nodeToAst[node] = ast;
211 return node; 208 return node;
212 } 209 }
213 210
214 bool isVoidContext = false; 211 bool isVoidContext = false;
215 212
216 KernelVisitor(this.currentElement, this.elements, this.kernel); 213 KernelVisitor(this.currentElement, this.elements, this.kernel);
217 214
218 KernelVisitor get sendVisitor => this; 215 KernelVisitor get sendVisitor => this;
219 216
220 KernelVisitor get declVisitor => this; 217 KernelVisitor get declVisitor => this;
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 895
899 @override 896 @override
900 ir.Expression visitLiteralString(LiteralString node) { 897 ir.Expression visitLiteralString(LiteralString node) {
901 if (node.dartString == null) return new ir.InvalidExpression(); 898 if (node.dartString == null) return new ir.InvalidExpression();
902 return new ir.StringLiteral(node.dartString.slowToString()); 899 return new ir.StringLiteral(node.dartString.slowToString());
903 } 900 }
904 901
905 @override 902 @override
906 ir.SymbolLiteral visitLiteralSymbol(LiteralSymbol node) { 903 ir.SymbolLiteral visitLiteralSymbol(LiteralSymbol node) {
907 var result = new ir.SymbolLiteral(node.slowNameString); 904 var result = new ir.SymbolLiteral(node.slowNameString);
908 nodeToAst[result] = node; 905 return associateNode(result, node);
909 return result;
910 } 906 }
911 907
912 @override 908 @override
913 visitMetadata(Metadata node) { 909 visitMetadata(Metadata node) {
914 // Shouldn't be called. Metadata should already have been analyzed and 910 // Shouldn't be called. Metadata should already have been analyzed and
915 // converted to a constant expression in the resolver. 911 // converted to a constant expression in the resolver.
916 return internalError(node, "Metadata not handled as constant."); 912 return internalError(node, "Metadata not handled as constant.");
917 } 913 }
918 914
919 @override 915 @override
(...skipping 1794 matching lines...) Expand 10 before | Expand all | Expand 10 after
2714 : this(null, true, node, initializers); 2710 : this(null, true, node, initializers);
2715 2711
2716 accept(ir.Visitor v) => throw "unsupported"; 2712 accept(ir.Visitor v) => throw "unsupported";
2717 2713
2718 visitChildren(ir.Visitor v) => throw "unsupported"; 2714 visitChildren(ir.Visitor v) => throw "unsupported";
2719 2715
2720 String toString() { 2716 String toString() {
2721 return "IrFunction($kind, $isConstructor, $node, $initializers)"; 2717 return "IrFunction($kind, $isConstructor, $node, $initializers)";
2722 } 2718 }
2723 } 2719 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698