Initial internal member mangling

This commit is contained in:
Michael Bogdanov
2015-10-05 11:54:06 +03:00
parent 306ac73eb7
commit 882f6113dc
28 changed files with 364 additions and 30 deletions
@@ -0,0 +1,20 @@
package test
internal val noMangling = 1;
class Z {
internal var noMangling = 1;
}
fun box(): String {
val clazz = Z::class.java
val classField = clazz.getDeclaredField("noMangling")
if (classField == null) return "Class internal backing field should exist"
if (!classField.isSynthetic) return "Class internal backing field should be synthetic"
val topLevel = Class.forName("test.FieldKt").getDeclaredField("noMangling")
if (topLevel == null) return "Top level internal backing field should exist"
if (!topLevel.isSynthetic) return "Top level internal backing field should be synthetic"
return "OK"
}
+24
View File
@@ -0,0 +1,24 @@
package test
internal fun noMangling() = 1;
class Z {
internal fun mangled() = 1;
}
fun box(): String {
val clazz = Z::class.java
val declaredMethods = clazz.declaredMethods
val mangled = declaredMethods.firstOrNull {
it.name.startsWith("mangled$")
}
if (mangled == null) return "Class internal function should exist"
if (!mangled.isSynthetic) return "Class internal function should be synthetic"
val topLevel = Class.forName("test.FunKt").getMethod("noMangling")
if (topLevel == null) return "Top level internal function should exist"
if (!topLevel.isSynthetic) return "Top level internal function should be synthetic"
return "OK"
}