Lighter classes: DeprecationLevel.HIDDEN affects codegen

This commit is contained in:
Pavel V. Talanov
2017-04-18 18:08:03 +03:00
parent 337eb883b3
commit f3dd09beaf
9 changed files with 71 additions and 2 deletions
@@ -0,0 +1,9 @@
public final class A {
/**
* @deprecated
*/
@kotlin.Deprecated(message = "f")
public final void f() { /* compiled code */ }
public A() { /* compiled code */ }
}
@@ -0,0 +1,9 @@
// a.A
package a
class A {
@Deprecated("f")
fun f() {
}
}
+2 -1
View File
@@ -4,4 +4,5 @@ package a
@Deprecated("f", level = DeprecationLevel.HIDDEN)
fun f() {
}
}
// LAZINESS:NoLaziness
@@ -0,0 +1,3 @@
public final class A {
public A() { /* compiled code */ }
}
@@ -0,0 +1,11 @@
// a.A
package a
class A {
@Deprecated("f", level = DeprecationLevel.HIDDEN)
fun f() {
}
}
// LAZINESS:NoLaziness
@@ -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");
@@ -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,
@@ -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");
@@ -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");