// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE open class Outer { inner class Inner } class Derived : Outer() { // Inner here means Outer.Inner fun foo(x: Inner) {} } class A { companion object : Outer() // Does not work, could be Outer.Inner // TODO: Should work? fun foo(x: Inner) { // Inner() call use companion as implicit receiver val y: Outer.Inner = Inner() } }