From ac9c106a77f864939dd5e8019f70ce4102d4c4c4 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Fri, 17 Jan 2020 20:11:30 +0300 Subject: [PATCH] Fix of UL classes muted tests Add visibility modifier to companion field Const initializer is now getting for const properties only Fixed tests: UltraLightClassLoadingTestGenerated.testAnnotations UltraLightClassLoadingTestGenerated.testInheritance UltraLightClassLoadingTestGenerated.testProperties UltraLightClassSanityTestGenerated.IdeRegression.testImplementingMutableSet UltraLightClassSanityTestGenerated.IdeRegression.testOverridingFinalInternal_extra UltraLightClassSanityTestGenerated.IdeRegression.testOverridingInternal UltraLightClassSanityTestGenerated.IdeRegression.testOverridingInternal_extra UltraLightClassSanityTestGenerated.IdeRegression.testOverridingProtected_extra UltraLightFacadeClassTestGenerated.testProperties UltraLightClassLoadingTestGenerated.testObjects --- .../org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt | 2 +- .../org/jetbrains/kotlin/asJava/classes/ultraLightField.kt | 7 ++++++- .../ultraLightClasses/inferringAnonymousObjectTypes.java | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt index f5c3f1d4224..e7163eb2b61 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt @@ -184,7 +184,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor membersBuilder.generateUniqueFieldName(companion.name.orEmpty(), usedNames), this, support, - setOf(PsiModifier.STATIC, PsiModifier.FINAL, PsiModifier.PUBLIC) + setOf(PsiModifier.STATIC, PsiModifier.FINAL, companion.simpleVisibility()) ) ) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt index e4292b5efaa..83fb9bea55a 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightField.kt @@ -19,6 +19,9 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.idea.KotlinLanguage +import org.jetbrains.kotlin.lexer.KtModifierKeywordToken +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.lexer.KtTokens.VAL_KEYWORD import org.jetbrains.kotlin.load.kotlin.TypeMappingMode import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.* @@ -144,7 +147,9 @@ internal open class KtUltraLightFieldImpl protected constructor( override fun hasInitializer(): Boolean = initializer !== null private val _constantInitializer by lazyPub { - if ((declaration as? KtProperty)?.hasInitializer() != true) return@lazyPub null + if (declaration !is KtProperty) return@lazyPub null + if (!declaration.hasModifier(KtTokens.CONST_KEYWORD)) return@lazyPub null + if (!declaration.hasInitializer()) return@lazyPub null if (!hasModifierProperty(PsiModifier.FINAL)) return@lazyPub null if (!TypeConversionUtil.isPrimitiveAndNotNull(_type) && !_type.equalsToText(CommonClassNames.JAVA_LANG_STRING)) return@lazyPub null propertyDescriptor?.compileTimeInitializer diff --git a/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.java b/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.java index b06fb250723..b53dc23783d 100644 --- a/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.java +++ b/compiler/testData/asJava/ultraLightClasses/inferringAnonymousObjectTypes.java @@ -36,7 +36,7 @@ public final class ArrayOfAnonymous /* ArrayOfAnonymous*/ { } final class null /* null*/ { - private static final java.lang.String fy = "text" /* initializer type: java.lang.String */ /* constant value text */; + private static final java.lang.String fy; @org.jetbrains.annotations.NotNull() public final java.lang.String getFy(); @@ -89,7 +89,7 @@ public final class Sub /* Sub*/ extends Super { } final class null /* null*/ { - private static final java.lang.String fy = "text" /* initializer type: java.lang.String */ /* constant value text */; + private static final java.lang.String fy; @org.jetbrains.annotations.NotNull() public final java.lang.String getFy();