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

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/parser/Parser.java

Issue 262253002: Add flag to AnalysisOptions to be able to disable deferred loading. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebase with bleeding_edge, updated status files not to break build Created 6 years, 7 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: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/parser/Parser.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/parser/Parser.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/parser/Parser.java
index 150368cf910a219407848063fedb29e268ba5ea9..85ca3568271f8069a2cc3e8cd5a43712c1b50d30 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/parser/Parser.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/parser/Parser.java
@@ -19,6 +19,7 @@ import com.google.dart.engine.ast.*;
import com.google.dart.engine.error.AnalysisError;
import com.google.dart.engine.error.AnalysisErrorListener;
import com.google.dart.engine.error.BooleanErrorListener;
+import com.google.dart.engine.internal.context.AnalysisOptionsImpl;
import com.google.dart.engine.internal.parser.CommentAndMetadata;
import com.google.dart.engine.internal.parser.FinalConstVarOrType;
import com.google.dart.engine.internal.parser.Modifiers;
@@ -94,6 +95,11 @@ public class Parser {
private boolean parseFunctionBodies = true;
/**
+ * A flag indicating whether parser is to parse deferred libraries.
+ */
+ private boolean parseDeferredLibraries = AnalysisOptionsImpl.DEFAULT_ENABLE_DEFERRED_LOADING;
+
+ /**
* The next token to be parsed.
*/
private Token currentToken;
@@ -218,6 +224,15 @@ public class Parser {
}
/**
+ * Set whether parser is to parse deferred libraries.
+ *
+ * @param parseDeferredLibraries {@code true} if parser is to parse deferred libraries
+ */
+ public void setParseDeferredLibraries(boolean parseDeferredLibraries) {
+ this.parseDeferredLibraries = parseDeferredLibraries;
+ }
+
+ /**
* Set whether parser is to parse function bodies.
*
* @param parseFunctionBodies {@code true} if parser is to parse function bodies
@@ -4201,7 +4216,12 @@ public class Parser {
Token asToken = null;
SimpleIdentifier prefix = null;
if (matchesKeyword(Keyword.DEFERRED)) {
- deferredToken = getAndAdvance();
+ if (parseDeferredLibraries) {
+ deferredToken = getAndAdvance();
+ } else {
+ reportErrorForCurrentToken(ParserErrorCode.DEFERRED_IMPORTS_NOT_SUPPORTED);
+ advance();
+ }
}
if (matchesKeyword(Keyword.AS)) {
asToken = getAndAdvance();

Powered by Google App Engine
This is Rietveld 408576698