From 6fa7fdfd50d11dd6f89cfec78b6fb9397ca76177 Mon Sep 17 00:00:00 2001 From: Mark Punzalan Date: Tue, 12 Oct 2021 20:36:30 +0000 Subject: [PATCH] HighLevelParamInfoHandler: Enable tests related to parameter name in function types. GitOrigin-RevId: 145aefb5a04884d66f02b6dee86508c4f2f11df3 --- .../FirParameterInfoTestGenerated.java | 15 +++++++++++++++ .../parameterInfo/ParameterInfoTestGenerated.java | 15 +++++++++++++++ .../functionCall/FunctionalValue1.kt | 1 - .../functionCall/FunctionalValueAndTypeAlias.kt | 1 - .../functionCall/FunctionalValueGeneric1.kt | 3 --- .../functionCall/FunctionalValueGeneric2.kt | 1 - .../ParameterNameAnnotationConflict.kt | 11 +++++++++++ .../ParameterNameAnnotationInFunctionType.kt | 10 ++++++++++ .../ParameterNameAnnotationInNonFunctionType.kt | 8 ++++++++ 9 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationConflict.kt create mode 100644 plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInFunctionType.kt create mode 100644 plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInNonFunctionType.kt diff --git a/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/parameterInfo/FirParameterInfoTestGenerated.java b/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/parameterInfo/FirParameterInfoTestGenerated.java index b669afd9bbca..fd8a30cb816f 100644 --- a/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/parameterInfo/FirParameterInfoTestGenerated.java +++ b/plugins/kotlin/fir/test/org/jetbrains/kotlin/idea/fir/parameterInfo/FirParameterInfoTestGenerated.java @@ -312,6 +312,21 @@ public abstract class FirParameterInfoTestGenerated extends AbstractFirParameter runTest("../idea/tests/testData/parameterInfo/functionCall/OtherConstructorFromSecondary.kt"); } + @TestMetadata("ParameterNameAnnotationConflict.kt") + public void testParameterNameAnnotationConflict() throws Exception { + runTest("../idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationConflict.kt"); + } + + @TestMetadata("ParameterNameAnnotationInFunctionType.kt") + public void testParameterNameAnnotationInFunctionType() throws Exception { + runTest("../idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInFunctionType.kt"); + } + + @TestMetadata("ParameterNameAnnotationInNonFunctionType.kt") + public void testParameterNameAnnotationInNonFunctionType() throws Exception { + runTest("../idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInNonFunctionType.kt"); + } + @TestMetadata("Println.kt") public void testPrintln() throws Exception { runTest("../idea/tests/testData/parameterInfo/functionCall/Println.kt"); diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java index bb0a45238fee..15038405eb7c 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java @@ -312,6 +312,21 @@ public abstract class ParameterInfoTestGenerated extends AbstractParameterInfoTe runTest("testData/parameterInfo/functionCall/OtherConstructorFromSecondary.kt"); } + @TestMetadata("ParameterNameAnnotationConflict.kt") + public void testParameterNameAnnotationConflict() throws Exception { + runTest("testData/parameterInfo/functionCall/ParameterNameAnnotationConflict.kt"); + } + + @TestMetadata("ParameterNameAnnotationInFunctionType.kt") + public void testParameterNameAnnotationInFunctionType() throws Exception { + runTest("testData/parameterInfo/functionCall/ParameterNameAnnotationInFunctionType.kt"); + } + + @TestMetadata("ParameterNameAnnotationInNonFunctionType.kt") + public void testParameterNameAnnotationInNonFunctionType() throws Exception { + runTest("testData/parameterInfo/functionCall/ParameterNameAnnotationInNonFunctionType.kt"); + } + @TestMetadata("Println.kt") public void testPrintln() throws Exception { runTest("testData/parameterInfo/functionCall/Println.kt"); diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValue1.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValue1.kt index cacee65bd025..9447582d25df 100644 --- a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValue1.kt +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValue1.kt @@ -1,4 +1,3 @@ -// IGNORE_FIR fun x(name: String, next: (name: String) -> String): String { return next() } diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueAndTypeAlias.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueAndTypeAlias.kt index 4d98fade70f1..f2b511606536 100644 --- a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueAndTypeAlias.kt +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueAndTypeAlias.kt @@ -1,4 +1,3 @@ -// IGNORE_FIR typealias Handler = (name: String) -> String fun x(handler: Handler): String { diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric1.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric1.kt index d4fe28c85206..1c3dad2e6314 100644 --- a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric1.kt +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric1.kt @@ -1,6 +1,3 @@ -// IGNORE_FIR -// COMPILER_ARGUMENTS: -XXLanguage:-NewInference - fun T.foo(): (item: T) -> Unit{} fun f() { diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric2.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric2.kt index 63013c0aef8b..e4bac3b78fc6 100644 --- a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric2.kt +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/FunctionalValueGeneric2.kt @@ -1,4 +1,3 @@ -// IGNORE_FIR interface I { fun foo(t: T): (item: T) -> Unit{} } diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationConflict.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationConflict.kt new file mode 100644 index 000000000000..a2bfce46f84d --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationConflict.kt @@ -0,0 +1,11 @@ +// @ParameterName annotation takes precedence over name in function type parameter +fun T.foo(): (notMe: @ParameterName("pickMe") T) -> Unit{} + +fun f() { + val v = "a".foo() + v() +} + +/* +Text: (pickMe: String), Disabled: false, Strikeout: false, Green: true +*/ diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInFunctionType.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInFunctionType.kt new file mode 100644 index 000000000000..ed80db000d46 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInFunctionType.kt @@ -0,0 +1,10 @@ +fun T.foo(): Function1<@ParameterName("item") T, @ParameterName("item") Unit> + +fun f() { + val v = "a".foo() + v() +} + +/* +Text: (item: String), Disabled: false, Strikeout: false, Green: true +*/ diff --git a/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInNonFunctionType.kt b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInNonFunctionType.kt new file mode 100644 index 000000000000..2e3a8d919035 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/parameterInfo/functionCall/ParameterNameAnnotationInNonFunctionType.kt @@ -0,0 +1,8 @@ +// @ParameterName annotation is ignored when not used in function type +fun f(pickMe: @ParameterName("notMe") String) { + f() +} + +/* +Text: (pickMe: String), Disabled: false, Strikeout: false, Green: true +*/