From aae94afff2f6cace4033ea468b43abf48c5d2817 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Sat, 2 Apr 2011 18:37:43 +0400 Subject: [PATCH] Ordinal class type mapping. --- .../org/jetbrains/jet/codegen/JetTypeMapper.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/idea/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/idea/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 09d76daa986..0fc1b83eef5 100644 --- a/idea/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/idea/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -42,6 +42,20 @@ public class JetTypeMapper { if (JetStandardClasses.getAny().equals(descriptor)) { return Type.getType(Object.class); } + + if (descriptor instanceof ClassDescriptor) { + return Type.getObjectType(getFQName(descriptor).replace('.', '/')); + } + throw new UnsupportedOperationException("Unknown type " + jetType); } + + private static String getFQName(DeclarationDescriptor descriptor) { + DeclarationDescriptor container = descriptor.getContainingDeclaration(); + if (container != null && !(container instanceof ModuleDescriptor)) { + return getFQName(container) + "." + descriptor.getName(); + } + + return descriptor.getName(); + } }