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:
+19
-19
@@ -3,44 +3,44 @@ package MyPackage
|
||||
//properties
|
||||
<!MUST_BE_INITIALIZED!>val a: Int<!>
|
||||
val a1: Int = 1
|
||||
<!MUST_BE_INITIALIZED!><!ILLEGAL_MODIFIER!>abstract<!> val a2: Int<!>
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> val a3: Int = 1
|
||||
<!MUST_BE_INITIALIZED!><!WRONG_MODIFIER_TARGET!>abstract<!> val a2: Int<!>
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val a3: Int = 1
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var b: Int<!> private set
|
||||
var b1: Int = 0; private set
|
||||
<!MUST_BE_INITIALIZED!><!ILLEGAL_MODIFIER!>abstract<!> var b2: Int<!> private set
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> var b3: Int = 0; private set
|
||||
<!MUST_BE_INITIALIZED!><!WRONG_MODIFIER_TARGET!>abstract<!> var b2: Int<!> private set
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> var b3: Int = 0; private set
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { $c = v }
|
||||
var c1: Int = 0; set(v: Int) { $c1 = v }
|
||||
<!MUST_BE_INITIALIZED!><!ILLEGAL_MODIFIER!>abstract<!> var c2: Int<!> set(v: Int) { $c2 = v }
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> var c3: Int = 0; set(v: Int) { $c3 = v }
|
||||
<!MUST_BE_INITIALIZED!><!WRONG_MODIFIER_TARGET!>abstract<!> var c2: Int<!> set(v: Int) { $c2 = v }
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> var c3: Int = 0; set(v: Int) { $c3 = v }
|
||||
|
||||
val e: Int get() = a
|
||||
val e1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = a
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> val e2: Int get() = a
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> val e3: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = a
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val e2: Int get() = a
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val e3: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = a
|
||||
|
||||
//methods
|
||||
<!NON_MEMBER_FUNCTION_NO_BODY!>fun f()<!>
|
||||
fun g() {}
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> fun h()
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> fun j() {}
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> fun h()
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var j: Int get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j: Int get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var k: Int<!> <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var k1: Int = 0; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
<!MUST_BE_INITIALIZED!>var k: Int<!> <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var k1: Int = 0; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var l: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||
var n: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set(v: Int) {}
|
||||
|
||||
// FILE: c.kt
|
||||
//creating an instance
|
||||
|
||||
@@ -29,17 +29,17 @@ abstract class MyAbstractClass() {
|
||||
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var j: Int get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j1: Int get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j: Int get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var j1: Int get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var k1: Int = 0; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var k1: Int = 0; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var l: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||
var n: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set(v: Int) {}
|
||||
}
|
||||
+9
-9
@@ -29,17 +29,17 @@ class MyClass() {
|
||||
<!ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS, ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var j: Int get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j: Int get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var k1: Int = 0; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var k1: Int = 0; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var l: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||
var n: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set(v: Int) {}
|
||||
}
|
||||
+9
-9
@@ -29,17 +29,17 @@ interface MyTrait {
|
||||
<!ABSTRACT_MODIFIER_IN_TRAIT, ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var j: Int get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j: Int get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var k: Int <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var k1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var k: Int <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var k1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var l: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_IN_TRAIT!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||
var n: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set(v: Int) {}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ annotation class Annotation4() <!ANNOTATION_CLASS_WITH_BODY!>{
|
||||
}<!>
|
||||
|
||||
annotation class Annotation5() <!ANNOTATION_CLASS_WITH_BODY!>{
|
||||
companion object {}
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {}
|
||||
}<!>
|
||||
|
||||
annotation class Annotation6() <!ANNOTATION_CLASS_WITH_BODY!>{
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
class A {
|
||||
<!WRONG_ANNOTATION_TARGET!>ann<!> init {}
|
||||
<!WRONG_ANNOTATION_TARGET!>@ann<!> init {}
|
||||
<!UNRESOLVED_REFERENCE, WRONG_ANNOTATION_TARGET!>aaa<!> init {}
|
||||
<!UNRESOLVED_REFERENCE, WRONG_ANNOTATION_TARGET!>@aaa<!> init {}
|
||||
<!WRONG_ANNOTATION_TARGET, UNRESOLVED_REFERENCE!>aaa<!> init {}
|
||||
<!WRONG_ANNOTATION_TARGET, UNRESOLVED_REFERENCE!>@aaa<!> init {}
|
||||
}
|
||||
|
||||
interface T {
|
||||
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!WRONG_ANNOTATION_TARGET!>ann<!> init {}<!>
|
||||
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!WRONG_ANNOTATION_TARGET!>@ann<!> init {}<!>
|
||||
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!UNRESOLVED_REFERENCE, WRONG_ANNOTATION_TARGET!>aaa<!> init {}<!>
|
||||
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!UNRESOLVED_REFERENCE, WRONG_ANNOTATION_TARGET!>@aaa<!> init {}<!>
|
||||
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!WRONG_ANNOTATION_TARGET, UNRESOLVED_REFERENCE!>aaa<!> init {}<!>
|
||||
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!WRONG_ANNOTATION_TARGET, UNRESOLVED_REFERENCE!>@aaa<!> init {}<!>
|
||||
}
|
||||
|
||||
annotation class ann
|
||||
@@ -26,7 +26,7 @@ class B() {
|
||||
}
|
||||
|
||||
object b {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object {
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {
|
||||
val x = 1
|
||||
} // error
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
class A {
|
||||
inner class B {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object { }
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object { }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
fun test() {
|
||||
class A {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object {}
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {}
|
||||
}
|
||||
|
||||
object {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object {}
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {}
|
||||
}
|
||||
}
|
||||
+6
-6
@@ -1,17 +1,17 @@
|
||||
class A {
|
||||
inner class I {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object A
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object A
|
||||
|
||||
<!MANY_COMPANION_OBJECTS, COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object B
|
||||
<!MANY_COMPANION_OBJECTS, WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object B
|
||||
|
||||
<!MANY_COMPANION_OBJECTS, COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object C
|
||||
<!MANY_COMPANION_OBJECTS, WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object C
|
||||
}
|
||||
}
|
||||
|
||||
object O {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object A
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object A
|
||||
|
||||
<!MANY_COMPANION_OBJECTS, COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object B
|
||||
<!MANY_COMPANION_OBJECTS, WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object B
|
||||
|
||||
<!MANY_COMPANION_OBJECTS, COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object C
|
||||
<!MANY_COMPANION_OBJECTS, WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object C
|
||||
}
|
||||
+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() {}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ interface T {}
|
||||
|
||||
class Br(t : T) : T by t {}
|
||||
|
||||
<!OPEN_MODIFIER_IN_ENUM!>open<!> enum class EN() {
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> enum class EN() {
|
||||
A
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
package abstract
|
||||
|
||||
<!ABSTRACT_MODIFIER_IN_ENUM!>abstract<!> enum class MyAbstractEnum() {}
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> enum class MyAbstractEnum() {}
|
||||
@@ -30,17 +30,17 @@ enum class MyEnum() {
|
||||
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var i: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var j: Int get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var j: Int get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var k1: Int = 0; <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var k1: Int = 0; <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var l: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
var l: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
var n: Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set(v: Int) {}
|
||||
var n: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set(v: Int) {}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ enum class E {
|
||||
FIRST,
|
||||
|
||||
SECOND {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object {
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {
|
||||
fun foo() = 42
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
enum class B {}
|
||||
|
||||
class A {
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> companion object {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> companion object {}
|
||||
}
|
||||
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> object O {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> object O {}
|
||||
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> interface T {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> interface T {}
|
||||
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> fun f() = 0
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> fun f() = 0
|
||||
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> val x = 0
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> val x = 0
|
||||
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> var y = 0
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> var y = 0
|
||||
@@ -2,7 +2,7 @@
|
||||
public enum MyJavaEnum {}
|
||||
|
||||
// FILE: test.kt
|
||||
<!OPEN_MODIFIER_IN_ENUM!>open<!> enum class MyEnum() {
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> enum class MyEnum() {
|
||||
A()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!> interface Some {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> interface Some {
|
||||
// Enum part
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED, ENUM_ENTRY_USES_DEPRECATED_OR_NO_DELIMITER!>D<!>
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
enum class E {
|
||||
<!ILLEGAL_MODIFIER!>public<!> <!ILLEGAL_MODIFIER!>final<!> SUBCLASS {
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_MODIFIER_TARGET!>final<!> SUBCLASS {
|
||||
fun foo() {}
|
||||
},
|
||||
|
||||
<!ILLEGAL_MODIFIER!>public<!> PUBLIC,
|
||||
<!ILLEGAL_MODIFIER!>protected<!> PROTECTED,
|
||||
<!ILLEGAL_MODIFIER!>private<!> PRIVATE,
|
||||
<!ILLEGAL_MODIFIER!>internal<!> INTERNAL,
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> PUBLIC,
|
||||
<!WRONG_MODIFIER_TARGET!>protected<!> PROTECTED,
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> PRIVATE,
|
||||
<!WRONG_MODIFIER_TARGET!>internal<!> INTERNAL,
|
||||
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> ABSTRACT,
|
||||
<!ILLEGAL_MODIFIER!>open<!> OPEN,
|
||||
<!ILLEGAL_MODIFIER!>override<!> OVERRIDE,
|
||||
<!ILLEGAL_MODIFIER!>final<!> FINAL,
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> ABSTRACT,
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> OPEN,
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> OVERRIDE,
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> FINAL,
|
||||
|
||||
<!ILLEGAL_MODIFIER!>inner<!> INNER,
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> INNER,
|
||||
<!ENUM_ENTRY_USES_DEPRECATED_OR_NO_DELIMITER!>annotation<!> ANNOTATION,
|
||||
<!ILLEGAL_MODIFIER!>enum<!> ENUM,
|
||||
<!ILLEGAL_MODIFIER!>out<!> OUT,
|
||||
<!ILLEGAL_MODIFIER!>in<!> IN,
|
||||
<!ILLEGAL_MODIFIER!>vararg<!> VARARG,
|
||||
<!ILLEGAL_MODIFIER!>reified<!> REIFIED
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> ENUM,
|
||||
<!WRONG_MODIFIER_TARGET!>out<!> OUT,
|
||||
<!WRONG_MODIFIER_TARGET!>in<!> IN,
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!> VARARG,
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!> REIFIED
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ abstract class Test() {
|
||||
abstract var v8 : Int get set
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var v9 : Int<!> set
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var v10 : Int<!> get
|
||||
abstract val v11 : Int <!ILLEGAL_MODIFIER!>abstract<!> get
|
||||
abstract var v12 : Int <!ILLEGAL_MODIFIER!>abstract<!> get <!ILLEGAL_MODIFIER!>abstract<!> set
|
||||
abstract val v11 : Int <!WRONG_MODIFIER_TARGET!>abstract<!> get
|
||||
abstract var v12 : Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ class A<T> {
|
||||
class B {
|
||||
fun test() {
|
||||
class C<W>() : P<W, <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>T<!>> {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object : P<<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>W<!>, <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>T<!>> {
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object : P<<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>W<!>, <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>T<!>> {
|
||||
}
|
||||
|
||||
inner class D : P<W, <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>T<!>>
|
||||
|
||||
+14
-14
@@ -1,21 +1,21 @@
|
||||
<!ILLEGAL_MODIFIER!>inner<!> fun foo() {}
|
||||
<!ILLEGAL_MODIFIER!>inner<!> val prop = 42
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> fun foo() {}
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> val prop = 42
|
||||
|
||||
<!ILLEGAL_MODIFIER!>inner<!> class A
|
||||
<!ILLEGAL_MODIFIER!>inner<!> interface B
|
||||
<!ILLEGAL_MODIFIER!>inner<!> object C
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> class A
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> interface B
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> object C
|
||||
|
||||
class D {
|
||||
inner class E
|
||||
<!ILLEGAL_MODIFIER!>inner<!> interface F
|
||||
<!ILLEGAL_MODIFIER!>inner<!> object G
|
||||
<!ILLEGAL_MODIFIER!>inner<!> enum class R
|
||||
<!ILLEGAL_MODIFIER!>inner<!> annotation class S
|
||||
<!ILLEGAL_MODIFIER!>inner<!> companion object
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> interface F
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> object G
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> enum class R
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> annotation class S
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> companion object
|
||||
}
|
||||
|
||||
enum class H {
|
||||
<!ILLEGAL_MODIFIER!>inner<!> I {
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> I {
|
||||
inner class II
|
||||
};
|
||||
|
||||
@@ -23,16 +23,16 @@ enum class H {
|
||||
}
|
||||
|
||||
interface K {
|
||||
<!INNER_CLASS_IN_TRAIT!>inner<!> class L
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> class L
|
||||
}
|
||||
|
||||
object N {
|
||||
<!INNER_CLASS_IN_OBJECT!>inner<!> class O
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> class O
|
||||
}
|
||||
|
||||
class P {
|
||||
companion object {
|
||||
<!INNER_CLASS_IN_OBJECT!>inner<!> class Q
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> class Q
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!UNRESOLVED_REFERENCE!>myAnnotation<!> <!ILLEGAL_MODIFIER!>public<!> package illegal_modifiers
|
||||
<!UNRESOLVED_REFERENCE!>myAnnotation<!> <!WRONG_MODIFIER_TARGET!>public<!> package illegal_modifiers
|
||||
|
||||
abstract class A() {
|
||||
<!INCOMPATIBLE_MODIFIERS!>abstract<!> <!INCOMPATIBLE_MODIFIERS!>final<!> fun f()
|
||||
@@ -7,17 +7,17 @@ abstract class A() {
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>open var r: String<!>
|
||||
get
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> protected set
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> protected set
|
||||
}
|
||||
|
||||
<!TRAIT_CAN_NOT_BE_FINAL!>final<!> interface T {}
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> interface T {}
|
||||
|
||||
class FinalClass() {
|
||||
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun foo() {}
|
||||
val i: Int = 1
|
||||
<!ILLEGAL_MODIFIER!>open<!> get(): Int = $i
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> get(): Int = $i
|
||||
var j: Int = 1
|
||||
<!ILLEGAL_MODIFIER!>open<!> set(v: Int) {}
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> set(v: Int) {}
|
||||
}
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>public<!> class C
|
||||
@@ -31,104 +31,104 @@ class LegalModifier(val a: Int, annotated private var b: String, annotated varar
|
||||
|
||||
//Check illegal modifier in constructor parameters
|
||||
class IllegalModifiers1(
|
||||
<!ILLEGAL_MODIFIER!>in<!>
|
||||
<!ILLEGAL_MODIFIER!>out<!>
|
||||
<!ILLEGAL_MODIFIER!>reified<!>
|
||||
<!ILLEGAL_MODIFIER!>enum<!>
|
||||
<!ILLEGAL_MODIFIER!>private<!>
|
||||
<!WRONG_MODIFIER_TARGET!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>private<!>
|
||||
<!UNUSED_PARAMETER!>a<!>: Int)
|
||||
|
||||
//Check multiple illegal modifiers in constructor
|
||||
class IllegalModifiers2(<!ILLEGAL_MODIFIER!>private<!> <!ILLEGAL_MODIFIER!>abstract<!> <!UNUSED_PARAMETER!>a<!>: Int)
|
||||
class IllegalModifiers2(<!WRONG_MODIFIER_TARGET!>private<!> <!WRONG_MODIFIER_TARGET!>abstract<!> <!UNUSED_PARAMETER!>a<!>: Int)
|
||||
|
||||
|
||||
//Check annotations with illegal modifiers in constructor
|
||||
class IllegalModifiers3(annotated <!ILLEGAL_MODIFIER!>public<!> <!ILLEGAL_MODIFIER!>abstract<!> <!UNUSED_PARAMETER!>b<!>: String)
|
||||
class IllegalModifiers3(annotated <!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_MODIFIER_TARGET!>abstract<!> <!UNUSED_PARAMETER!>b<!>: String)
|
||||
|
||||
//Check annotations and vararg with illegal modifiers in constructor
|
||||
class IllegalModifiers4(val a: Int, annotated("a text") <!ILLEGAL_MODIFIER!>protected<!> vararg <!UNUSED_PARAMETER!>v<!>: Int)
|
||||
class IllegalModifiers4(val a: Int, annotated("a text") <!WRONG_MODIFIER_TARGET!>protected<!> vararg <!UNUSED_PARAMETER!>v<!>: Int)
|
||||
|
||||
//Check illegal modifiers for functions and catch block
|
||||
abstract class IllegalModifiers5() {
|
||||
|
||||
//Check illegal modifier in function parameter
|
||||
abstract fun foo(<!ILLEGAL_MODIFIER!>public<!> a: Int, vararg v: String)
|
||||
abstract fun foo(<!WRONG_MODIFIER_TARGET!>public<!> a: Int, vararg v: String)
|
||||
|
||||
//Check multiple illegal modifiers in function parameter
|
||||
abstract fun bar(<!ILLEGAL_MODIFIER!>public<!> <!ILLEGAL_MODIFIER!>abstract<!> a: Int, vararg v: String)
|
||||
abstract fun bar(<!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_MODIFIER_TARGET!>abstract<!> a: Int, vararg v: String)
|
||||
|
||||
//Check annotations with illegal modifiers
|
||||
abstract fun baz(annotated("a text") <!ILLEGAL_MODIFIER!>public<!> <!ILLEGAL_MODIFIER!>abstract<!> a: Int)
|
||||
abstract fun baz(annotated("a text") <!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_MODIFIER_TARGET!>abstract<!> a: Int)
|
||||
|
||||
private fun qux() {
|
||||
|
||||
//Check illegal modifier in catch block
|
||||
try {} catch (<!ILLEGAL_MODIFIER!>in<!> <!ILLEGAL_MODIFIER!>out<!> <!ILLEGAL_MODIFIER!>reified<!> <!ILLEGAL_MODIFIER!>enum<!> <!ILLEGAL_MODIFIER!>public<!> e: Exception) {}
|
||||
try {} catch (<!WRONG_MODIFIER_TARGET!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> <!WRONG_MODIFIER_TARGET!>reified<!> <!WRONG_MODIFIER_TARGET!>enum<!> <!WRONG_MODIFIER_TARGET!>public<!> e: Exception) {}
|
||||
|
||||
//Check multiple illegal modifiers in catch block
|
||||
try {} catch (<!ILLEGAL_MODIFIER!>in<!> <!ILLEGAL_MODIFIER!>out<!> <!ILLEGAL_MODIFIER!>reified<!> <!ILLEGAL_MODIFIER!>enum<!> <!ILLEGAL_MODIFIER!>abstract<!> <!ILLEGAL_MODIFIER!>public<!> e: Exception) {}
|
||||
try {} catch (<!WRONG_MODIFIER_TARGET!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> <!WRONG_MODIFIER_TARGET!>reified<!> <!WRONG_MODIFIER_TARGET!>enum<!> <!WRONG_MODIFIER_TARGET!>abstract<!> <!WRONG_MODIFIER_TARGET!>public<!> e: Exception) {}
|
||||
|
||||
//Check annotations with illegal modifiers
|
||||
try {} catch (annotated("a text") <!ILLEGAL_MODIFIER!>abstract<!> <!ILLEGAL_MODIFIER!>public<!> e: Exception) {}
|
||||
try {} catch (annotated("a text") <!WRONG_MODIFIER_TARGET!>abstract<!> <!WRONG_MODIFIER_TARGET!>public<!> e: Exception) {}
|
||||
}
|
||||
}
|
||||
|
||||
//Check illegal modifiers on anonymous initializers
|
||||
abstract class IllegalModifiers6() {
|
||||
<!ILLEGAL_MODIFIER!>public<!> init {}
|
||||
<!ILLEGAL_MODIFIER!>private<!> init {}
|
||||
<!ILLEGAL_MODIFIER!>protected<!> init {}
|
||||
<!ILLEGAL_MODIFIER!>vararg<!> init {}
|
||||
<!ILLEGAL_MODIFIER!>abstract<!> init {}
|
||||
<!ILLEGAL_MODIFIER!>open<!> init {}
|
||||
<!ILLEGAL_MODIFIER!>final<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>protected<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> init {}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>public<!> <!WRONG_ANNOTATION_TARGET!>annotated<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_ANNOTATION_TARGET!>annotated<!> init {}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>private<!> <!NOT_AN_ANNOTATION_CLASS, WRONG_ANNOTATION_TARGET!>IllegalModifiers6()<!> init {}
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> <!WRONG_ANNOTATION_TARGET, NOT_AN_ANNOTATION_CLASS!>IllegalModifiers6()<!> init {}
|
||||
}
|
||||
|
||||
// strange inappropriate modifiers usages
|
||||
<!ILLEGAL_MODIFIER!>override<!>
|
||||
<!ILLEGAL_MODIFIER!>out<!>
|
||||
<!ILLEGAL_MODIFIER!>in<!>
|
||||
<!ILLEGAL_MODIFIER!>vararg<!>
|
||||
<!ILLEGAL_MODIFIER!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
class IllegalModifiers7() {
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!>
|
||||
<!ILLEGAL_MODIFIER!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_ANNOTATION_TARGET!>annotation<!>
|
||||
<!ILLEGAL_MODIFIER!>out<!>
|
||||
<!ILLEGAL_MODIFIER!>in<!>
|
||||
<!ILLEGAL_MODIFIER!>vararg<!>
|
||||
<!ILLEGAL_MODIFIER!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
val x = 1
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!>
|
||||
<!ILLEGAL_MODIFIER!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_ANNOTATION_TARGET!>annotation<!>
|
||||
<!ILLEGAL_MODIFIER!>out<!>
|
||||
<!ILLEGAL_MODIFIER!>in<!>
|
||||
<!ILLEGAL_MODIFIER!>vararg<!>
|
||||
<!ILLEGAL_MODIFIER!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
// Secondary constructors
|
||||
class IllegalModifiers8 {
|
||||
<!ILLEGAL_MODIFIER, INCOMPATIBLE_MODIFIERS!>abstract<!>
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!>
|
||||
<!ILLEGAL_MODIFIER, REDUNDANT_MODIFIER, REDUNDANT_MODIFIER, INCOMPATIBLE_MODIFIERS!>open<!>
|
||||
<!ILLEGAL_MODIFIER!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!REDUNDANT_MODIFIER!>open<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_ANNOTATION_TARGET!>annotation<!>
|
||||
<!ILLEGAL_MODIFIER!>override<!>
|
||||
<!ILLEGAL_MODIFIER!>out<!>
|
||||
<!ILLEGAL_MODIFIER!>in<!>
|
||||
<!ILLEGAL_MODIFIER, INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
<!ILLEGAL_MODIFIER!>vararg<!>
|
||||
<!ILLEGAL_MODIFIER!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
constructor() {}
|
||||
|
||||
constructor(<!ILLEGAL_MODIFIER!>private<!> <!ILLEGAL_MODIFIER!>enum<!> <!ILLEGAL_MODIFIER!>abstract<!> <!UNUSED_PARAMETER!>x<!>: Int) {}
|
||||
constructor(<!WRONG_MODIFIER_TARGET!>private<!> <!WRONG_MODIFIER_TARGET!>enum<!> <!WRONG_MODIFIER_TARGET!>abstract<!> <!UNUSED_PARAMETER!>x<!>: Int) {}
|
||||
}
|
||||
|
||||
class IllegalModifiers9 {
|
||||
@@ -139,16 +139,16 @@ class IllegalModifiers9 {
|
||||
// Illegal modifiers on primary constructor
|
||||
|
||||
class IllegalModifiers10
|
||||
<!ILLEGAL_MODIFIER, INCOMPATIBLE_MODIFIERS!>abstract<!>
|
||||
<!ILLEGAL_ENUM_ANNOTATION!>enum<!>
|
||||
<!ILLEGAL_MODIFIER, REDUNDANT_MODIFIER, REDUNDANT_MODIFIER, INCOMPATIBLE_MODIFIERS!>open<!>
|
||||
<!ILLEGAL_MODIFIER!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!REDUNDANT_MODIFIER!>open<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_ANNOTATION_TARGET!>annotation<!>
|
||||
<!ILLEGAL_MODIFIER!>override<!>
|
||||
<!ILLEGAL_MODIFIER!>out<!>
|
||||
<!ILLEGAL_MODIFIER!>in<!>
|
||||
<!ILLEGAL_MODIFIER, INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
<!ILLEGAL_MODIFIER!>vararg<!>
|
||||
<!ILLEGAL_MODIFIER!>reified<!> constructor()
|
||||
<!WRONG_MODIFIER_TARGET!>override<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!> constructor()
|
||||
|
||||
class IllegalModifiers11 <!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>protected<!> constructor()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!ILLEGAL_MODIFIER!>companion<!> class A {
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> class A {
|
||||
companion object {
|
||||
|
||||
}
|
||||
@@ -18,38 +18,38 @@ class C {
|
||||
|
||||
class D {
|
||||
companion object A {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object {
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>companion<!> object G {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object G {
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>companion<!> interface H {
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> interface H {
|
||||
companion object
|
||||
}
|
||||
|
||||
class J {
|
||||
companion object C {
|
||||
<!COMPANION_OBJECT_NOT_ALLOWED!>companion<!> object
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object
|
||||
}
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>companion<!> enum class Enum {
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> enum class Enum {
|
||||
E1,
|
||||
E2;
|
||||
|
||||
companion object
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>companion<!> fun main() {
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> fun main() {
|
||||
|
||||
}
|
||||
|
||||
<!ILLEGAL_MODIFIER!>companion<!> var prop: Int = 1
|
||||
<!ILLEGAL_MODIFIER!>companion<!> get
|
||||
<!ILLEGAL_MODIFIER!>companion<!> set
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> var prop: Int = 1
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> get
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> set
|
||||
|
||||
class Z(<!ILLEGAL_MODIFIER!>companion<!> val c: Int)
|
||||
class Z(<!WRONG_MODIFIER_TARGET!>companion<!> val c: Int)
|
||||
+6
-6
@@ -2,22 +2,22 @@
|
||||
|
||||
interface Foo<T>
|
||||
interface Foo1<<!INCOMPATIBLE_MODIFIERS!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> T>
|
||||
interface Foo2<<!REPEATED_MODIFIER!>in<!> <!REPEATED_MODIFIER!>in<!> T>
|
||||
interface Foo2<in <!REPEATED_MODIFIER!>in<!> T>
|
||||
|
||||
fun test1(foo: Foo<<!INCOMPATIBLE_MODIFIERS!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> Int>) = foo
|
||||
fun test2(): Foo<<!REPEATED_MODIFIER!>in<!> <!REPEATED_MODIFIER!>in<!> Int> = throw Exception()
|
||||
fun test2(): Foo<in <!REPEATED_MODIFIER!>in<!> Int> = throw Exception()
|
||||
|
||||
fun test3() {
|
||||
val f: Foo<<!REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> Int>
|
||||
val f: Foo<out <!REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> Int>
|
||||
|
||||
class Bzz<<!REPEATED_MODIFIER!>in<!> <!REPEATED_MODIFIER!>in<!> T>
|
||||
class Bzz<in <!REPEATED_MODIFIER!>in<!> T>
|
||||
}
|
||||
|
||||
class A {
|
||||
fun <<!VARIANCE_ON_TYPE_PARAMETER_OF_FUNCTION_OR_PROPERTY, REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> T> bar() {
|
||||
fun <<!VARIANCE_ON_TYPE_PARAMETER_OF_FUNCTION_OR_PROPERTY!>out<!> <!REPEATED_MODIFIER!>out<!> T> bar() {
|
||||
}
|
||||
}
|
||||
|
||||
fun test4(a: A) {
|
||||
a.bar<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT, REPEATED_MODIFIER!>out<!> <!REPEATED_MODIFIER!>out<!> Int>()
|
||||
a.bar<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out<!> <!REPEATED_MODIFIER!>out<!> Int>()
|
||||
}
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
<!REPEATED_MODIFIER!>abstract<!> <!REPEATED_MODIFIER!>abstract<!> class Foo
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> class Bar
|
||||
<!REPEATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>open<!> <!REPEATED_MODIFIER!>open<!> <!INCOMPATIBLE_MODIFIERS!>final<!> class Baz {
|
||||
<!REPEATED_MODIFIER!>private<!> <!REPEATED_MODIFIER!>private<!> fun foo() {}
|
||||
abstract <!REPEATED_MODIFIER!>abstract<!> class Foo
|
||||
public <!REPEATED_MODIFIER!>public<!> class Bar
|
||||
<!INCOMPATIBLE_MODIFIERS!>open<!> <!REPEATED_MODIFIER!>open<!> <!INCOMPATIBLE_MODIFIERS!>final<!> class Baz {
|
||||
private <!REPEATED_MODIFIER!>private<!> fun foo() {}
|
||||
}
|
||||
|
||||
class Bzz(<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val q: Int = 1) {
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val x: Int = 2
|
||||
class Bzz(public <!REPEATED_MODIFIER!>public<!> val q: Int = 1) {
|
||||
public <!REPEATED_MODIFIER!>public<!> val x: Int = 2
|
||||
|
||||
public val y: Int
|
||||
<!REPEATED_MODIFIER, REDUNDANT_MODIFIER_IN_GETTER!>public<!> <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
<!REDUNDANT_MODIFIER_IN_GETTER!>public<!> <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
|
||||
val z: Int
|
||||
<!INCOMPATIBLE_MODIFIERS, ILLEGAL_MODIFIER!>open<!> <!INCOMPATIBLE_MODIFIERS, ILLEGAL_MODIFIER!>final<!> get() = 4
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> <!INCOMPATIBLE_MODIFIERS!>final<!> get() = 4
|
||||
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> class B(<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val z: Int = 1) {
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val y: Int = 2
|
||||
public <!REPEATED_MODIFIER!>public<!> class B(public <!REPEATED_MODIFIER!>public<!> val z: Int = 1) {
|
||||
public <!REPEATED_MODIFIER!>public<!> val y: Int = 2
|
||||
|
||||
public val x: Int
|
||||
<!REPEATED_MODIFIER, REDUNDANT_MODIFIER_IN_GETTER!>public<!> <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
<!REDUNDANT_MODIFIER_IN_GETTER!>public<!> <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
}
|
||||
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> object C {
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val y: Int = 1
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> fun z(): Int = 1
|
||||
public <!REPEATED_MODIFIER!>public<!> object C {
|
||||
public <!REPEATED_MODIFIER!>public<!> val y: Int = 1
|
||||
public <!REPEATED_MODIFIER!>public<!> fun z(): Int = 1
|
||||
}
|
||||
}
|
||||
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val bar: Int = 1
|
||||
public <!REPEATED_MODIFIER!>public<!> val bar: Int = 1
|
||||
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> fun foo(): Int = 1
|
||||
public <!REPEATED_MODIFIER!>public<!> fun foo(): Int = 1
|
||||
|
||||
fun test() {
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> class B(<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val z: Int = 1) {
|
||||
<!REPEATED_MODIFIER!>public<!> <!REPEATED_MODIFIER!>public<!> val y: Int = 2
|
||||
public <!REPEATED_MODIFIER!>public<!> class B(public <!REPEATED_MODIFIER!>public<!> val z: Int = 1) {
|
||||
public <!REPEATED_MODIFIER!>public<!> val y: Int = 2
|
||||
|
||||
public val x: Int
|
||||
<!REPEATED_MODIFIER, REDUNDANT_MODIFIER_IN_GETTER!>public<!> <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
<!REDUNDANT_MODIFIER_IN_GETTER!>public<!> <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
//FILE:a.kt
|
||||
package test_visibility
|
||||
|
||||
<!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> class ProtectedClass
|
||||
<!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> interface ProtectedTrait
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> class ProtectedClass
|
||||
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> interface ProtectedTrait
|
||||
|
||||
<!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> val protected_val : Int = 4
|
||||
<!PACKAGE_MEMBER_CANNOT_BE_PROTECTED!>protected<!> fun protected_fun() {}
|
||||
<!WRONG_MODIFIER_TARGET!>protected<!> val protected_val : Int = 4
|
||||
<!WRONG_MODIFIER_TARGET!>protected<!> fun protected_fun() {}
|
||||
|
||||
private val private_val : Int = 4
|
||||
private fun private_fun() {}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
<!SEALED_MODIFIER_IN_ENUM!>sealed<!> enum class SealedEnum {
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> enum class SealedEnum {
|
||||
FIRST,
|
||||
SECOND;
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<!FINAL_MODIFIER_IN_SEALED!>final<!> sealed class Base {
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!> <!INCOMPATIBLE_MODIFIERS!>sealed<!> class Base {
|
||||
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
<!TRAIT_CAN_NOT_BE_SEALED!>sealed<!> interface Base {
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> interface Base {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<!ILLEGAL_MODIFIER!>sealed<!> object Sealed {
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> object Sealed {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
<!OPEN_MODIFIER_IN_SEALED!>open<!> sealed class Base {
|
||||
<!INCOMPATIBLE_MODIFIERS!>open<!> <!INCOMPATIBLE_MODIFIERS!>sealed<!> class Base {
|
||||
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
<!ABSTRACT_MODIFIER_IN_SEALED!>abstract<!> sealed class Base {
|
||||
<!REDUNDANT_MODIFIER!>abstract<!> sealed class Base {
|
||||
|
||||
}
|
||||
+1
-1
@@ -3,5 +3,5 @@ class A {
|
||||
constructor(
|
||||
<!VAL_OR_VAR_ON_SECONDARY_CONSTRUCTOR_PARAMETER!>val<!> x: Int, y: Int,
|
||||
<!VAL_OR_VAR_ON_SECONDARY_CONSTRUCTOR_PARAMETER!>var<!> z: Int,
|
||||
<!ILLEGAL_MODIFIER!>public<!> a: Int)
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> a: Int)
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
import java.util.ArrayList
|
||||
|
||||
abstract class J {
|
||||
public abstract fun <T : Collection<S>, S : List<<!ILLEGAL_MODIFIER!>in<!> *>> foo(x: T)
|
||||
public abstract fun <T : Collection<S>, S : List<<!WRONG_MODIFIER_TARGET!>in<!> *>> foo(x: T)
|
||||
fun bar() {
|
||||
val s = ArrayList<ArrayList<Int>>()
|
||||
foo(s)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import java.util.ArrayList
|
||||
|
||||
abstract class J {
|
||||
public abstract fun <T : Collection<S>, S : List<<!ILLEGAL_MODIFIER!>out<!> *>> foo(x: T)
|
||||
public abstract fun <T : Collection<S>, S : List<<!WRONG_MODIFIER_TARGET!>out<!> *>> foo(x: T)
|
||||
fun bar() {
|
||||
val s = ArrayList<ArrayList<Int>>()
|
||||
foo(s)
|
||||
|
||||
Reference in New Issue
Block a user