class Outer { inner class Inner } object Foo { fun foo(x: Outer.Inner) = 1 } // class: Outer // jvm signature: Outer // generic signature: Ljava/lang/Object; // class: Outer$Inner // jvm signature: Outer$Inner // generic signature: Ljava/lang/Object; // method: Foo::foo // jvm signature: (LOuter$Inner;)I // generic signature: (LOuter.Inner;)I