Hide constructors accepting inline class parameters

This commit is contained in:
Dmitry Petrov
2018-09-07 14:16:20 +03:00
parent 8a5dbe1c6b
commit 006c0aa740
28 changed files with 663 additions and 4 deletions
@@ -0,0 +1,9 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
class Test(val x: S, val y: S = S("K")) {
val test = x.string + y.string
}
fun box() = Test(S("O")).test
@@ -0,0 +1,9 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
abstract class Base(val x: S)
class Test(x: S) : Base(x)
fun box() = Test(S("OK")).x.string
@@ -0,0 +1,11 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
abstract class Base(val x: S)
class Test : Base {
constructor() : super(S("OK"))
}
fun box() = Test().x.string
@@ -0,0 +1,11 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
class Test(val x: S, val y: S) {
constructor(x: S) : this(x, S("K"))
val test = x.string + y.string
}
fun box() = Test(S("O")).test
@@ -0,0 +1,9 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
enum class Test(val s: S) {
OK(S("OK"))
}
fun box() = Test.OK.s.string
@@ -0,0 +1,11 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
class Outer(val s1: S) {
inner class Inner(val s2: S) {
val test = s1.string + s2.string
}
}
fun box() = Outer(S("O")).Inner(S("K")).test
@@ -0,0 +1,7 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
class Test(val s: S)
fun box() = Test(S("OK")).s.string
@@ -0,0 +1,11 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
class Outer private constructor(val s: S) {
class Nested {
fun test(s: S) = Outer(s)
}
}
fun box() = Outer.Nested().test(S("OK")).s.string
@@ -0,0 +1,9 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
sealed class Sealed(val x: S)
class Test(x: S) : Sealed(x)
fun box() = Test(S("OK")).x.string
@@ -0,0 +1,9 @@
// !LANGUAGE: +InlineClasses
inline class S(val string: String)
class Test(val s: S) {
constructor(x: String, s: S) : this(S(x + s.string))
}
fun box() = Test("O", S("K")).s.string