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
-~----------~----~----~----~------~----~------~--~---

Reply via email to