From c18f87f0c7aea66ec7dd416becd3556cb5047529 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Mon, 7 Sep 2015 15:05:17 +0300 Subject: [PATCH] Cleanup after review --- .../kotlin/codegen/CodegenFileClassesProvider.kt | 4 +--- .../jetbrains/kotlin/codegen/KotlinCodegenFacade.java | 2 +- .../org/jetbrains/kotlin/codegen/MemberCodegen.java | 8 ++++---- .../org/jetbrains/kotlin/codegen/PackageCodegen.java | 4 ++-- .../codegen/binding/CodegenAnnotatingVisitor.java | 11 ++++++----- .../jetbrains/kotlin/codegen/state/GenerationState.kt | 6 +++--- .../jetbrains/kotlin/codegen/state/JetTypeMapper.java | 10 +++++----- .../kotlin/cli/jvm/repl/ReplInterpreter.java | 4 ++-- .../kotlin/fileClasses/JvmFileClassesProvider.kt | 7 ++++--- .../fileClasses/NoResolveFileClassesProvider.kt | 2 +- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/CodegenFileClassesProvider.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/CodegenFileClassesProvider.kt index 18d7c34abea..ad0a9366601 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/CodegenFileClassesProvider.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/CodegenFileClassesProvider.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.resolve.BindingContext import java.util.* -public class CodegenFileClassesProvider private constructor(private val bindingContext: BindingContext) : JvmFileClassesProvider() { +public class CodegenFileClassesProvider private constructor(private val bindingContext: BindingContext) : JvmFileClassesProvider { private val fileParts = hashMapOf() override fun getFileClassFqName(file: JetFile): FqName = @@ -68,5 +68,3 @@ public class CodegenFileClassesProvider private constructor(private val bindingC } } } - -public class JvmMultifileFacadeClassInfo(public val facadeFqName: FqName, public val fileParts: List) \ No newline at end of file diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/KotlinCodegenFacade.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/KotlinCodegenFacade.java index c47523b8b1c..e00477ae138 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/KotlinCodegenFacade.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/KotlinCodegenFacade.java @@ -44,7 +44,7 @@ public class KotlinCodegenFacade { FqName name = ScriptNameUtil.classNameForScript(script); Type type = AsmUtil.asmTypeByFqNameWithoutInnerClasses(name); - registerClassNameForScript(state.getBindingTrace(), script, type, state.getFileClassesManager()); + registerClassNameForScript(state.getBindingTrace(), script, type, state.getFileClassesProvider()); } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index 448f9159a24..8d915a7c4f9 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -74,7 +74,7 @@ public abstract class MemberCodegen parentCodegen; private final ReifiedTypeParametersUsages reifiedTypeParametersUsages = new ReifiedTypeParametersUsages(); protected final Collection innerClasses = new LinkedHashSet(); @@ -95,7 +95,7 @@ public abstract class MemberCodegen generateCallableMemberTasks) { boolean generatePackagePart = false; - Type packagePartType = state.getFileClassesManager().getFileClassType(file); + Type packagePartType = state.getFileClassesProvider().getFileClassType(file); PackageContext packagePartContext = CodegenContext.STATIC.intoPackagePart(packageFragment, packagePartType); for (JetDeclaration declaration : file.getDeclarations()) { @@ -414,7 +414,7 @@ public class PackageCodegen { public void generateClassOrObject(@NotNull JetClassOrObject classOrObject) { JetFile file = classOrObject.getContainingJetFile(); - Type packagePartType = state.getFileClassesManager().getFileClassType(file); + Type packagePartType = state.getFileClassesProvider().getFileClassType(file); CodegenContext context = CodegenContext.STATIC.intoPackagePart(packageFragment, packagePartType); MemberCodegen.genClassOrObject(context, classOrObject, state, null); } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java index ad29793b4d2..27946f0adfb 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/CodegenAnnotatingVisitor.java @@ -75,14 +75,14 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid { private final BindingContext bindingContext; private final GenerationState.GenerateClassFilter filter; private final JvmRuntimeTypes runtimeTypes; - private final JvmFileClassesProvider fileClassesManager; + private final JvmFileClassesProvider fileClassesProvider; public CodegenAnnotatingVisitor(@NotNull GenerationState state) { this.bindingTrace = state.getBindingTrace(); this.bindingContext = state.getBindingContext(); this.filter = state.getGenerateDeclaredClassFilter(); this.runtimeTypes = state.getJvmRuntimeTypes(); - this.fileClassesManager = state.getFileClassesManager(); + this.fileClassesProvider = state.getFileClassesProvider(); } @NotNull @@ -335,7 +335,8 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid { } private void recordClosure(@NotNull ClassDescriptor classDescriptor, @NotNull String name) { - CodegenBinding.recordClosure(bindingTrace, classDescriptor, peekFromStack(classStack), Type.getObjectType(name), fileClassesManager); + CodegenBinding.recordClosure(bindingTrace, classDescriptor, peekFromStack(classStack), Type.getObjectType(name), + fileClassesProvider); } @Override @@ -393,7 +394,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid { else if (containingDeclaration instanceof PackageFragmentDescriptor) { JetFile containingFile = DescriptorToSourceUtils.getContainingFile(descriptor); assert containingFile != null : "File not found for " + descriptor; - return fileClassesManager.getFileClassInternalName(containingFile) + '$' + name; + return fileClassesProvider.getFileClassInternalName(containingFile) + '$' + name; } return null; @@ -574,7 +575,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid { } } - return fileClassesManager.getFileClassInternalName(file); + return fileClassesProvider.getFileClassInternalName(file); } private static T peekFromStack(@NotNull Stack stack) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt index 74c380005a8..2898996728e 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt @@ -82,7 +82,7 @@ public class GenerationState jvmOverloads constructor( } } - public val fileClassesManager: CodegenFileClassesProvider = + public val fileClassesProvider: CodegenFileClassesProvider = CodegenFileClassesProvider.createForCodegenTask(bindingContext, files, packagesWithObsoleteParts, /* TODO */ multifileFacadesWithObsoleteParts = emptySet()) @@ -90,7 +90,7 @@ public class GenerationState jvmOverloads constructor( public val bindingTrace: BindingTrace = DelegatingBindingTrace(bindingContext, "trace in GenerationState") public val bindingContext: BindingContext = bindingTrace.getBindingContext() public val typeMapper: JetTypeMapper = - JetTypeMapperWithOutDirectory(this.bindingContext, classBuilderMode, fileClassesManager, outDirectory) + JetTypeMapperWithOutDirectory(this.bindingContext, classBuilderMode, fileClassesProvider, outDirectory) public val intrinsics: IntrinsicMethods = IntrinsicMethods() public val samWrapperClasses: SamWrapperClasses = SamWrapperClasses(this) public val inlineCycleReporter: InlineCycleReporter = InlineCycleReporter(diagnostics) @@ -114,7 +114,7 @@ public class GenerationState jvmOverloads constructor( init { val optimizationClassBuilderFactory = OptimizationClassBuilderFactory(builderFactory, disableOptimization) var interceptedBuilderFactory: ClassBuilderFactory = BuilderFactoryForDuplicateSignatureDiagnostics( - optimizationClassBuilderFactory, this.bindingContext, diagnostics, fileClassesManager) + optimizationClassBuilderFactory, this.bindingContext, diagnostics, fileClassesProvider) interceptedBuilderFactory = BuilderFactoryForDuplicateClassNameDiagnostics(interceptedBuilderFactory, diagnostics); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java index 0ed5e4eac04..7eef1b75aa2 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/JetTypeMapper.java @@ -82,16 +82,16 @@ import static org.jetbrains.org.objectweb.asm.Opcodes.*; public class JetTypeMapper { private final BindingContext bindingContext; private final ClassBuilderMode classBuilderMode; - private final JvmFileClassesProvider fileClassesManager; + private final JvmFileClassesProvider fileClassesProvider; public JetTypeMapper( @NotNull BindingContext bindingContext, @NotNull ClassBuilderMode classBuilderMode, - @NotNull JvmFileClassesProvider fileClassesManager + @NotNull JvmFileClassesProvider fileClassesProvider ) { this.bindingContext = bindingContext; this.classBuilderMode = classBuilderMode; - this.fileClassesManager = fileClassesManager; + this.fileClassesProvider = fileClassesProvider; } @NotNull @@ -168,7 +168,7 @@ public class JetTypeMapper { ///if (insideModule) { JetFile file = DescriptorToSourceUtils.getContainingFile(descriptor); if (file != null) { - return fileClassesManager.getFileClassInternalName(file); + return fileClassesProvider.getFileClassInternalName(file); } CallableMemberDescriptor directMember = getDirectMember(descriptor); @@ -402,7 +402,7 @@ public class JetTypeMapper { } Type asmType = Type.getObjectType(computeAsmTypeImpl(klass)); - assert PsiCodegenPredictor.checkPredictedNameFromPsi(klass, asmType, fileClassesManager); + assert PsiCodegenPredictor.checkPredictedNameFromPsi(klass, asmType, fileClassesProvider); return asmType; } diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/ReplInterpreter.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/ReplInterpreter.java index 9f3566c4c9b..8c792cd11a1 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/ReplInterpreter.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/ReplInterpreter.java @@ -389,7 +389,7 @@ public class ReplInterpreter { PsiElement jetScript = descriptorToDeclaration(earlierDescriptor); if (jetScript != null) { - registerClassNameForScript(state.getBindingTrace(), (JetScript) jetScript, earlierClassType, state.getFileClassesManager()); + registerClassNameForScript(state.getBindingTrace(), (JetScript) jetScript, earlierClassType, state.getFileClassesProvider()); earlierScriptDescriptors.add(earlierDescriptor); } } @@ -404,7 +404,7 @@ public class ReplInterpreter { @NotNull CompilationErrorHandler errorHandler ) { registerEarlierScripts(state, earlierScripts); - registerClassNameForScript(state.getBindingTrace(), script, classType, state.getFileClassesManager()); + registerClassNameForScript(state.getBindingTrace(), script, classType, state.getFileClassesProvider()); state.beforeCompile(); KotlinCodegenFacade.generatePackage( diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/JvmFileClassesProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/JvmFileClassesProvider.kt index 7e5c467c590..539d60ed58f 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/JvmFileClassesProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/JvmFileClassesProvider.kt @@ -21,12 +21,13 @@ import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.org.objectweb.asm.Type -public abstract class JvmFileClassesProvider { - public abstract fun getFileClassFqName(file: JetFile): FqName +public interface JvmFileClassesProvider { + public fun getFileClassFqName(file: JetFile): FqName public fun getFileClassInternalName(file: JetFile): String = JvmClassName.byFqNameWithoutInnerClasses(getFileClassFqName(file)).internalName public fun getFileClassType(file: JetFile): Type = Type.getObjectType(getFileClassInternalName(file)) -} \ No newline at end of file +} + diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/NoResolveFileClassesProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/NoResolveFileClassesProvider.kt index 042257a4b25..f44e11de32e 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/NoResolveFileClassesProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/fileClasses/NoResolveFileClassesProvider.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.JetFile -public object NoResolveFileClassesProvider : JvmFileClassesProvider() { +public object NoResolveFileClassesProvider : JvmFileClassesProvider { override fun getFileClassFqName(file: JetFile): FqName = JvmFileClassUtil.getFileClassInfo(file, JvmFileClassUtil.parseJvmNameOnFileNoResolve(file)).fileClassFqName } \ No newline at end of file