langtools/src/jdk.jshell/share/classes/jdk/jshell/OuterWrap.java
changeset 35736 bae6ea327651
parent 35000 952a7b4652f0
child 37644 33cf53901cac
--- a/langtools/src/jdk.jshell/share/classes/jdk/jshell/OuterWrap.java	Tue Feb 02 12:56:35 2016 +0000
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/OuterWrap.java	Tue Feb 02 16:11:09 2016 -0800
@@ -31,6 +31,7 @@
 import javax.tools.Diagnostic;
 import javax.tools.JavaFileObject;
 import jdk.jshell.MemoryFileManager.SourceMemoryJavaFileObject;
+import static jdk.internal.jshell.debug.InternalDebugControl.DBG_GEN;
 
 /**
  *
@@ -183,6 +184,22 @@
         }
 
         @Override
+        boolean isResolutionError() {
+            if (!super.isResolutionError()) {
+                return false;
+            }
+            for (String line : diag.getMessage(PARSED_LOCALE).split("\\r?\\n")) {
+                if (line.trim().startsWith("location:")) {
+                    if (!line.contains(REPL_CLASS_PREFIX)) {
+                        // Resolution error must occur within a REPL class or it is not resolvable
+                        return false;
+                    }
+                }
+            }
+            return true;
+        }
+
+        @Override
         public String toString() {
             return "WrappedDiagnostic(" + getMessage(null) + ":" + getPosition() + ")";
         }