NJ2K: preserve annotations while converting class to object

#KT-38879 fixed
This commit is contained in:
Ilya Kirillov
2020-08-18 14:15:48 +03:00
parent 3d517c3656
commit d5d57f84e0
4 changed files with 18 additions and 1 deletions
@@ -49,7 +49,7 @@ class ClassToObjectPromotionConversion(context: NewJ2kConverterContext) : Recurs
it is JKClass && it.classKind != JKClass.ClassKind.COMPANION
}.map { it.detached(element.classBody) }
},
JKAnnotationList(),
element.annotationList,
element.otherModifierElements,
element.visibilityElement,
JKModalityModifierElement(Modality.FINAL)
@@ -0,0 +1,6 @@
@interface Foo
@Foo
class A {
static void bar() {}
}
@@ -0,0 +1,6 @@
internal annotation class Foo
@Foo
internal object A {
fun bar() {}
}
@@ -839,6 +839,11 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/class/ClassShadowing.java");
}
@TestMetadata("classToObjectWithAnnotations.java")
public void testClassToObjectWithAnnotations() throws Exception {
runTest("nj2k/testData/newJ2k/class/classToObjectWithAnnotations.java");
}
@TestMetadata("classWithEmptyMethods.java")
public void testClassWithEmptyMethods() throws Exception {
runTest("nj2k/testData/newJ2k/class/classWithEmptyMethods.java");