[FIR] Add diagnostic for primary constructor not called

This commit is contained in:
Nick
2020-07-31 18:01:52 +03:00
committed by Mikhail Glukhikh
parent bb0e1b7390
commit 0f213e58db
12 changed files with 44 additions and 23 deletions
@@ -2,7 +2,7 @@
fun test(vararg x1: Int, vararg x2: Int) {
fun test2(vararg x1: Int, vararg x2: Int) {
class LocalClass(vararg x1: Int, vararg x2: Int) {
constructor(vararg x1: Int, vararg x2: Int, xx: Int) {}
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(vararg x1: Int, vararg x2: Int, xx: Int)<!> {}
}
fun test3(vararg x1: Int, vararg x2: Int) {}
}
@@ -20,7 +20,7 @@ abstract class C(vararg x1: Int, vararg x2: Int, b: Boolean) {
abstract fun test2(vararg x1: Int, vararg x2: Int)
class CC(vararg x1: Int, vararg x2: Int, b: Boolean) {
constructor(vararg x1: Int, vararg x2: Int) {}
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(vararg x1: Int, vararg x2: Int)<!> {}
fun test(vararg x1: Int, vararg x2: Int) {}
}
}
@@ -29,7 +29,7 @@ object O {
fun test(vararg x1: Int, vararg x2: Int) {}
class CC(vararg x1: Int, vararg x2: Int, b: Boolean) {
constructor(vararg x1: Int, vararg x2: Int) {}
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(vararg x1: Int, vararg x2: Int)<!> {}
fun test(vararg x1: Int, vararg x2: Int) {}
}
}
@@ -7,7 +7,7 @@ expect enum class En(x: Int) {
E2(42),
;
constructor(s: String)
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(s: String)<!>
}
expect enum class En2 {
@@ -9,7 +9,7 @@ expect class Foo(
"no"
}
constructor(s: String) {
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(s: String)<!> {
"no"
}
@@ -4,7 +4,7 @@
// FILE: common.kt
expect class Foo(zzz: Int) {
constructor(aaa: Boolean)
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(aaa: Boolean)<!>
fun f1(xxx: String): String
}
@@ -14,7 +14,7 @@ enum class B(x: Int) {
constructor(x: Int, y: Int): this(x+y)
constructor(x: Double): this(x.toInt(), 1)
constructor(x: String): super(x, 1)
constructor(x: String): <!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>super<!>(x, 1)
}
enum class C {
@@ -1,8 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class A(x: Int) {
constructor()
}
open class B(x: Int)
class C(x: Int) : B(x) {
constructor(): super(1)
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class A(x: Int) {
<!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor()<!>
@@ -2,6 +2,6 @@
open class A(p1: String)
class B() : A("") {
<!INAPPLICABLE_CANDIDATE!>constructor(s: String)<!> {
<!INAPPLICABLE_CANDIDATE, PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(s: String)<!> {
}
}