From eed755aae147640a59371a80ffb3b18adef88b6d Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 17 Aug 2012 17:32:44 +0400 Subject: [PATCH] move getJvmInternalName to JetPositionManager --- .../jetbrains/jet/codegen/JetTypeMapper.java | 9 -------- .../plugin/debugger/JetPositionManager.java | 22 ++++++++++++++----- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 28287eda721..7c231353bfa 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -1075,15 +1075,6 @@ public class JetTypeMapper { } } - @Nullable - public String getJvmInternalName(JetClassOrObject jetClass) { - final ClassDescriptor classDescriptor = bindingContext.get(BindingContext.CLASS, jetClass); - if (classDescriptor == null) { - return null; - } - return mapType(classDescriptor.getDefaultType(), MapTypeMode.IMPL).getInternalName(); - } - private static boolean isForceReal(JvmClassName className) { return JvmPrimitiveType.getByWrapperClass(className) != null || className.getFqName().getFqName().equals("java.lang.String") diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java index b6de25a02a3..1e8f8c879f8 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java @@ -37,9 +37,12 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.MapTypeMode; import org.jetbrains.jet.codegen.NamespaceCodegen; import org.jetbrains.jet.di.InjectorForJetTypeMapper; +import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.java.JetFilesProvider; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade; @@ -130,23 +133,23 @@ public class JetPositionManager implements PositionManager { @Override @SuppressWarnings("unchecked") public void run() { - final JetFile namespace = (JetFile)sourcePosition.getFile(); + final JetFile namespace = (JetFile) sourcePosition.getFile(); final JetTypeMapper typeMapper = prepareTypeMapper(namespace); PsiElement element = PsiTreeUtil.getParentOfType(sourcePosition.getElementAt(), JetClassOrObject.class, JetFunctionLiteralExpression.class, JetNamedFunction.class); if (element instanceof JetClassOrObject) { - result.set(typeMapper.getJvmInternalName((JetClassOrObject) element)); + result.set(getJvmInternalName(typeMapper, (JetClassOrObject) element)); } else if (element instanceof JetFunctionLiteralExpression) { - result.set(typeMapper.getClosureAnnotator().classNameForAnonymousClass((JetFunctionLiteralExpression)element).getInternalName()); + result.set(typeMapper.getClosureAnnotator().classNameForAnonymousClass((JetFunctionLiteralExpression) element).getInternalName()); } else if (element instanceof JetNamedFunction) { PsiElement parent = PsiTreeUtil.getParentOfType(element, JetClassOrObject.class, JetFunctionLiteralExpression.class, JetNamedFunction.class); if (parent instanceof JetClassOrObject) { - result.set(typeMapper.getJvmInternalName((JetClassOrObject) parent)); + result.set(getJvmInternalName(typeMapper, (JetClassOrObject) parent)); } else if (parent instanceof JetFunctionLiteralExpression || parent instanceof JetNamedFunction) { - result.set(typeMapper.getClosureAnnotator().classNameForAnonymousClass((JetElement)element).getInternalName()); + result.set(typeMapper.getClosureAnnotator().classNameForAnonymousClass((JetElement) element).getInternalName()); } } @@ -168,6 +171,15 @@ public class JetPositionManager implements PositionManager { return result.get(); } + @Nullable + private String getJvmInternalName(JetTypeMapper typeMapper, JetClassOrObject jetClass) { + final ClassDescriptor classDescriptor = typeMapper.bindingContext.get(BindingContext.CLASS, jetClass); + if (classDescriptor == null) { + return null; + } + return typeMapper.mapType(classDescriptor.getDefaultType(), MapTypeMode.IMPL).getInternalName(); + } + private JetTypeMapper prepareTypeMapper(final JetFile file) { FqName fqName = JetPsiUtil.getFQName(file); CachedValue value = myTypeMappers.get(fqName);