| Index: compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| diff --git a/compiler/java/com/google/dart/compiler/parser/DartParser.java b/compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| index 4ab04444d471b5bff2418972441d7dddf9c81541..0a2c0b763e3fc7560f06b5495947334a92a898b0 100644
|
| --- a/compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| +++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java
|
| @@ -1517,6 +1517,7 @@ public class DartParser extends CompletionHooksParserBase {
|
| }
|
| done(name);
|
| List<DartParameter> formals = parseFormalParameterList();
|
| + int parametersCloseParen = ctx.getTokenLocation().getBegin();
|
|
|
| // Parse redirecting factory
|
| if (match(Token.ASSIGN)) {
|
| @@ -1531,7 +1532,8 @@ public class DartParser extends CompletionHooksParserBase {
|
| redirectedConstructorName = parseIdentifier();
|
| }
|
| expect(Token.SEMICOLON);
|
| - DartFunction function = doneWithoutConsuming(new DartFunction(formals, null, null));
|
| + DartFunction function = doneWithoutConsuming(new DartFunction(formals, parametersCloseParen,
|
| + null, null));
|
| return DartMethodDefinition.create(name, function, modifiers, redirectedTypeName,
|
| redirectedConstructorName);
|
| }
|
| @@ -1539,9 +1541,9 @@ public class DartParser extends CompletionHooksParserBase {
|
| DartFunction function;
|
| if (peekPseudoKeyword(0, NATIVE_KEYWORD)) {
|
| modifiers = modifiers.makeNative();
|
| - function = new DartFunction(formals, parseNativeBlock(modifiers), null);
|
| + function = new DartFunction(formals, parametersCloseParen, parseNativeBlock(modifiers), null);
|
| } else {
|
| - function = new DartFunction(formals,
|
| + function = new DartFunction(formals, parametersCloseParen,
|
| parseFunctionStatementBody(!modifiers.isExternal(), true), null);
|
| }
|
| doneWithoutConsuming(function);
|
| @@ -1677,6 +1679,7 @@ public class DartParser extends CompletionHooksParserBase {
|
| //reportError(position(), ParserErrorCode.DEPRECATED_GETTER);
|
| parameters = parseFormalParameterList();
|
| }
|
| + int parametersCloseParen = ctx.getTokenLocation().getBegin();
|
|
|
| if (arity != -1) {
|
| if (parameters.size() != arity) {
|
| @@ -1714,7 +1717,8 @@ public class DartParser extends CompletionHooksParserBase {
|
| redirectedConstructorName = parseIdentifier();
|
| }
|
| expect(Token.SEMICOLON);
|
| - DartFunction function = doneWithoutConsuming(new DartFunction(parameters, null, returnType));
|
| + DartFunction function = doneWithoutConsuming(new DartFunction(parameters,
|
| + parametersCloseParen, null, returnType));
|
| return DartMethodDefinition.create(name, function, modifiers, redirectedTypeName,
|
| redirectedConstructorName);
|
| }
|
| @@ -1743,7 +1747,8 @@ public class DartParser extends CompletionHooksParserBase {
|
| }
|
| }
|
|
|
| - DartFunction function = doneWithoutConsuming(new DartFunction(parameters, body, returnType));
|
| + DartFunction function = doneWithoutConsuming(new DartFunction(parameters, parametersCloseParen,
|
| + body, returnType));
|
| return DartMethodDefinition.create(name, function, modifiers, initializers);
|
| }
|
|
|
| @@ -3438,8 +3443,9 @@ public class DartParser extends CompletionHooksParserBase {
|
| return null;
|
| }
|
| List<DartParameter> params = parseFormalParameterList();
|
| + int parametersCloseParen = ctx.getTokenLocation().getBegin();
|
| DartBlock body = parseFunctionStatementBody(true, isDeclaration);
|
| - DartFunction function = new DartFunction(params, body, returnType);
|
| + DartFunction function = new DartFunction(params, parametersCloseParen, body, returnType);
|
| doneWithoutConsuming(function);
|
| return function;
|
| }
|
|
|