diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/SignatureUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/SignatureUtil.java index 72d2ae08868..b8ee1a1c445 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/SignatureUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/SignatureUtil.java @@ -45,8 +45,9 @@ public class SignatureUtil { } else { sb.append("T"); - sb.append(descriptor.getContainingDeclaration().getName()); - sb.append(";"); + JetType defaultType = ((ClassDescriptor) descriptor.getContainingDeclaration()).getDefaultType(); + Type type = typeMapper.mapType(defaultType, OwnerKind.IMPLEMENTATION); + sb.append(type.getDescriptor()); sb.append(descriptor.getName()); sb.append(";"); } diff --git a/stdlib/src/jet/typeinfo/TypeInfo.java b/stdlib/src/jet/typeinfo/TypeInfo.java index fa7abb6afa1..2fb20baa47e 100644 --- a/stdlib/src/jet/typeinfo/TypeInfo.java +++ b/stdlib/src/jet/typeinfo/TypeInfo.java @@ -669,7 +669,9 @@ public abstract class TypeInfo implements JetObject { private TypeInfo parseTypeVar(Signature signature) { TypeInfoVariance variance = parseVariance(); - String klazz = parseName(); + assert string[cur] == 'L'; + cur++; + String klazz = parseName().replace('/','.'); String name = parseName(); boolean nullable = false; if(string[cur] == '?') {