Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1305)

Unified Diff: pkg/front_end/lib/src/fasta/source/outline_builder.dart

Issue 2746013003: [fasta] Add and correct even more offsets (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698