< prev index next >

make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java

Print this page
*** 342,16 ***
              "Ljdk/internal/PreviewFeature+Annotation;";
      private static final String VALUE_BASED_ANNOTATION =
              "Ljdk/internal/ValueBased;";
      private static final String VALUE_BASED_ANNOTATION_INTERNAL =
              "Ljdk/internal/ValueBased+Annotation;";
      public static final Set<String> HARDCODED_ANNOTATIONS = new HashSet<>(
              List.of("Ljdk/Profile+Annotation;",
                      "Lsun/Proprietary+Annotation;",
                      PREVIEW_FEATURE_ANNOTATION_OLD,
                      PREVIEW_FEATURE_ANNOTATION_NEW,
!                     VALUE_BASED_ANNOTATION));
  
      private void stripNonExistentAnnotations(LoadDescriptions data) {
          Set<String> allClasses = data.classes.name2Class.keySet();
          data.modules.values().forEach(mod -> {
              stripNonExistentAnnotations(allClasses, mod.header);
--- 342,21 ---
              "Ljdk/internal/PreviewFeature+Annotation;";
      private static final String VALUE_BASED_ANNOTATION =
              "Ljdk/internal/ValueBased;";
      private static final String VALUE_BASED_ANNOTATION_INTERNAL =
              "Ljdk/internal/ValueBased+Annotation;";
+     private static final String MIGRATED_VALUE_CLASS_ANNOTATION =
+             "Ljdk/internal/MigratedValueClass;";
+     private static final String MIGRATED_VALUE_CLASS_ANNOTATION_INTERNAL =
+             "Ljdk/internal/MigratedValueClass+Annotation;";
      public static final Set<String> HARDCODED_ANNOTATIONS = new HashSet<>(
              List.of("Ljdk/Profile+Annotation;",
                      "Lsun/Proprietary+Annotation;",
                      PREVIEW_FEATURE_ANNOTATION_OLD,
                      PREVIEW_FEATURE_ANNOTATION_NEW,
!                     VALUE_BASED_ANNOTATION,
+                     MIGRATED_VALUE_CLASS_ANNOTATION));
  
      private void stripNonExistentAnnotations(LoadDescriptions data) {
          Set<String> allClasses = data.classes.name2Class.keySet();
          data.modules.values().forEach(mod -> {
              stripNonExistentAnnotations(allClasses, mod.header);

*** 1245,10 ***
--- 1250,16 ---
              //the non-public ValueBased annotation will not be available in ct.sym,
              //replace with purely synthetic javac-internal annotation:
              annotationType = VALUE_BASED_ANNOTATION_INTERNAL;
          }
  
+         if (MIGRATED_VALUE_CLASS_ANNOTATION.equals(annotationType)) {
+             //the non-public MigratedValueClass annotation will not be available in ct.sym,
+             //replace with purely synthetic javac-internal annotation:
+             annotationType = MIGRATED_VALUE_CLASS_ANNOTATION_INTERNAL;
+         }
+ 
          return new Annotation(null,
                                addString(constantPool, annotationType),
                                createElementPairs(constantPool, values));
      }
  

*** 2572,10 ***
--- 2583,11 ---
                  if (((FieldDescription) feature).descriptor.equals("C")) {
                      value = (char) (int) value;
                  }
                  ((FieldDescription) feature).constantValue = value;
                  break;
+             case "Preload":
              case "SourceFile":
                  //ignore, not needed
                  break;
              case "BootstrapMethods":
                  //ignore, not needed
< prev index next >