< prev index next >

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

Print this page
@@ -224,12 +224,10 @@
      public final Type restrictedInternalType;
      public final Type typeDescriptorType;
      public final Type recordType;
      public final Type switchBootstrapsType;
      public final Type constantBootstrapsType;
-     public final Type valueBasedType;
-     public final Type valueBasedInternalType;
      public final Type classDescType;
      public final Type enumDescType;
      public final Type ioType;
  
      // For serialization lint checking

@@ -241,10 +239,20 @@
      // For externalization lint checking
      public final Type externalizableType;
      public final Type objectInputType;
      public final Type objectOutputType;
  
+     // valhalla
+     public final Type valueBasedType;
+     public final Type valueBasedInternalType;
+     public final Type migratedValueClassType;
+     public final Type migratedValueClassInternalType;
+     public final Type strictType;
+     /** The symbol representing the finalize method on Object */
+     public final MethodSymbol objectFinalize;
+     public final Type numberType;
+ 
      /** The symbol representing the length field of an array.
       */
      public final VarSymbol lengthVar;
  
      /** The symbol representing the final finalize method on enums */

@@ -533,19 +541,24 @@
          // Get the initial completer for ModuleSymbols from Modules
          moduleCompleter = Modules.instance(context).getCompleter();
  
          // Enter predefined classes. All are assumed to be in the java.base module.
          objectType = enterClass("java.lang.Object");
+         throwableType = enterClass("java.lang.Throwable");
+         objectFinalize = new MethodSymbol(PROTECTED,
+                 names.finalize,
+                 new MethodType(List.nil(), voidType,
+                         List.of(throwableType), methodClass),
+                 objectType.tsym);
          objectMethodsType = enterClass("java.lang.runtime.ObjectMethods");
          exactConversionsSupportType = enterClass("java.lang.runtime.ExactConversionsSupport");
          objectsType = enterClass("java.util.Objects");
          classType = enterClass("java.lang.Class");
          stringType = enterClass("java.lang.String");
          stringBufferType = enterClass("java.lang.StringBuffer");
          stringBuilderType = enterClass("java.lang.StringBuilder");
          cloneableType = enterClass("java.lang.Cloneable");
-         throwableType = enterClass("java.lang.Throwable");
          serializableType = enterClass("java.io.Serializable");
          serializedLambdaType = enterClass("java.lang.invoke.SerializedLambda");
          varHandleType = enterClass("java.lang.invoke.VarHandle");
          methodHandleType = enterClass("java.lang.invoke.MethodHandle");
          methodHandlesType = enterClass("java.lang.invoke.MethodHandles");

@@ -609,10 +622,13 @@
          recordType = enterClass("java.lang.Record");
          switchBootstrapsType = enterClass("java.lang.runtime.SwitchBootstraps");
          constantBootstrapsType = enterClass("java.lang.invoke.ConstantBootstraps");
          valueBasedType = enterClass("jdk.internal.ValueBased");
          valueBasedInternalType = enterSyntheticAnnotation("jdk.internal.ValueBased+Annotation");
+         strictType = enterSyntheticAnnotation("jdk.internal.vm.annotation.Strict");
+         migratedValueClassType = enterClass("jdk.internal.MigratedValueClass");
+         migratedValueClassInternalType = enterSyntheticAnnotation("jdk.internal.MigratedValueClass+Annotation");
          classDescType = enterClass("java.lang.constant.ClassDesc");
          enumDescType = enterClass("java.lang.Enum$EnumDesc");
          ioType = enterClass("java.io.IO");
          // For serialization lint checking
          objectStreamFieldType = enterClass("java.io.ObjectStreamField");

@@ -631,10 +647,12 @@
          synthesizeEmptyInterfaceIfMissing(stringConcatFactory);
          synthesizeBoxTypeIfMissing(doubleType);
          synthesizeBoxTypeIfMissing(floatType);
          synthesizeBoxTypeIfMissing(voidType);
  
+         numberType = enterClass("java.lang.Number");
+ 
          // Enter a synthetic class that is used to mark internal
          // proprietary classes in ct.sym.  This class does not have a
          // class file.
          proprietaryType = enterSyntheticAnnotation("sun.Proprietary+Annotation");
  
< prev index next >