From 6cc85a6ce3d2a4ab4e87c77fc423063547e40820 Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Thu, 30 Aug 2012 12:06:23 +0300 Subject: [PATCH] JetTypeMapper moved to state package --- .../jetbrains/jet/codegen/AnnotationCodegen.java | 1 + .../org/jetbrains/jet/codegen/ClosureCodegen.java | 1 + .../src/org/jetbrains/jet/codegen/CodegenUtil.java | 14 +++++++++++++- .../jetbrains/jet/codegen/ExpressionCodegen.java | 1 + .../jet/codegen/ImplementationBodyCodegen.java | 3 ++- .../jet/codegen/TraitImplBodyCodegen.java | 10 ---------- .../jet/codegen/context/AnonymousClassContext.java | 2 +- .../jet/codegen/context/ClassContext.java | 2 +- .../jet/codegen/context/ClosureContext.java | 2 +- .../jet/codegen/context/CodegenContext.java | 1 + .../jet/codegen/{ => state}/JetTypeMapper.java | 7 ++++--- .../jet/codegen/state/TypeMapperAware.java | 1 - .../jetbrains/jet/di/InjectorForJvmCodegen.java | 2 +- .../org/jetbrains/jet/codegen/TestlibTest.java | 1 + .../jet/plugin/debugger/JetPositionManager.java | 2 +- .../plugin/debugger/JetPositionManagerTest.java | 2 +- .../jetbrains/jet/di/AllInjectorsGenerator.java | 1 + 17 files changed, 31 insertions(+), 22 deletions(-) rename compiler/backend/src/org/jetbrains/jet/codegen/{ => state}/JetTypeMapper.java (99%) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java index 96c4f4d8592..28ed98900ca 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java @@ -23,6 +23,7 @@ import org.jetbrains.asm4.ClassVisitor; import org.jetbrains.asm4.FieldVisitor; import org.jetbrains.asm4.MethodVisitor; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.Annotated; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index 120bc6c8396..3f6b0944b02 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -33,6 +33,7 @@ import org.jetbrains.jet.codegen.context.CodegenContext; import org.jetbrains.jet.codegen.binding.MutableClosure; import org.jetbrains.jet.codegen.signature.JvmMethodSignature; import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.JetDeclarationWithBody; import org.jetbrains.jet.lang.psi.JetElement; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java index 195cfde8732..6fa41fb49fe 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/CodegenUtil.java @@ -29,10 +29,12 @@ import org.jetbrains.jet.codegen.binding.CalculatedClosure; import org.jetbrains.jet.codegen.signature.BothSignatureWriter; import org.jetbrains.jet.codegen.signature.JvmMethodParameterKind; import org.jetbrains.jet.codegen.signature.JvmMethodSignature; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType; @@ -162,7 +164,7 @@ public class CodegenUtil { } } - static JvmMethodSignature erasedInvokeSignature(FunctionDescriptor fd) { + public static JvmMethodSignature erasedInvokeSignature(FunctionDescriptor fd) { BothSignatureWriter signatureWriter = new BothSignatureWriter(BothSignatureWriter.Mode.METHOD, false); @@ -334,4 +336,14 @@ public class CodegenUtil { return null; } + + public static JetType getSuperClass(ClassDescriptor classDescriptor) { + final List superclassDescriptors = DescriptorUtils.getSuperclassDescriptors(classDescriptor); + for (ClassDescriptor descriptor : superclassDescriptors) { + if (descriptor.getKind() != ClassKind.TRAIT) { + return descriptor.getDefaultType(); + } + } + return JetStandardClasses.getAnyType(); + } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index a773b50a836..f7a997fc035 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -37,6 +37,7 @@ import org.jetbrains.jet.codegen.context.*; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethod; import org.jetbrains.jet.codegen.signature.JvmPropertyAccessorSignature; import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; import org.jetbrains.jet.lang.psi.*; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 5e6cabaf1fd..ad0e4a62336 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -34,6 +34,7 @@ import org.jetbrains.jet.codegen.signature.*; import org.jetbrains.jet.codegen.signature.kotlin.JetMethodAnnotationWriter; import org.jetbrains.jet.codegen.signature.kotlin.JetValueParameterAnnotationWriter; import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -963,7 +964,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { reg += argType.getSize(); } - JetType jetType = TraitImplBodyCodegen.getSuperClass(declaration); + JetType jetType = CodegenUtil.getSuperClass(declaration); Type type = typeMapper.mapType(jetType, MapTypeMode.IMPL); if (type.getInternalName().equals("java/lang/Object")) { jetType = declaration.getDefaultType(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/TraitImplBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/TraitImplBodyCodegen.java index 73c506cea4d..8cbedb3eaa6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/TraitImplBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/TraitImplBodyCodegen.java @@ -34,16 +34,6 @@ public class TraitImplBodyCodegen extends ClassBodyCodegen { super(aClass, context, v, state); } - static JetType getSuperClass(ClassDescriptor classDescriptor) { - final List superclassDescriptors = DescriptorUtils.getSuperclassDescriptors(classDescriptor); - for (ClassDescriptor descriptor : superclassDescriptors) { - if (descriptor.getKind() != ClassKind.TRAIT) { - return descriptor.getDefaultType(); - } - } - return JetStandardClasses.getAnyType(); - } - @Override protected void generateDeclaration() { v.defineClass(myClass, V1_6, diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/AnonymousClassContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/AnonymousClassContext.java index b7352cc211c..1becd05c90b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/AnonymousClassContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/AnonymousClassContext.java @@ -16,7 +16,7 @@ package org.jetbrains.jet.codegen.context; -import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.OwnerKind; import org.jetbrains.jet.codegen.binding.MutableClosure; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/ClassContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/ClassContext.java index 04df9290743..991d453cd4e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/ClassContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/ClassContext.java @@ -16,7 +16,7 @@ package org.jetbrains.jet.codegen.context; -import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.OwnerKind; import org.jetbrains.jet.codegen.binding.MutableClosure; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/ClosureContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/ClosureContext.java index b71e426412a..c203d70c4c9 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/ClosureContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/ClosureContext.java @@ -17,7 +17,7 @@ package org.jetbrains.jet.codegen.context; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.OwnerKind; import org.jetbrains.jet.codegen.binding.MutableClosure; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java index c7b495df512..6eba28d7eb2 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenContext.java @@ -23,6 +23,7 @@ import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.codegen.binding.CodegenBinding; import org.jetbrains.jet.codegen.binding.MutableClosure; import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java similarity index 99% rename from compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java rename to compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java index d787825bb62..d0b8cd15039 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java @@ -14,12 +14,13 @@ * limitations under the License. */ -package org.jetbrains.jet.codegen; +package org.jetbrains.jet.codegen.state; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.asm4.Type; +import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.codegen.binding.CalculatedClosure; import org.jetbrains.jet.codegen.context.EnclosedValueDescriptor; import org.jetbrains.jet.codegen.signature.*; @@ -480,7 +481,7 @@ public class JetTypeMapper extends BindingTraceAware { if (kind == OwnerKind.TRAIT_IMPL) { ClassDescriptor containingDeclaration = (ClassDescriptor) f.getContainingDeclaration(); - JetType jetType = TraitImplBodyCodegen.getSuperClass(containingDeclaration); + JetType jetType = CodegenUtil.getSuperClass(containingDeclaration); Type type = mapType(jetType, MapTypeMode.VALUE); if (type.getInternalName().equals("java/lang/Object")) { jetType = containingDeclaration.getDefaultType(); @@ -859,7 +860,7 @@ public class JetTypeMapper extends BindingTraceAware { return null; } - protected JvmMethodSignature invokeSignature(FunctionDescriptor fd) { + public JvmMethodSignature invokeSignature(FunctionDescriptor fd) { return mapSignature(Name.identifier("invoke"), fd); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/TypeMapperAware.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/TypeMapperAware.java index 0c1e7765201..f7ac1581948 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/TypeMapperAware.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/TypeMapperAware.java @@ -17,7 +17,6 @@ package org.jetbrains.jet.codegen.state; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.codegen.JetTypeMapper; import org.jetbrains.jet.codegen.binding.BindingTraceAware; /** diff --git a/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java b/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java index 232f5fb8b43..b0e94b6bc63 100644 --- a/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java @@ -17,7 +17,7 @@ package org.jetbrains.jet.di; -import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import java.util.List; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping; diff --git a/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java b/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java index 66c071ed9bd..8c3878fa11f 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/TestlibTest.java @@ -31,6 +31,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java index 7a75607db74..7ffa6728ceb 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java @@ -38,7 +38,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.codegen.ClassBuilderMode; -import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.MapTypeMode; import org.jetbrains.jet.codegen.NamespaceCodegen; import org.jetbrains.jet.codegen.binding.CodegenBinding; diff --git a/idea/tests/org/jetbrains/jet/plugin/debugger/JetPositionManagerTest.java b/idea/tests/org/jetbrains/jet/plugin/debugger/JetPositionManagerTest.java index 8c066398547..408f509bd40 100644 --- a/idea/tests/org/jetbrains/jet/plugin/debugger/JetPositionManagerTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/debugger/JetPositionManagerTest.java @@ -20,7 +20,7 @@ import com.intellij.debugger.engine.DebugProcess; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.codegen.ClassBuilderMode; import org.jetbrains.jet.codegen.state.GenerationState; -import org.jetbrains.jet.codegen.JetTypeMapper; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.binding.CodegenBinding; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace; diff --git a/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java b/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java index cc1f65de7a1..ce26511127f 100644 --- a/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java +++ b/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java @@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project; import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;