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

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

Issue 2691523002: Ensure locations are always provided, but don't store them yet. (Closed)
Patch Set: Address comments. Created 3 years, 10 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/scope_listener.dart
diff --git a/pkg/front_end/lib/src/fasta/source/scope_listener.dart b/pkg/front_end/lib/src/fasta/source/scope_listener.dart
index 7d80a8bb9ee4a06f11239b74855348cd68fab5d0..7628f85354d2f33b29a64f541ee11a35cd5b53d6 100644
--- a/pkg/front_end/lib/src/fasta/source/scope_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/scope_listener.dart
@@ -36,13 +36,19 @@ abstract class ScopeListener<J> extends UnhandledListener {
ScopeListener(this.scope);
- J createJumpTarget(JumpTargetKind kind);
+ J createJumpTarget(JumpTargetKind kind, int charOffset);
- J createBreakTarget() => createJumpTarget(JumpTargetKind.Break);
+ J createBreakTarget(int charOffset) {
+ return createJumpTarget(JumpTargetKind.Break, charOffset);
+ }
- J createContinueTarget() => createJumpTarget(JumpTargetKind.Continue);
+ J createContinueTarget(int charOffset) {
+ return createJumpTarget(JumpTargetKind.Continue, charOffset);
+ }
- J createGotoTarget() => createJumpTarget(JumpTargetKind.Goto);
+ J createGotoTarget(int charOffset) {
+ return createJumpTarget(JumpTargetKind.Goto, charOffset);
+ }
void enterLocalScope([Scope newScope]) {
push(scope);
@@ -55,14 +61,14 @@ abstract class ScopeListener<J> extends UnhandledListener {
assert(scope != null);
}
- void enterBreakTarget([J target]) {
+ void enterBreakTarget(int charOffset, [J target]) {
push(breakTarget ?? NullValue.BreakTarget);
- breakTarget = target ?? createBreakTarget();
+ breakTarget = target ?? createBreakTarget(charOffset);
}
- void enterContinueTarget([J target]) {
+ void enterContinueTarget(int charOffset, [J target]) {
push(continueTarget ?? NullValue.ContinueTarget);
- continueTarget = target ?? createContinueTarget();
+ continueTarget = target ?? createContinueTarget(charOffset);
}
J exitBreakTarget() {
@@ -77,9 +83,9 @@ abstract class ScopeListener<J> extends UnhandledListener {
return current;
}
- void enterLoop() {
- enterBreakTarget();
- enterContinueTarget();
+ void enterLoop(int charOffset) {
+ enterBreakTarget(charOffset);
+ enterContinueTarget(charOffset);
}
@override
@@ -91,7 +97,7 @@ abstract class ScopeListener<J> extends UnhandledListener {
@override
void beginForStatement(Token token) {
debugEvent("beginForStatement");
- enterLoop();
+ enterLoop(token.charOffset);
enterLocalScope();
}
@@ -105,19 +111,19 @@ abstract class ScopeListener<J> extends UnhandledListener {
void beginSwitchBlock(Token token) {
debugEvent("beginSwitchBlock");
enterLocalScope();
- enterBreakTarget();
+ enterBreakTarget(token.charOffset);
}
@override
void beginDoWhileStatement(Token token) {
debugEvent("beginDoWhileStatement");
- enterLoop();
+ enterLoop(token.charOffset);
}
@override
void beginWhileStatement(Token token) {
debugEvent("beginWhileStatement");
- enterLoop();
+ enterLoop(token.charOffset);
}
@override
« no previous file with comments | « pkg/front_end/lib/src/fasta/source/outline_builder.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