protected is deprecated inside objects and forbidden inside annotations and enum entries
This commit is contained in:
committed by
Mikhail Glukhikh
parent
407d46baad
commit
846d7cac69
@@ -93,7 +93,7 @@ public object ModifierCheckerCore {
|
||||
private val possibleParentTargetMap = mapOf<JetModifierKeywordToken, Set<KotlinTarget>>(
|
||||
INNER_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, ENUM_ENTRY),
|
||||
OVERRIDE_KEYWORD to EnumSet.of(CLASS, ENUM_ENTRY),
|
||||
PROTECTED_KEYWORD to EnumSet.of(CLASS, ENUM_ENTRY),
|
||||
PROTECTED_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, INTERFACE, OBJECT),
|
||||
COMPANION_KEYWORD to EnumSet.of(CLASS_ONLY, ENUM_CLASS, INTERFACE)
|
||||
)
|
||||
|
||||
@@ -102,7 +102,8 @@ public object ModifierCheckerCore {
|
||||
INTERNAL_KEYWORD to EnumSet.of(INTERFACE),
|
||||
PROTECTED_KEYWORD to EnumSet.of(INTERFACE),
|
||||
// Deprecated in M15
|
||||
FINAL_KEYWORD to EnumSet.of(INTERFACE)
|
||||
FINAL_KEYWORD to EnumSet.of(INTERFACE),
|
||||
PROTECTED_KEYWORD to EnumSet.of(OBJECT)
|
||||
)
|
||||
|
||||
// First modifier in pair should be also first in declaration
|
||||
|
||||
@@ -5,7 +5,7 @@ class Test {
|
||||
public val prop1 : Int = 10
|
||||
|
||||
public var prop2 : Int = 11
|
||||
protected set
|
||||
private set
|
||||
|
||||
public val prop3: Int = 12
|
||||
get() {
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
class My(protected val x: Int) {
|
||||
class Her(protected val x: Int)
|
||||
|
||||
inner class Its(protected val x: Int)
|
||||
}
|
||||
|
||||
object Your {
|
||||
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo() = 3
|
||||
}
|
||||
|
||||
annotation class His(<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val x: Int)
|
||||
|
||||
enum class Our(protected val x: Int) {
|
||||
FIRST(42) {
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo() = 13
|
||||
}
|
||||
}
|
||||
|
||||
interface Their {
|
||||
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>protected<!> fun foo() = 7
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package
|
||||
|
||||
@kotlin.annotation.annotation() public final class His : kotlin.Annotation {
|
||||
public constructor His(/*0*/ x: kotlin.Int)
|
||||
protected final val x: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class My {
|
||||
public constructor My(/*0*/ x: kotlin.Int)
|
||||
protected final val x: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final class Her {
|
||||
public constructor Her(/*0*/ x: kotlin.Int)
|
||||
protected final val x: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Its {
|
||||
public constructor Its(/*0*/ x: kotlin.Int)
|
||||
protected final val x: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final enum class Our : kotlin.Enum<Our> {
|
||||
enum entry FIRST
|
||||
|
||||
private constructor Our(/*0*/ x: kotlin.Int)
|
||||
protected final val x: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Our): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Our
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<Our>
|
||||
}
|
||||
|
||||
public interface Their {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected open fun foo(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public object Your {
|
||||
private constructor Your()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected final fun foo(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -5,7 +5,7 @@ open class A {
|
||||
val internal_val = 1
|
||||
public val public_val: Int = 2
|
||||
private val private_val = 3
|
||||
protected val protected_val: Int = 5
|
||||
<!DEPRECATED_MODIFIER_CONTAINING_DECLARATION!>protected<!> val protected_val: Int = 5
|
||||
}
|
||||
|
||||
fun fromClass() {
|
||||
|
||||
@@ -9192,6 +9192,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("protected.kt")
|
||||
public void testProtected() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/modifiers/protected.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("redundantTargets.kt")
|
||||
public void testRedundantTargets() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/modifiers/redundantTargets.kt");
|
||||
|
||||
Reference in New Issue
Block a user