diff --git a/dev/build.xml b/dev/build.xml index 37ffb3ee57..1ee4cc6db3 100755 --- a/dev/build.xml +++ b/dev/build.xml @@ -77,11 +77,11 @@ - - - - - + + + + + @@ -133,16 +133,16 @@ - - - + + + + src="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.32.0.v20221108-1853.jar"/> + src="${gwt.tools.lib}/eclipse/jdtCompilerAdapter_3.32.0.v20221108-1853.jar"/> - - - + + + + location="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.32.0.v20221108-1853.jar"/> + location="${gwt.tools.lib}/eclipse/jdtCompilerAdapter_3.32.0.v20221108-1853.jar"/> diff --git a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java index c0e5748c23..c63a0132b7 100644 --- a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java +++ b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java @@ -787,7 +787,8 @@ private static void resolveRecursive(ReferenceBinding outerType) { SourceLevel.JAVA8, ClassFileConstants.JDK1_8, SourceLevel.JAVA9, ClassFileConstants.JDK9, SourceLevel.JAVA10, ClassFileConstants.JDK10, - SourceLevel.JAVA11, ClassFileConstants.JDK11); + SourceLevel.JAVA11, ClassFileConstants.JDK11, + SourceLevel.JAVA17, ClassFileConstants.JDK17); public JdtCompiler(CompilerContext compilerContext, UnitProcessor processor) { this.compilerContext = compilerContext; diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java index 58334327c2..b25000f409 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java @@ -537,13 +537,20 @@ public void endVisit(BreakStatement x, BlockScope scope) { @Override public void endVisit(CaseStatement x, BlockScope scope) { + assert x.isExpr == false : "Switch expressions not yet supported"; try { SourceInfo info = makeSourceInfo(x); - JExpression caseExpression = pop(x.constantExpression); - if (caseExpression != null && x.constantExpression.resolvedType.isEnum()) { - caseExpression = synthesizeCallToOrdinal(scope, info, caseExpression); + if (x.constantExpressions == null) { + push(new JCaseStatement(info, null)); + } else { + for (Expression constantExpression : x.constantExpressions) { + JExpression caseExpression = pop(constantExpression); + if (caseExpression != null && caseExpression.getType().isEnumOrSubclass() != null) { + caseExpression = synthesizeCallToOrdinal(scope, info, caseExpression); + } + push(new JCaseStatement(info, caseExpression)); + } } - push(new JCaseStatement(info, caseExpression)); } catch (Throwable e) { throw translateException(x, e); } diff --git a/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java b/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java index d07680b3e1..821628fc86 100644 --- a/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java +++ b/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java @@ -26,7 +26,8 @@ public enum SourceLevel { JAVA8("1.8", "8"), JAVA9("9", "1.9"), JAVA10("10", "1.10"), - JAVA11("11", "1.11"); + JAVA11("11", "1.11"), + JAVA17("17", "1.17"); /** * The default java sourceLevel. diff --git a/maven/google-poms/gwt/pom-template.xml b/maven/google-poms/gwt/pom-template.xml index dc7f26bd3d..777f51ed37 100644 --- a/maven/google-poms/gwt/pom-template.xml +++ b/maven/google-poms/gwt/pom-template.xml @@ -22,7 +22,7 @@ 9.4.44.v20210927 - 9.2 + 9.6 diff --git a/maven/poms/gwt/pom-template.xml b/maven/poms/gwt/pom-template.xml index 0f288bae1e..0825e6cf47 100644 --- a/maven/poms/gwt/pom-template.xml +++ b/maven/poms/gwt/pom-template.xml @@ -22,7 +22,7 @@ 9.4.44.v20210927 - 9.2 + 9.6 diff --git a/user/build.xml b/user/build.xml index 1f43783a4c..74ed1d447c 100755 --- a/user/build.xml +++ b/user/build.xml @@ -73,8 +73,8 @@ - - + +