| Index: compiler/java/com/google/dart/compiler/DartCompiler.java
|
| diff --git a/compiler/java/com/google/dart/compiler/DartCompiler.java b/compiler/java/com/google/dart/compiler/DartCompiler.java
|
| index 8d0e8253eb1c8628180bf899a67bd0916ace6bf1..f589f283bab77e4bedb926957f3fbc407e32d299 100644
|
| --- a/compiler/java/com/google/dart/compiler/DartCompiler.java
|
| +++ b/compiler/java/com/google/dart/compiler/DartCompiler.java
|
| @@ -356,7 +356,12 @@ public class DartCompiler {
|
| if (SystemLibraryManager.isDartSpec(libSpec)) {
|
| dep = context.getSystemLibraryFor(libSpec);
|
| } else {
|
| - dep = libSrc.getImportFor(libSpec);
|
| + try {
|
| + dep = libSrc.getImportFor(libSpec);
|
| + } catch (IllegalArgumentException ex) {
|
| + reportImportError(context, libSrc, libNode);
|
| + continue;
|
| + }
|
| }
|
| if (dep == null) {
|
| reportMissingSource(context, libSrc, libNode);
|
| @@ -674,7 +679,7 @@ public class DartCompiler {
|
| try {
|
| // Set entry point
|
| setEntryPoint();
|
| -
|
| +
|
| // Dump the compiler parse tree if dump format is set in arguments
|
| BaseASTWriter astWriter = ASTWriterFactory.create(config);
|
|
|
| @@ -684,11 +689,11 @@ public class DartCompiler {
|
|
|
| // Compile all the units in this library.
|
| for (DartUnit unit : lib.getUnits()) {
|
| -
|
| +
|
| if(astWriter != null) {
|
| astWriter.process(unit);
|
| }
|
| -
|
| +
|
| // Don't compile api-only units.
|
| if (unit.isDiet()) {
|
| continue;
|
| @@ -850,6 +855,14 @@ public class DartCompiler {
|
| context.onError(event);
|
| }
|
|
|
| + private void reportImportError(DartCompilerContext context,
|
| + LibrarySource libSrc,
|
| + LibraryNode libNode) {
|
| + DartCompilationError event = new DartCompilationError(libNode,
|
| + DartCompilerErrorCode.COULD_NOT_PARSE_IMPORT, libNode.getText());
|
| + event.setSource(libSrc);
|
| + context.onError(event);
|
| + }
|
| CoreTypeProvider getTypeProvider() {
|
| typeProvider.getClass(); // Quick null check.
|
| return typeProvider;
|
|
|