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

Unified Diff: pkg/compiler/lib/src/tree/nodes.dart

Issue 1661853005: Introduce getPrefixEndToken to avoid too big context in messages. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/tree/nodes.dart
diff --git a/pkg/compiler/lib/src/tree/nodes.dart b/pkg/compiler/lib/src/tree/nodes.dart
index 04d46f54c28a4c8ac003abe471bc0673d9572a1b..ce0e355d8e32f1fcf2e95e37e2a059d46c62beed 100644
--- a/pkg/compiler/lib/src/tree/nodes.dart
+++ b/pkg/compiler/lib/src/tree/nodes.dart
@@ -147,6 +147,12 @@ abstract class Node extends NullTreeElementMixin implements Spannable {
Token getBeginToken();
+ /// Returns the token that ends the 'prefix' of this node.
+ ///
+ /// For instance the end of the parameters in a [FunctionExpression] or the
+ /// start of a class body for a [ClassNode].
ahe 2016/02/04 11:32:33 The last token *before* the start of a class body?
Johnni Winther 2016/02/05 09:14:20 Done.
+ Token getPrefixEndToken() => getEndToken();
+
Token getEndToken();
Assert asAssert() => null;
@@ -263,6 +269,11 @@ class ClassNode extends Node {
Token getBeginToken() => beginToken;
+ @override
+ Token getPrefixEndToken() {
+ return body != null ? body.getBeginToken() : getEndToken();
ahe 2016/02/04 11:32:33 How about using the token before body.getBeginToke
Johnni Winther 2016/02/05 09:14:20 Done.
+ }
+
Token getEndToken() => endToken;
}
@@ -738,6 +749,10 @@ class FunctionDeclaration extends Statement {
visitChildren(Visitor visitor) => function.accept(visitor);
Token getBeginToken() => function.getBeginToken();
+
+ @override
+ Token getPrefixEndToken() => function.getPrefixEndToken();
+
Token getEndToken() => function.getEndToken();
}
@@ -826,6 +841,11 @@ class FunctionExpression extends Expression with StoredTreeElementMixin {
return firstBeginToken(name, parameters);
}
+ @override
+ Token getPrefixEndToken() {
+ return parameters != null ? parameters.getEndToken() : name.getEndToken();
+ }
+
Token getEndToken() {
Token token = (body == null) ? null : body.getEndToken();
token = (token == null) ? parameters.getEndToken() : token;

Powered by Google App Engine
This is Rietveld 408576698