Introduce KtClassOrObject.resolveToDescriptorIfAny()

This commit is contained in:
Mikhail Glukhikh
2018-02-20 17:55:30 +03:00
parent bd0cbb716c
commit 5848bc9a44
18 changed files with 25 additions and 29 deletions
@@ -50,7 +50,7 @@ class ImplementAsConstructorParameter : ImplementMembersHandler() {
override fun isValidForClass(classOrObject: KtClassOrObject): Boolean {
if (classOrObject !is KtClass || classOrObject is KtEnumEntry || classOrObject.isInterface()) return false
val classDescriptor = classOrObject.resolveToDescriptorIfAny() as? ClassDescriptor ?: return false
val classDescriptor = classOrObject.resolveToDescriptorIfAny() ?: return false
return OverrideResolver.getMissingImplementations(classDescriptor).any { it is PropertyDescriptor }
}
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
abstract class OverrideImplementMembersHandler : LanguageCodeInsightActionHandler {
fun collectMembersToGenerate(classOrObject: KtClassOrObject): Collection<OverrideMemberChooserObject> {
val descriptor = classOrObject.resolveToDescriptorIfAny() as? ClassDescriptor ?: return emptySet()
val descriptor = classOrObject.resolveToDescriptorIfAny() ?: return emptySet()
return collectMembersToGenerate(descriptor, classOrObject.project)
}
@@ -214,7 +214,7 @@ fun KtDeclaration.toDescriptor(): DeclarationDescriptor? {
val bindingContext = analyze()
// TODO: temporary code
if (this is KtPrimaryConstructor) {
return (this.getContainingClassOrObject().resolveToDescriptorIfAny() as? ClassDescriptor)?.unsubstitutedPrimaryConstructor
return this.getContainingClassOrObject().resolveToDescriptorIfAny()?.unsubstitutedPrimaryConstructor
}
val descriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, this]