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

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

Issue 2746013003: [fasta] Add and correct even more offsets (Closed)
Patch Set: Removed formalParametersToken parameter 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 c90bf038eaae43edd76ac274791c027827782076..f14505d31162da0c070381b73937e3b54d16d987 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);
}
@@ -244,6 +244,7 @@ class OutlineBuilder extends UnhandledListener {
MethodBody kind = pop();
AsyncMarker asyncModifier = pop();
List<FormalParameterBuilder> formals = pop();
+ int formalsOffset = pop();
List<TypeVariableBuilder> typeVariables = pop();
String name = pop();
TypeBuilder returnType = pop();
@@ -261,6 +262,7 @@ class OutlineBuilder extends UnhandledListener {
asyncModifier,
computeProcedureKind(getOrSet),
beginToken.charOffset,
+ formalsOffset,
endToken.charOffset,
nativeMethodName,
isTopLevel: true);
@@ -294,6 +296,7 @@ class OutlineBuilder extends UnhandledListener {
}
AsyncMarker asyncModifier = pop();
List<FormalParameterBuilder> formals = pop();
+ int formalsOffset = pop();
List<TypeVariableBuilder> typeVariables = pop();
dynamic nameOrOperator = pop();
if (Operator.subtract == nameOrOperator && formals == null) {
@@ -322,6 +325,7 @@ class OutlineBuilder extends UnhandledListener {
asyncModifier,
kind,
beginToken.charOffset,
+ formalsOffset,
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
@@ -427,6 +436,7 @@ class OutlineBuilder extends UnhandledListener {
Token covariantKeyword, Token thisKeyword, FormalParameterType kind) {
debugEvent("FunctionTypedFormalParameter");
pop(); // Function type parameters.
+ pop(); // Formals offset
pop(); // Type variables.
String name = pop();
pop(); // Return type.
@@ -480,10 +490,17 @@ class OutlineBuilder extends UnhandledListener {
}
formals = new List<FormalParameterBuilder>.from(formals);
}
+ push(beginToken.charOffset);
push(formals ?? NullValue.FormalParameters);
}
@override
+ void handleNoFormalParameters(Token token) {
+ push(token.charOffset);
+ super.handleNoFormalParameters(token);
+ }
+
+ @override
void endEnum(Token enumKeyword, Token endBrace, int count) {
List<String> constants = popList(count);
String name = pop();
@@ -502,6 +519,7 @@ class OutlineBuilder extends UnhandledListener {
void handleFunctionType(Token functionToken, Token endToken) {
debugEvent("FunctionType");
List<FormalParameterBuilder> formals = pop();
+ pop(); // formals offset
List<TypeVariableBuilder> typeVariables = pop();
TypeBuilder returnType = pop();
push(library.addFunctionType(
@@ -518,6 +536,7 @@ class OutlineBuilder extends UnhandledListener {
TypeBuilder returnType;
if (equals == null) {
formals = pop();
+ pop(); // formals offset
typeVariables = pop();
name = pop();
returnType = pop();
@@ -617,6 +636,7 @@ class OutlineBuilder extends UnhandledListener {
}
AsyncMarker asyncModifier = pop();
List<FormalParameterBuilder> formals = pop();
+ int formalsOffset = pop();
var name = pop();
int modifiers = Modifier.validate(pop());
List<MetadataBuilder> metadata = pop();
@@ -628,6 +648,7 @@ class OutlineBuilder extends UnhandledListener {
asyncModifier,
redirectionTarget,
beginToken.charOffset,
+ formalsOffset,
endToken.charOffset,
nativeMethodName);
nativeMethodName = null;
« no previous file with comments | « pkg/front_end/lib/src/fasta/parser/parser.dart ('k') | pkg/front_end/lib/src/fasta/source/source_class_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698