FIR: Introduce CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT diagnostic

This commit is contained in:
Br0mm
2021-02-04 13:44:35 +03:00
committed by Mikhail Glukhikh
parent 6c2eaf2df8
commit dd3bc1a964
16 changed files with 242 additions and 8 deletions
@@ -0,0 +1,100 @@
FILE: constValNotTopLevelOrObject.kt
public final const val a: R|kotlin/Int| = Int(1)
public get(): R|kotlin/Int|
public final object B : R|kotlin/Any| {
private constructor(): R|B| {
super<R|kotlin/Any|>()
}
public final const val b: R|kotlin/Int| = Int(2)
public get(): R|kotlin/Int|
}
public final class C : R|kotlin/Any| {
public constructor(): R|C| {
super<R|kotlin/Any|>()
}
public final const val c: R|kotlin/Int| = Int(3)
public get(): R|kotlin/Int|
}
public final class D : R|kotlin/Any| {
public constructor(): R|D| {
super<R|kotlin/Any|>()
}
public final object E : R|kotlin/Any| {
private constructor(): R|D.E| {
super<R|kotlin/Any|>()
}
public final const val e: R|kotlin/Int| = Int(4)
public get(): R|kotlin/Int|
}
public final companion object K : R|kotlin/Any| {
private constructor(): R|D.K| {
super<R|kotlin/Any|>()
}
public final const val k: R|kotlin/Int| = Int(4)
public get(): R|kotlin/Int|
}
public final val M: R|kotlin/Any| = object : R|kotlin/Any| {
private constructor(): R|<anonymous>| {
super<R|kotlin/Any|>()
}
public final const val m: R|kotlin/Int| = Int(3)
public get(): R|kotlin/Int|
}
public get(): R|kotlin/Any|
public open class O : R|kotlin/Any| {
public constructor(): R|D.O| {
super<R|kotlin/Any|>()
}
public open val y: R|kotlin/Int| = Int(8)
public get(): R|kotlin/Int|
}
public final val t: R|D.O| = object : R|D.O| {
private constructor(): R|<anonymous>| {
super<R|D.O|>()
}
public final const val x: R|kotlin/Int| = Int(15)
public get(): R|kotlin/Int|
}
public get(): R|D.O|
}
public final object F : R|kotlin/Any| {
private constructor(): R|F| {
super<R|kotlin/Any|>()
}
public final class G : R|kotlin/Any| {
public constructor(): R|F.G| {
super<R|kotlin/Any|>()
}
public final const val e: R|kotlin/Int| = Int(4)
public get(): R|kotlin/Int|
}
}
public final fun foo(): R|kotlin/Unit| {
lval a: R|kotlin/String| = String(2)
}
@@ -0,0 +1,42 @@
const val a = 1
object B {
const val b = 2
}
class C {
<!CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT!>const<!> val c = 3
}
class D {
object E {
const val e = 4
}
companion object K {
const val k = 4
}
val M = object {
<!CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT!>const<!> val m = 3
}
open class O {
open val y: Int = 8
}
val t: O = object : O() {
<!CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT!>const<!> val x = 15
}
}
object F {
class G {
<!CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT!>const<!> val e = 4
}
}
fun foo() {
<!CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT!>const<!> val a = "2"
}