[FE] Revert prohibition of protected members inside actual final classes
^KT-28850 Fixed
This commit is contained in:
committed by
Space Team
parent
88488f4dc9
commit
9044dfe394
+4
-4
@@ -250,12 +250,12 @@ object FirModifierChecker : FirBasicDeclarationChecker() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modifierToken == KtTokens.PROTECTED_KEYWORD && isFinalExpectOrActualClass(parent)) {
|
if (modifierToken == KtTokens.PROTECTED_KEYWORD && isFinalExpectClass(parent)) {
|
||||||
reporter.reportOn(
|
reporter.reportOn(
|
||||||
modifierSource,
|
modifierSource,
|
||||||
FirErrors.WRONG_MODIFIER_CONTAINING_DECLARATION,
|
FirErrors.WRONG_MODIFIER_CONTAINING_DECLARATION,
|
||||||
modifierToken,
|
modifierToken,
|
||||||
"final expect or actual class",
|
"final expect class",
|
||||||
context,
|
context,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -277,7 +277,7 @@ object FirModifierChecker : FirBasicDeclarationChecker() {
|
|||||||
return firstOrNull()?.description ?: "this"
|
return firstOrNull()?.description ?: "this"
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isFinalExpectOrActualClass(d: FirDeclaration?): Boolean {
|
private fun isFinalExpectClass(d: FirDeclaration?): Boolean {
|
||||||
return d is FirClass && d.isFinal && (d.isExpect || d.isActual)
|
return d is FirClass && d.isFinal && d.isExpect
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,12 +180,12 @@ object ModifierCheckerCore {
|
|||||||
)
|
)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if (modifier == PROTECTED_KEYWORD && isFinalExpectOrActualClass(parentDescriptor)) {
|
if (modifier == PROTECTED_KEYWORD && isFinalExpectClass(parentDescriptor)) {
|
||||||
trace.report(
|
trace.report(
|
||||||
Errors.WRONG_MODIFIER_CONTAINING_DECLARATION.on(
|
Errors.WRONG_MODIFIER_CONTAINING_DECLARATION.on(
|
||||||
node.psi,
|
node.psi,
|
||||||
modifier,
|
modifier,
|
||||||
"final expect or actual class"
|
"final expect class"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -247,7 +247,7 @@ object ModifierCheckerCore {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isFinalExpectOrActualClass(d: DeclarationDescriptor?): Boolean {
|
private fun isFinalExpectClass(d: DeclarationDescriptor?): Boolean {
|
||||||
return d is ClassDescriptor && d.isFinalOrEnum && (d.isExpect || d.isActual)
|
return d is ClassDescriptor && d.isFinalOrEnum && d.isExpect
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,25 +6,21 @@ class SimpleClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
expect class ExpClass {
|
expect class ExpClass {
|
||||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo()
|
<!WRONG_MODIFIER_CONTAINING_DECLARATION("protected; final expect class")!>protected<!> fun foo()
|
||||||
|
|
||||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val bar: Int
|
<!WRONG_MODIFIER_CONTAINING_DECLARATION("protected; final expect class")!>protected<!> val bar: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
actual class ActClass {
|
actual class ActClass {
|
||||||
actual <!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo() = Unit
|
actual protected fun foo() = Unit
|
||||||
|
|
||||||
actual <!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val bar: Int = 42
|
actual protected val bar: Int = 42
|
||||||
}
|
}
|
||||||
|
|
||||||
expect open class ExpOpenClass {
|
expect open class ExpOpenClass {
|
||||||
protected fun foo()
|
protected fun foo()
|
||||||
}
|
}
|
||||||
|
|
||||||
actual open class ActOpenClass {
|
|
||||||
actual protected fun foo() = Unit
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class SimpleEnum {
|
enum class SimpleEnum {
|
||||||
ENTRY;
|
ENTRY;
|
||||||
|
|
||||||
@@ -34,15 +30,7 @@ enum class SimpleEnum {
|
|||||||
expect enum class ExpEnumClass {
|
expect enum class ExpEnumClass {
|
||||||
ENTRY;
|
ENTRY;
|
||||||
|
|
||||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo()
|
<!WRONG_MODIFIER_CONTAINING_DECLARATION("protected; final expect class")!>protected<!> fun foo()
|
||||||
|
|
||||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val bar: Int
|
<!WRONG_MODIFIER_CONTAINING_DECLARATION("protected; final expect class")!>protected<!> val bar: Int
|
||||||
}
|
|
||||||
|
|
||||||
actual enum class ActEnumClass {
|
|
||||||
ENTRY;
|
|
||||||
|
|
||||||
actual <!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo() = Unit
|
|
||||||
|
|
||||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val bar: Int = 42
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user