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()); }