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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user