Align generic signature for inner classes to work as in Java

#KT-10397 Fixed

According to JVMS (p. 4.3.4) inner classes should be separated with `$` in generic signature.

Note that in Java, inner types separated with `.` after first parameterized type, and now we preserve the same behaviour. See tests for clarification.
This commit is contained in:
Mikhail Zarechenskiy
2017-04-26 16:23:54 +03:00
parent 14e798a1fc
commit a0d7b703f4
16 changed files with 350 additions and 13 deletions
@@ -0,0 +1,9 @@
class Outer {
inner class Inner<G>
fun <A> foo(): Inner<A> = TODO()
}
// method: Outer::foo
// jvm signature: ()LOuter$Inner;
// generic signature: <A:Ljava/lang/Object;>()LOuter$Inner<TA;>;