Decrease visibility fix is now active for exposed visibility errors #KT-11920 Fixed

This commit is contained in:
Mikhail Glukhikh
2016-04-18 19:25:13 +03:00
committed by Mikhail Glukhikh
parent 934c374030
commit d5b9a336a3
23 changed files with 286 additions and 26 deletions
@@ -21,6 +21,10 @@ import com.intellij.psi.PsiWhiteSpace
import com.intellij.psi.impl.source.codeStyle.CodeEditUtil
import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
import org.jetbrains.kotlin.lexer.KtTokens
@@ -166,6 +170,20 @@ fun KtClass.getOrCreateCompanionObject() : KtObjectDeclaration {
return addDeclaration(KtPsiFactory(this).createCompanionObject())
}
fun KtDeclaration.toDescriptor(): DeclarationDescriptor? {
val bindingContext = analyze()
// TODO: temporary code
if (this is KtPrimaryConstructor) {
return (this.getContainingClassOrObject().resolveToDescriptor() as ClassDescriptor).unsubstitutedPrimaryConstructor
}
val descriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, this]
if (descriptor is ValueParameterDescriptor) {
return bindingContext[BindingContext.VALUE_PARAMETER_AS_PROPERTY, descriptor]
}
return descriptor
}
//TODO: code style option whether to insert redundant 'public' keyword or not
fun KtModifierListOwner.setVisibility(visibilityModifier: KtModifierKeywordToken) {
if (this is KtDeclaration) {