| Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/ast/ASTNode.java
|
| diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/ast/ASTNode.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/ast/ASTNode.java
|
| index c3d93856aba60a91fe5f8c67bb42093fdb836c15..41ea707e1fa098b09807036834c2fcc61cb4fdf2 100644
|
| --- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/ast/ASTNode.java
|
| +++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/ast/ASTNode.java
|
| @@ -70,8 +70,12 @@ public abstract class ASTNode {
|
| * @return the number of characters in the node's source range
|
| */
|
| public int getLength() {
|
| + Token beginToken = getBeginToken();
|
| Token endToken = getEndToken();
|
| - return endToken.getOffset() + endToken.getLength() - getBeginToken().getOffset();
|
| + if (beginToken == null || endToken == null) {
|
| + return -1;
|
| + }
|
| + return endToken.getOffset() + endToken.getLength() - beginToken.getOffset();
|
| }
|
|
|
| /**
|
| @@ -82,6 +86,10 @@ public abstract class ASTNode {
|
| * range
|
| */
|
| public int getOffset() {
|
| + Token beginToken = getBeginToken();
|
| + if (beginToken == null) {
|
| + return -1;
|
| + }
|
| return getBeginToken().getOffset();
|
| }
|
|
|
|
|