--- old/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java 2018-12-05 13:51:43.877560283 -0800 +++ new/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java 2018-12-05 13:51:43.677660275 -0800 @@ -85,7 +85,10 @@ JDK11("11"), /** 12 covers the to be determined language features that will be added in JDK 12. */ - JDK12("12"); + JDK12("12"), + + /** 13 covers the to be determined language features that will be added in JDK 13. */ + JDK13("13"); private static final Context.Key sourceKey = new Context.Key<>(); @@ -136,6 +139,7 @@ } public Target requiredTarget() { + if (this.compareTo(JDK13) >= 0) return Target.JDK1_13; if (this.compareTo(JDK12) >= 0) return Target.JDK1_12; if (this.compareTo(JDK11) >= 0) return Target.JDK1_11; if (this.compareTo(JDK10) >= 0) return Target.JDK1_10; @@ -182,10 +186,10 @@ LOCAL_VARIABLE_TYPE_INFERENCE(JDK10), VAR_SYNTAX_IMPLICIT_LAMBDAS(JDK11, Fragments.FeatureVarSyntaxInImplicitLambda, DiagKind.PLURAL), IMPORT_ON_DEMAND_OBSERVABLE_PACKAGES(JDK1_2, JDK8), - SWITCH_MULTIPLE_CASE_LABELS(JDK12, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL), - SWITCH_RULE(JDK12, Fragments.FeatureSwitchRules, DiagKind.PLURAL), - SWITCH_EXPRESSION(JDK12, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL), - RAW_STRING_LITERALS(JDK12, Fragments.FeatureRawStringLiterals, DiagKind.PLURAL); + SWITCH_MULTIPLE_CASE_LABELS(JDK13, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL), + SWITCH_RULE(JDK13, Fragments.FeatureSwitchRules, DiagKind.PLURAL), + SWITCH_EXPRESSION(JDK13, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL), + RAW_STRING_LITERALS(JDK13, Fragments.FeatureRawStringLiterals, DiagKind.PLURAL); enum DiagKind { NORMAL, @@ -270,6 +274,8 @@ return RELEASE_11; case JDK12: return RELEASE_12; + case JDK13: + return RELEASE_13; default: return null; }