[FIR] Generate an error primary constructor when super call is invalid

Merge-request: KT-MR-11026
Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
This commit is contained in:
Egor Kulikov
2023-07-13 17:37:48 +00:00
committed by Space Team
parent a588e75c11
commit 70d49999ac
30 changed files with 523 additions and 75 deletions
@@ -33,12 +33,20 @@ FILE: classWithWrongSuperCall.kt
}
public? final? class F : A {
public? error_constructor(): R|F| {
LAZY_super<A>
}
public? constructor(): R|F| {
LAZY_super<A>
}
}
public? final? class G : A {
public? error_constructor(): R|G| {
LAZY_super<A>
}
public? constructor(): R|G| {
LAZY_super<A>
}
@@ -54,12 +54,32 @@ FILE: classWithWrongSuperCall.kt
}
public? final? class F : A {
public? [ContainingClassKey=F] error_constructor(): R|F| {
super<A>(fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
local final? fun foo(): <implicit> {
^foo B#.prop#.toString#()
}
}
)
}
public? [ContainingClassKey=F] constructor(): R|F| {
super<A>()
}
}
public? final? class G : A {
public? [ContainingClassKey=G] error_constructor(): R|G| {
super<A>(fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
local final? fun foo(): <implicit> {
^foo B#.prop#.toString#()
}
}
)
}
public? [ContainingClassKey=G] constructor(): R|G| {
super<A>(fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
local final? fun foo(): <implicit> {