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

Side by Side Diff: pkg/compiler/lib/src/tree/nodes.dart

Issue 1873823002: Update elements, nodes and visitors for serialization. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix LocalVariableElementZ.constant Created 4 years, 8 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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:collection' show IterableMixin; 5 import 'dart:collection' show IterableMixin;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../tokens/precedence_constants.dart' as Precedence show FUNCTION_INFO; 8 import '../tokens/precedence_constants.dart' as Precedence show FUNCTION_INFO;
9 import '../tokens/token.dart' show BeginGroupToken, Token; 9 import '../tokens/token.dart' show BeginGroupToken, Token;
10 import '../tokens/token_constants.dart' as Tokens show IDENTIFIER_TOKEN, KEYWORD _TOKEN, PLUS_TOKEN; 10 import '../tokens/token_constants.dart' as Tokens show IDENTIFIER_TOKEN, KEYWORD _TOKEN, PLUS_TOKEN;
11 import '../util/util.dart'; 11 import '../util/util.dart';
12 import '../util/characters.dart'; 12 import '../util/characters.dart';
13 import '../resolution/secret_tree_element.dart' show NullTreeElementMixin, Store dTreeElementMixin; 13 import '../resolution/secret_tree_element.dart' show NullTreeElementMixin, Store dTreeElementMixin;
14 import '../elements/elements.dart' show MetadataAnnotation; 14 import '../elements/elements.dart' show MetadataAnnotation;
15 import 'dartstring.dart'; 15 import 'dartstring.dart';
16 import 'prettyprint.dart'; 16 import 'prettyprint.dart';
17 import 'unparser.dart'; 17 import 'unparser.dart';
18 18
19 abstract class Visitor<R> { 19 abstract class Visitor<R> {
20 const Visitor(); 20 const Visitor();
21 21
22 R visitNode(Node node); 22 R visitNode(Node node);
23 23
24 R visitAssert(Assert node) => visitStatement(node); 24 R visitAssert(Assert node) => visitStatement(node);
25 R visitAsyncForIn(AsyncForIn node) => visitLoop(node); 25 R visitAsyncForIn(AsyncForIn node) => visitForIn(node);
26 R visitAsyncModifier(AsyncModifier node) => visitNode(node); 26 R visitAsyncModifier(AsyncModifier node) => visitNode(node);
27 R visitAwait(Await node) => visitExpression(node); 27 R visitAwait(Await node) => visitExpression(node);
28 R visitBlock(Block node) => visitStatement(node); 28 R visitBlock(Block node) => visitStatement(node);
29 R visitBreakStatement(BreakStatement node) => visitGotoStatement(node); 29 R visitBreakStatement(BreakStatement node) => visitGotoStatement(node);
30 R visitCascade(Cascade node) => visitExpression(node); 30 R visitCascade(Cascade node) => visitExpression(node);
31 R visitCascadeReceiver(CascadeReceiver node) => visitExpression(node); 31 R visitCascadeReceiver(CascadeReceiver node) => visitExpression(node);
32 R visitCaseMatch(CaseMatch node) => visitNode(node); 32 R visitCaseMatch(CaseMatch node) => visitNode(node);
33 R visitCatchBlock(CatchBlock node) => visitNode(node); 33 R visitCatchBlock(CatchBlock node) => visitNode(node);
34 R visitClassNode(ClassNode node) => visitNode(node); 34 R visitClassNode(ClassNode node) => visitNode(node);
35 R visitCombinator(Combinator node) => visitNode(node); 35 R visitCombinator(Combinator node) => visitNode(node);
36 R visitConditional(Conditional node) => visitExpression(node); 36 R visitConditional(Conditional node) => visitExpression(node);
37 R visitConditionalUri(ConditionalUri node) => visitNode(node); 37 R visitConditionalUri(ConditionalUri node) => visitNode(node);
38 R visitContinueStatement(ContinueStatement node) => visitGotoStatement(node); 38 R visitContinueStatement(ContinueStatement node) => visitGotoStatement(node);
39 R visitDottedName(DottedName node) => visitExpression(node); 39 R visitDottedName(DottedName node) => visitExpression(node);
40 R visitDoWhile(DoWhile node) => visitLoop(node); 40 R visitDoWhile(DoWhile node) => visitLoop(node);
41 R visitEmptyStatement(EmptyStatement node) => visitStatement(node); 41 R visitEmptyStatement(EmptyStatement node) => visitStatement(node);
42 R visitEnum(Enum node) => visitNode(node); 42 R visitEnum(Enum node) => visitNode(node);
43 R visitExport(Export node) => visitLibraryDependency(node); 43 R visitExport(Export node) => visitLibraryDependency(node);
44 R visitExpression(Expression node) => visitNode(node); 44 R visitExpression(Expression node) => visitNode(node);
45 R visitExpressionStatement(ExpressionStatement node) => visitStatement(node); 45 R visitExpressionStatement(ExpressionStatement node) => visitStatement(node);
46 R visitFor(For node) => visitLoop(node); 46 R visitFor(For node) => visitLoop(node);
47 R visitForIn(ForIn node) => visitLoop(node);
47 R visitFunctionDeclaration(FunctionDeclaration node) => visitStatement(node); 48 R visitFunctionDeclaration(FunctionDeclaration node) => visitStatement(node);
48 R visitFunctionExpression(FunctionExpression node) => visitExpression(node); 49 R visitFunctionExpression(FunctionExpression node) => visitExpression(node);
49 R visitGotoStatement(GotoStatement node) => visitStatement(node); 50 R visitGotoStatement(GotoStatement node) => visitStatement(node);
50 R visitIdentifier(Identifier node) => visitExpression(node); 51 R visitIdentifier(Identifier node) => visitExpression(node);
51 R visitImport(Import node) => visitLibraryDependency(node); 52 R visitImport(Import node) => visitLibraryDependency(node);
52 R visitIf(If node) => visitStatement(node); 53 R visitIf(If node) => visitStatement(node);
53 R visitLabel(Label node) => visitNode(node); 54 R visitLabel(Label node) => visitNode(node);
54 R visitLabeledStatement(LabeledStatement node) => visitStatement(node); 55 R visitLabeledStatement(LabeledStatement node) => visitStatement(node);
55 R visitLibraryDependency(LibraryDependency node) => visitLibraryTag(node); 56 R visitLibraryDependency(LibraryDependency node) => visitLibraryTag(node);
56 R visitLibraryName(LibraryName node) => visitLibraryTag(node); 57 R visitLibraryName(LibraryName node) => visitLibraryTag(node);
57 R visitLibraryTag(LibraryTag node) => visitNode(node); 58 R visitLibraryTag(LibraryTag node) => visitNode(node);
58 R visitLiteral(Literal node) => visitExpression(node); 59 R visitLiteral(Literal node) => visitExpression(node);
59 R visitLiteralBool(LiteralBool node) => visitLiteral(node); 60 R visitLiteralBool(LiteralBool node) => visitLiteral(node);
60 R visitLiteralDouble(LiteralDouble node) => visitLiteral(node); 61 R visitLiteralDouble(LiteralDouble node) => visitLiteral(node);
61 R visitLiteralInt(LiteralInt node) => visitLiteral(node); 62 R visitLiteralInt(LiteralInt node) => visitLiteral(node);
62 R visitLiteralList(LiteralList node) => visitExpression(node); 63 R visitLiteralList(LiteralList node) => visitExpression(node);
63 R visitLiteralMap(LiteralMap node) => visitExpression(node); 64 R visitLiteralMap(LiteralMap node) => visitExpression(node);
64 R visitLiteralMapEntry(LiteralMapEntry node) => visitNode(node); 65 R visitLiteralMapEntry(LiteralMapEntry node) => visitNode(node);
65 R visitLiteralNull(LiteralNull node) => visitLiteral(node); 66 R visitLiteralNull(LiteralNull node) => visitLiteral(node);
66 R visitLiteralString(LiteralString node) => visitStringNode(node); 67 R visitLiteralString(LiteralString node) => visitStringNode(node);
67 R visitStringJuxtaposition(StringJuxtaposition node) => visitStringNode(node); 68 R visitStringJuxtaposition(StringJuxtaposition node) => visitStringNode(node);
68 R visitSyncForIn(SyncForIn node) => visitLoop(node); 69 R visitSyncForIn(SyncForIn node) => visitForIn(node);
69 R visitLoop(Loop node) => visitStatement(node); 70 R visitLoop(Loop node) => visitStatement(node);
70 R visitMetadata(Metadata node) => visitNode(node); 71 R visitMetadata(Metadata node) => visitNode(node);
71 R visitMixinApplication(MixinApplication node) => visitNode(node); 72 R visitMixinApplication(MixinApplication node) => visitNode(node);
72 R visitModifiers(Modifiers node) => visitNode(node); 73 R visitModifiers(Modifiers node) => visitNode(node);
73 R visitNamedArgument(NamedArgument node) => visitExpression(node); 74 R visitNamedArgument(NamedArgument node) => visitExpression(node);
74 R visitNamedMixinApplication(NamedMixinApplication node) { 75 R visitNamedMixinApplication(NamedMixinApplication node) {
75 return visitMixinApplication(node); 76 return visitMixinApplication(node);
76 } 77 }
77 R visitNewExpression(NewExpression node) => visitExpression(node); 78 R visitNewExpression(NewExpression node) => visitExpression(node);
78 R visitNodeList(NodeList node) => visitNode(node); 79 R visitNodeList(NodeList node) => visitNode(node);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 112 }
112 113
113 /// Visitor for [Node]s that take an additional argument of type [A] and returns 114 /// Visitor for [Node]s that take an additional argument of type [A] and returns
114 /// a value of type [R]. 115 /// a value of type [R].
115 abstract class Visitor1<R, A> { 116 abstract class Visitor1<R, A> {
116 const Visitor1(); 117 const Visitor1();
117 118
118 R visitNode(Node node, A arg); 119 R visitNode(Node node, A arg);
119 120
120 R visitAssert(Assert node, A arg) => visitStatement(node, arg); 121 R visitAssert(Assert node, A arg) => visitStatement(node, arg);
121 R visitAsyncForIn(AsyncForIn node, A arg) => visitLoop(node, arg); 122 R visitAsyncForIn(AsyncForIn node, A arg) => visitForIn(node, arg);
122 R visitAsyncModifier(AsyncModifier node, A arg) => visitNode(node, arg); 123 R visitAsyncModifier(AsyncModifier node, A arg) => visitNode(node, arg);
123 R visitAwait(Await node, A arg) => visitExpression(node, arg); 124 R visitAwait(Await node, A arg) => visitExpression(node, arg);
124 R visitBlock(Block node, A arg) => visitStatement(node, arg); 125 R visitBlock(Block node, A arg) => visitStatement(node, arg);
125 R visitBreakStatement(BreakStatement node, A arg) { 126 R visitBreakStatement(BreakStatement node, A arg) {
126 return visitGotoStatement(node, arg); 127 return visitGotoStatement(node, arg);
127 } 128 }
128 R visitCascade(Cascade node, A arg) => visitExpression(node, arg); 129 R visitCascade(Cascade node, A arg) => visitExpression(node, arg);
129 R visitCascadeReceiver(CascadeReceiver node, A arg) { 130 R visitCascadeReceiver(CascadeReceiver node, A arg) {
130 return visitExpression(node, arg); 131 return visitExpression(node, arg);
131 } 132 }
(...skipping 15 matching lines...) Expand all
147 R visitEmptyStatement(EmptyStatement node, A arg) { 148 R visitEmptyStatement(EmptyStatement node, A arg) {
148 return visitStatement(node, arg); 149 return visitStatement(node, arg);
149 } 150 }
150 R visitEnum(Enum node, A arg) => visitNode(node, arg); 151 R visitEnum(Enum node, A arg) => visitNode(node, arg);
151 R visitExport(Export node, A arg) => visitLibraryDependency(node, arg); 152 R visitExport(Export node, A arg) => visitLibraryDependency(node, arg);
152 R visitExpression(Expression node, A arg) => visitNode(node, arg); 153 R visitExpression(Expression node, A arg) => visitNode(node, arg);
153 R visitExpressionStatement(ExpressionStatement node, A arg) { 154 R visitExpressionStatement(ExpressionStatement node, A arg) {
154 return visitStatement(node, arg); 155 return visitStatement(node, arg);
155 } 156 }
156 R visitFor(For node, A arg) => visitLoop(node, arg); 157 R visitFor(For node, A arg) => visitLoop(node, arg);
158 R visitForIn(ForIn node, A arg) => visitLoop(node, arg);
157 R visitFunctionDeclaration(FunctionDeclaration node, A arg) { 159 R visitFunctionDeclaration(FunctionDeclaration node, A arg) {
158 return visitStatement(node, arg); 160 return visitStatement(node, arg);
159 } 161 }
160 R visitFunctionExpression(FunctionExpression node, A arg) { 162 R visitFunctionExpression(FunctionExpression node, A arg) {
161 return visitExpression(node, arg); 163 return visitExpression(node, arg);
162 } 164 }
163 R visitGotoStatement(GotoStatement node, A arg) { 165 R visitGotoStatement(GotoStatement node, A arg) {
164 return visitStatement(node, arg); 166 return visitStatement(node, arg);
165 } 167 }
166 R visitIdentifier(Identifier node, A arg) { 168 R visitIdentifier(Identifier node, A arg) {
(...skipping 17 matching lines...) Expand all
184 R visitLiteralDouble(LiteralDouble node, A arg) => visitLiteral(node, arg); 186 R visitLiteralDouble(LiteralDouble node, A arg) => visitLiteral(node, arg);
185 R visitLiteralInt(LiteralInt node, A arg) => visitLiteral(node, arg); 187 R visitLiteralInt(LiteralInt node, A arg) => visitLiteral(node, arg);
186 R visitLiteralList(LiteralList node, A arg) => visitExpression(node, arg); 188 R visitLiteralList(LiteralList node, A arg) => visitExpression(node, arg);
187 R visitLiteralMap(LiteralMap node, A arg) => visitExpression(node, arg); 189 R visitLiteralMap(LiteralMap node, A arg) => visitExpression(node, arg);
188 R visitLiteralMapEntry(LiteralMapEntry node, A arg) => visitNode(node, arg); 190 R visitLiteralMapEntry(LiteralMapEntry node, A arg) => visitNode(node, arg);
189 R visitLiteralNull(LiteralNull node, A arg) => visitLiteral(node, arg); 191 R visitLiteralNull(LiteralNull node, A arg) => visitLiteral(node, arg);
190 R visitLiteralString(LiteralString node, A arg) => visitStringNode(node, arg); 192 R visitLiteralString(LiteralString node, A arg) => visitStringNode(node, arg);
191 R visitStringJuxtaposition(StringJuxtaposition node, A arg) { 193 R visitStringJuxtaposition(StringJuxtaposition node, A arg) {
192 return visitStringNode(node, arg); 194 return visitStringNode(node, arg);
193 } 195 }
194 R visitSyncForIn(SyncForIn node, A arg) => visitLoop(node, arg); 196 R visitSyncForIn(SyncForIn node, A arg) => visitForIn(node, arg);
195 R visitLoop(Loop node, A arg) => visitStatement(node, arg); 197 R visitLoop(Loop node, A arg) => visitStatement(node, arg);
196 R visitMetadata(Metadata node, A arg) => visitNode(node, arg); 198 R visitMetadata(Metadata node, A arg) => visitNode(node, arg);
197 R visitMixinApplication(MixinApplication node, A arg) => visitNode(node, arg); 199 R visitMixinApplication(MixinApplication node, A arg) => visitNode(node, arg);
198 R visitModifiers(Modifiers node, A arg) => visitNode(node, arg); 200 R visitModifiers(Modifiers node, A arg) => visitNode(node, arg);
199 R visitNamedArgument(NamedArgument node, A arg) => visitExpression(node, arg); 201 R visitNamedArgument(NamedArgument node, A arg) => visitExpression(node, arg);
200 R visitNamedMixinApplication(NamedMixinApplication node, A arg) { 202 R visitNamedMixinApplication(NamedMixinApplication node, A arg) {
201 return visitMixinApplication(node, arg); 203 return visitMixinApplication(node, arg);
202 } 204 }
203 R visitNewExpression(NewExpression node, A arg) => visitExpression(node, arg); 205 R visitNewExpression(NewExpression node, A arg) => visitExpression(node, arg);
204 R visitNodeList(NodeList node, A arg) => visitNode(node, arg); 206 R visitNodeList(NodeList node, A arg) => visitNode(node, arg);
(...skipping 2875 matching lines...) Expand 10 before | Expand all | Expand 10 after
3080 3082
3081 // VariableDefinitions. 3083 // VariableDefinitions.
3082 get metadata => null; 3084 get metadata => null;
3083 get type => null; 3085 get type => null;
3084 3086
3085 // Typedef. 3087 // Typedef.
3086 get typeParameters => null; 3088 get typeParameters => null;
3087 get formals => null; 3089 get formals => null;
3088 get typedefKeyword => null; 3090 get typedefKeyword => null;
3089 } 3091 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698