Chromium Code Reviews| 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; |