K2: Rework RedundantVisibilityModifierSyntaxChecker::implicitVisibility
Avoid assumption there, that for accessors we have a containing property in the context This necessary as a part of getting rid context modifications in checkers
This commit is contained in:
committed by
Space Team
parent
2cd6b8253f
commit
1898dfd40d
+12
-17
@@ -59,20 +59,18 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker<Fi
|
||||
) {
|
||||
var setterImplicitVisibility: Visibility? = null
|
||||
|
||||
context.withDeclaration(property) {
|
||||
property.setter?.let { setter ->
|
||||
val visibility = setter.implicitVisibility(it)
|
||||
setterImplicitVisibility = visibility
|
||||
checkElementAndReport(setter, visibility, property, it, reporter)
|
||||
}
|
||||
property.setter?.let { setter ->
|
||||
val visibility = setter.implicitVisibility(context)
|
||||
setterImplicitVisibility = visibility
|
||||
checkElementAndReport(setter, visibility, property, context, reporter)
|
||||
}
|
||||
|
||||
property.getter?.let { getter ->
|
||||
checkElementAndReport(getter, property, it, reporter)
|
||||
}
|
||||
property.getter?.let { getter ->
|
||||
checkElementAndReport(getter, property, context, reporter)
|
||||
}
|
||||
|
||||
property.backingField?.let { field ->
|
||||
checkElementAndReport(field, property, it, reporter)
|
||||
}
|
||||
property.backingField?.let { field ->
|
||||
checkElementAndReport(field, property, context, reporter)
|
||||
}
|
||||
|
||||
if (property.canMakeSetterMoreAccessible(setterImplicitVisibility)) {
|
||||
@@ -180,13 +178,10 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker<Fi
|
||||
return when {
|
||||
this is FirPropertyAccessor
|
||||
&& isSetter
|
||||
&& context.containingDeclarations.size >= 2
|
||||
&& context.containingDeclarations.asReversed()[1] is FirClass
|
||||
&& context.containingDeclarations.last() is FirClass
|
||||
&& propertySymbol.isOverride -> findPropertyAccessorVisibility(this, context)
|
||||
|
||||
this is FirPropertyAccessor -> {
|
||||
context.findClosest<FirProperty>()?.visibility ?: Visibilities.DEFAULT_VISIBILITY
|
||||
}
|
||||
this is FirPropertyAccessor -> propertySymbol.visibility
|
||||
|
||||
this is FirConstructor -> {
|
||||
val classSymbol = this.getContainingClassSymbol(context.session)
|
||||
|
||||
Reference in New Issue
Block a user