diff --git a/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.java b/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.java new file mode 100644 index 00000000000..3f676af287c --- /dev/null +++ b/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.java @@ -0,0 +1,9 @@ +public final class A { + /** + * @deprecated + */ + @kotlin.Deprecated(message = "f") + public final void f() { /* compiled code */ } + + public A() { /* compiled code */ } +} diff --git a/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt b/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt new file mode 100644 index 00000000000..20a5bef4f91 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt @@ -0,0 +1,9 @@ +// a.A +package a + +class A { + @Deprecated("f") + fun f() { + + } +} \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt b/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt index b07a0319b57..a4578555b95 100644 --- a/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecated.kt @@ -4,4 +4,5 @@ package a @Deprecated("f", level = DeprecationLevel.HIDDEN) fun f() { -} \ No newline at end of file +} +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.java b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.java new file mode 100644 index 00000000000..b36e461d559 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.java @@ -0,0 +1,3 @@ +public final class A { + public A() { /* compiled code */ } +} diff --git a/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt new file mode 100644 index 00000000000..21cb4e1d4de --- /dev/null +++ b/compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt @@ -0,0 +1,11 @@ +// a.A +package a + +class A { + @Deprecated("f", level = DeprecationLevel.HIDDEN) + fun f() { + + } +} + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java index 29850f69560..2b0f05d3242 100644 --- a/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java @@ -66,6 +66,12 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT doTest(fileName); } + @TestMetadata("DeprecatedNotHiddenInClass.kt") + public void testDeprecatedNotHiddenInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt"); + doTest(fileName); + } + @TestMetadata("DollarsInName.kt") public void testDollarsInName() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/DollarsInName.kt"); @@ -90,6 +96,12 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT doTest(fileName); } + @TestMetadata("HiddenDeprecatedInClass.kt") + public void testHiddenDeprecatedInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt"); + doTest(fileName); + } + @TestMetadata("InheritingInterfaceDefaultImpls.kt") public void testInheritingInterfaceDefaultImpls() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt"); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/IDELightClassContexts.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/IDELightClassContexts.kt index 581a69e441b..5041c6e4b4c 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/IDELightClassContexts.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/IDELightClassContexts.kt @@ -270,7 +270,7 @@ object IDELightClassContexts { private val annotationsThatAffectCodegen = listOf( "JvmField", "JvmOverloads", "JvmName", "JvmStatic", "Synchronized", "Transient", "Volatile", "Strictfp" - ).map { FqName("kotlin.jvm").child(Name.identifier(it)) } + FqName("kotlin.PublishedApi") + ).map { FqName("kotlin.jvm").child(Name.identifier(it)) } + FqName("kotlin.PublishedApi") + FqName("kotlin.Deprecated") class AdHocAnnotationResolver( private val moduleDescriptor: ModuleDescriptor, diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java index 07b0213824c..ed5563b7a6b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java @@ -66,6 +66,12 @@ public class IdeCompiledLightClassTestGenerated extends AbstractIdeCompiledLight doTest(fileName); } + @TestMetadata("DeprecatedNotHiddenInClass.kt") + public void testDeprecatedNotHiddenInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt"); + doTest(fileName); + } + @TestMetadata("DollarsInName.kt") public void testDollarsInName() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/DollarsInName.kt"); @@ -90,6 +96,12 @@ public class IdeCompiledLightClassTestGenerated extends AbstractIdeCompiledLight doTest(fileName); } + @TestMetadata("HiddenDeprecatedInClass.kt") + public void testHiddenDeprecatedInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt"); + doTest(fileName); + } + @TestMetadata("InheritingInterfaceDefaultImpls.kt") public void testInheritingInterfaceDefaultImpls() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index 3fa499c1f38..69c087eacc0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -66,6 +66,12 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { doTest(fileName); } + @TestMetadata("DeprecatedNotHiddenInClass.kt") + public void testDeprecatedNotHiddenInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/DeprecatedNotHiddenInClass.kt"); + doTest(fileName); + } + @TestMetadata("DollarsInName.kt") public void testDollarsInName() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/DollarsInName.kt"); @@ -90,6 +96,12 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { doTest(fileName); } + @TestMetadata("HiddenDeprecatedInClass.kt") + public void testHiddenDeprecatedInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/HiddenDeprecatedInClass.kt"); + doTest(fileName); + } + @TestMetadata("InheritingInterfaceDefaultImpls.kt") public void testInheritingInterfaceDefaultImpls() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/InheritingInterfaceDefaultImpls.kt");