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

Unified Diff: pkg/front_end/lib/src/fasta/kernel/verifier.dart

Issue 2999033002: Mark top-level error field as static. (Closed)
Patch Set: Created 3 years, 4 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/kernel/verifier.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/verifier.dart b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
index 17c984c390ccd6891e7e25d6890e2f2192dc9341..af08d4675d213794971aa7c4fe5ead311e0ba806 100644
--- a/pkg/front_end/lib/src/fasta/kernel/verifier.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
@@ -46,13 +46,37 @@ class FastaVerifyingVisitor extends VerifyingVisitor
this.isOutline = isOutline;
}
+ String checkLocation(TreeNode node, String name) {
sjindel 2017/08/16 10:27:01 How are these changes related?
ahe 2017/08/16 11:59:15 Without the change on line 79, Uri.parse would thr
ahe 2017/08/16 12:01:47 It would throw a NSM error *before* I modified ker
+ if (name == null || name.contains("#")) {
+ // TODO(ahe): Investigate if these checks can be enabled:
+ // if (node.fileUri != null && node is! Library) {
+ // problem(node, "A synthetic node shouldn't have a fileUri",
+ // context: node);
+ // }
+ // if (node.fileOffset != -1) {
+ // problem(node, "A synthetic node shouldn't have a fileOffset",
+ // context: node);
+ // }
+ return fileUri;
+ } else {
+ if (node.fileUri == null) {
+ problem(node, "'$name' has no fileUri", context: node);
+ return fileUri;
+ }
+ if (node.fileOffset == -1 && node is! Library) {
+ problem(node, "'$name' has no fileOffset", context: node);
+ }
+ return node.fileUri;
+ }
+ }
+
@override
problem(TreeNode node, String details, {TreeNode context}) {
node ??= (context ?? this.context);
int offset = node?.fileOffset ?? -1;
LocatedMessage message = templateInternalVerificationError
.withArguments(details)
- .withLocation(Uri.parse(fileUri), offset);
+ .withLocation(fileUri == null ? null : Uri.parse(fileUri), offset);
CompilerContext.current.report(message, Severity.error);
errors.add(message);
}
@@ -68,25 +92,25 @@ class FastaVerifyingVisitor extends VerifyingVisitor
@override
visitLibrary(Library node) {
- fileUri = node.fileUri;
+ fileUri = checkLocation(node, node.name);
super.visitLibrary(node);
}
@override
visitClass(Class node) {
- fileUri = node.fileUri;
+ fileUri = checkLocation(node, node.name);
super.visitClass(node);
}
@override
visitField(Field node) {
- fileUri = node.fileUri;
+ fileUri = checkLocation(node, node.name.name);
super.visitField(node);
}
@override
visitProcedure(Procedure node) {
- fileUri = node.fileUri;
+ fileUri = checkLocation(node, node.name.name);
super.visitProcedure(node);
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/kernel_target.dart ('k') | pkg/front_end/testcases/cycles.dart.direct.expect » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698