d4b0688690
Before this commit we initialized delegate fields in primary constructor, that could provoke NPE in case delegate is used in initializer of some property backing field. Now we initialize delegate fields directly instead.
72 lines
1.6 KiB
Plaintext
Vendored
72 lines
1.6 KiB
Plaintext
Vendored
interface IBase<A : Any?> {
|
|
abstract fun <B : Any?> foo(a: A, b: B)
|
|
abstract val <C : Any?> C.id: Map<A, C>?
|
|
abstract get
|
|
|
|
abstract var <D : Any?> List<D>.x: D?
|
|
abstract get
|
|
abstract set
|
|
|
|
}
|
|
|
|
class Test1<E : Any?> : IBase<E> {
|
|
constructor(i: IBase<E>) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun <B : Any?> foo(a: E, b: B) {
|
|
<this>.#<$$delegate_0>.foo</* null */>(a = a, b = b)
|
|
}
|
|
|
|
override val <C : Any?> C.id: Map<E, C>?
|
|
override get(): Map<E, C>? {
|
|
return (<this>.#<$$delegate_0>, <this>).<get-id></* null */>()
|
|
}
|
|
|
|
override var <D : Any?> List<D>.x: D?
|
|
override get(): D? {
|
|
return (<this>.#<$$delegate_0>, <this>).<get-x></* null */>()
|
|
}
|
|
override set(<set-?>: D?) {
|
|
(<this>.#<$$delegate_0>, <this>).<set-x></* null */>(<set-?> = <set-?>)
|
|
}
|
|
|
|
local /* final field */ val <$$delegate_0>: IBase<E> = i
|
|
|
|
}
|
|
|
|
class Test2 : IBase<String> {
|
|
constructor(j: IBase<String>) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun <B : Any?> foo(a: String, b: B) {
|
|
<this>.#<$$delegate_0>.foo</* null */>(a = a, b = b)
|
|
}
|
|
|
|
override val <C : Any?> C.id: Map<String, C>?
|
|
override get(): Map<String, C>? {
|
|
return (<this>.#<$$delegate_0>, <this>).<get-id></* null */>()
|
|
}
|
|
|
|
override var <D : Any?> List<D>.x: D?
|
|
override get(): D? {
|
|
return (<this>.#<$$delegate_0>, <this>).<get-x></* null */>()
|
|
}
|
|
override set(<set-?>: D?) {
|
|
(<this>.#<$$delegate_0>, <this>).<set-x></* null */>(<set-?> = <set-?>)
|
|
}
|
|
|
|
local /* final field */ val <$$delegate_0>: IBase<String> = j
|
|
var j: IBase<String>
|
|
field = j
|
|
get
|
|
set
|
|
|
|
}
|
|
|