[251374] False Null-pointer warning
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
index 3f433f4..6b32849 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
@@ -18,6 +18,7 @@
import org.eclipse.wst.jsdt.core.JavaScriptCore;
import org.eclipse.wst.jsdt.core.tests.compiler.parser.SyntaxErrorTest;
+import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicAnalyseTests;
import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicParserTests;
import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicResolveTests;
import org.eclipse.wst.jsdt.core.tests.compiler.regression.CharOperationTest;
@@ -49,6 +50,7 @@
standardTests.add(BasicParserTests.class);
standardTests.add(InferTypesTests.class);
standardTests.add(BasicResolveTests.class);
+ standardTests.add(BasicAnalyseTests.class);
standardTests.add(CharOperationTest.class);
standardTests.add(UtilTest.class);
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java
new file mode 100644
index 0000000..a8b2eff
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java
@@ -0,0 +1,116 @@
+package org.eclipse.wst.jsdt.core.tests.compiler.regression;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class BasicAnalyseTests extends AbstractRegressionTest {
+ public BasicAnalyseTests(String name) {
+ super(name);
+ }
+
+ public void testBug251374_1() {
+ Map custom = new HashMap();
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+ this.runNegativeTest(
+ new String[] {
+ "X.js",
+ "var b = null;\n" +
+ "function boo() {\n" +
+ "b.toString();\n" +
+ "}\n" +
+ "b = 2;\n" +
+ "boo();"
+ },
+ "", null, false, custom
+ );
+ }
+ public void testBug251374_2() {
+ Map custom = new HashMap();
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+ this.runNegativeTest(
+ new String[] {
+ "X.js",
+ "var b = null;\n" +
+ "function boo() {\n" +
+ "b.toString();\n" +
+ "}\n" +
+ "boo();"
+ },
+ "----------\n" +
+ "1. ERROR in X.js (at line 3)\n" +
+ " b.toString();\n" +
+ " ^\n" +
+ "Null pointer access: The variable b can only be null at this location\n" +
+ "----------\n", null, false, custom
+ );
+ }
+
+ public void testBug251374_3() {
+ Map custom = new HashMap();
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+ this.runNegativeTest(
+ new String[] {
+ "X.js",
+ "var b = null;\n" +
+ "function boo() {\n" +
+ "b = null\n" +
+ "b.toString();\n" +
+ "}\n" +
+ "b = 2;\n" +
+ "boo();"
+ },
+ "----------\n" +
+ "1. ERROR in X.js (at line 4)\n" +
+ " b.toString();\n" +
+ " ^\n" +
+ "Null pointer access: The variable b can only be null at this location\n" +
+ "----------\n", null, false, custom
+ );
+ }
+
+ public void testBug251374_4() {
+ Map custom = new HashMap();
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
+ custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
+ this.runNegativeTest(
+ new String[] {
+ "X.js",
+ "var b = null;\n" +
+ "function boo() {\n" +
+ "b = null\n" +
+ "b.toString();\n" +
+ "}\n" +
+ "b = 2;\n" +
+ "boo();\n" +
+ "b.toString();"
+ },
+ "----------\n" +
+ "1. ERROR in X.js (at line 4)\n" +
+ " b.toString();\n" +
+ " ^\n" +
+ "Null pointer access: The variable b can only be null at this location\n" +
+ "----------\n", null, false, custom
+ );
+ }
+
+ public void testBug251374_5() {
+ this.runNegativeTest(
+ new String[] {
+ "X.js",
+ "var b = null;\n" +
+ "function boo() {\n" +
+ "b = null\n" +
+ "b.toString();\n" +
+ "}\n" +
+ "b = 2;\n" +
+ "boo();\n" +
+ "b.toString();"
+ },
+ ""
+ );
+ }
+
+}