[FIR] Fix handling of WRONG_MODIFIER_TARGET
Implement DEPRECATED_MODIFIER, DEPRECATED_MODIFIER_FOR_TARGET, REDUNDANT_MODIFIER_FOR_TARGET
This commit is contained in:
committed by
TeamCityServer
parent
e85940a1ac
commit
cd6384eb20
+19
-19
@@ -3,44 +3,44 @@ package MyPackage
|
||||
//properties
|
||||
<!MUST_BE_INITIALIZED!>val a: Int<!>
|
||||
val a1: Int = 1
|
||||
abstract val a2: Int
|
||||
abstract val a3: Int = 1
|
||||
<!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
|
||||
abstract var b2: Int private set
|
||||
abstract var b3: Int = 0; private set
|
||||
<!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) { field = v }
|
||||
var c1: Int = 0; set(v: Int) { field = v }
|
||||
abstract var c2: Int set(v: Int) { field = v }
|
||||
abstract var c3: Int = 0; set(v: Int) { field = v }
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> var c2: Int set(v: Int) { field = v }
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> var c3: Int = 0; set(v: Int) { field = v }
|
||||
|
||||
val e: Int get() = a
|
||||
val e1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = a
|
||||
abstract val e2: Int get() = a
|
||||
abstract val e3: Int = 0; get() = a
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val e2: Int get() = a
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val e3: Int = 0; get() = a
|
||||
|
||||
//methods
|
||||
<!NON_MEMBER_FUNCTION_NO_BODY!>fun f()<!>
|
||||
fun g() {}
|
||||
abstract fun h()
|
||||
abstract fun j() {}
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> fun h()
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int abstract get abstract set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get 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; abstract set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; 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<!> abstract set
|
||||
var k1: Int = 0; 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 abstract get abstract set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get 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 abstract get 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
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
package abstract
|
||||
|
||||
abstract class MyAbstractClass() {
|
||||
//properties
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val a: Int<!>
|
||||
val a1: Int = 1
|
||||
abstract val a2: Int
|
||||
abstract val a3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>1<!>
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var b: Int<!> private set
|
||||
var b1: Int = 0; private set
|
||||
abstract var b2: Int <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
|
||||
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { field = v }
|
||||
var c1: Int = 0; set(v: Int) { field = v }
|
||||
abstract var c2: Int <!ABSTRACT_PROPERTY_WITH_SETTER!>set(v: Int) { field = v }<!>
|
||||
abstract var c3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_SETTER!>set(v: Int) { field = v }<!>
|
||||
|
||||
val e: Int get() = a
|
||||
val e1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = a
|
||||
abstract val e2: Int <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = a<!>
|
||||
abstract val e3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = a<!>
|
||||
|
||||
//methods
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun f()<!>
|
||||
fun g() {}
|
||||
abstract fun h()
|
||||
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int abstract get abstract set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get abstract set
|
||||
|
||||
var j: Int get() = i; abstract set
|
||||
var j1: Int get() = i; abstract set
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> abstract set
|
||||
var k1: Int = 0; abstract set
|
||||
|
||||
var l: Int abstract get abstract set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get abstract set
|
||||
|
||||
var n: Int abstract get abstract set(v: Int) {}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
package abstract
|
||||
|
||||
abstract class MyAbstractClass() {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
package abstract
|
||||
|
||||
class MyClass() {
|
||||
//properties
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val a: Int<!>
|
||||
val a1: Int = 1
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> val a2: Int
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> val a3: Int = 1
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var b: Int<!> private set
|
||||
var b1: Int = 0; private set
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var b2: Int private set
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var b3: Int = 0; private set
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { field = v }
|
||||
var c1: Int = 0; set(v: Int) { field = v }
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var c2: Int set(v: Int) { field = v }
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> var c3: Int = 0; set(v: Int) { field = v }
|
||||
|
||||
val e: Int get() = a
|
||||
val e1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = a
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> val e2: Int get() = a
|
||||
<!ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS!>abstract<!> val e3: Int = 0; get() = a
|
||||
|
||||
//methods
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun f()<!>
|
||||
fun g() {}
|
||||
<!ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS!>abstract<!> fun h()
|
||||
<!ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS, ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int abstract get abstract set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get abstract set
|
||||
|
||||
var j: Int get() = i; abstract set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; abstract set
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> abstract set
|
||||
var k1: Int = 0; abstract set
|
||||
|
||||
var l: Int abstract get abstract set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get abstract set
|
||||
|
||||
var n: Int abstract get abstract set(v: Int) {}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
package abstract
|
||||
|
||||
class MyClass() {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
package abstract
|
||||
|
||||
interface MyTrait {
|
||||
//properties
|
||||
val a: Int
|
||||
val a1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>1<!>
|
||||
abstract val a2: Int
|
||||
abstract val a3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>1<!>
|
||||
|
||||
var b: Int <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
|
||||
var b1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; <!PRIVATE_SETTER_FOR_OPEN_PROPERTY!>private<!> set
|
||||
abstract var b2: Int <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
|
||||
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
|
||||
|
||||
<!BACKING_FIELD_IN_INTERFACE!>var c: Int<!> set(v: Int) { field = v }
|
||||
<!BACKING_FIELD_IN_INTERFACE!>var c1: Int<!> = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; set(v: Int) { field = v }
|
||||
abstract var c2: Int <!ABSTRACT_PROPERTY_WITH_SETTER!>set(v: Int) { field = v }<!>
|
||||
abstract var c3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_SETTER!>set(v: Int) { field = v }<!>
|
||||
|
||||
val e: Int get() = a
|
||||
val e1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; get() = a
|
||||
abstract val e2: Int <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = a<!>
|
||||
abstract val e3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = a<!>
|
||||
|
||||
//methods
|
||||
fun f()
|
||||
fun g() {}
|
||||
abstract fun h()
|
||||
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int abstract get abstract set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; abstract get abstract set
|
||||
|
||||
var j: Int get() = i; abstract set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; get() = i; abstract set
|
||||
|
||||
var k: Int abstract set
|
||||
var k1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; abstract set
|
||||
|
||||
var l: Int abstract get abstract set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_IN_INTERFACE!>0<!>; abstract get abstract set
|
||||
|
||||
var n: Int abstract get abstract set(v: Int) {}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
package abstract
|
||||
|
||||
interface MyTrait {
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
annotation class B
|
||||
|
||||
class A {
|
||||
annotation companion object {}
|
||||
}
|
||||
|
||||
annotation object O {}
|
||||
|
||||
annotation interface T {}
|
||||
|
||||
annotation fun f() = 0
|
||||
|
||||
annotation val x = 0
|
||||
|
||||
annotation var y = 0
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
annotation class B
|
||||
|
||||
class A {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
annotation class Ann
|
||||
|
||||
fun foo() {
|
||||
for (@Ann private x in 1..100) {
|
||||
for (@Ann <!WRONG_MODIFIER_TARGET!>private<!> x in 1..100) {
|
||||
if (x == 1) return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
annotation class My
|
||||
data class Pair(val a: Int, val b: Int)
|
||||
fun foo(): Int {
|
||||
val (<!WRONG_ANNOTATION_TARGET!>@My<!> private a, <!WRONG_ANNOTATION_TARGET!>@My<!> public b) = Pair(12, 34)
|
||||
return a + b
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
annotation class My
|
||||
data class Pair(val a: Int, val b: Int)
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// KT-9145
|
||||
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
annotation class Ann
|
||||
|
||||
var x: Int
|
||||
get() = 1
|
||||
set(<!WRONG_ANNOTATION_TARGET!>@Ann<!> private x) { }
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// KT-9145
|
||||
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
// See EA-73584
|
||||
data class<!SYNTAX!><!> {
|
||||
|
||||
}
|
||||
|
||||
// See KT-9296
|
||||
data interface<!SYNTAX!><!> {
|
||||
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// See EA-73584
|
||||
data class<!SYNTAX!><!> {
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
data object Object<!CONSTRUCTOR_IN_OBJECT!>(val x: Int, val y: Int)<!>
|
||||
@@ -1 +1,2 @@
|
||||
// FIR_IDENTICAL
|
||||
<!WRONG_MODIFIER_TARGET!>data<!> object Object<!CONSTRUCTOR_IN_OBJECT!>(val x: Int, val y: Int)<!>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
data enum class First(val x: Int) {
|
||||
<!WRONG_MODIFIER_TARGET!>data<!> enum class First(val x: Int) {
|
||||
A(1),
|
||||
B(2)
|
||||
}
|
||||
|
||||
data object Second
|
||||
<!WRONG_MODIFIER_TARGET!>data<!> object Second
|
||||
|
||||
data interface Third
|
||||
<!WRONG_MODIFIER_TARGET!>data<!> interface Third
|
||||
|
||||
data annotation class Fourth(val x: Int)
|
||||
<!WRONG_MODIFIER_TARGET!>data<!> annotation class Fourth(val x: Int)
|
||||
|
||||
+2
-2
@@ -93,7 +93,7 @@ class Foo {
|
||||
|
||||
private val packagePrivateProperty = object : MyClass(), MyTrait {}
|
||||
|
||||
protected val packageProtectedProperty = object : MyClass(), MyTrait {}
|
||||
<!WRONG_MODIFIER_TARGET!>protected<!> val packageProtectedProperty = object : MyClass(), MyTrait {}
|
||||
|
||||
val packageInternalProperty = object : MyClass(), MyTrait {}
|
||||
|
||||
@@ -101,7 +101,7 @@ internal val packageInternal2Property = object : MyClass(), MyTrait {}
|
||||
|
||||
public val packagePublicProperty = object : MyClass(), MyTrait {}
|
||||
|
||||
protected fun packageProtectedFunction() = object : MyClass(), MyTrait {}
|
||||
<!WRONG_MODIFIER_TARGET!>protected<!> fun packageProtectedFunction() = object : MyClass(), MyTrait {}
|
||||
|
||||
fun packageInternalFunction() = object : MyClass(), MyTrait {}
|
||||
|
||||
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
// !DIAGNOSTICS: -MANY_COMPANION_OBJECTS -REDECLARATION -DUPLICATE_CLASS_NAMES
|
||||
|
||||
// KT-3464 Front-end shouldn't allow override modifier in class declaration
|
||||
|
||||
override class A {
|
||||
override companion object {}
|
||||
open companion object {}
|
||||
abstract companion object {}
|
||||
final companion object {}
|
||||
}
|
||||
|
||||
override object B1 {}
|
||||
open object B2 {}
|
||||
abstract object B3 {}
|
||||
final object B4 {}
|
||||
|
||||
override enum class C {}
|
||||
override interface D {}
|
||||
override annotation class E
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -MANY_COMPANION_OBJECTS -REDECLARATION -DUPLICATE_CLASS_NAMES
|
||||
|
||||
// KT-3464 Front-end shouldn't allow override modifier in class declaration
|
||||
|
||||
+4
-4
@@ -5,8 +5,8 @@ class T {
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
public val i = 11
|
||||
abstract val <!VARIABLE_WITH_NO_TYPE_NO_INITIALIZER!>j<!>
|
||||
override fun T.baz() = 2
|
||||
private fun bar() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> val i = 11
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val <!VARIABLE_WITH_NO_TYPE_NO_INITIALIZER!>j<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun T.baz() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> fun bar() = 2
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -4,10 +4,10 @@ class T {
|
||||
fun baz() = 1
|
||||
}
|
||||
|
||||
override fun zzz() {}
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun zzz() {}
|
||||
|
||||
fun foo(t: T) {
|
||||
override fun T.baz() = 2
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> fun T.baz() = 2
|
||||
|
||||
// was "Visibility is unknown yet exception"
|
||||
t.baz()
|
||||
|
||||
Vendored
+1
-1
@@ -7,7 +7,7 @@ fun test() {
|
||||
val <T> a0 = 0
|
||||
val <T : __UNRESOLVED__> a1 = ""
|
||||
val <T : String> a2 = 0
|
||||
const val <T> a3 = 0
|
||||
<!WRONG_MODIFIER_TARGET!>const<!> val <T> a3 = 0
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val <T> a4 = 0
|
||||
val <T> a5 by Delegate<Int>()
|
||||
val <T> a6 by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>Delegate<<!UNRESOLVED_REFERENCE!>T<!>>()<!>
|
||||
|
||||
Vendored
+1
-1
@@ -7,7 +7,7 @@ fun test() {
|
||||
val <T> a0 = 0
|
||||
val <T : __UNRESOLVED__> a1 = ""
|
||||
val <T : String> a2 = 0
|
||||
const val <T> a3 = 0
|
||||
<!WRONG_MODIFIER_TARGET!>const<!> val <T> a3 = 0
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val <T> a4 = 0
|
||||
val <T> a5 by Delegate<Int>()
|
||||
val <T> a6 by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>Delegate<<!UNRESOLVED_REFERENCE!>T<!>>()<!>
|
||||
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
package d
|
||||
|
||||
abstract val a : Int = 1
|
||||
|
||||
override val c : Int = 1
|
||||
|
||||
final fun foo() = 2
|
||||
|
||||
abstract fun baz() = 2
|
||||
|
||||
class T {}
|
||||
override fun T.bar() = 2
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
package d
|
||||
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> val a : Int = 1
|
||||
|
||||
compiler/testData/diagnostics/tests/declarationChecks/propertyInPackageHasNoInheritVisibility.fir.kt
Vendored
+2
-2
@@ -1,10 +1,10 @@
|
||||
package d
|
||||
|
||||
override val f : ()-> Int = { 12 }
|
||||
<!WRONG_MODIFIER_TARGET!>override<!> val f : ()-> Int = { 12 }
|
||||
|
||||
fun test() {
|
||||
f()
|
||||
}
|
||||
|
||||
var g: Int = 1
|
||||
protected set(i: Int) {}
|
||||
protected set(i: Int) {}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
interface A {
|
||||
sealed fun foo()
|
||||
sealed var bar: Unit
|
||||
}
|
||||
|
||||
interface B {
|
||||
abstract fun foo()
|
||||
abstract var bar: Unit
|
||||
}
|
||||
|
||||
interface C : A, B
|
||||
|
||||
abstract class D(sealed var x: Int) {
|
||||
abstract var y: Unit
|
||||
sealed set
|
||||
}
|
||||
|
||||
abstract class E : D(42)
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface A {
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> fun foo()
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> var bar: Unit
|
||||
|
||||
Vendored
-175
@@ -1,175 +0,0 @@
|
||||
open class MyClass {
|
||||
fun f1() {}
|
||||
}
|
||||
|
||||
|
||||
class Foo {
|
||||
|
||||
protected val protectedProperty = object : MyClass() {}
|
||||
|
||||
public val publicProperty = object : MyClass() {}
|
||||
|
||||
protected val protected2Property : MyClass = object : MyClass() {fun invisible() {}}
|
||||
|
||||
public val public2Property : MyClass = object : MyClass() {fun invisible() {}}
|
||||
|
||||
private val privateProperty = object : MyClass() {fun visible() {}}
|
||||
|
||||
internal val internalProperty = object : MyClass() { fun invisible() {}}
|
||||
|
||||
|
||||
fun testProperties() {
|
||||
privateProperty.f1()
|
||||
internalProperty.f1()
|
||||
protected2Property.f1()
|
||||
public2Property.f1()
|
||||
|
||||
privateProperty.visible()
|
||||
protected2Property.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
public2Property.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
internalProperty.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
}
|
||||
|
||||
|
||||
protected fun protectedFunction() = object : MyClass() {}
|
||||
|
||||
public fun publicFunction() = object : MyClass() {}
|
||||
|
||||
protected fun protected2Function(): MyClass = object : MyClass() {fun visible() {}}
|
||||
|
||||
public fun public2Function(): MyClass = object : MyClass() {fun visible() {}}
|
||||
|
||||
private fun privateFunction() = object : MyClass() {fun visible() {}}
|
||||
|
||||
internal fun internalFunction() = object : MyClass() {fun invisible() {}}
|
||||
|
||||
|
||||
fun testFunctions() {
|
||||
privateFunction().f1()
|
||||
internalFunction().f1()
|
||||
public2Function().f1()
|
||||
protected2Function().f1()
|
||||
|
||||
privateFunction().visible()
|
||||
internalFunction().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
public2Function().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
protected2Function().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
}
|
||||
|
||||
|
||||
class FooInner {
|
||||
|
||||
public val publicProperty = object : MyClass() {}
|
||||
|
||||
protected val protectedProperty = object : MyClass() {}
|
||||
|
||||
protected val protected2Property : MyClass = object : MyClass() {fun invisible() {}}
|
||||
|
||||
public val public2Property : MyClass = object : MyClass() {fun invisible() {}}
|
||||
|
||||
private val privateProperty = object : MyClass() {fun visible() {}}
|
||||
|
||||
internal val internalProperty = object : MyClass() { fun invisible() {}}
|
||||
|
||||
|
||||
fun testProperties() {
|
||||
privateProperty.f1()
|
||||
internalProperty.f1()
|
||||
protected2Property.f1()
|
||||
public2Property.f1()
|
||||
|
||||
privateProperty.visible()
|
||||
protected2Property.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
public2Property.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
internalProperty.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
}
|
||||
|
||||
|
||||
protected fun protectedFunction() = object : MyClass() {}
|
||||
|
||||
public fun publicFunction() = object : MyClass() {}
|
||||
|
||||
protected fun protected2Function(): MyClass = object : MyClass() {fun visible() {}}
|
||||
|
||||
public fun public2Function(): MyClass = object : MyClass() {fun visible() {}}
|
||||
|
||||
private fun privateFunction() = object : MyClass() {fun visible() {}}
|
||||
|
||||
internal fun internalFunction() = object : MyClass() {fun invisible() {}}
|
||||
|
||||
|
||||
fun testFunctions() {
|
||||
privateFunction().f1()
|
||||
internalFunction().f1()
|
||||
public2Function().f1()
|
||||
protected2Function().f1()
|
||||
|
||||
privateFunction().visible()
|
||||
internalFunction().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
public2Function().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
protected2Function().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
val localVar = object : MyClass() {}
|
||||
localVar.f1()
|
||||
fun foo2() = object : MyClass() {}
|
||||
foo2().f1()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected val packageProtectedProperty = object : MyClass() {}
|
||||
|
||||
public val packagePublicProperty = object : MyClass() {}
|
||||
|
||||
public val packagePublic2Property : MyClass = object : MyClass() {fun invisible() {}}
|
||||
|
||||
private val packagePrivateProperty = object : MyClass() {fun invisible() {}}
|
||||
|
||||
internal val packageInternalProperty = object : MyClass() {fun invisible() {}}
|
||||
|
||||
|
||||
fun testProperties() {
|
||||
packagePrivateProperty.f1()
|
||||
packageInternalProperty.f1()
|
||||
packagePublic2Property.f1()
|
||||
|
||||
packagePrivateProperty.invisible()
|
||||
packageInternalProperty.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
packagePublic2Property.<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
}
|
||||
|
||||
|
||||
private fun privateFunction() = object : MyClass() {fun invisible() {}}
|
||||
|
||||
protected fun protectedFunction() = object : MyClass() {}
|
||||
|
||||
public fun publicFunction() = object : MyClass() {}
|
||||
|
||||
public fun public2Function() : MyClass = object : MyClass() {fun invisible() {}}
|
||||
|
||||
internal fun internalFunction() = object : MyClass() {fun invisible() {}}
|
||||
|
||||
|
||||
|
||||
fun testFunctions() {
|
||||
privateFunction().f1()
|
||||
internalFunction().f1()
|
||||
public2Function().f1()
|
||||
|
||||
privateFunction().invisible()
|
||||
internalFunction().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
public2Function().<!UNRESOLVED_REFERENCE!>invisible<!>()
|
||||
}
|
||||
|
||||
fun fooPackage() {
|
||||
val packageLocalVar = object : MyClass() {fun visible() {}}
|
||||
packageLocalVar.f1()
|
||||
packageLocalVar.visible()
|
||||
|
||||
fun fooPackageLocal() = object : MyClass() {fun visible() {}}
|
||||
fooPackageLocal().f1()
|
||||
fooPackageLocal().visible()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
open class MyClass {
|
||||
fun f1() {}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ interface T {}
|
||||
|
||||
class Br(t : T) : T by t {}
|
||||
|
||||
open enum class EN() {
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> enum class EN() {
|
||||
A
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
package abstract
|
||||
|
||||
abstract enum class MyAbstractEnum() {}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
package abstract
|
||||
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> enum class MyAbstractEnum() {}
|
||||
@@ -31,17 +31,17 @@ enum class MyEnum() {
|
||||
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
|
||||
|
||||
//property accessors
|
||||
var i: Int abstract get abstract set
|
||||
var i1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get 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; abstract set
|
||||
var j1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; get() = i; 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<!> abstract set
|
||||
var k1: Int = 0; 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 abstract get abstract set
|
||||
var l1: Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>0<!>; abstract get 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 abstract get abstract set(v: Int) {}
|
||||
var n: Int <!WRONG_MODIFIER_TARGET!>abstract<!> get <!WRONG_MODIFIER_TARGET!>abstract<!> set(v: Int) {}
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
enum class B {}
|
||||
|
||||
class A {
|
||||
enum companion object {}
|
||||
}
|
||||
|
||||
enum object O {}
|
||||
|
||||
enum interface T {}
|
||||
|
||||
enum fun f() = 0
|
||||
|
||||
enum val x = 0
|
||||
|
||||
enum var y = 0
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
enum class B {}
|
||||
|
||||
class A {
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
annotation enum class E {
|
||||
D
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
<!WRONG_MODIFIER_TARGET!>annotation<!> enum class E {
|
||||
D
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
public enum MyJavaEnum {}
|
||||
|
||||
// FILE: test.kt
|
||||
open enum class MyEnum() {
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> enum class MyEnum() {
|
||||
A()
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
enum class E {
|
||||
ABC {
|
||||
enum class F {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class F {
|
||||
DEF
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
enum class E {
|
||||
ABC {
|
||||
enum class F {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class F {
|
||||
DEF
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
enum interface Some {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> interface Some {
|
||||
// Enum part
|
||||
D;
|
||||
|
||||
// Interface like part
|
||||
fun test()
|
||||
val foo: Int
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
fun foo() {
|
||||
enum class A {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class A {
|
||||
FOO,
|
||||
BAR
|
||||
}
|
||||
val foo = A.FOO
|
||||
val b = object {
|
||||
enum class B {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class B {}
|
||||
}
|
||||
class C {
|
||||
enum class D {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class D {}
|
||||
}
|
||||
val f = {
|
||||
enum class E {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class E {}
|
||||
}
|
||||
|
||||
enum class<!SYNTAX!><!> {}
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class<!SYNTAX!><!> {}
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
enum class E {
|
||||
public final SUBCLASS {
|
||||
fun foo() {}
|
||||
},
|
||||
|
||||
public PUBLIC,
|
||||
protected PROTECTED,
|
||||
private PRIVATE,
|
||||
internal INTERNAL,
|
||||
|
||||
abstract ABSTRACT,
|
||||
open OPEN,
|
||||
override OVERRIDE,
|
||||
final FINAL,
|
||||
|
||||
inner INNER,
|
||||
annotation ANNOTATION,
|
||||
enum ENUM,
|
||||
out OUT,
|
||||
in IN,
|
||||
vararg VARARG,
|
||||
reified REIFIED
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
enum class E {
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_MODIFIER_TARGET!>final<!> SUBCLASS {
|
||||
fun foo() {}
|
||||
|
||||
Vendored
-15
@@ -1,15 +0,0 @@
|
||||
// !CHECK_TYPE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
data class A(val x: Int, val y: String)
|
||||
|
||||
fun foo(block: (A) -> Unit) { }
|
||||
|
||||
@Target(AnnotationTarget.VALUE_PARAMETER)
|
||||
annotation class Ann
|
||||
|
||||
fun bar() {
|
||||
foo { (private inline a, <!WRONG_ANNOTATION_TARGET!>@Ann<!> b) ->
|
||||
a checkType { _<Int>() }
|
||||
b checkType { _<String>() }
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !CHECK_TYPE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
data class A(val x: Int, val y: String)
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
abstract class Test() {
|
||||
abstract val x : Int
|
||||
abstract val x1 : Int get
|
||||
abstract val x2 : Int <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = 1<!>
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val a : Int<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val b : Int<!> get
|
||||
val c = 1
|
||||
|
||||
val c1 = 1
|
||||
get
|
||||
val c2 : Int
|
||||
get() = 1
|
||||
val c3 : Int
|
||||
get() { return 1 }
|
||||
val c4 : Int
|
||||
get() = 1
|
||||
<!MUST_BE_INITIALIZED!>val c5 : Int<!>
|
||||
get() = field + 1
|
||||
|
||||
abstract var y : Int
|
||||
abstract var y1 : Int get
|
||||
abstract var y2 : Int set
|
||||
abstract var y3 : Int set get
|
||||
abstract var y4 : Int set <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = 1<!>
|
||||
abstract var y5 : Int <!ABSTRACT_PROPERTY_WITH_SETTER!>set(x) {}<!> <!ABSTRACT_PROPERTY_WITH_GETTER!>get() = 1<!>
|
||||
abstract var y6 : Int <!ABSTRACT_PROPERTY_WITH_SETTER!>set(x) {}<!>
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var v : Int<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var v1 : Int<!> get
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var v2 : Int<!> get set
|
||||
<!MUST_BE_INITIALIZED!>var v3 : Int<!> get() = 1; set
|
||||
var v4 : Int get() = 1; set(x){}
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var v5 : Int<!> get() = 1; set(x){field = x}
|
||||
<!MUST_BE_INITIALIZED!>var v6 : Int<!> get() = field + 1; set(x){}
|
||||
|
||||
abstract val v7 : Int get
|
||||
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 abstract get
|
||||
abstract var v12 : Int abstract get abstract set
|
||||
|
||||
}
|
||||
|
||||
open class Super(i : Int)
|
||||
|
||||
class TestPCParameters(w : Int, x : Int, val y : Int, var z : Int) : Super(w) {
|
||||
|
||||
val xx = w
|
||||
|
||||
init {
|
||||
w + 1
|
||||
}
|
||||
|
||||
fun foo() = <!UNRESOLVED_REFERENCE!>x<!>
|
||||
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
abstract class Test() {
|
||||
abstract val x : Int
|
||||
abstract val x1 : Int get
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
|
||||
|
||||
inline class Foo(val x: Int)
|
||||
|
||||
inline interface InlineInterface
|
||||
inline annotation class InlineAnn
|
||||
inline object InlineObject
|
||||
inline enum class InlineEnum
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
|
||||
|
||||
inline class Foo(val x: Int)
|
||||
|
||||
Vendored
+3
-3
@@ -3,8 +3,8 @@
|
||||
|
||||
inline class Foo(val x: Int)
|
||||
|
||||
inline annotation class InlineAnn
|
||||
inline object InlineObject
|
||||
inline enum class InlineEnum
|
||||
<!WRONG_MODIFIER_TARGET!>inline<!> annotation class InlineAnn
|
||||
<!WRONG_MODIFIER_TARGET!>inline<!> object InlineObject
|
||||
<!WRONG_MODIFIER_TARGET!>inline<!> enum class InlineEnum
|
||||
|
||||
inline class NotVal(<!INLINE_CLASS_CONSTRUCTOR_NOT_FINAL_READ_ONLY_PARAMETER!>x: Int<!>)
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ object B2 {
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
<!INLINE_CLASS_NOT_TOP_LEVEL!>inline<!> class C4(val x: Int)
|
||||
<!INLINE_CLASS_NOT_TOP_LEVEL, WRONG_MODIFIER_TARGET!>inline<!> class C4(val x: Int)
|
||||
}
|
||||
|
||||
final inline class D0(val x: Int)
|
||||
|
||||
+2
-2
@@ -3,6 +3,6 @@
|
||||
|
||||
inline class Foo(val x: Int) {
|
||||
<!INNER_CLASS_INSIDE_INLINE_CLASS!>inner<!> class InnerC
|
||||
<!INNER_CLASS_INSIDE_INLINE_CLASS!>inner<!> object InnerO
|
||||
<!INNER_CLASS_INSIDE_INLINE_CLASS!>inner<!> interface InnerI
|
||||
<!INNER_CLASS_INSIDE_INLINE_CLASS, WRONG_MODIFIER_TARGET!>inner<!> object InnerO
|
||||
<!INNER_CLASS_INSIDE_INLINE_CLASS, WRONG_MODIFIER_TARGET!>inner<!> interface InnerI
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
// !LANGUAGE: -InnerClassInEnumEntryClass
|
||||
inner fun foo() {}
|
||||
inner val prop = 42
|
||||
|
||||
inner class A
|
||||
inner interface B
|
||||
inner object C
|
||||
|
||||
class D {
|
||||
inner class E
|
||||
inner interface F
|
||||
inner object G
|
||||
inner enum class R
|
||||
inner annotation class S
|
||||
inner companion object
|
||||
}
|
||||
|
||||
enum class H {
|
||||
I0 {
|
||||
inner class II0
|
||||
},
|
||||
inner I {
|
||||
inner class II
|
||||
};
|
||||
|
||||
inner class J
|
||||
}
|
||||
|
||||
interface K {
|
||||
inner class L
|
||||
}
|
||||
|
||||
object N {
|
||||
inner class O
|
||||
}
|
||||
|
||||
class P {
|
||||
companion object {
|
||||
inner class Q
|
||||
}
|
||||
}
|
||||
|
||||
val R = object {
|
||||
inner class S
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -InnerClassInEnumEntryClass
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> fun foo() {}
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> val prop = 42
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
// !LANGUAGE: +InnerClassInEnumEntryClass
|
||||
inner fun foo() {}
|
||||
inner val prop = 42
|
||||
|
||||
inner class A
|
||||
inner interface B
|
||||
inner object C
|
||||
|
||||
class D {
|
||||
inner class E
|
||||
inner interface F
|
||||
inner object G
|
||||
inner enum class R
|
||||
inner annotation class S
|
||||
inner companion object
|
||||
}
|
||||
|
||||
enum class H {
|
||||
I0 {
|
||||
inner class II0
|
||||
},
|
||||
inner I {
|
||||
inner class II
|
||||
};
|
||||
|
||||
inner class J
|
||||
}
|
||||
|
||||
interface K {
|
||||
inner class L
|
||||
}
|
||||
|
||||
object N {
|
||||
inner class O
|
||||
}
|
||||
|
||||
class P {
|
||||
companion object {
|
||||
inner class Q
|
||||
}
|
||||
}
|
||||
|
||||
val R = object {
|
||||
inner class S
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InnerClassInEnumEntryClass
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> fun foo() {}
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> val prop = 42
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ enum class Enum {
|
||||
|
||||
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
|
||||
|
||||
enum class TestEnumClass {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class TestEnumClass {
|
||||
OTHER_ENTRY
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ enum class Enum {
|
||||
|
||||
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
|
||||
|
||||
enum class TestEnumClass {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class TestEnumClass {
|
||||
OTHER_ENTRY
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ enum class Enum {
|
||||
|
||||
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
|
||||
|
||||
enum class TestEnumClass {
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!> class TestEnumClass {
|
||||
OTHER_ENTRY
|
||||
}
|
||||
|
||||
|
||||
@@ -8,17 +8,17 @@ abstract class A() {
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>open var r: String<!>
|
||||
get
|
||||
abstract protected set
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!> protected set
|
||||
}
|
||||
|
||||
final interface T {}
|
||||
<!WRONG_MODIFIER_TARGET!>final<!> interface T {}
|
||||
|
||||
class FinalClass() {
|
||||
<!NON_FINAL_MEMBER_IN_FINAL_CLASS!>open<!> fun foo() {}
|
||||
val i: Int = 1
|
||||
open get(): Int = field
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> get(): Int = field
|
||||
var j: Int = 1
|
||||
open set(v: Int) {}
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> set(v: Int) {}
|
||||
}
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>public<!> class C
|
||||
@@ -32,107 +32,107 @@ class LegalModifier(val a: Int, @annotated private var b: String, @annotated var
|
||||
|
||||
//Check illegal modifier in constructor parameters
|
||||
class IllegalModifiers1(
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!WRONG_MODIFIER_TARGET!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
reified
|
||||
enum
|
||||
private
|
||||
const
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>private<!>
|
||||
<!WRONG_MODIFIER_TARGET!>const<!>
|
||||
a: Int)
|
||||
|
||||
//Check multiple illegal modifiers in constructor
|
||||
class IllegalModifiers2(<!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>abstract<!> a: Int)
|
||||
class IllegalModifiers2(<!WRONG_MODIFIER_TARGET!>private<!> <!INCOMPATIBLE_MODIFIERS!>abstract<!> a: Int)
|
||||
|
||||
|
||||
//Check annotations with illegal modifiers in constructor
|
||||
class IllegalModifiers3(@annotated public abstract b: String)
|
||||
class IllegalModifiers3(@annotated <!WRONG_MODIFIER_TARGET!>public<!> <!WRONG_MODIFIER_TARGET!>abstract<!> b: String)
|
||||
|
||||
//Check annotations and vararg with illegal modifiers in constructor
|
||||
class IllegalModifiers4(val a: Int, @annotated("a text") protected vararg v: Int)
|
||||
class IllegalModifiers4(val a: Int, @annotated("a text") <!WRONG_MODIFIER_TARGET!>protected<!> vararg v: Int)
|
||||
|
||||
//Check illegal modifiers for functions and catch block
|
||||
abstract class IllegalModifiers5() {
|
||||
|
||||
//Check illegal modifier in function parameter
|
||||
abstract fun foo(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(public 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") public 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 (<!INCOMPATIBLE_MODIFIERS!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> reified enum 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 (<!INCOMPATIBLE_MODIFIERS!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> reified enum abstract 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") abstract 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() {
|
||||
public init {}
|
||||
private init {}
|
||||
protected init {}
|
||||
vararg init {}
|
||||
abstract init {}
|
||||
open init {}
|
||||
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 {}
|
||||
|
||||
public @annotated init {}
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> @annotated init {}
|
||||
|
||||
private @IllegalModifiers6() init {}
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> @IllegalModifiers6() init {}
|
||||
}
|
||||
|
||||
// strange inappropriate modifiers usages
|
||||
override
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
vararg
|
||||
reified
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
class IllegalModifiers7() {
|
||||
enum
|
||||
inner
|
||||
annotation
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>annotation<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
vararg
|
||||
reified
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
val x = 1
|
||||
enum
|
||||
inner
|
||||
annotation
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>annotation<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
vararg
|
||||
reified
|
||||
const
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
<!WRONG_MODIFIER_TARGET!>const<!>
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
// Secondary constructors
|
||||
class IllegalModifiers8 {
|
||||
<!INCOMPATIBLE_MODIFIERS!>abstract<!>
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!>
|
||||
enum
|
||||
<!INCOMPATIBLE_MODIFIERS, REDUNDANT_MODIFIER!>open<!>
|
||||
inner
|
||||
annotation
|
||||
<!INCOMPATIBLE_MODIFIERS!>override<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!REDUNDANT_MODIFIER, WRONG_MODIFIER_TARGET!>open<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>annotation<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
vararg
|
||||
reified
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>const<!><!SYNTAX!><!>
|
||||
constructor() {}
|
||||
|
||||
constructor(<!INCOMPATIBLE_MODIFIERS!>private<!> enum <!INCOMPATIBLE_MODIFIERS!>abstract<!> x: Int) {}
|
||||
constructor(<!WRONG_MODIFIER_TARGET!>private<!> <!WRONG_MODIFIER_TARGET!>enum<!> <!INCOMPATIBLE_MODIFIERS!>abstract<!> x: Int) {}
|
||||
}
|
||||
|
||||
class IllegalModifiers9 {
|
||||
@@ -143,17 +143,17 @@ class IllegalModifiers9 {
|
||||
// Illegal modifiers on primary constructor
|
||||
|
||||
class IllegalModifiers10
|
||||
<!INCOMPATIBLE_MODIFIERS!>abstract<!>
|
||||
enum
|
||||
<!INCOMPATIBLE_MODIFIERS, REDUNDANT_MODIFIER!>open<!>
|
||||
inner
|
||||
annotation
|
||||
<!INCOMPATIBLE_MODIFIERS!>override<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!WRONG_MODIFIER_TARGET!>abstract<!>
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!REDUNDANT_MODIFIER, WRONG_MODIFIER_TARGET!>open<!>
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!>
|
||||
<!WRONG_MODIFIER_TARGET!>annotation<!>
|
||||
<!WRONG_MODIFIER_TARGET!>override<!>
|
||||
<!WRONG_MODIFIER_TARGET!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
vararg
|
||||
reified
|
||||
<!WRONG_MODIFIER_TARGET!>vararg<!>
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>const<!> constructor()
|
||||
|
||||
class IllegalModifiers11 <!INCOMPATIBLE_MODIFIERS!>private<!> <!INCOMPATIBLE_MODIFIERS!>protected<!> constructor()
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
fun foo() {
|
||||
public class A
|
||||
private class B
|
||||
protected class C
|
||||
internal class D
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun foo() {
|
||||
<!WRONG_MODIFIER_TARGET!>public<!> class A
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> class B
|
||||
|
||||
@@ -48,7 +48,7 @@ const val withExplicitDefaultGetter: Int = 1
|
||||
<!CONST_VAL_WITH_GETTER!>get<!>
|
||||
|
||||
fun foo(): Int {
|
||||
const val local: Int = 14
|
||||
<!WRONG_MODIFIER_TARGET!>const<!> val local: Int = 14
|
||||
return 15
|
||||
}
|
||||
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
companion class A {
|
||||
companion object {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
companion object
|
||||
|
||||
val c: Int = 1
|
||||
}
|
||||
|
||||
class C {
|
||||
companion object A {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class D {
|
||||
companion object A {
|
||||
companion object {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object G {
|
||||
companion object
|
||||
}
|
||||
|
||||
companion interface H {
|
||||
companion object
|
||||
}
|
||||
|
||||
class J {
|
||||
companion object C {
|
||||
companion object
|
||||
}
|
||||
}
|
||||
|
||||
companion enum class Enum {
|
||||
E1,
|
||||
E2;
|
||||
|
||||
companion object
|
||||
}
|
||||
|
||||
companion fun main() {
|
||||
|
||||
}
|
||||
|
||||
companion var prop: Int = 1
|
||||
companion get
|
||||
companion set
|
||||
|
||||
class Z(companion val c: Int)
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!> class A {
|
||||
companion object {
|
||||
|
||||
|
||||
+12
-12
@@ -19,34 +19,34 @@ class A : (vararg Int)->Unit {
|
||||
get(): (vararg x: Int)->Unit = {}
|
||||
}
|
||||
|
||||
val allProhibited: (<!INCOMPATIBLE_MODIFIERS, REDUNDANT_MODIFIER!>abstract<!>
|
||||
annotation
|
||||
companion
|
||||
val allProhibited: (<!REDUNDANT_MODIFIER, WRONG_MODIFIER_TARGET!>abstract<!>
|
||||
<!WRONG_MODIFIER_TARGET!>annotation<!>
|
||||
<!WRONG_MODIFIER_TARGET!>companion<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>const<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>crossinline<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>data<!>
|
||||
enum
|
||||
external
|
||||
<!WRONG_MODIFIER_TARGET!>enum<!>
|
||||
<!WRONG_MODIFIER_TARGET!>external<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>final<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>in<!>
|
||||
<!WRONG_MODIFIER_TARGET!>in<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>inline<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>inner<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>internal<!>
|
||||
lateinit
|
||||
<!WRONG_MODIFIER_TARGET!>internal<!>
|
||||
<!WRONG_MODIFIER_TARGET!>lateinit<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>noinline<!>
|
||||
<!INCOMPATIBLE_MODIFIERS, REDUNDANT_MODIFIER!>open<!>
|
||||
operator
|
||||
<!WRONG_MODIFIER_TARGET!>operator<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>out<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>override<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>private<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>protected<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>public<!>
|
||||
reified
|
||||
<!WRONG_MODIFIER_TARGET!>reified<!>
|
||||
<!INCOMPATIBLE_MODIFIERS!>sealed<!>
|
||||
tailrec
|
||||
<!WRONG_MODIFIER_TARGET!>tailrec<!>
|
||||
vararg
|
||||
|
||||
x: Int)->Unit = {}
|
||||
|
||||
val valProhibited: (val x: Int)->Unit = {}
|
||||
val varProhibited: (var x: Int)->Unit = {}
|
||||
val varProhibited: (var x: Int)->Unit = {}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
open interface First
|
||||
// Now inspection
|
||||
abstract interface Second
|
||||
// Now inspection
|
||||
final enum class Third {
|
||||
FOURTH,
|
||||
FIFTH
|
||||
}
|
||||
// Now inspection
|
||||
final object Sixth
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
<!REDUNDANT_MODIFIER_FOR_TARGET!>open<!> interface First
|
||||
// Now inspection
|
||||
abstract interface Second
|
||||
|
||||
@@ -11,7 +11,7 @@ class Bzz(public <!REPEATED_MODIFIER!>public<!> val q: Int = 1) {
|
||||
public <!REPEATED_MODIFIER!>public<!> get() = 3
|
||||
|
||||
val z: Int
|
||||
<!INCOMPATIBLE_MODIFIERS!>open<!> <!INCOMPATIBLE_MODIFIERS!>final<!> get() = 4
|
||||
<!WRONG_MODIFIER_TARGET!>open<!> <!INCOMPATIBLE_MODIFIERS!>final<!> get() = 4
|
||||
|
||||
public <!REPEATED_MODIFIER!>public<!> class B(public <!REPEATED_MODIFIER!>public<!> val z: Int = 1) {
|
||||
public <!REPEATED_MODIFIER!>public<!> val y: Int = 2
|
||||
@@ -31,7 +31,7 @@ public <!REPEATED_MODIFIER!>public<!> val bar: Int = 1
|
||||
public <!REPEATED_MODIFIER!>public<!> fun foo(): Int = 1
|
||||
|
||||
fun test() {
|
||||
public <!REPEATED_MODIFIER!>public<!> class B(public <!REPEATED_MODIFIER!>public<!> val z: Int = 1) {
|
||||
<!WRONG_MODIFIER_TARGET!>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
|
||||
|
||||
+10
-10
@@ -2,29 +2,29 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
header class My
|
||||
<!DEPRECATED_MODIFIER!>header<!> class My
|
||||
|
||||
header fun foo(): Int
|
||||
<!DEPRECATED_MODIFIER!>header<!> fun foo(): Int
|
||||
|
||||
header val x: String
|
||||
<!DEPRECATED_MODIFIER!>header<!> val x: String
|
||||
|
||||
header object O
|
||||
<!DEPRECATED_MODIFIER!>header<!> object O
|
||||
|
||||
header enum class E {
|
||||
<!DEPRECATED_MODIFIER!>header<!> enum class E {
|
||||
FIRST
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
impl class My
|
||||
<!DEPRECATED_MODIFIER!>impl<!> class My
|
||||
|
||||
impl fun foo() = 42
|
||||
<!DEPRECATED_MODIFIER!>impl<!> fun foo() = 42
|
||||
|
||||
impl val x get() = "Hello"
|
||||
<!DEPRECATED_MODIFIER!>impl<!> val x get() = "Hello"
|
||||
|
||||
impl object O
|
||||
<!DEPRECATED_MODIFIER!>impl<!> object O
|
||||
|
||||
impl enum class E {
|
||||
<!DEPRECATED_MODIFIER!>impl<!> enum class E {
|
||||
FIRST
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
// FILE: common.kt
|
||||
|
||||
expect class H {
|
||||
expect fun foo()
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> fun foo()
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
|
||||
Vendored
+4
-4
@@ -5,14 +5,14 @@
|
||||
expect class B {
|
||||
class N {
|
||||
<!EXPECTED_DECLARATION_WITH_BODY!>fun body()<!> {}
|
||||
expect fun extraHeader()
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> fun extraHeader()
|
||||
}
|
||||
}
|
||||
|
||||
expect class C {
|
||||
expect class N
|
||||
expect enum class E
|
||||
expect inner class I
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> class N
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> enum class E
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> inner class I
|
||||
}
|
||||
|
||||
expect class D {
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
// FILE: common.kt
|
||||
|
||||
class Foo {
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>expect fun bar(): String<!>
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!><!WRONG_MODIFIER_TARGET!>expect<!> fun bar(): String<!>
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>impl<!> class First
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>impl<!> class First
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class Second
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class Second
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class Third
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class Third
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class Fourth
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class Fourth
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class Fifth
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class Fifth
|
||||
|
||||
<!INCOMPATIBLE_MODIFIERS!>expect<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class Sixth
|
||||
<!INCOMPATIBLE_MODIFIERS!>expect<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class Sixth
|
||||
|
||||
+13
-13
@@ -2,21 +2,21 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect typealias Foo = String
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> typealias Foo = String
|
||||
|
||||
class Outer expect constructor() {
|
||||
expect class Nested
|
||||
class Outer <!WRONG_MODIFIER_TARGET!>expect<!> constructor() {
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> class Nested
|
||||
|
||||
expect init {}
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> init {}
|
||||
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>expect fun foo()<!>
|
||||
expect val bar: Int
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!><!WRONG_MODIFIER_TARGET!>expect<!> fun foo()<!>
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> val bar: Int
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
expect fun localFun()
|
||||
expect var x = 42
|
||||
expect class Bar
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> fun localFun()
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> var x = 42
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> class Bar
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm
|
||||
@@ -25,11 +25,11 @@ fun foo() {
|
||||
class Outer <!ACTUAL_WITHOUT_EXPECT!>actual constructor()<!> {
|
||||
actual class Nested
|
||||
|
||||
actual init {}
|
||||
<!WRONG_MODIFIER_TARGET!>actual<!> init {}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
actual fun localFun() {}
|
||||
actual var x = 42
|
||||
actual class Bar
|
||||
<!WRONG_MODIFIER_TARGET!>actual<!> fun localFun() {}
|
||||
<!WRONG_MODIFIER_TARGET!>actual<!> var x = 42
|
||||
<!WRONG_MODIFIER_TARGET!>actual<!> class Bar
|
||||
}
|
||||
|
||||
compiler/testData/diagnostics/tests/multiplatform/topLevelProperty/differentKindsOfProperties.fir.kt
Vendored
+3
-3
@@ -14,8 +14,8 @@ expect var varWithGetSet: String
|
||||
get set
|
||||
|
||||
expect var varWithPlatformGetSet: String
|
||||
expect get
|
||||
expect set
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> get
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> set
|
||||
|
||||
expect val backingFieldVal: String = <!EXPECTED_PROPERTY_INITIALIZER!>"no"<!>
|
||||
expect var backingFieldVar: String = <!EXPECTED_PROPERTY_INITIALIZER!>"no"<!>
|
||||
@@ -34,7 +34,7 @@ expect val delegated: String by <!EXPECTED_DELEGATED_PROPERTY!>Delegate<!>
|
||||
object Delegate { operator fun getValue(x: Any?, y: Any?): String = "" }
|
||||
|
||||
fun test(): String {
|
||||
expect val localVariable: String
|
||||
<!WRONG_MODIFIER_TARGET!>expect<!> val localVariable: String
|
||||
localVariable = "no"
|
||||
return localVariable
|
||||
}
|
||||
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
class A(<!ABSTRACT_PROPERTY_IN_PRIMARY_CONSTRUCTOR_PARAMETERS!>abstract<!> val i: Int)
|
||||
class B(abstract i: Int)
|
||||
+1
@@ -1,2 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
class A(<!ABSTRACT_PROPERTY_IN_PRIMARY_CONSTRUCTOR_PARAMETERS!>abstract<!> val i: Int)
|
||||
class B(<!WRONG_MODIFIER_TARGET!>abstract<!> i: Int)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
fun main(args: Array<String>) {
|
||||
fun f() = run {
|
||||
private class C {
|
||||
<!WRONG_MODIFIER_TARGET!>private<!> class C {
|
||||
private fun foo() {
|
||||
f().<!UNRESOLVED_REFERENCE!>foo<!>();
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ package test_visibility
|
||||
protected class ProtectedClass
|
||||
protected interface ProtectedTrait
|
||||
|
||||
protected val protected_val : Int = 4
|
||||
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,3 +0,0 @@
|
||||
fun foo() {
|
||||
sealed class My
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun foo() {
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> class My
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
sealed enum class SealedEnum {
|
||||
FIRST,
|
||||
SECOND;
|
||||
|
||||
class Derived: SealedEnum()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> enum class SealedEnum {
|
||||
FIRST,
|
||||
SECOND;
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
sealed object Sealed {
|
||||
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
<!WRONG_MODIFIER_TARGET!>sealed<!> object Sealed {
|
||||
|
||||
}
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
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,
|
||||
public a: Int)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
class A {
|
||||
constructor(
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
|
||||
|
||||
fun outer() {
|
||||
companion typealias TestLocal = Any
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
|
||||
|
||||
fun outer() {
|
||||
|
||||
+4
-4
@@ -8,7 +8,7 @@ annotation class JvmInline
|
||||
@JvmInline
|
||||
value class Foo(val x: Int)
|
||||
|
||||
value interface InlineInterface
|
||||
value annotation class InlineAnn
|
||||
value object InlineObject
|
||||
value enum class InlineEnum
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> interface InlineInterface
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> annotation class InlineAnn
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> object InlineObject
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> enum class InlineEnum
|
||||
|
||||
+3
-3
@@ -9,9 +9,9 @@ annotation class JvmInline
|
||||
|
||||
value class Foo(val x: Int)
|
||||
|
||||
value annotation class InlineAnn
|
||||
value object InlineObject
|
||||
value enum class InlineEnum
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> annotation class InlineAnn
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> object InlineObject
|
||||
<!WRONG_MODIFIER_TARGET!>value<!> enum class InlineEnum
|
||||
|
||||
@JvmInline
|
||||
value class NotVal(<!INLINE_CLASS_CONSTRUCTOR_NOT_FINAL_READ_ONLY_PARAMETER!>x: Int<!>)
|
||||
|
||||
Reference in New Issue
Block a user