Fix parameter names of Java inner classes in reflection

#KT-25541 Fixed
This commit is contained in:
Alexander Udalov
2018-07-17 16:21:10 +02:00
parent 873e1b01d6
commit 0f0602230a
3 changed files with 15 additions and 1 deletions
@@ -9,6 +9,10 @@ public class J {
public void foo(int methodParam) {}
public static void bar(J staticMethodParam) {}
class Inner {
public Inner(double innerParam, Object innerParam2) {}
}
}
// FILE: K.kt
@@ -19,6 +23,7 @@ fun box(): String {
assertEquals(listOf("constructorParam"), ::J.parameters.map { it.name })
assertEquals(listOf(null, "methodParam"), J::foo.parameters.map { it.name })
assertEquals(listOf("staticMethodParam"), J::bar.parameters.map { it.name })
assertEquals(listOf(null, "innerParam", "innerParam2"), J::Inner.parameters.map { it.name })
return "OK"
}
@@ -8,6 +8,10 @@ public class J {
public void foo(int methodParam) {}
public static void bar(J staticMethodParam) {}
class Inner {
public Inner(double innerParam, Object innerParam2) {}
}
}
// FILE: K.kt
@@ -18,6 +22,7 @@ fun box(): String {
assertEquals(listOf("arg0"), ::J.parameters.map { it.name })
assertEquals(listOf(null, "arg0"), J::foo.parameters.map { it.name })
assertEquals(listOf("arg0"), J::bar.parameters.map { it.name })
assertEquals(listOf(null, "arg1", "arg2"), J::Inner.parameters.map { it.name })
return "OK"
}