| Index: pkg/front_end/lib/src/fasta/source/outline_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
|
| index 810b5f73c88d55e0a63d3b5b8b1dddb64e25429e..1e8b771098f6dabcc856ca73391b2344c6ef5924 100644
|
| --- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
|
| @@ -222,7 +222,7 @@ class OutlineBuilder extends UnhandledListener {
|
| int modifiers = Modifier.validate(pop());
|
| List<MetadataBuilder> metadata = pop();
|
| library.addClass(metadata, modifiers, name, typeVariables, supertype,
|
| - interfaces, beginToken.charOffset);
|
| + interfaces, classKeyword.next?.charOffset ?? beginToken.charOffset);
|
| checkEmpty(beginToken.charOffset);
|
| }
|
|
|
| @@ -239,7 +239,8 @@ class OutlineBuilder extends UnhandledListener {
|
| }
|
|
|
| @override
|
| - void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
|
| + void endTopLevelMethod(Token beginToken, Token getOrSet,
|
| + Token formalParametersToken, Token endToken) {
|
| debugEvent("endTopLevelMethod");
|
| MethodBody kind = pop();
|
| AsyncMarker asyncModifier = pop();
|
| @@ -261,6 +262,7 @@ class OutlineBuilder extends UnhandledListener {
|
| asyncModifier,
|
| computeProcedureKind(getOrSet),
|
| beginToken.charOffset,
|
| + formalParametersToken.charOffset,
|
| endToken.charOffset,
|
| nativeMethodName,
|
| isTopLevel: true);
|
| @@ -285,7 +287,8 @@ class OutlineBuilder extends UnhandledListener {
|
| }
|
|
|
| @override
|
| - void endMethod(Token getOrSet, Token beginToken, Token endToken) {
|
| + void endMethod(Token getOrSet, Token beginToken, Token formalParametersToken,
|
| + Token endToken) {
|
| debugEvent("Method");
|
| MethodBody bodyKind = pop();
|
| if (bodyKind == MethodBody.RedirectingFactoryBody) {
|
| @@ -322,6 +325,7 @@ class OutlineBuilder extends UnhandledListener {
|
| asyncModifier,
|
| kind,
|
| beginToken.charOffset,
|
| + formalParametersToken.charOffset,
|
| endToken.charOffset,
|
| nativeMethodName,
|
| isTopLevel: false);
|
| @@ -398,16 +402,21 @@ class OutlineBuilder extends UnhandledListener {
|
| }
|
|
|
| @override
|
| - void endFormalParameter(
|
| - Token covariantKeyword, Token thisKeyword, FormalParameterType kind) {
|
| + void endFormalParameter(Token covariantKeyword, Token thisKeyword,
|
| + Token nameToken, FormalParameterType kind) {
|
| debugEvent("FormalParameter");
|
| String name = pop();
|
| TypeBuilder type = pop();
|
| int modifiers = Modifier.validate(pop());
|
| List<MetadataBuilder> metadata = pop();
|
| // TODO(ahe): Needs begin token.
|
| - push(library.addFormalParameter(metadata, modifiers, type, name,
|
| - thisKeyword != null, thisKeyword?.charOffset ?? -1));
|
| + push(library.addFormalParameter(
|
| + metadata,
|
| + modifiers,
|
| + type,
|
| + name,
|
| + thisKeyword != null,
|
| + thisKeyword?.charOffset ?? nameToken?.charOffset ?? -1));
|
| }
|
|
|
| @override
|
| @@ -600,8 +609,8 @@ class OutlineBuilder extends UnhandledListener {
|
| }
|
|
|
| @override
|
| - void endFactoryMethod(
|
| - Token beginToken, Token factoryKeyword, Token endToken) {
|
| + void endFactoryMethod(Token beginToken, Token factoryKeyword,
|
| + Token formalParametersToken, Token endToken) {
|
| debugEvent("FactoryMethod");
|
| MethodBody kind = pop();
|
| ConstructorReferenceBuilder redirectionTarget;
|
| @@ -621,6 +630,7 @@ class OutlineBuilder extends UnhandledListener {
|
| asyncModifier,
|
| redirectionTarget,
|
| beginToken.charOffset,
|
| + formalParametersToken.charOffset,
|
| endToken.charOffset,
|
| nativeMethodName);
|
| nativeMethodName = null;
|
|
|