Files
kotlin-fork/compiler/testData/diagnostics/tests/controlFlowAnalysis/fieldAsClassDelegate.fir.kt
T
Brian Norman c628172235 [FIR] Disallow qualified access to uninitialized fields in delegate
When using a field as the delegate for a super-interface of an object,
make sure uninitialized fields are not allowed. Specifically, disallow
access to these fields when referenced via object qualifier.

^KT-56489 Fixed
2024-01-23 23:16:00 +00:00

33 lines
788 B
Kotlin
Vendored

// WITH_STDLIB
// NI_EXPECTED_FILE
// ISSUE: KT-15566, KT-56489
import DefaultHttpClient.client
interface HttpClient
class HttpClientImpl : HttpClient
// Below we should have initialization error for both (!) delegates
object DefaultHttpClient : HttpClient by <!UNINITIALIZED_VARIABLE!>client<!> {
val client = HttpClientImpl()
}
object DefaultHttpClientWithGetter : HttpClient by client {
val client get() = HttpClientImpl()
}
object DefaultHttpClientWithFun : HttpClient by fClient() {
}
private fun fClient() = HttpClientImpl()
object DefaultHttpClientWithBy : HttpClient by client {
val client by lazy { HttpClientImpl() }
}
object DefaultFqHttpClient : HttpClient by <!UNINITIALIZED_VARIABLE!>DefaultFqHttpClient.client<!> {
val client = HttpClientImpl()
}