Make bad JSNI refs errors

Review at http://gwt-code-reviews.appspot.com/1142802


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9335 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java b/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java
index 6156334..7ec360a 100644
--- a/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java
+++ b/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java
@@ -207,7 +207,7 @@
       }
       FieldBinding target = getField(clazz, jsniRef);
       if (target == null) {
-        emitWarning("jsni", "Referencing field '" + jsniRef.className() + "."
+        emitError("JSNI Referencing field '" + jsniRef.className() + "."
             + jsniRef.memberName()
             + "': unable to resolve field, expect subsequent failures");
         return;
@@ -231,7 +231,7 @@
       assert jsniRef.isMethod();
       MethodBinding target = getMethod(clazz, jsniRef);
       if (target == null) {
-        emitWarning("jsni", "Referencing method '" + jsniRef.className() + "."
+        emitError("JSNI Referencing method '" + jsniRef.className() + "."
             + jsniRef.memberSignature()
             + "': unable to resolve method, expect subsequent failures");
         return;
@@ -318,7 +318,7 @@
           checkFieldRef(clazz, jsniRef);
         }
       } else {
-        emitWarning("jsni", "Referencing class '" + className
+        emitError("JSNI Referencing class '" + className
             + "': unable to resolve class, expect subsequent failures");
       }
     }
diff --git a/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java b/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
index 1e841a0..06a83fd 100644
--- a/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
+++ b/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
@@ -135,7 +135,7 @@
 
       JsniRef parsed = JsniRef.parse(jsniMemberRef);
       if (parsed == null) {
-        logger.log(TreeLogger.WARN, "Malformed JSNI reference '"
+        logger.log(TreeLogger.ERROR, "Malformed JSNI reference '"
             + jsniMemberRef + "'; expect subsequent failures",
             new NoSuchFieldError(jsniMemberRef));
         return -1;
@@ -155,7 +155,7 @@
          * semantics of the hand-written JS.
          */
         if (singleJsoImplTypes.contains(canonicalizeClassName(className))) {
-          logger.log(TreeLogger.WARN,
+          logger.log(TreeLogger.ERROR,
               "Invalid JSNI reference to SingleJsoImpl interface (" + className
                   + "); consider using a trampoline. "
                   + "Expect subsequent failures.", new NoSuchFieldError(
@@ -166,7 +166,7 @@
         int memberId = dispClassInfo.getMemberId(memberName);
         if (memberId < 0) {
           if (!className.startsWith("java.")) {
-            logger.log(TreeLogger.WARN, "Member '" + memberName
+            logger.log(TreeLogger.ERROR, "Member '" + memberName
                 + "' in JSNI reference '" + jsniMemberRef
                 + "' could not be found; expect subsequent failures",
                 new NoSuchFieldError(memberName));
@@ -176,7 +176,7 @@
         return synthesizeDispId(dispClassInfo.getClassId(), memberId);
       }
 
-      logger.log(TreeLogger.WARN, "Class '" + className
+      logger.log(TreeLogger.ERROR, "Class '" + className
           + "' in JSNI reference '" + jsniMemberRef
           + "' could not be found; expect subsequent failures",
           new ClassNotFoundException(className));
diff --git a/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java b/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java
index f041ca9..07a8f8a 100644
--- a/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java
+++ b/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java
@@ -270,7 +270,7 @@
     code.append("}\n");
 
     // Cannot resolve, missing synthetic enclosing instance.
-    shouldGenerateWarning(code, 7, "Referencing method 'Buggy.Inner.new(Z)': "
+    shouldGenerateError(code, 7, "JSNI Referencing method 'Buggy.Inner.new(Z)': "
         + "unable to resolve method, expect subsequent failures");
 
     code = new StringBuffer();
@@ -505,8 +505,8 @@
     code.append("    @Foo::x;\n");
     code.append("  }-*/;\n");
     code.append("}\n");
-    shouldGenerateWarning(code, 3,
-        "Referencing class 'Foo': unable to resolve class, expect subsequent failures");
+    shouldGenerateError(code, 3,
+        "JSNI Referencing class 'Foo': unable to resolve class, expect subsequent failures");
   }
 
   public void testUnresolvedField() {
@@ -516,10 +516,10 @@
     code.append("    @Buggy::x;\n");
     code.append("  }-*/;\n");
     code.append("}\n");
-    shouldGenerateWarning(
+    shouldGenerateError(
         code,
         3,
-        "Referencing field 'Buggy.x': unable to resolve field, expect subsequent failures");
+        "JSNI Referencing field 'Buggy.x': unable to resolve field, expect subsequent failures");
   }
 
   public void testUnresolvedMethod() {
@@ -529,10 +529,10 @@
     code.append("    @Buggy::x(Ljava/lang/String);\n");
     code.append("  }-*/;\n");
     code.append("}\n");
-    shouldGenerateWarning(
+    shouldGenerateError(
         code,
         3,
-        "Referencing method 'Buggy.x(Ljava/lang/String)': unable to resolve method, expect subsequent failures");
+        "JSNI Referencing method 'Buggy.x(Ljava/lang/String)': unable to resolve method, expect subsequent failures");
   }
 
   public void testUnsafeAnnotation() {
diff --git a/dev/core/test/com/google/gwt/dev/javac/JsniCollectorTest.java b/dev/core/test/com/google/gwt/dev/javac/JsniCollectorTest.java
index 752f32e..37621d4 100644
--- a/dev/core/test/com/google/gwt/dev/javac/JsniCollectorTest.java
+++ b/dev/core/test/com/google/gwt/dev/javac/JsniCollectorTest.java
@@ -54,9 +54,9 @@
       assertEquals(source.indexOf('@'), problem.getSourceStart());
     }
     assertEquals(3, problem.getSourceLineNumber());
-    assertTrue(problem.isWarning());
+    assertTrue(problem.isError());
     assertEquals(
-        "Referencing method 'Foo.m(Ljava/lang/String)': unable to resolve method, expect subsequent failures",
+        "JSNI Referencing method 'Foo.m(Ljava/lang/String)': unable to resolve method, expect subsequent failures",
         problem.getMessage());
   }