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
|
var setterImplicitVisibility: Visibility? = null
|
||||||
|
|
||||||
context.withDeclaration(property) {
|
property.setter?.let { setter ->
|
||||||
property.setter?.let { setter ->
|
val visibility = setter.implicitVisibility(context)
|
||||||
val visibility = setter.implicitVisibility(it)
|
setterImplicitVisibility = visibility
|
||||||
setterImplicitVisibility = visibility
|
checkElementAndReport(setter, visibility, property, context, reporter)
|
||||||
checkElementAndReport(setter, visibility, property, it, reporter)
|
}
|
||||||
}
|
|
||||||
|
|
||||||
property.getter?.let { getter ->
|
property.getter?.let { getter ->
|
||||||
checkElementAndReport(getter, property, it, reporter)
|
checkElementAndReport(getter, property, context, reporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
property.backingField?.let { field ->
|
property.backingField?.let { field ->
|
||||||
checkElementAndReport(field, property, it, reporter)
|
checkElementAndReport(field, property, context, reporter)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property.canMakeSetterMoreAccessible(setterImplicitVisibility)) {
|
if (property.canMakeSetterMoreAccessible(setterImplicitVisibility)) {
|
||||||
@@ -180,13 +178,10 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker<Fi
|
|||||||
return when {
|
return when {
|
||||||
this is FirPropertyAccessor
|
this is FirPropertyAccessor
|
||||||
&& isSetter
|
&& isSetter
|
||||||
&& context.containingDeclarations.size >= 2
|
&& context.containingDeclarations.last() is FirClass
|
||||||
&& context.containingDeclarations.asReversed()[1] is FirClass
|
|
||||||
&& propertySymbol.isOverride -> findPropertyAccessorVisibility(this, context)
|
&& propertySymbol.isOverride -> findPropertyAccessorVisibility(this, context)
|
||||||
|
|
||||||
this is FirPropertyAccessor -> {
|
this is FirPropertyAccessor -> propertySymbol.visibility
|
||||||
context.findClosest<FirProperty>()?.visibility ?: Visibilities.DEFAULT_VISIBILITY
|
|
||||||
}
|
|
||||||
|
|
||||||
this is FirConstructor -> {
|
this is FirConstructor -> {
|
||||||
val classSymbol = this.getContainingClassSymbol(context.session)
|
val classSymbol = this.getContainingClassSymbol(context.session)
|
||||||
|
|||||||
Reference in New Issue
Block a user