[FE1.0, FIR] Support secondary constructors for Value Classes
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179
This commit is contained in:
committed by
Space Team
parent
8c3fa6f09f
commit
6107caa8e2
+1
-2
@@ -1,10 +1,9 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// LANGUAGE: +ValueClasses, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class IC private constructor(val i: Int) {
|
||||
@Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
constructor() : this(0) {
|
||||
counter += 1
|
||||
}
|
||||
|
||||
Vendored
+1
-2
@@ -1,10 +1,9 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class IC<T: Int> private constructor(val i: T) {
|
||||
@Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
constructor() : this(0 as T) {
|
||||
counter += 1
|
||||
}
|
||||
|
||||
+1
-3
@@ -1,8 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@file:Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
// LANGUAGE: +ValueClasses, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
var global = "wrong"
|
||||
|
||||
|
||||
Vendored
+1
-3
@@ -1,8 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
|
||||
@file:Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
var global = "wrong"
|
||||
|
||||
|
||||
+1
-2
@@ -1,6 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// LANGUAGE: +ValueClasses, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
var global = "wrong"
|
||||
|
||||
@@ -10,7 +10,6 @@ value class Foo(val x: Int) {
|
||||
|
||||
constructor(z: Long) : this(z.toInt() + 1)
|
||||
|
||||
@Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
constructor(other: Char) : this(other.toInt().toString()) {
|
||||
global = "OK"
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,6 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
var global = "wrong"
|
||||
|
||||
@@ -10,7 +10,6 @@ value class Foo<T: Int>(val x: T) {
|
||||
|
||||
constructor(z: Long) : this((z.toInt() + 1) as T)
|
||||
|
||||
@Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
constructor(other: Char) : this(other.toInt().toString()) {
|
||||
global = "OK"
|
||||
}
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
// IGNORE_BACKEND: JS_IR_ES6
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@file:Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
// LANGUAGE: +ValueClasses, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class Foo(val x: String) {
|
||||
|
||||
+1
-3
@@ -4,9 +4,7 @@
|
||||
// IGNORE_BACKEND: JS_IR_ES6
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
|
||||
@file:Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class Foo<T: String>(val x: T) {
|
||||
|
||||
Reference in New Issue
Block a user