Opt-in: forbid/deprecate constructor call with default arguments under marker
#KT-55074 Fixed
This commit is contained in:
committed by
Space Team
parent
b92ce68f32
commit
8ddc535caf
+26
@@ -0,0 +1,26 @@
|
||||
@RequiresOptIn
|
||||
annotation class Marker
|
||||
|
||||
@Marker
|
||||
class Some(val x: Int)
|
||||
|
||||
class Other(val x: Int) {
|
||||
@OptIn(Marker::class)
|
||||
constructor(some: Some): this(some.x)
|
||||
|
||||
@Marker
|
||||
constructor(): this(42)
|
||||
|
||||
@OptIn(Marker::class)
|
||||
constructor(y: Long, some: Some? = null): this(some?.x ?: y.toInt())
|
||||
}
|
||||
|
||||
fun foo(some: <!OPT_IN_USAGE_ERROR!>Some<!>? = null) {}
|
||||
|
||||
fun test() {
|
||||
val o1 = <!OPT_IN_USAGE_ERROR!>Other<!>()
|
||||
val o2 = <!OPT_IN_USAGE_ERROR!>Other<!>(<!OPT_IN_USAGE_ERROR!>Some<!>(0))
|
||||
val o3 = <!OPT_IN_USAGE_ERROR!>Other<!>(444L)
|
||||
<!OPT_IN_USAGE_ERROR!>foo<!>()
|
||||
<!OPT_IN_USAGE_ERROR!>foo<!>(null)
|
||||
}
|
||||
Reference in New Issue
Block a user