Test for Bug 530299 - [10][dom ast] AST level for Java 10 / 18.3
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/dom/StandAloneASTParserTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/dom/StandAloneASTParserTest.java
index 6aff4e1..dbaad00 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/dom/StandAloneASTParserTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/dom/StandAloneASTParserTest.java
@@ -47,6 +47,7 @@
 import org.eclipse.jdt.core.dom.ModuleDeclaration;
 import org.eclipse.jdt.core.dom.NodeFinder;
 import org.eclipse.jdt.core.dom.SimpleName;
+import org.eclipse.jdt.core.dom.Type;
 import org.eclipse.jdt.core.dom.TypeDeclaration;
 import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
 import org.eclipse.jdt.core.dom.VariableDeclarationStatement;
@@ -804,4 +805,31 @@
 			fileY.delete();
 		}
 	}
+	public void testBug530299_001() {
+		String contents =
+				"public class X {\n" +
+				"	public static void main(String[] args) {\n" +
+				"		var x = new X();\n" +
+				"       for (var i = 0; i < 10; ++i) {}\n" +
+				"	}\n" +
+				"}";
+	    ASTParser parser = ASTParser.newParser(AST.JLS10);
+	    parser.setSource(contents.toCharArray());
+		parser.setStatementsRecovery(true);
+		parser.setBindingsRecovery(true);
+		parser.setKind(ASTParser.K_COMPILATION_UNIT);
+		parser.setEnvironment(null, new String[] {null}, null, true);
+		parser.setResolveBindings(true);		
+		ASTNode node = parser.createAST(null);
+		assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType());
+		CompilationUnit cu = (CompilationUnit) node;
+		assertTrue("Problems in compilation", cu.getProblems().length == 0);
+		TypeDeclaration typeDeclaration = (TypeDeclaration) cu.types().get(0);
+		MethodDeclaration[] methods = typeDeclaration.getMethods();
+		MethodDeclaration methodDeclaration = methods[0];
+		VariableDeclarationStatement vStmt = (VariableDeclarationStatement) methodDeclaration.getBody().statements().get(0);
+		Type type = vStmt.getType();
+		assertNotNull(type);
+		assertTrue("not a var", type.isVar());
+	}
 }
\ No newline at end of file