aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-testing
diff options
context:
space:
mode:
authorDanny van Bruggen <hexagonaal@gmail.com>2018-02-21 21:20:10 +0100
committerDanny van Bruggen <hexagonaal@gmail.com>2018-02-21 21:20:10 +0100
commit7aa7db5d738815da4e3a119311709dc50cc5640a (patch)
tree13169e543ddaa35e332d80f08a1b04357bff8c0d /javaparser-testing
parent8d247c646efd3940285f408c5a5066be588a3334 (diff)
downloadplatform_external_javaparser-7aa7db5d738815da4e3a119311709dc50cc5640a.tar.gz
platform_external_javaparser-7aa7db5d738815da4e3a119311709dc50cc5640a.tar.bz2
platform_external_javaparser-7aa7db5d738815da4e3a119311709dc50cc5640a.zip
Validate positions of var
Diffstat (limited to 'javaparser-testing')
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java10ValidatorTest.java60
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java11ValidatorTest.java (renamed from javaparser-testing/src/test/java/com/github/javaparser/version/Java11PostProcessorTest.java)4
2 files changed, 58 insertions, 6 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java10ValidatorTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java10ValidatorTest.java
index b4b3d038b..afd65aaa5 100644
--- a/javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java10ValidatorTest.java
+++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java10ValidatorTest.java
@@ -3,15 +3,15 @@ package com.github.javaparser.ast.validator;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseResult;
import com.github.javaparser.ParserConfiguration;
-import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.BodyDeclaration;
import com.github.javaparser.ast.stmt.Statement;
+import org.junit.Ignore;
import org.junit.Test;
-import static com.github.javaparser.ParseStart.COMPILATION_UNIT;
+import static com.github.javaparser.ParseStart.CLASS_BODY;
import static com.github.javaparser.ParseStart.STATEMENT;
-import static com.github.javaparser.ParserConfiguration.LanguageLevel.*;
+import static com.github.javaparser.ParserConfiguration.LanguageLevel.JAVA_10_PREVIEW;
import static com.github.javaparser.Providers.provider;
-import static com.github.javaparser.ast.validator.Java1_1ValidatorTest.allModifiers;
import static com.github.javaparser.utils.TestUtils.assertNoProblems;
import static com.github.javaparser.utils.TestUtils.assertProblems;
@@ -43,6 +43,18 @@ public class Java10ValidatorTest {
}
@Test
+ public void varNotAllowedInTryWithResources() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("try(var f = new FileReader(\"\")){ }catch (Exception e){ }"));
+ assertProblems(result, "(line 1,col 5) \"var\" is not allowed here.");
+ }
+
+ @Test
+ public void varNotAllowedInField() {
+ ParseResult<BodyDeclaration<?>> result = javaParser.parse(CLASS_BODY, provider("var a = 20;"));
+ assertProblems(result, "(line 1,col 1) \"var\" is not allowed here.");
+ }
+
+ @Test
public void varNotAllowedInTypeArguments() {
ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("new X<var>();"));
assertProblems(result, "(line 1,col 7) \"var\" is not allowed here.");
@@ -53,4 +65,44 @@ public class Java10ValidatorTest {
ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("x((var x) -> null);"));
assertProblems(result, "(line 1,col 4) \"var\" is not allowed here.");
}
+
+ @Test
+ public void emptyInitializerNotAllowed() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("var a;"));
+ assertProblems(result, "(line 1,col 1) \"var\" needs an initializer.");
+ }
+
+ @Test
+ public void multipleVariablesNotAllowed() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("var a=1, b=2;"));
+ assertProblems(result, "(line 1,col 1) \"var\" only takes a single variable.");
+ }
+
+ @Test
+ public void nullVariablesNotAllowed() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("var a=null;"));
+ assertProblems(result, "(line 1,col 1) \"var\" cannot infer type from just null.");
+ }
+
+ @Test
+ public void arrayDimensionBracketsNotAllowed() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("var a=new String[]{};"));
+ assertProblems(result, "(line 1,col 1) \"var\" cannot infer array types.");
+ }
+
+ // This is pretty hard to impossible to implement correctly with just the AST.
+ @Ignore
+ @Test
+ public void selfReferenceNotAllowed() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("var a=a;"));
+ assertProblems(result, "");
+ }
+
+ // Can be implemented once https://github.com/javaparser/javaparser/issues/1434 is implemented.
+ @Ignore
+ @Test
+ public void polyExpressionAsInitializerNotAllowed() {
+ ParseResult<Statement> result = javaParser.parse(STATEMENT, provider("var a=new ArrayList<>();"));
+ assertProblems(result, "");
+ }
}
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/version/Java11PostProcessorTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java11ValidatorTest.java
index 30115c87c..1e1f8c0f8 100644
--- a/javaparser-testing/src/test/java/com/github/javaparser/version/Java11PostProcessorTest.java
+++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/validator/Java11ValidatorTest.java
@@ -1,4 +1,4 @@
-package com.github.javaparser.version;
+package com.github.javaparser.ast.validator;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseResult;
@@ -11,7 +11,7 @@ import static com.github.javaparser.ParserConfiguration.LanguageLevel.JAVA_11_PR
import static com.github.javaparser.Providers.provider;
import static com.github.javaparser.utils.TestUtils.assertNoProblems;
-public class Java11PostProcessorTest {
+public class Java11ValidatorTest {
public static final JavaParser javaParser = new JavaParser(new ParserConfiguration().setLanguageLevel(JAVA_11_PREVIEW));
@Test