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; |