[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
|
||||
}
|
||||
|
||||
if (modifierToken == KtTokens.PROTECTED_KEYWORD && isFinalExpectOrActualClass(parent)) {
|
||||
if (modifierToken == KtTokens.PROTECTED_KEYWORD && isFinalExpectClass(parent)) {
|
||||
reporter.reportOn(
|
||||
modifierSource,
|
||||
FirErrors.WRONG_MODIFIER_CONTAINING_DECLARATION,
|
||||
modifierToken,
|
||||
"final expect or actual class",
|
||||
"final expect class",
|
||||
context,
|
||||
)
|
||||
}
|
||||
@@ -277,7 +277,7 @@ object FirModifierChecker : FirBasicDeclarationChecker() {
|
||||
return firstOrNull()?.description ?: "this"
|
||||
}
|
||||
|
||||
private fun isFinalExpectOrActualClass(d: FirDeclaration?): Boolean {
|
||||
return d is FirClass && d.isFinal && (d.isExpect || d.isActual)
|
||||
private fun isFinalExpectClass(d: FirDeclaration?): Boolean {
|
||||
return d is FirClass && d.isFinal && d.isExpect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,12 +180,12 @@ object ModifierCheckerCore {
|
||||
)
|
||||
return true
|
||||
}
|
||||
if (modifier == PROTECTED_KEYWORD && isFinalExpectOrActualClass(parentDescriptor)) {
|
||||
if (modifier == PROTECTED_KEYWORD && isFinalExpectClass(parentDescriptor)) {
|
||||
trace.report(
|
||||
Errors.WRONG_MODIFIER_CONTAINING_DECLARATION.on(
|
||||
node.psi,
|
||||
modifier,
|
||||
"final expect or actual class"
|
||||
"final expect class"
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -247,7 +247,7 @@ object ModifierCheckerCore {
|
||||
return true
|
||||
}
|
||||
|
||||
private fun isFinalExpectOrActualClass(d: DeclarationDescriptor?): Boolean {
|
||||
return d is ClassDescriptor && d.isFinalOrEnum && (d.isExpect || d.isActual)
|
||||
private fun isFinalExpectClass(d: DeclarationDescriptor?): Boolean {
|
||||
return d is ClassDescriptor && d.isFinalOrEnum && d.isExpect
|
||||
}
|
||||
}
|
||||
@@ -6,25 +6,21 @@ class SimpleClass {
|
||||
}
|
||||
|
||||
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 <!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 {
|
||||
protected fun foo()
|
||||
}
|
||||
|
||||
actual open class ActOpenClass {
|
||||
actual protected fun foo() = Unit
|
||||
}
|
||||
|
||||
enum class SimpleEnum {
|
||||
ENTRY;
|
||||
|
||||
@@ -34,15 +30,7 @@ enum class SimpleEnum {
|
||||
expect enum class ExpEnumClass {
|
||||
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
|
||||
}
|
||||
|
||||
actual enum class ActEnumClass {
|
||||
ENTRY;
|
||||
|
||||
actual <!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo() = Unit
|
||||
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val bar: Int = 42
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION("protected; final expect class")!>protected<!> val bar: Int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user