Fix VerifyError for enum constructor with default arguments
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
annotation class A(val a: Int = 0)
|
||||
|
||||
A fun test1() = 1
|
||||
A(2) fun test2() = 1
|
||||
|
||||
fun box(): String {
|
||||
if ((test1() + test2()) == 2) {
|
||||
return "OK"
|
||||
}
|
||||
return "fail"
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
class A {
|
||||
class B(val a: Double = 1.0, val b: Int = 55, val c: String = "c")
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val bDefault = A().B()
|
||||
val b = A().B(2.0, 66, "cc")
|
||||
if (bDefault.a == 1.0 && bDefault.b == 55 && bDefault.c == "c") {
|
||||
if (b.a == 2.0 && b.b == 66 && b.c == "cc") {
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
return "fail"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
enum class A(val a: Int = 1) {
|
||||
FIRST: A()
|
||||
SECOND: A(2)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (A.FIRST.a == 1 && A.SECOND.a == 2) {
|
||||
return "OK"
|
||||
}
|
||||
return "fail"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
enum class Foo(val a: Int = 1, val b: String) {
|
||||
B: Foo(2, "b")
|
||||
C: Foo(b = "b")
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (Foo.B.a != 2 || Foo.B.b != "b") return "fail"
|
||||
if (Foo.C.a != 1 || Foo.C.b != "b") return "fail"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
enum class Foo(val a: Int = 1, val b: String = "a") {
|
||||
A: Foo()
|
||||
B: Foo(2, "b")
|
||||
C: Foo(b = "b")
|
||||
D: Foo(a = 2)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (Foo.A.a != 1 || Foo.A.b != "a") return "fail"
|
||||
if (Foo.B.a != 2 || Foo.B.b != "b") return "fail"
|
||||
if (Foo.C.a != 1 || Foo.C.b != "b") return "fail"
|
||||
if (Foo.D.a != 2 || Foo.D.b != "a") return "fail"
|
||||
return "OK"
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
enum class Foo(val a: Double = 1.0, val b: Double = 1.0) {
|
||||
A: Foo()
|
||||
B: Foo(2.0, 2.0)
|
||||
C: Foo(b = 2.0)
|
||||
D: Foo(a = 2.0)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (Foo.A.a != 1.0 || Foo.A.b != 1.0) return "fail"
|
||||
if (Foo.B.a != 2.0 || Foo.B.b != 2.0) return "fail"
|
||||
if (Foo.C.a != 1.0 || Foo.C.b != 2.0) return "fail"
|
||||
if (Foo.D.a != 2.0 || Foo.D.b != 1.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun Int.foo(a: Int = 1): Int {
|
||||
return a
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (1.foo() != 1) return "fail"
|
||||
if (1.foo(2) != 2) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun Double.foo(a: Double = 1.0): Double {
|
||||
return a
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (1.0.foo() != 1.0) return "fail"
|
||||
if (1.0.foo(2.0) != 2.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fun Double.foo(a: Double = 1.0, b: Double = 1.0): Double {
|
||||
return a + b
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (1.0.foo() != 2.0) return "fail"
|
||||
if (1.0.foo(2.0, 2.0) != 4.0) return "fail"
|
||||
if (1.0.foo(a = 2.0) != 3.0) return "fail"
|
||||
if (1.0.foo(b = 2.0) != 3.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
class A {
|
||||
class object {
|
||||
fun Int.foo(a: Int = 1): Int {
|
||||
return a
|
||||
}
|
||||
|
||||
fun test(): String {
|
||||
if (1.foo() != 1) return "fail"
|
||||
if (1.foo(2) != 2) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return A.test()
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
object A {
|
||||
fun Int.foo(a: Int = 1): Int {
|
||||
return a
|
||||
}
|
||||
|
||||
fun test(): String {
|
||||
if (1.foo() != 1) return "fail"
|
||||
if (1.foo(2) != 2) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return A.test()
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun Int.foo(a: Int = 1, b: String): Int {
|
||||
return a
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (1.foo(b = "b") != 1) return "fail"
|
||||
if (1.foo(2, "b") != 2) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
trait Foo {
|
||||
fun foo(a: Double = 1.0): Double
|
||||
}
|
||||
|
||||
class FooImpl : Foo {
|
||||
override fun foo(a: Double): Double {
|
||||
return a
|
||||
}
|
||||
}
|
||||
fun box(): String {
|
||||
if (FooImpl().foo() != 1.0) return "fail"
|
||||
if (FooImpl().foo(2.0) != 2.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class A {
|
||||
fun Int.foo(a: Int = 1): Int {
|
||||
return a
|
||||
}
|
||||
|
||||
fun test(): String {
|
||||
if (1.foo() != 1) return "fail"
|
||||
if (1.foo(2) != 2) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return A().test()
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class A {
|
||||
fun Double.foo(a: Double = 1.0): Double {
|
||||
return a
|
||||
}
|
||||
|
||||
fun test(): String {
|
||||
if (1.0.foo() != 1.0) return "fail"
|
||||
if (1.0.foo(2.0) != 2.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return A().test()
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
class A {
|
||||
fun Double.foo(a: Double = 1.0, b: Double = 1.0): Double {
|
||||
return a + b
|
||||
}
|
||||
|
||||
fun test(): String {
|
||||
if (1.0.foo() != 2.0) return "fail"
|
||||
if (1.0.foo(2.0, 2.0) != 4.0) return "fail"
|
||||
if (1.0.foo(a = 2.0) != 3.0) return "fail"
|
||||
if (1.0.foo(b = 2.0) != 3.0) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return A().test()
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
enum class Foo(val a: Int = 1) {
|
||||
A: Foo()
|
||||
}
|
||||
|
||||
// CLASS: Foo
|
||||
// HAS_DEFAULT_CONSTRUCTOR: false
|
||||
Reference in New Issue
Block a user