From 3cf63957508f33023817a6e8e204a91726ed365d Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 14 Sep 2015 13:29:28 +0200 Subject: [PATCH] move supports new facades --- .../jetbrains/kotlin/asJava/LightClassUtil.kt | 40 +++++++++---------- .../kotlin/asJava/lightClassUtils.kt | 6 +-- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt index aaf9d7d8442..583f1b8d816 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt @@ -133,7 +133,7 @@ public object LightClassUtil { public fun getLightClassAccessorMethod(accessor: JetPropertyAccessor): PsiMethod? = getLightClassAccessorMethods(accessor).firstOrNull() - public fun getLightClassAccessorMethods(accessor: JetPropertyAccessor): Collection { + public fun getLightClassAccessorMethods(accessor: JetPropertyAccessor): List { val property = accessor.getNonStrictParentOfType() ?: return emptyList() val wrappers = getPsiMethodWrappers(property, true) return wrappers.filter { wrapper -> (accessor.isGetter && !wrapper.name.startsWith(JvmAbi.SETTER_PREFIX)) || @@ -194,7 +194,7 @@ public object LightClassUtil { return getPsiMethodWrapper(function) } - public fun getLightClassMethods(function: JetFunction): Collection { + public fun getLightClassMethods(function: JetFunction): List { return getPsiMethodWrappers(function, true) } @@ -295,29 +295,25 @@ public object LightClassUtil { var setterWrapper = specialSetter val additionalAccessors = arrayListOf() - if (getterWrapper == null || setterWrapper == null) { - // If some getter or setter isn't found yet try to get it from wrappers for general declaration + val wrappers = getPsiMethodWrappers(jetDeclaration, true).filter { + it.name.startsWith(JvmAbi.GETTER_PREFIX) || it.name.startsWith(JvmAbi.SETTER_PREFIX) + } - val wrappers = getPsiMethodWrappers(jetDeclaration, true).filter { - it.name.startsWith(JvmAbi.GETTER_PREFIX) || it.name.startsWith(JvmAbi.SETTER_PREFIX) - } - - for (wrapper in wrappers) { - if (wrapper.getName().startsWith(JvmAbi.SETTER_PREFIX)) { - if (setterWrapper == null || setterWrapper === specialSetter) { - setterWrapper = wrapper - } - else { - additionalAccessors.add(wrapper) - } + for (wrapper in wrappers) { + if (wrapper.getName().startsWith(JvmAbi.SETTER_PREFIX)) { + if (setterWrapper == null || setterWrapper === specialSetter) { + setterWrapper = wrapper } else { - if (getterWrapper == null || getterWrapper == specialGetter) { - getterWrapper = wrapper - } - else { - additionalAccessors.add(wrapper) - } + additionalAccessors.add(wrapper) + } + } + else { + if (getterWrapper == null || getterWrapper == specialGetter) { + getterWrapper = wrapper + } + else { + additionalAccessors.add(wrapper) } } } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt index 5ec26ede415..61caa7ac058 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/lightClassUtils.kt @@ -30,7 +30,7 @@ public fun JetDeclaration.toLightElements(): List = when (this) { is JetClassOrObject -> LightClassUtil.getPsiClass(this).singletonOrEmptyList() is JetNamedFunction, - is JetSecondaryConstructor -> LightClassUtil.getLightClassMethod(this as JetFunction).singletonOrEmptyList() + is JetSecondaryConstructor -> LightClassUtil.getLightClassMethods(this as JetFunction) is JetProperty -> LightClassUtil.getLightClassPropertyMethods(this).toList() is JetPropertyAccessor -> LightClassUtil.getLightClassAccessorMethod(this).singletonOrEmptyList() is JetParameter -> ArrayList().let { elements -> @@ -45,10 +45,10 @@ public fun JetDeclaration.toLightElements(): List = public fun PsiElement.toLightMethods(): List = when (this) { - is JetFunction -> LightClassUtil.getLightClassMethod(this).singletonOrEmptyList() + is JetFunction -> LightClassUtil.getLightClassMethods(this) is JetProperty -> LightClassUtil.getLightClassPropertyMethods(this).toList() is JetParameter -> LightClassUtil.getLightClassPropertyMethods(this).toList() - is JetPropertyAccessor -> LightClassUtil.getLightClassAccessorMethod(this).singletonOrEmptyList() + is JetPropertyAccessor -> LightClassUtil.getLightClassAccessorMethods(this) is JetClass -> LightClassUtil.getPsiClass(this)?.getConstructors()?.first().singletonOrEmptyList() is PsiMethod -> this.singletonList() else -> listOf()