src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 53232 32c6cc430526
child 58679 9c3209ff7550
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Thu Oct 17 20:27:44 2019 +0100
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Thu Oct 17 20:53:35 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -84,11 +84,20 @@
     /** 1.11 local-variable syntax for lambda parameters */
     JDK11("11"),
 
-    /** 12 covers the to be determined language features that will be added in JDK 12. */
+    /** 12, no language features; switch expression were in preview */
     JDK12("12"),
 
-    /** 13 covers the to be determined language features that will be added in JDK 13. */
-    JDK13("13");
+    /**
+     * 13, no language features; text blocks and revised switch
+     * expressions in preview
+     */
+    JDK13("13"),
+
+    /**
+     * 14 covers the to be determined language features that will be
+     * added in JDK 14.
+     */
+    JDK14("14");
 
     private static final Context.Key<Source> sourceKey = new Context.Key<>();
 
@@ -139,6 +148,7 @@
     }
 
     public Target requiredTarget() {
+        if (this.compareTo(JDK14) >= 0) return Target.JDK1_14;
         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;
@@ -186,9 +196,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(JDK13, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL),
-        SWITCH_RULE(JDK13, Fragments.FeatureSwitchRules, DiagKind.PLURAL),
-        SWITCH_EXPRESSION(JDK13, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL);
+        SWITCH_MULTIPLE_CASE_LABELS(JDK14, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL),
+        SWITCH_RULE(JDK14, Fragments.FeatureSwitchRules, DiagKind.PLURAL),
+        SWITCH_EXPRESSION(JDK14, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL),
+        TEXT_BLOCKS(JDK14, Fragments.FeatureTextBlocks, DiagKind.PLURAL);
 
         enum DiagKind {
             NORMAL,
@@ -275,6 +286,8 @@
             return RELEASE_12;
         case JDK13:
             return RELEASE_13;
+        case JDK14:
+            return RELEASE_14;
         default:
             return null;
         }