Use descriptor modality in IDE inspections/intentions

This fixes KT-18160, KT-18194, KT-18195, KT-18197 ~
This commit is contained in:
Yan Zhulanow
2017-05-30 18:13:22 +03:00
parent 942fa7719a
commit e037cafe18
20 changed files with 123 additions and 67 deletions
@@ -42,7 +42,8 @@ abstract class AbstractAllOpenDeclarationAttributeAltererExtension : Declaration
declaration: DeclarationDescriptor?,
containingDeclaration: DeclarationDescriptor?,
currentModality: Modality,
bindingContext: BindingContext
bindingContext: BindingContext,
isImplicitModality: Boolean
): Modality? {
if (currentModality != Modality.FINAL) {
return null
@@ -54,7 +55,7 @@ abstract class AbstractAllOpenDeclarationAttributeAltererExtension : Declaration
val descriptor = declaration as? ClassDescriptor ?: containingDeclaration ?: return null
if (descriptor.hasSpecialAnnotation(modifierListOwner)) {
return if (modifierListOwner.hasModifier(KtTokens.FINAL_KEYWORD))
return if (!isImplicitModality && modifierListOwner.hasModifier(KtTokens.FINAL_KEYWORD))
Modality.FINAL // Explicit final
else
Modality.OPEN