Regular modifier checker implemented (initial version). A set of tests fixed accordingly.
Most of modifier diagnostic is expressed by REDUNDANT_MODIFIER, INCOMPATIBLE_MODIFIERS, REPEATED_MODIFIER, WRONG_MODIFIER_TARGET, WRONG_MODIFIER_PARENT. A set of modifier diagnostics is not in use now (but not deleted yet).
This commit is contained in:
+2
-2
@@ -90,7 +90,7 @@ class Foo {
|
||||
|
||||
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>private val packagePrivateProperty<!> = object : MyClass(), MyTrait {}
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> val packageProtectedProperty<!> = object : MyClass(), MyTrait {}
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!WRONG_MODIFIER_TARGET!>protected<!> val packageProtectedProperty<!> = object : MyClass(), MyTrait {}
|
||||
|
||||
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>val packageInternalProperty<!> = object : MyClass(), MyTrait {}
|
||||
|
||||
@@ -98,7 +98,7 @@ class Foo {
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!>public val packagePublicProperty<!> = object : MyClass(), MyTrait {}
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> fun packageProtectedFunction()<!> = object : MyClass(), MyTrait {}
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!WRONG_MODIFIER_TARGET!>protected<!> fun packageProtectedFunction()<!> = object : MyClass(), MyTrait {}
|
||||
|
||||
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>fun packageInternalFunction()<!> = object : MyClass(), MyTrait {}
|
||||
|
||||
|
||||
+12
-12
@@ -2,18 +2,18 @@
|
||||
|
||||
// KT-3464 Front-end shouldn't allow override modifier in class declaration
|
||||
|
||||
<!ILLEGAL_MODIFIER!>override<!> class A {
|
||||
<!ILLEGAL_MODIFIER!>override<!> companion object {}
|
||||
<!ILLEGAL_MODIFIER!>open<!> companion object {}
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> companion object {}
|
||||
<!ILLEGAL_MODIFIER!>final<!> companion object {}
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> class A {
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> companion object {}
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> companion object {}
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> companion object {}
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> companion object {}
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>override<!> object B1 {}
|
||||
<!ILLEGAL_MODIFIER!>open<!> object B2 {}
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> object B3 {}
|
||||
<!ILLEGAL_MODIFIER!>final<!> object B4 {}
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> object B1 {}
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> object B2 {}
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> object B3 {}
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> object B4 {}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>override<!> enum class C {}
|
||||
<!ILLEGAL_MODIFIER!>override<!> interface D {}
|
||||
<!ILLEGAL_MODIFIER!>override<!> annotation class E
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> enum class C {}
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> interface D {}
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> annotation class E
|
||||
+4
-4
@@ -5,8 +5,8 @@ class T {
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
<!ILLEGAL_MODIFIER!>public<!> val <!UNUSED_VARIABLE!>i<!> = 11
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> val <!VARIABLE_WITH_NO_TYPE_NO_INITIALIZER, UNUSED_VARIABLE!>j<!>
|
||||
<!ILLEGAL_MODIFIER!>override<!> fun T.baz() = 2
|
||||
<!ILLEGAL_MODIFIER!>private<!> fun bar() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> val <!UNUSED_VARIABLE!>i<!> = 11
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val <!VARIABLE_WITH_NO_TYPE_NO_INITIALIZER, UNUSED_VARIABLE!>j<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun T.baz() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> fun bar() = 2
|
||||
}
|
||||
+2
-2
@@ -4,10 +4,10 @@ class T {
|
||||
fun baz() = 1
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>override<!> fun zzz() {}
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun zzz() {}
|
||||
|
||||
fun foo(t: T) {
|
||||
<!ILLEGAL_MODIFIER!>override<!> fun T.baz() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun T.baz() = 2
|
||||
|
||||
// was "Visibility is unknown yet exception"
|
||||
t.baz()
|
||||
|
||||
+5
-6
@@ -1,13 +1,12 @@
|
||||
package d
|
||||
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> val a : Int = 1
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val a : Int = 1
|
||||
|
||||
<!ILLEGAL_MODIFIER!>override<!> val c : Int = 1
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> val c : Int = 1
|
||||
|
||||
<!ILLEGAL_MODIFIER!>final<!> fun foo() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> fun foo() = 2
|
||||
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> fun baz() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> fun baz() = 2
|
||||
|
||||
class T {}
|
||||
<!ILLEGAL_MODIFIER!>override<!> fun T.bar() = 2
|
||||
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun T.bar() = 2
|
||||
Vendored
+2
-2
@@ -1,10 +1,10 @@
|
||||
package d
|
||||
|
||||
<!ILLEGAL_MODIFIER!>override<!> val f : ()-> Int = { 12 }
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> val f : ()-> Int = { 12 }
|
||||
|
||||
fun test() {
|
||||
f()
|
||||
}
|
||||
|
||||
var g: Int = 1
|
||||
<!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> set(i: Int) {}
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> set(i: Int) {}
|
||||
+2
-2
@@ -136,7 +136,7 @@ class Foo {
|
||||
|
||||
}
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> val packageProtectedProperty<!> = object : MyClass() {}
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!WRONG_MODIFIER_TARGET!>protected<!> val packageProtectedProperty<!> = object : MyClass() {}
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!>public val packagePublicProperty<!> = object : MyClass() {}
|
||||
|
||||
@@ -164,7 +164,7 @@ fun testProperties() {
|
||||
|
||||
private fun privateFunction() = object : MyClass() {fun invisible() {}}
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> fun protectedFunction()<!> = object : MyClass() {}
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!><!WRONG_MODIFIER_TARGET!>protected<!> fun protectedFunction()<!> = object : MyClass() {}
|
||||
|
||||
<!PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE!>public fun publicFunction()<!> = object : MyClass() {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user