| // 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 */ |