From 002f6bd34a7330679846df31fb1e32149c934df7 Mon Sep 17 00:00:00 2001 From: "Evgeniy.Zhelenskiy" Date: Fri, 25 Nov 2022 14:43:26 +0100 Subject: [PATCH] [FIR] Fix JvmName annotation diagnostics Signed-off-by: Evgeniy.Zhelenskiy #KT-55143 --- .../checkers/declaration/FirJvmNameChecker.kt | 2 +- .../jvmNameOnMangledNames.fir.kt | 30 ------------------- .../jvmNameOnMangledNames.kt | 1 + 3 files changed, 2 insertions(+), 31 deletions(-) delete mode 100644 compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt diff --git a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmNameChecker.kt b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmNameChecker.kt index 667777f68d1..73deae09b2c 100644 --- a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmNameChecker.kt +++ b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmNameChecker.kt @@ -67,6 +67,6 @@ object FirJvmNameChecker : FirBasicDeclarationChecker() { } private fun FirRegularClass.isInlineThatRequiresMangling(): Boolean { - return isInline && name == StandardClassIds.Result.shortClassName + return isInline && name != StandardClassIds.Result.shortClassName } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt deleted file mode 100644 index 49447d38ef8..00000000000 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt +++ /dev/null @@ -1,30 +0,0 @@ -// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses -// !DIAGNOSTICS: -UNUSED_PARAMETER - -inline class Foo(val x: Int) { - @JvmName("other") - fun simple() {} -} - -@JvmName("bad") -fun bar(f: Foo) {} - -@JvmName("good") -fun baz(r: Result) {} - -@JvmName("test") -fun returnsInlineClass() = Foo(1) - -@JvmName("test") -fun returnsKotlinResult(a: Result): Result = a - -class C { - @JvmName("test") - fun returnsInlineClass() = Foo(1) - - @JvmName("test") - fun returnsKotlinResult(a: Result): Result = a -} - -@JvmName("extensionFun") -fun Foo.extensionFun() {} diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt index bc78f5fa6cc..06340237282 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER