// FIR_IDENTICAL //If this test hangs, it means something is broken. package c class A { val testVal : A = A() } //inappropriate but participating in resolve functions fun foo(a: A, b: A, i: Int) = a fun foo(a: Any) = a fun foo(a: A, b: Any) = a fun foo(a: A, b: A, s: String) = a //appropriate function fun foo(a: A, b: A) = a fun test(a: A) { //the problem occurs if there are nested function invocations to resolve (resolve for them is repeated now) //to copy this invocation many times (and to comment/uncomment inappropriate functions) to see the difference foo(foo(a, foo(a, foo(a, a.testVal))), a) }