[java] IDEA-364190 Create language level 24

(cherry picked from commit 500c9a05f48e6c1d43c2019a1a9620df42a2adf4)

GitOrigin-RevId: 96ab20edf16d5bfd64e3e6d541b4d9dae1c9dd22
This commit is contained in:
Tagir Valeev
2024-12-03 11:13:31 +01:00
committed by intellij-monorepo-bot
parent 0c4475b506
commit 4ed2d5801b
7 changed files with 303 additions and 8 deletions

View File

@@ -0,0 +1,287 @@
jdk.internal.util.ModifiedUtf
java.io.IO#println()
java.io.IO#readln()
java.io.Reader#of(java.lang.CharSequence;)
java.io.Console#println()
java.io.Console#readln()
java.lang.reflect.ClassFileFormatVersion#RELEASE_24
java.lang.classfile.attribute.CodeAttribute
java.lang.classfile.attribute.InnerClassInfo
java.lang.classfile.attribute.LineNumberInfo
java.lang.classfile.attribute.ModuleHashInfo
java.lang.classfile.attribute.ModuleOpenInfo
java.lang.classfile.attribute.ModuleAttribute.ModuleAttributeBuilder
java.lang.classfile.attribute.ModuleAttribute
java.lang.classfile.attribute.RecordAttribute
java.lang.classfile.attribute.ModuleExportInfo
java.lang.classfile.attribute.UnknownAttribute
java.lang.classfile.attribute.LocalVariableInfo
java.lang.classfile.attribute.ModuleProvideInfo
java.lang.classfile.attribute.ModuleRequireInfo
java.lang.classfile.attribute.NestHostAttribute
java.lang.classfile.attribute.SourceIDAttribute
java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo
java.lang.classfile.attribute.StackMapFrameInfo.SimpleVerificationTypeInfo
java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo
java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo
java.lang.classfile.attribute.StackMapFrameInfo
java.lang.classfile.attribute.CharacterRangeInfo
java.lang.classfile.attribute.SignatureAttribute
java.lang.classfile.attribute.SyntheticAttribute
java.lang.classfile.attribute.DeprecatedAttribute
java.lang.classfile.attribute.ExceptionsAttribute
java.lang.classfile.attribute.MethodParameterInfo
java.lang.classfile.attribute.RecordComponentInfo
java.lang.classfile.attribute.SourceFileAttribute
java.lang.classfile.attribute.NestMembersAttribute
java.lang.classfile.attribute.InnerClassesAttribute
java.lang.classfile.attribute.LocalVariableTypeInfo
java.lang.classfile.attribute.ModuleHashesAttribute
java.lang.classfile.attribute.ModuleTargetAttribute
java.lang.classfile.attribute.CompilationIDAttribute
java.lang.classfile.attribute.ConstantValueAttribute
java.lang.classfile.attribute.StackMapTableAttribute
java.lang.classfile.attribute.ModulePackagesAttribute
java.lang.classfile.attribute.EnclosingMethodAttribute
java.lang.classfile.attribute.LineNumberTableAttribute
java.lang.classfile.attribute.ModuleMainClassAttribute
java.lang.classfile.attribute.BootstrapMethodsAttribute
java.lang.classfile.attribute.MethodParametersAttribute
java.lang.classfile.attribute.ModuleResolutionAttribute
java.lang.classfile.attribute.AnnotationDefaultAttribute
java.lang.classfile.attribute.LocalVariableTableAttribute
java.lang.classfile.attribute.CharacterRangeTableAttribute
java.lang.classfile.attribute.PermittedSubclassesAttribute
java.lang.classfile.attribute.SourceDebugExtensionAttribute
java.lang.classfile.attribute.LocalVariableTypeTableAttribute
java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute
java.lang.classfile.attribute.RuntimeInvisibleAnnotationsAttribute
java.lang.classfile.attribute.RuntimeVisibleTypeAnnotationsAttribute
java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute
java.lang.classfile.attribute.RuntimeVisibleParameterAnnotationsAttribute
java.lang.classfile.attribute.RuntimeInvisibleParameterAnnotationsAttribute
java.lang.classfile.Label
java.lang.classfile.components.ClassPrinter.Verbosity
java.lang.classfile.components.ClassPrinter.Node
java.lang.classfile.components.ClassPrinter.LeafNode
java.lang.classfile.components.ClassPrinter.ListNode
java.lang.classfile.components.ClassPrinter.MapNode
java.lang.classfile.components.ClassPrinter
java.lang.classfile.components.ClassRemapper
java.lang.classfile.components.CodeRelabeler
java.lang.classfile.components.CodeStackTracker
java.lang.classfile.components.CodeLocalsShifter
java.lang.classfile.Opcode.Kind
java.lang.classfile.Opcode
java.lang.classfile.instruction.LineNumber
java.lang.classfile.instruction.SwitchCase
java.lang.classfile.instruction.LabelTarget
java.lang.classfile.instruction.LocalVariable
java.lang.classfile.instruction.CharacterRange
java.lang.classfile.instruction.ExceptionCatch
java.lang.classfile.instruction.NopInstruction
java.lang.classfile.instruction.LoadInstruction
java.lang.classfile.instruction.FieldInstruction
java.lang.classfile.instruction.StackInstruction
java.lang.classfile.instruction.StoreInstruction
java.lang.classfile.instruction.ThrowInstruction
java.lang.classfile.instruction.BranchInstruction
java.lang.classfile.instruction.InvokeInstruction
java.lang.classfile.instruction.LocalVariableType
java.lang.classfile.instruction.ReturnInstruction
java.lang.classfile.instruction.ConvertInstruction
java.lang.classfile.instruction.MonitorInstruction
java.lang.classfile.instruction.ConstantInstruction.IntrinsicConstantInstruction
java.lang.classfile.instruction.ConstantInstruction.ArgumentConstantInstruction
java.lang.classfile.instruction.ConstantInstruction.LoadConstantInstruction
java.lang.classfile.instruction.ConstantInstruction
java.lang.classfile.instruction.OperatorInstruction
java.lang.classfile.instruction.ArrayLoadInstruction
java.lang.classfile.instruction.IncrementInstruction
java.lang.classfile.instruction.NewObjectInstruction
java.lang.classfile.instruction.TypeCheckInstruction
java.lang.classfile.instruction.ArrayStoreInstruction
java.lang.classfile.instruction.TableSwitchInstruction
java.lang.classfile.instruction.DiscontinuedInstruction.JsrInstruction
java.lang.classfile.instruction.DiscontinuedInstruction.RetInstruction
java.lang.classfile.instruction.DiscontinuedInstruction
java.lang.classfile.instruction.LookupSwitchInstruction
java.lang.classfile.instruction.InvokeDynamicInstruction
java.lang.classfile.instruction.NewMultiArrayInstruction
java.lang.classfile.instruction.NewPrimitiveArrayInstruction
java.lang.classfile.instruction.NewReferenceArrayInstruction
java.lang.classfile.constantpool.LongEntry
java.lang.classfile.constantpool.PoolEntry
java.lang.classfile.constantpool.Utf8Entry
java.lang.classfile.constantpool.ClassEntry
java.lang.classfile.constantpool.FloatEntry
java.lang.classfile.constantpool.DoubleEntry
java.lang.classfile.constantpool.ModuleEntry
java.lang.classfile.constantpool.StringEntry
java.lang.classfile.constantpool.ConstantPool
java.lang.classfile.constantpool.IntegerEntry
java.lang.classfile.constantpool.PackageEntry
java.lang.classfile.constantpool.FieldRefEntry
java.lang.classfile.constantpool.MemberRefEntry
java.lang.classfile.constantpool.MethodRefEntry
java.lang.classfile.constantpool.MethodTypeEntry
java.lang.classfile.constantpool.NameAndTypeEntry
java.lang.classfile.constantpool.MethodHandleEntry
java.lang.classfile.constantpool.ConstantValueEntry
java.lang.classfile.constantpool.InvokeDynamicEntry
java.lang.classfile.constantpool.ConstantPoolBuilder
java.lang.classfile.constantpool.ConstantDynamicEntry
java.lang.classfile.constantpool.ConstantPoolException
java.lang.classfile.constantpool.LoadableConstantEntry
java.lang.classfile.constantpool.InterfaceMethodRefEntry
java.lang.classfile.constantpool.DynamicConstantPoolEntry
java.lang.classfile.constantpool.AnnotationConstantValueEntry
java.lang.classfile.TypeKind
java.lang.classfile.Attribute
java.lang.classfile.BufWriter
java.lang.classfile.ClassFile.Option
java.lang.classfile.ClassFile.AttributeMapperOption
java.lang.classfile.ClassFile.ClassHierarchyResolverOption
java.lang.classfile.ClassFile.ConstantPoolSharingOption
java.lang.classfile.ClassFile.DeadCodeOption
java.lang.classfile.ClassFile.DeadLabelsOption
java.lang.classfile.ClassFile.DebugElementsOption
java.lang.classfile.ClassFile.LineNumbersOption
java.lang.classfile.ClassFile.ShortJumpsOption
java.lang.classfile.ClassFile.StackMapsOption
java.lang.classfile.ClassFile.AttributesProcessingOption
java.lang.classfile.ClassFile
java.lang.classfile.CodeModel
java.lang.classfile.Signature.BaseTypeSig
java.lang.classfile.Signature.RefTypeSig
java.lang.classfile.Signature.ClassTypeSig
java.lang.classfile.Signature.TypeArg.Unbounded
java.lang.classfile.Signature.TypeArg.Bounded.WildcardIndicator
java.lang.classfile.Signature.TypeArg.Bounded
java.lang.classfile.Signature.TypeArg
java.lang.classfile.Signature.TypeVarSig
java.lang.classfile.Signature.ArrayTypeSig
java.lang.classfile.Signature.TypeParam
java.lang.classfile.Signature.ThrowableSig
java.lang.classfile.Signature
java.lang.classfile.Annotation
java.lang.classfile.Attributes
java.lang.classfile.ClassModel
java.lang.classfile.FieldModel
java.lang.classfile.Interfaces
java.lang.classfile.Superclass
java.lang.classfile.AccessFlags
java.lang.classfile.ClassReader
java.lang.classfile.CodeBuilder.BlockCodeBuilder
java.lang.classfile.CodeBuilder.CatchBuilder
java.lang.classfile.CodeBuilder#loadConstant(int;)
java.lang.classfile.CodeBuilder#loadConstant(long;)
java.lang.classfile.CodeBuilder#loadConstant(float;)
java.lang.classfile.CodeBuilder#loadConstant(double;)
java.lang.classfile.CodeBuilder
java.lang.classfile.CodeElement
java.lang.classfile.Instruction
java.lang.classfile.MethodModel
java.lang.classfile.ClassBuilder
java.lang.classfile.ClassElement
java.lang.classfile.FieldBuilder
java.lang.classfile.FieldElement
java.lang.classfile.CodeTransform
java.lang.classfile.MethodBuilder
java.lang.classfile.MethodElement
java.lang.classfile.ClassSignature
java.lang.classfile.ClassTransform
java.lang.classfile.FieldTransform
java.lang.classfile.TypeAnnotation.TargetType
java.lang.classfile.TypeAnnotation.TargetInfo
java.lang.classfile.TypeAnnotation.TypeParameterTarget
java.lang.classfile.TypeAnnotation.SupertypeTarget
java.lang.classfile.TypeAnnotation.TypeParameterBoundTarget
java.lang.classfile.TypeAnnotation.EmptyTarget
java.lang.classfile.TypeAnnotation.FormalParameterTarget
java.lang.classfile.TypeAnnotation.ThrowsTarget
java.lang.classfile.TypeAnnotation.LocalVarTarget
java.lang.classfile.TypeAnnotation.LocalVarTargetInfo
java.lang.classfile.TypeAnnotation.CatchTarget
java.lang.classfile.TypeAnnotation.OffsetTarget
java.lang.classfile.TypeAnnotation.TypeArgumentTarget
java.lang.classfile.TypeAnnotation.TypePathComponent.Kind
java.lang.classfile.TypeAnnotation.TypePathComponent
java.lang.classfile.TypeAnnotation
java.lang.classfile.AnnotationValue.OfAnnotation
java.lang.classfile.AnnotationValue.OfArray
java.lang.classfile.AnnotationValue.OfConstant
java.lang.classfile.AnnotationValue.OfString
java.lang.classfile.AnnotationValue.OfDouble
java.lang.classfile.AnnotationValue.OfFloat
java.lang.classfile.AnnotationValue.OfLong
java.lang.classfile.AnnotationValue.OfInt
java.lang.classfile.AnnotationValue.OfShort
java.lang.classfile.AnnotationValue.OfChar
java.lang.classfile.AnnotationValue.OfByte
java.lang.classfile.AnnotationValue.OfBoolean
java.lang.classfile.AnnotationValue.OfClass
java.lang.classfile.AnnotationValue.OfEnum
java.lang.classfile.AnnotationValue
java.lang.classfile.AttributeMapper.AttributeStability
java.lang.classfile.AttributeMapper
java.lang.classfile.CompoundElement
java.lang.classfile.CustomAttribute
java.lang.classfile.MethodSignature
java.lang.classfile.MethodTransform
java.lang.classfile.ClassFileBuilder
java.lang.classfile.ClassFileElement
java.lang.classfile.ClassFileVersion
java.lang.classfile.AnnotationElement
java.lang.classfile.AttributedElement
java.lang.classfile.PseudoInstruction
java.lang.classfile.ClassFileTransform
java.lang.classfile.BootstrapMethodEntry
java.lang.classfile.ClassHierarchyResolver.ClassHierarchyInfo
java.lang.classfile.ClassHierarchyResolver
java.lang.Process#waitFor(java.time.Duration;)
java.lang.Character.UnicodeBlock#TODHRI
java.lang.Character.UnicodeBlock#GARAY
java.lang.Character.UnicodeBlock#TULU_TIGALARI
java.lang.Character.UnicodeBlock#MYANMAR_EXTENDED_C
java.lang.Character.UnicodeBlock#SUNUWAR
java.lang.Character.UnicodeBlock#EGYPTIAN_HIEROGLYPHS_EXTENDED_A
java.lang.Character.UnicodeBlock#GURUNG_KHEMA
java.lang.Character.UnicodeBlock#KIRAT_RAI
java.lang.Character.UnicodeBlock#SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT
java.lang.Character.UnicodeBlock#OL_ONAL
java.lang.Character.UnicodeScript#TODHRI
java.lang.Character.UnicodeScript#GARAY
java.lang.Character.UnicodeScript#TULU_TIGALARI
java.lang.Character.UnicodeScript#SUNUWAR
java.lang.Character.UnicodeScript#GURUNG_KHEMA
java.lang.Character.UnicodeScript#KIRAT_RAI
java.lang.Character.UnicodeScript#OL_ONAL
java.util.stream.Stream#gather(java.util.stream.Gatherer<? super T,?,R>;)
java.util.stream.Gatherer.Downstream
java.util.stream.Gatherer.Integrator.Greedy
java.util.stream.Gatherer.Integrator
java.util.stream.Gatherer
java.util.stream.Gatherers
java.util.stream.GathererOp
java.util.stream.ReferencePipeline#gather(java.util.stream.Gatherer<? super P_OUT,?,R>;)
java.security.spec.NamedParameterSpec#ML_DSA_44
java.security.spec.NamedParameterSpec#ML_DSA_65
java.security.spec.NamedParameterSpec#ML_DSA_87
java.security.spec.NamedParameterSpec#ML_KEM_512
java.security.spec.NamedParameterSpec#ML_KEM_768
java.security.spec.NamedParameterSpec#ML_KEM_1024
javax.crypto.spec.HKDFParameterSpec
javax.crypto.KDF
javax.crypto.KDFSpi
javax.crypto.KDFParameters
jdk.jshell.tool.JavaShellToolBuilder#windowSize(int;int;)
jdk.jshell.JShellConsole#readLine()
jdk.internal.jshell.tool.JShellToolBuilder#windowSize(int;int;)
javax.lang.model.SourceVersion#RELEASE_24
jdk.management.VirtualThreadSchedulerMXBean
sun.reflect.ReflectionFactory#defaultReadObjectForSerialization(java.lang.Class<?>;)
sun.reflect.ReflectionFactory#defaultWriteObjectForSerialization(java.lang.Class<?>;)
sun.reflect.ReflectionFactory#serialPersistentFields(java.lang.Class<?>;)
jdk.incubator.vector.Float16
jdk.incubator.vector.VectorMath

View File

@@ -217,6 +217,8 @@ jdk.22.language.level.description=22 - Unnamed variables and patterns
jdk.22.preview.language.level.description=22 (Preview) - Statements before super(), string templates (2nd preview), etc.
jdk.23.language.level.description=23 - Markdown documentation comments
jdk.23.preview.language.level.description=23 (Preview) - Primitive types in patterns, implicitly declared classes, etc.
jdk.24.language.level.description=24 - Stream gatherers
jdk.24.preview.language.level.description=24 (Preview) - Flexible constructor bodies, simple source files, etc.
jdk.X.language.level.description=X - Experimental features
jdk.unsupported.preview.language.level.description={0} (Preview) - Unsupported

View File

@@ -38,7 +38,8 @@ public enum JavaSdkVersion {
JDK_21(LanguageLevel.JDK_21),
JDK_22(LanguageLevel.JDK_22),
JDK_23(LanguageLevel.JDK_23),
JDK_24(LanguageLevel.JDK_X);
JDK_24(LanguageLevel.JDK_24),
JDK_25(LanguageLevel.JDK_X);
private final LanguageLevel myMaxLanguageLevel;

View File

@@ -63,7 +63,9 @@ public enum LanguageLevel {
JDK_22_PREVIEW(JavaPsiBundle.messagePointer("jdk.22.preview.language.level.description"), 22),
JDK_23(JavaPsiBundle.messagePointer("jdk.23.language.level.description"), 23),
JDK_23_PREVIEW(JavaPsiBundle.messagePointer("jdk.23.preview.language.level.description"), 23),
JDK_X(JavaPsiBundle.messagePointer("jdk.X.language.level.description"), 24),
JDK_24(JavaPsiBundle.messagePointer("jdk.24.language.level.description"), 24),
JDK_24_PREVIEW(JavaPsiBundle.messagePointer("jdk.24.preview.language.level.description"), 24),
JDK_X(JavaPsiBundle.messagePointer("jdk.X.language.level.description"), 25),
;
/**

View File

@@ -487,6 +487,8 @@ e:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_22_PREVIEW:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_23:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_23_PREVIEW:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_24:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_24_PREVIEW:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_X:org.jetbrains.jps.model.java.LanguageLevel
- feature():I
- isPreview():Z

View File

@@ -29,6 +29,7 @@ public enum LanguageLevel {
JDK_21(21), JDK_21_PREVIEW(21),
JDK_22(22), JDK_22_PREVIEW(22),
JDK_23(23), JDK_23_PREVIEW(23),
JDK_24(24), JDK_24_PREVIEW(24),
JDK_X(24),
;

View File

@@ -243,25 +243,25 @@ class JavaApiUsageGenerator : LightJavaCodeInsightFixtureTestCase() {
}
companion object {
private const val TEMP_API_DIR = "REPLACE_ME"
private const val TEMP_API_DIR = "C:\\Tmp"
/**
* Dir to API lists
*/
private const val API_DIR = "REPLACE_ME"
private const val API_DIR = "C:\\Lan\\projects\\intellij\\community\\java\\java-analysis-api\\src\\com\\intellij\\openapi\\module"
private const val PREVIEW_JDK_HOME = "/home/me/.jdks/openjdk-20"
private const val PREVIEW_JDK_HOME = "C:\\Lan\\jdks\\jdk-24"
private const val JDK_HOME = "/home/me/.jdks/openjdk-20"
private const val JDK_HOME = "C:\\Lan\\jdks\\jdk-24"
/**
* The language level to check for.
*/
private val LANGUAGE_LEVEL = LanguageLevel.JDK_20
private val LANGUAGE_LEVEL = LanguageLevel.JDK_24
/**
* The @since tag value used should match [LANGUAGE_LEVEL].
*/
private const val SINCE_VERSION = "20"
private const val SINCE_VERSION = "24"
}
}