< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java

Print this page
@@ -216,10 +216,23 @@
  
      public boolean isSupported() {
          return this.compareTo(MIN) >= 0;
      }
  
+     public static boolean isSupported(Feature feature, int majorVersion) {
+         Source source = null;
+         for (Target target : Target.values()) {
+             if (majorVersion == target.majorVersion) {
+                 source = lookup(target.name);
+             }
+         }
+         if (source != null) {
+             return feature.allowedInSource(source);
+         }
+         return false;
+     }
+ 
      public Target requiredTarget() {
          return switch(this) {
          case JDK28  -> Target.JDK1_28;
          case JDK27  -> Target.JDK1_27;
          case JDK26  -> Target.JDK1_26;

@@ -289,10 +302,11 @@
          MODULE_IMPORTS(JDK25, Fragments.FeatureModuleImports, DiagKind.PLURAL),
          JAVA_BASE_TRANSITIVE(JDK25, Fragments.FeatureJavaBaseTransitive, DiagKind.PLURAL),
          PRIVATE_MEMBERS_IN_PERMITS_CLAUSE(JDK19),
          ERASE_POLY_SIG_RETURN_TYPE(JDK24),
          CAPTURE_MREF_RETURN_TYPE(JDK26),
+         VALUE_CLASSES(DEFAULT, Fragments.FeatureValueClasses, DiagKind.PLURAL),
          ;
  
          enum DiagKind {
              NORMAL,
              PLURAL;
< prev index next >