diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2018-02-21 21:20:10 +0100 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2018-02-21 21:20:10 +0100 |
commit | 7aa7db5d738815da4e3a119311709dc50cc5640a (patch) | |
tree | 13169e543ddaa35e332d80f08a1b04357bff8c0d /javaparser-testing | |
parent | 8d247c646efd3940285f408c5a5066be588a3334 (diff) | |
download | platform_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.java | 60 | ||||
-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 |