[java] introduce language level for Java 23

GitOrigin-RevId: d64d154c243f5c1810bf08790a1df44a6ac948cb
This commit is contained in:
Bas Leijdekkers
2024-07-03 10:13:47 +00:00
committed by intellij-monorepo-bot
parent 994cd7442a
commit 14315c7ca4
6 changed files with 125 additions and 7 deletions
@@ -0,0 +1,111 @@
java.io.IO
java.io.Console#println(Object;)
java.io.Console#print(Object;)
java.io.Console#readln(String;)
java.io.Console#format(Locale;String;Object[];)
java.io.Console#printf(Locale;String;Object[];)
java.io.Console#readLine(Locale;String;Object[];)
java.io.Console#readPassword(Locale;String;Object[];)
java.net.Inet4Address#ofPosixLiteral(String;)
java.lang.foreign.SymbolLookup#findOrThrow(String;)
java.lang.reflect.ClassFileFormatVersion#RELEASE_23
java.lang.runtime.ExactConversionsSupport
java.lang.classfile.constantpool.ConstantPool#entryByIndex(int;Class<T>;)
java.lang.classfile.TypeKind#newarrayCode()
java.lang.classfile.TypeKind#fromNewarrayCode(int;)
java.lang.classfile.ClassFile#JAVA_23_VERSION
java.lang.classfile.Signature.TypeArg.Bounded.WildcardIndicator
java.lang.classfile.Signature.TypeArg#of(java.lang.classfile.Signature.RefTypeSig;)
java.lang.classfile.Signature.TypeArg#unbounded()
java.lang.classfile.Signature.TypeArg#extendsOf(java.lang.classfile.Signature.RefTypeSig;)
java.lang.classfile.Signature.TypeArg#superOf(java.lang.classfile.Signature.RefTypeSig;)
java.lang.classfile.Signature.TypeArg#bounded(java.lang.classfile.Signature.TypeArg.Bounded.WildcardIndicator;java.lang.classfile.Signature.RefTypeSig;)
java.lang.classfile.Attributes#annotationDefault()
java.lang.classfile.Attributes#bootstrapMethods()
java.lang.classfile.Attributes#characterRangeTable()
java.lang.classfile.Attributes#code()
java.lang.classfile.Attributes#compilationId()
java.lang.classfile.Attributes#constantValue()
java.lang.classfile.Attributes#deprecated()
java.lang.classfile.Attributes#enclosingMethod()
java.lang.classfile.Attributes#exceptions()
java.lang.classfile.Attributes#innerClasses()
java.lang.classfile.Attributes#lineNumberTable()
java.lang.classfile.Attributes#localVariableTable()
java.lang.classfile.Attributes#localVariableTypeTable()
java.lang.classfile.Attributes#methodParameters()
java.lang.classfile.Attributes#module()
java.lang.classfile.Attributes#moduleHashes()
java.lang.classfile.Attributes#moduleMainClass()
java.lang.classfile.Attributes#modulePackages()
java.lang.classfile.Attributes#moduleResolution()
java.lang.classfile.Attributes#moduleTarget()
java.lang.classfile.Attributes#nestHost()
java.lang.classfile.Attributes#nestMembers()
java.lang.classfile.Attributes#permittedSubclasses()
java.lang.classfile.Attributes#record()
java.lang.classfile.Attributes#runtimeInvisibleAnnotations()
java.lang.classfile.Attributes#runtimeInvisibleParameterAnnotations()
java.lang.classfile.Attributes#runtimeInvisibleTypeAnnotations()
java.lang.classfile.Attributes#runtimeVisibleAnnotations()
java.lang.classfile.Attributes#runtimeVisibleParameterAnnotations()
java.lang.classfile.Attributes#runtimeVisibleTypeAnnotations()
java.lang.classfile.Attributes#signature()
java.lang.classfile.Attributes#sourceDebugExtension()
java.lang.classfile.Attributes#sourceFile()
java.lang.classfile.Attributes#sourceId()
java.lang.classfile.Attributes#stackMapTable()
java.lang.classfile.Attributes#synthetic()
java.lang.classfile.ClassReader#readEntryOrNull(int;Class<T>;)
java.lang.classfile.CodeBuilder#loadLocal(TypeKind;int;)
java.lang.classfile.CodeBuilder#storeLocal(TypeKind;int;)
java.lang.classfile.CodeBuilder#branch(Opcode;Label;)
java.lang.classfile.CodeBuilder#return_(TypeKind;)
java.lang.classfile.CodeBuilder#fieldAccess(Opcode;FieldRefEntry;)
java.lang.classfile.CodeBuilder#fieldAccess(Opcode;ClassDesc;String;ClassDesc;)
java.lang.classfile.CodeBuilder#invoke(Opcode;MemberRefEntry;)
java.lang.classfile.CodeBuilder#invoke(Opcode;ClassDesc;String;MethodTypeDesc;boolean;)
java.lang.classfile.CodeBuilder#arrayLoad(TypeKind;)
java.lang.classfile.CodeBuilder#arrayStore(TypeKind;)
java.lang.classfile.CodeBuilder#conversion(TypeKind;TypeKind;)
java.lang.classfile.CodeBuilder#loadConstant(Opcode;ConstantDesc;)
java.lang.classfile.CodeBuilder#loadConstant(ConstantDesc;)
java.lang.classfile.CodeBuilder#instanceOf(ClassEntry;)
java.lang.classfile.CodeBuilder#instanceOf(ClassDesc;)
java.lang.classfile.ClassSignature#of(Signature.ClassTypeSig;Signature.ClassTypeSig[];)
java.lang.classfile.ClassSignature#of(List<Signature.TypeParam>;Signature.ClassTypeSig;Signature.ClassTypeSig[];)
java.lang.ScopedValue.Carrier#call(java.lang.ScopedValue.CallableOp<? extends R,X>;)
java.lang.ScopedValue.CallableOp
java.lang.ScopedValue#callWhere(java.lang.ScopedValue<T>;T;java.lang.ScopedValue.CallableOp<? extends R,X>;)
java.text.NumberFormat#isStrict()
java.text.NumberFormat#setStrict(boolean;)
java.text.DecimalFormat#isStrict()
java.text.DecimalFormat#setStrict(boolean;)
java.text.DecimalFormat#parseStrict
java.text.CompactNumberFormat#parseStrict
java.text.CompactNumberFormat#isStrict()
java.text.CompactNumberFormat#setStrict(boolean;)
java.time.Instant#until(java.time.Instant;)
jdk.jshell.Snippet.SubKind#MODULE_IMPORT_SUBKIND
com.sun.source.tree.ImportTree#isModule()
com.sun.source.util.DocTrees#getDocCommentKind(TreePath;)
com.sun.source.util.DocTreeFactory#newRawTextTree(DocTree.Kind;String;)
com.sun.source.util.DocTreeScanner#visitRawText(RawTextTree;P;)
com.sun.source.util.SimpleDocTreeVisitor#visitRawText(RawTextTree;P;)
com.sun.source.doctree.DocTree.Kind#MARKDOWN
com.sun.source.doctree.RawTextTree
com.sun.source.doctree.DocTreeVisitor#visitRawText(RawTextTree;P;)
javax.lang.model.util.Types#stripAnnotations(T;)
javax.lang.model.util.Elements#getDocCommentKind(Element;)
javax.lang.model.util.Elements.DocCommentKind
javax.lang.model.util.ElementScannerPreview
javax.lang.model.util.TypeKindVisitorPreview
javax.lang.model.util.SimpleTypeVisitorPreview
javax.lang.model.util.ElementKindVisitorPreview
javax.lang.model.util.AbstractTypeVisitorPreview
javax.lang.model.util.SimpleElementVisitorPreview
javax.lang.model.util.AbstractElementVisitorPreview
javax.lang.model.util.SimpleAnnotationValueVisitorPreview
javax.lang.model.util.AbstractAnnotationValueVisitorPreview
javax.lang.model.SourceVersion#RELEASE_23
javax.tools.SimpleJavaFileObject#forSource(URI;String;)
@@ -208,6 +208,8 @@ jdk.21.language.level.description=21 - Record patterns, pattern matching for swi
jdk.21.preview.language.level.description=21 (Preview) - String templates, unnamed classes and instance main methods etc.
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 and instance main methods etc.
jdk.X.language.level.description=X - Experimental features
jdk.unsupported.preview.language.level.description={0} (Preview) - Unsupported
@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.openapi.projectRoots;
import com.intellij.openapi.util.NlsSafe;
@@ -37,7 +37,8 @@ public enum JavaSdkVersion {
JDK_20(LanguageLevel.JDK_20),
JDK_21(LanguageLevel.JDK_21),
JDK_22(LanguageLevel.JDK_22),
JDK_23(LanguageLevel.JDK_X);
JDK_23(LanguageLevel.JDK_23),
JDK_24(LanguageLevel.JDK_X);
private final LanguageLevel myMaxLanguageLevel;
@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.pom.java;
import com.intellij.core.JavaPsiBundle;
@@ -61,8 +61,9 @@ public enum LanguageLevel {
JDK_21_PREVIEW(JavaPsiBundle.messagePointer("jdk.21.preview.language.level.description"), 21),
JDK_22(JavaPsiBundle.messagePointer("jdk.22.language.level.description"), 22),
JDK_22_PREVIEW(JavaPsiBundle.messagePointer("jdk.22.preview.language.level.description"), 22),
JDK_X(JavaPsiBundle.messagePointer("jdk.X.language.level.description"), 23),
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),
;
/**
+2
View File
@@ -480,6 +480,8 @@ e:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_21_PREVIEW:org.jetbrains.jps.model.java.LanguageLevel
- sf:JDK_22: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_X:org.jetbrains.jps.model.java.LanguageLevel
- feature():I
- isPreview():Z
@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.jps.model.java;
import com.intellij.util.lang.JavaVersion;
@@ -28,7 +28,8 @@ public enum LanguageLevel {
JDK_20(20), JDK_20_PREVIEW(20),
JDK_21(21), JDK_21_PREVIEW(21),
JDK_22(22), JDK_22_PREVIEW(22),
JDK_X(23),
JDK_23(23), JDK_23_PREVIEW(23),
JDK_X(24),
;