Author: sco...@google.com Date: Thu Feb 19 19:01:19 2009 New Revision: 4801
Modified: releases/1.6/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java releases/1.6/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java Log: Remove spurious warnings generated by referencing nullField and nullMethod. Modified: releases/1.6/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java ============================================================================== --- releases/1.6/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java (original) +++ releases/1.6/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java Thu Feb 19 19:01:19 2009 @@ -156,7 +156,7 @@ if (!refErrors.isEmpty()) { errors.put(jsniRefString, refErrors); } - } else { + } else if (!jsniRef.className().equals("null")) { GWTProblem.recordInCud(ProblemSeverities.Warning, meth, cud, "Referencing class '" + jsniRef.className() + ": unable to resolve class, expect subsequent failures", Modified: releases/1.6/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java ============================================================================== --- releases/1.6/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java (original) +++ releases/1.6/dev/core/test/com/google/gwt/dev/javac/JsniCheckerTest.java Thu Feb 19 19:01:19 2009 @@ -223,6 +223,28 @@ "Referencing method 'Buggy.m': return type 'long' is not safe to access in JSNI code"); } + public void testNullField() { + StringBuffer code = new StringBuffer(); + code.append("class Buggy {\n"); + code.append(" static native Object main() /*-{\n"); + code.append(" return @null::nullField;\n"); + code.append(" }-*/;\n"); + code.append("}\n"); + + shouldGenerateNoWarning(code); + } + + public void testNullMethod() { + StringBuffer code = new StringBuffer(); + code.append("class Buggy {\n"); + code.append(" static native Object main() /*-{\n"); + code.append(" return @null::nullMethod()();\n"); + code.append(" }-*/;\n"); + code.append("}\n"); + + shouldGenerateNoWarning(code); + } + public void testOverloadedMethodWithNoWarning() { StringBuffer code = new StringBuffer(); code.append("class Buggy {\n"); @@ -378,6 +400,10 @@ private void shouldGenerateNoError(CharSequence code, CharSequence extraCode) { shouldGenerateError(code, extraCode, -1, null); + } + + private void shouldGenerateNoWarning(CharSequence code) { + shouldGenerateWarning(code, -1, null); } private void shouldGenerateWarning(CharSequence buggyCode, --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---