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

Side by Side Diff: lib/visitor.dart

Issue 2439043002: Introduce Substitution class and Supertype class. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « lib/type_propagation/builder.dart ('k') | test/class_hierarchy_basic.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 file. 3 // BSD-style license that can be found in the LICENSE file.
4 library kernel.ast.visitor; 4 library kernel.ast.visitor;
5 5
6 import 'ast.dart'; 6 import 'ast.dart';
7 7
8 abstract class ExpressionVisitor<R> { 8 abstract class ExpressionVisitor<R> {
9 R defaultExpression(Expression node) => null; 9 R defaultExpression(Expression node) => null;
10 R defaultBasicLiteral(BasicLiteral node) => defaultExpression(node); 10 R defaultBasicLiteral(BasicLiteral node) => defaultExpression(node);
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 // Class references 260 // Class references
261 R visitClassReference(Class node) => null; 261 R visitClassReference(Class node) => null;
262 262
263 // Member references 263 // Member references
264 R defaultMemberReference(Member node) => null; 264 R defaultMemberReference(Member node) => null;
265 R visitFieldReference(Field node) => defaultMemberReference(node); 265 R visitFieldReference(Field node) => defaultMemberReference(node);
266 R visitConstructorReference(Constructor node) => defaultMemberReference(node); 266 R visitConstructorReference(Constructor node) => defaultMemberReference(node);
267 R visitProcedureReference(Procedure node) => defaultMemberReference(node); 267 R visitProcedureReference(Procedure node) => defaultMemberReference(node);
268 268
269 R visitName(Name node) => defaultNode(node); 269 R visitName(Name node) => defaultNode(node);
270 R visitSupertype(Supertype node) => defaultNode(node);
270 } 271 }
271 272
272 class RecursiveVisitor<R> extends Visitor<R> { 273 class RecursiveVisitor<R> extends Visitor<R> {
273 R defaultNode(Node node) { 274 R defaultNode(Node node) {
274 node.visitChildren(this); 275 node.visitChildren(this);
275 return null; 276 return null;
276 } 277 }
277 } 278 }
278 279
279 /// Visitor that recursively rewrites each node in tree. 280 /// Visitor that recursively rewrites each node in tree.
(...skipping 19 matching lines...) Expand all
299 /// return node; 300 /// return node;
300 /// } 301 /// }
301 /// } 302 /// }
302 /// 303 ///
303 class Transformer extends TreeVisitor<TreeNode> { 304 class Transformer extends TreeVisitor<TreeNode> {
304 /// Replaces a use of a type. 305 /// Replaces a use of a type.
305 /// 306 ///
306 /// By default, recursion stops at this point. 307 /// By default, recursion stops at this point.
307 DartType visitDartType(DartType node) => node; 308 DartType visitDartType(DartType node) => node;
308 309
310 Supertype visitSupertype(Supertype node) => node;
311
309 TreeNode defaultTreeNode(TreeNode node) { 312 TreeNode defaultTreeNode(TreeNode node) {
310 node.transformChildren(this); 313 node.transformChildren(this);
311 return node; 314 return node;
312 } 315 }
313 } 316 }
OLDNEW
« no previous file with comments | « lib/type_propagation/builder.dart ('k') | test/class_hierarchy_basic.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698