From 4efab517513906a084aa116d90eefa1c84c3aeb3 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Fri, 20 Dec 2019 13:44:57 +0300 Subject: [PATCH] Fix allopen call from UL methods Fixed #KT-35577 --- .../kotlin/asJava/classes/ultraLightMembersCreator.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt index c259de5981d..b97f08458d4 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMembersCreator.kt @@ -261,7 +261,10 @@ internal class UltraLightMembersCreator( override fun hasModifierProperty(name: String): Boolean { - if (name != PsiModifier.FINAL || !outerDeclaration.isOrdinaryClass) return hasModifier(name) + val hasModifierByDeclaration = hasModifier(name) + if (name != PsiModifier.FINAL) return hasModifierByDeclaration + + if (!hasModifierByDeclaration) return false //AllOpen can't modify open to final //AllOpen can affect on modality of the member. We ought to check if the extension could override the modality val descriptor = lazy { declaration.resolve() }