mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 03:21:12 +07:00
[java][api usage] IDEA-286618 Update API list for java 18
Add api18.txt that contains all the new API that was introduced for Java 18 GitOrigin-RevId: 836880a9442056cab76208c9afe60e3f1331ab4a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
379be0d574
commit
401963fa86
@@ -78,6 +78,8 @@ public class LanguageLevelUtil {
|
||||
ourPresentableShortMessage.put(LanguageLevel.JDK_15, "16");
|
||||
ourPresentableShortMessage.put(LanguageLevel.JDK_16, "17");
|
||||
ourPresentableShortMessage.put(LanguageLevel.JDK_16_PREVIEW, "17");
|
||||
ourPresentableShortMessage.put(LanguageLevel.JDK_17, "18");
|
||||
ourPresentableShortMessage.put(LanguageLevel.JDK_17_PREVIEW, "18");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
javax.xml.xpath.XPathFactory#setProperty(java.lang.String;java.lang.String;)
|
||||
javax.xml.xpath.XPathFactory#getProperty(java.lang.String;)
|
||||
sun.nio.ch.ChannelOutputStream
|
||||
java.io.PrintStream#charset()
|
||||
java.net.spi.InetAddressResolver.LookupPolicy
|
||||
java.net.spi.InetAddressResolver
|
||||
java.net.spi.InetAddressResolverProvider
|
||||
java.nio.charset.Charset#forName(java.lang.String;java.nio.charset.Charset;)
|
||||
java.lang.Math#divideExact(int;int;)
|
||||
java.lang.Math#divideExact(long;long;)
|
||||
java.lang.Math#floorDivExact(int;int;)
|
||||
java.lang.Math#floorDivExact(long;long;)
|
||||
java.lang.Math#ceilDivExact(int;int;)
|
||||
java.lang.Math#ceilDivExact(long;long;)
|
||||
java.lang.Math#unsignedMultiplyHigh(long;long;)
|
||||
java.lang.Math#ceilDiv(int;int;)
|
||||
java.lang.Math#ceilDiv(long;int;)
|
||||
java.lang.Math#ceilDiv(long;long;)
|
||||
java.lang.Math#ceilMod(int;int;)
|
||||
java.lang.Math#ceilMod(long;int;)
|
||||
java.lang.Math#ceilMod(long;long;)
|
||||
java.lang.StrictMath#divideExact(int;int;)
|
||||
java.lang.StrictMath#divideExact(long;long;)
|
||||
java.lang.StrictMath#floorDivExact(int;int;)
|
||||
java.lang.StrictMath#floorDivExact(long;long;)
|
||||
java.lang.StrictMath#ceilDivExact(int;int;)
|
||||
java.lang.StrictMath#ceilDivExact(long;long;)
|
||||
java.lang.StrictMath#unsignedMultiplyHigh(long;long;)
|
||||
java.lang.StrictMath#ceilDiv(int;int;)
|
||||
java.lang.StrictMath#ceilDiv(long;int;)
|
||||
java.lang.StrictMath#ceilDiv(long;long;)
|
||||
java.lang.StrictMath#ceilMod(int;int;)
|
||||
java.lang.StrictMath#ceilMod(long;int;)
|
||||
java.lang.StrictMath#ceilMod(long;long;)
|
||||
java.time.Duration#isPositive()
|
||||
java.security.KeyStore#getAttributes(java.lang.String;)
|
||||
java.security.KeyStoreSpi#engineGetAttributes(java.lang.String;)
|
||||
javax.security.auth.Subject#current()
|
||||
javax.security.auth.Subject#callAs(javax.security.auth.Subject;java.util.concurrent.Callable<T>;)
|
||||
jdk.javadoc.doclet.Reporter#print(Diagnostic.Kind;DocTreePath;int;int;int;java.lang.String;)
|
||||
com.sun.source.util.DocTreeFactory#newSnippetTree(java.util.List<? extends DocTree>;TextTree;)
|
||||
com.sun.source.util.DocTreeScanner#visitSnippet(SnippetTree;P;)
|
||||
com.sun.source.util.SimpleDocTreeVisitor#visitSnippet(SnippetTree;P;)
|
||||
com.sun.source.doctree.DocTree.Kind#SNIPPET
|
||||
com.sun.source.doctree.SnippetTree
|
||||
com.sun.source.doctree.DocTreeVisitor#visitSnippet(SnippetTree;P;)
|
||||
javax.lang.model.util.Elements#getOutermostTypeElement(Element;)
|
||||
javax.lang.model.util.Elements#getFileObjectOf(Element;)
|
||||
javax.lang.model.SourceVersion#RELEASE_18
|
||||
javax.lang.model.SourceVersion#valueOf(java.lang.Runtime.Version;)
|
||||
javax.lang.model.SourceVersion#runtimeVersion()
|
||||
javax.tools.JavaFileManager#getJavaFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location;java.lang.String;Kind;FileObject[];)
|
||||
javax.tools.JavaFileManager#getFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location;java.lang.String;java.lang.String;FileObject[];)
|
||||
javax.annotation.processing.Messager#printError(java.lang.CharSequence;)
|
||||
javax.annotation.processing.Messager#printError(java.lang.CharSequence;Element;)
|
||||
javax.annotation.processing.Messager#printWarning(java.lang.CharSequence;)
|
||||
javax.annotation.processing.Messager#printWarning(java.lang.CharSequence;Element;)
|
||||
javax.annotation.processing.Messager#printNote(java.lang.CharSequence;)
|
||||
javax.annotation.processing.Messager#printNote(java.lang.CharSequence;Element;)
|
||||
java.net.http.HttpRequest.Builder#HEAD()
|
||||
com.sun.net.httpserver.Filter#adaptRequest(java.lang.String;java.util.function.UnaryOperator<Request>;)
|
||||
com.sun.net.httpserver.Headers#Headers(java.util.Map<java.lang.String,java.util.List<java.lang.String>>;)
|
||||
com.sun.net.httpserver.Headers#of(java.lang.String[];)
|
||||
com.sun.net.httpserver.Headers#of(java.util.Map<java.lang.String,java.util.List<java.lang.String>>;)
|
||||
com.sun.net.httpserver.Request
|
||||
com.sun.net.httpserver.HttpServer#create(InetSocketAddress;int;java.lang.String;HttpHandler;Filter[];)
|
||||
com.sun.net.httpserver.HttpsServer#create(InetSocketAddress;int;java.lang.String;HttpHandler;Filter[];)
|
||||
com.sun.net.httpserver.HttpHandlers
|
||||
com.sun.net.httpserver.SimpleFileServer.OutputLevel
|
||||
com.sun.net.httpserver.SimpleFileServer
|
||||
sun.security.pkcs11.P11KeyWrapCipher
|
||||
@@ -36,13 +36,14 @@ import javax.swing.*
|
||||
/**
|
||||
* In order to add the support for new API in the most recent JDK execute:
|
||||
* <ol>
|
||||
* <li>Generate apiXXX.txt by uncommenting the body of [com.intellij.codeInspection.tests.JavaApiUsageInspectionTestBase#testCollectSinceApiUsages] and run it;</li>
|
||||
* <li>Put the generated text file under community/java/java-analysis-api/resources/javaApi</li>
|
||||
* <li>Add two new entries to the {@link LanguageLevelUtils#ourPresentableShortMessage}:
|
||||
* <li>Generate apiXXX.txt by running [com.intellij.codeInspection.tests.JavaApiUsageInspectionTestBase#testCollectSinceApiUsages]</li>
|
||||
* <li>Put the generated text file under community/java/java-analysis-api/src/com/intellij/openapi/module</li>
|
||||
* <li>Add two new entries to the {@link com.intellij.openapi.module.LanguageLevelUtil.ourPresentableShortMessage}:
|
||||
* <ul>
|
||||
* <li>The First entry: The key is the most recent language level, the value is the second to the most recent language level.</li>
|
||||
* <li>The Second entry: The key is the most recent preview language level, the value is the second to the most recent language level.</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* </ol>
|
||||
*/
|
||||
class JavaApiUsageInspection : AbstractBaseUastLocalInspectionTool() {
|
||||
|
||||
@@ -9,6 +9,18 @@ import com.intellij.pom.java.LanguageLevel
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import com.intellij.testFramework.PsiTestUtil
|
||||
|
||||
/**
|
||||
* This is a base test case for test cases that highlight all the use of API
|
||||
* that were introduced in later language levels comparing to the current language level
|
||||
*
|
||||
* In order to add a new test case:
|
||||
* <ol>
|
||||
* <li>Go to "community/jvm/jvm-analysis-java-tests/testData/codeInspection/apiUsage"</li>
|
||||
* <li>Add a new file(s) to "./src" that contains new API. It's better to define the new API as native methods.</li>
|
||||
* <li>Set <code>JAVA_HOME</code> to jdk 1.8. In this case it's possible to redefine JDK's own classes like <code>String</code> or <code>Class</code></li>
|
||||
* <li>Invoke "./compile.sh". The new class(es) will appear in "./classes"</li>
|
||||
* </ol>
|
||||
*/
|
||||
class JavaJavaApiUsageInspectionTest : JavaApiUsageInspectionTestBase() {
|
||||
override fun getBasePath(): String = JavaJvmAnalysisTestUtil.TEST_DATA_PROJECT_RELATIVE_BASE_PATH
|
||||
|
||||
|
||||
Reference in New Issue
Block a user