From f7a5a79a2e0369aa0133767ac6884bba51d39742 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 19 Sep 2024 13:47:36 +0200 Subject: [PATCH] [javadoc-tests] Test for external type annotations (IDEA-231901); bump default level to 21 GitOrigin-RevId: 184754528a776dbd7545cecb7da625840e2cbffe --- .../classTypeParamsPresentation.html | 2 +- .../javadocIG/externalTypeAnnotations.html | 2 ++ .../javadocIG/fieldInitializedWithLambda.html | 2 +- .../codeInsight/javadocIG/ideadev2326.html | 2 +- .../javadocIG/recordParameters.html | 2 +- .../javadocIG/reflectConstructor.html | 2 +- .../javadoc/JavaDocInfoGeneratorTest.java | 24 +++++++++++-------- 7 files changed, 21 insertions(+), 15 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/javadocIG/externalTypeAnnotations.html diff --git a/java/java-tests/testData/codeInsight/javadocIG/classTypeParamsPresentation.html b/java/java-tests/testData/codeInsight/javadocIG/classTypeParamsPresentation.html index dc93f949083b..f6223c1964fa 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/classTypeParamsPresentation.html +++ b/java/java-tests/testData/codeInsight/javadocIG/classTypeParamsPresentation.html @@ -1 +1 @@ -[< java 1.7 >] java.util
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable \ No newline at end of file +[< java 21 >] java.util
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/externalTypeAnnotations.html b/java/java-tests/testData/codeInsight/javadocIG/externalTypeAnnotations.html new file mode 100644 index 000000000000..4de451bd7d60 --- /dev/null +++ b/java/java-tests/testData/codeInsight/javadocIG/externalTypeAnnotations.html @@ -0,0 +1,2 @@ +
 java.util.concurrent.CompletableFuture<T>
@NotNull 
+public CompletableFuture<T> whenComplete(
@NotNull java.util.function.BiConsumer<? super @UnknownNullability T, ? super @UnknownNullability Throwable> action
)

Specified by:

whenComplete in interface CompletionStage

\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/fieldInitializedWithLambda.html b/java/java-tests/testData/codeInsight/javadocIG/fieldInitializedWithLambda.html index d20b4f9303f6..eb8ce40dfee2 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/fieldInitializedWithLambda.html +++ b/java/java-tests/testData/codeInsight/javadocIG/fieldInitializedWithLambda.html @@ -1 +1 @@ -
 A
public static java.util.function.Consumer<Integer> F = i -> System.out.println(i)
\ No newline at end of file +
 A
public static java.util.function.Consumer<Integer> F = i -> System.out.println(i)
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html b/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html index fdef683562fb..d0ddd58a152b 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html +++ b/java/java-tests/testData/codeInsight/javadocIG/ideadev2326.html @@ -1,2 +1,2 @@
 Idea4780
public Object read()
-throws IOException

Throws:

IOException – if an I/O error occurs while reading.

EOFException – if this source is already closed when the read() is called, or is closed during the read().

InterruptedIOException – if the reading thread is interrupted.

\ No newline at end of file +throws IOException

Throws:

IOException – if an I/O error occurs while reading.

EOFException – if this source is already closed when the read() is called, or is closed during the read().

InterruptedIOException – if the reading thread is interrupted.

\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/recordParameters.html b/java/java-tests/testData/codeInsight/javadocIG/recordParameters.html index 6da873392961..7fd7b546d293 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/recordParameters.html +++ b/java/java-tests/testData/codeInsight/javadocIG/recordParameters.html @@ -1,4 +1,4 @@
record Test
-extends java.lang.Record
+extends Record
main comment

Params:

test – simple description
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/reflectConstructor.html b/java/java-tests/testData/codeInsight/javadocIG/reflectConstructor.html index d445e3dc528d..144e95aed2d9 100644 --- a/java/java-tests/testData/codeInsight/javadocIG/reflectConstructor.html +++ b/java/java-tests/testData/codeInsight/javadocIG/reflectConstructor.html @@ -1,4 +1,4 @@
 java.lang.Class<T>
@CallerSensitive 
 @Contract(pure = true) 
 public java.lang.reflect.Constructor<?> @NotNull [] getDeclaredConstructors()
-throws SecurityException

Throws:

SecurityException

 < java 10 >
\ No newline at end of file +throws SecurityException

Throws:

SecurityException

 < java 21 >
\ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java index 9fc83f868905..760704ee8b36 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java @@ -42,7 +42,7 @@ import java.util.List; public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { private static final String TEST_DATA_FOLDER = "/codeInsight/javadocIG/"; - private int myJdkVersion = 7; + private int myJdkVersion = 21; @NotNull @Override @@ -119,8 +119,8 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { public void testHtmlLinkWithRef() { verifyJavaDoc(getTestClass()); } public void testMultipleSpacesInLiteral() { useJava8(); verifyJavaDoc(getTestClass()); } public void testLegacySpacesInLiteral() { useJava7(); verifyJavaDoc(getTestClass()); } - public void testDocumentationForJdkClassWithReferencesToClassesFromJavaLang() { doTestAtCaret(); } - public void testDocumentationForUncheckedExceptionsInSupers() { doTestAtCaret(); } + public void testDocumentationForJdkClassWithReferencesToClassesFromJavaLang() { useJava7(); doTestAtCaret(); } + public void testDocumentationForUncheckedExceptionsInSupers() { useJava7(); doTestAtCaret(); } public void testDocumentationForGetterByField() { doTestAtCaret(); } public void testParamInJavadoc() { doTestAtCaret(); } public void testParamInMethod() { doTestAtCaret(); } @@ -137,7 +137,7 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { public void testTypeAnnotationArray() { useJava8(); doTestAtCaret(); } public void testTypeAnnotationClass() { useJava8(); doTestClass(); } public void testInlineTagIndex() { useJava9(); doTestClass(); } - public void testInlineTagSummary() { useJava10(); doTestClass(); } + public void testInlineTagSummary() { doTestClass(); } public void testLeadingSpacesInPre() { doTestClass(); } public void testBlockquotePre() { doTestAtCaret(); } public void testPreInDeprecated() { doTestClass(); } @@ -183,7 +183,7 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { public void testUnknownInlineMultilineTag() { doTestClass(); } public void testUnknownTag() { doTestMethod(); } public void testUnknownClassTag() { doTestClass(); } - public void testReflectConstructor() { useJava10(); doTestAtCaret(); } + public void testReflectConstructor() { doTestAtCaret(); } public void testMarkdownGeneralFeatures() { doTestClass(); } public void testMarkdownCodeBlock(){ doTestClass(); } public void testMarkdownReferenceLink(){ doTestClass(); } @@ -318,6 +318,7 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { } public void testDocumentationForJdkClassWhenExternalDocIsNotAvailable() { + useJava7(); PsiClass aClass = myJavaFacade.findClass("java.lang.String"); assertNotNull(aClass); verifyJavaDoc(aClass, Collections.singletonList("dummyUrl")); @@ -328,6 +329,14 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { doTestAtCaret(); }); } + + public void testExternalTypeAnnotations() { + PsiClass aClass = myJavaFacade.findClass("java.util.concurrent.CompletableFuture"); + assertNotNull(aClass); + PsiMethod[] whenComplete = aClass.findMethodsByName("whenComplete", false); + assertEquals(1, whenComplete.length); + verifyJavaDoc(whenComplete[0]); + } public void testLibraryPackageDocumentation() { VirtualFile libClasses = JavaExternalDocumentationTest.getJarFile("library.jar"); @@ -489,11 +498,6 @@ public class JavaDocInfoGeneratorTest extends JavaCodeInsightTestCase { setUpJdk(); } - private void useJava10() { - myJdkVersion = 10; - setUpJdk(); - } - private static String loadFile(File file) { try { return StringUtil.convertLineSeparators(FileUtil.loadFile(file).trim());