| // RUN_PIPELINE_TILL: FRONTEND |
| // CHECK_TYPE |
| // DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE |
| |
| class A { |
| fun forEach() = this |
| fun forEach(i: Int) = this |
| } |
| |
| @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") |
| @kotlin.internal.HidesMembers |
| fun A.forEach(i: Int) = i |
| |
| class B { |
| @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") |
| @kotlin.internal.HidesMembers |
| fun A.forEach() = this@B |
| |
| fun test(a: A) { |
| a.forEach() checkType { _<A>() } // todo |
| |
| with(a) { |
| forEach() checkType { _<A>() } // todo |
| } |
| } |
| } |
| |
| fun test2(a: A) { |
| @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") |
| @kotlin.internal.HidesMembers |
| fun A.forEach() = "" |
| |
| @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") |
| @kotlin.internal.HidesMembers |
| fun A.forEach(i: Int) = "" |
| |
| a.forEach() checkType { _<String>() } |
| a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>forEach<!>(1) |
| |
| with(a) { |
| forEach() checkType { _<String>() } |
| <!OVERLOAD_RESOLUTION_AMBIGUITY!>forEach<!>(1) |
| } |
| } |
| |
| /* GENERATED_FIR_TAGS: classDeclaration, funWithExtensionReceiver, functionDeclaration, functionalType, infix, |
| integerLiteral, lambdaLiteral, localFunction, nullableType, stringLiteral, thisExpression, typeParameter, |
| typeWithExtension */ |