[FIR] Fix false positive EXPOSED_PARAMETER_TYPE on internal val in constructor of sealed class ^KT-51200 Fixed
This commit is contained in:
+6
-4
@@ -13,9 +13,7 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.effectiveVisibility
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.expandedConeType
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.fromPrimaryConstructor
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
@@ -103,7 +101,11 @@ object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() {
|
||||
}
|
||||
|
||||
private fun checkFunction(declaration: FirFunction, reporter: DiagnosticReporter, context: CheckerContext) {
|
||||
val functionVisibility = (declaration as FirMemberDeclaration).effectiveVisibility
|
||||
var functionVisibility = (declaration as FirMemberDeclaration).effectiveVisibility
|
||||
|
||||
if (declaration is FirConstructor && declaration.isFromSealedClass) {
|
||||
functionVisibility = EffectiveVisibility.PrivateInClass
|
||||
}
|
||||
|
||||
if (functionVisibility == EffectiveVisibility.Local) return
|
||||
if (declaration !is FirConstructor && declaration !is FirPropertyAccessor) {
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
// ISSUE: KT-45033
|
||||
// DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
internal class Bar
|
||||
|
||||
sealed class Foo(
|
||||
<!EXPOSED_PARAMETER_TYPE!>internal val x: Bar<!>,
|
||||
<!EXPOSED_PARAMETER_TYPE!>y: Bar<!>
|
||||
)
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// ISSUE: KT-45033
|
||||
// DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
private class Bar
|
||||
|
||||
sealed class SealedFoo(
|
||||
<!EXPOSED_PARAMETER_TYPE!>val <!EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING!>x<!>: Bar<!>,
|
||||
<!EXPOSED_PARAMETER_TYPE!>private val y: Bar<!>,
|
||||
<!EXPOSED_PARAMETER_TYPE!>z: Bar<!>
|
||||
val <!EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING!>x<!>: Bar,
|
||||
private val y: Bar,
|
||||
z: Bar
|
||||
)
|
||||
|
||||
abstract class AbstractFoo(
|
||||
|
||||
Reference in New Issue
Block a user