package test class G(val s: T) { } public trait ErrorsJvmTrait { class object { public val param : G = G("STRING") } } public class ErrorsJvmClass { class object { public val param : G = G("STRING") } } fun box(): String { val genericTypeInTrait = javaClass().getField("param").getGenericType() if (genericTypeInTrait.toString() != "test.G") return "fail1: $genericTypeInTrait" val genericTypeInClassObject = ErrorsJvmTrait.javaClass.getDeclaredField("param").getGenericType() if (genericTypeInClassObject.toString() != "test.G") return "fail1: $genericTypeInClassObject" val genericTypeInClass = javaClass().getField("param").getGenericType() if (genericTypeInClass.toString() != "test.G") return "fail1: genericTypeInClass" return "OK" }