Fixed EA-68937

This commit is contained in:
Valentin Kipyatkov
2015-06-01 16:37:12 +03:00
parent 9d32f5e8ed
commit 6010876c95
@@ -37,15 +37,7 @@ public open class ChangeVisibilityModifierIntention protected constructor(
val modifierList = element.getModifierList()
if (modifierList?.hasModifier(modifier) ?: false) return null
// val descriptor = element.resolveToDescriptor() as? DeclarationDescriptorWithVisibility ?: return null
val bindingContext = element.analyze()
var descriptor = (if (element is JetPrimaryConstructor) //TODO: temporary code
(element.getContainingClassOrObject().resolveToDescriptor() as ClassDescriptor).getUnsubstitutedPrimaryConstructor()
else
bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, element]) as? DeclarationDescriptorWithVisibility ?: return null
if (descriptor is ValueParameterDescriptor) {
descriptor = bindingContext[BindingContext.VALUE_PARAMETER_AS_PROPERTY, descriptor] ?: return null
}
var descriptor = element.toDescriptor() as? DeclarationDescriptorWithVisibility ?: return null
val targetVisibility = modifier.toVisibility()
if (descriptor.getVisibility() == targetVisibility) return null
@@ -76,6 +68,20 @@ public open class ChangeVisibilityModifierIntention protected constructor(
defaultRange
}
private fun JetDeclaration.toDescriptor(): DeclarationDescriptor? {
val bindingContext = analyze()
// TODO: temporary code
if (this is JetPrimaryConstructor) {
return (this.getContainingClassOrObject().resolveToDescriptor() as ClassDescriptor).getUnsubstitutedPrimaryConstructor()
}
val descriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, this]
if (descriptor is ValueParameterDescriptor) {
return bindingContext[BindingContext.VALUE_PARAMETER_AS_PROPERTY, descriptor]
}
return descriptor
}
override fun applyTo(element: JetDeclaration, editor: Editor) {
val modifierToChange = element.visibilityModifier()
if (modifierToChange != null) {