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

Side by Side Diff: lib/compiler/implementation/tree/nodes.dart

Issue 10993059: Stop using the Hashable interface. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Another space removed. Created 8 years, 2 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 | Annotate | Revision Log
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 abstract class Visitor<R> { 5 abstract class Visitor<R> {
6 R visitBlock(Block node); 6 R visitBlock(Block node);
7 R visitBreakStatement(BreakStatement node); 7 R visitBreakStatement(BreakStatement node);
8 R visitCascade(Cascade node); 8 R visitCascade(Cascade node);
9 R visitCascadeReceiver(CascadeReceiver node); 9 R visitCascadeReceiver(CascadeReceiver node);
10 R visitCaseMatch(CaseMatch node); 10 R visitCaseMatch(CaseMatch node);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 * A node in a syntax tree. 77 * A node in a syntax tree.
78 * 78 *
79 * The abstract part of "abstract syntax tree" is invalidated when 79 * The abstract part of "abstract syntax tree" is invalidated when
80 * supporting tools such as code formatting. These tools need concrete 80 * supporting tools such as code formatting. These tools need concrete
81 * syntax such as parentheses and no constant folding. 81 * syntax such as parentheses and no constant folding.
82 * 82 *
83 * We support these tools by storing additional references back to the 83 * We support these tools by storing additional references back to the
84 * token stream. These references are stored in fields ending with 84 * token stream. These references are stored in fields ending with
85 * "Token". 85 * "Token".
86 */ 86 */
87 class Node implements Hashable, Spannable { 87 class Node implements Spannable {
88 final int _hashCode; 88 final int _hashCode;
89 static int _HASH_COUNTER = 0; 89 static int _HASH_COUNTER = 0;
90 90
91 Node() : _hashCode = ++_HASH_COUNTER; 91 Node() : _hashCode = ++_HASH_COUNTER;
92 92
93 hashCode() => _hashCode; 93 hashCode() => _hashCode;
94 94
95 abstract accept(Visitor visitor); 95 abstract accept(Visitor visitor);
96 96
97 abstract visitChildren(Visitor visitor); 97 abstract visitChildren(Visitor visitor);
(...skipping 1795 matching lines...) Expand 10 before | Expand all | Expand 10 after
1893 * argument). 1893 * argument).
1894 * 1894 *
1895 * TODO(ahe): This method is controversial, the team needs to discuss 1895 * TODO(ahe): This method is controversial, the team needs to discuss
1896 * if top-level methods are acceptable and what naming conventions to 1896 * if top-level methods are acceptable and what naming conventions to
1897 * use. 1897 * use.
1898 */ 1898 */
1899 initializerDo(Node node, f(Node node)) { 1899 initializerDo(Node node, f(Node node)) {
1900 SendSet send = node.asSendSet(); 1900 SendSet send = node.asSendSet();
1901 if (send !== null) return f(send.arguments.head); 1901 if (send !== null) return f(send.arguments.head);
1902 } 1902 }
OLDNEW
« no previous file with comments | « lib/compiler/implementation/string_validator.dart ('k') | lib/compiler/implementation/typechecker.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698