blob: 794800f7fc04472b4e6eda6825e24a9b009cdd57 [file]
// RUN_PIPELINE_TILL: FRONTEND
// LANGUAGE: -ContextReceivers
// RENDER_DIAGNOSTICS_FULL_TEXT
// ISSUE: KT-49015, KT-51433
// FIR_DUMP
fun Int.with() {
<!CANNOT_INFER_PARAMETER_TYPE!>with<!>("") {
this<!LABEL_NAME_CLASH!>@with<!>.<!UNRESOLVED_REFERENCE!>inc<!>()
}
}
fun Int.bar() {
<!CANNOT_INFER_PARAMETER_TYPE!>with<!>("") bar@{
this<!LABEL_NAME_CLASH!>@bar<!>.<!UNRESOLVED_REFERENCE!>inc<!>()
}
}
fun foo(f: with.() -> Unit) {}
class with {
fun foo() {
<!CANNOT_INFER_PARAMETER_TYPE!>with<!>("") {
this<!LABEL_NAME_CLASH!>@with<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
}
<!CANNOT_INFER_PARAMETER_TYPE!>with<!>("") with@{
this<!LABEL_NAME_CLASH!>@with<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
}
with("") other@{
this@with.foo()
}
}
}
private typealias Extension = TypedThis
class TypedThis {
fun TypedThis.baz() {
this@TypedThis
}
fun Extension.bar() {
this@TypedThis
}
}
object OtherTests {
fun Int.with() {
<!CANNOT_INFER_PARAMETER_TYPE!>with<!>("") {
this<!LABEL_NAME_CLASH!>@with<!>.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toString()<!>
this<!LABEL_NAME_CLASH!>@with<!>.length
this<!LABEL_NAME_CLASH!>@with<!>.<!UNRESOLVED_REFERENCE!>inc<!>()
}
}
}
object OtherTests2 {
fun Int.with() {
with("") {
this<!LABEL_NAME_CLASH!>@with<!>.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toString()<!>
}
}
}
/* GENERATED_FIR_TAGS: classDeclaration, funWithExtensionReceiver, functionDeclaration, functionalType, lambdaLiteral,
objectDeclaration, stringLiteral, thisExpression, typeAliasDeclaration, typeWithExtension */