From beb24af5ef7e1b1162ad67d199686b7142605425 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 23 Feb 2016 12:20:13 +0300 Subject: [PATCH] Devirtualize calls to PackageFragmentDescriptorImpl.fqName 1. Replace INVOKEINTERFACE with INVOKEVIRTUAL 2. Make callee function final It helps to decrease one module compilation time by 1-2 seconds --- .../kotlin/descriptors/impl/PackageFragmentDescriptorImpl.kt | 2 +- .../kotlin/idea/decompiler/textBuilder/missingDependencies.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PackageFragmentDescriptorImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PackageFragmentDescriptorImpl.kt index 31c697c23a7..d022130edf8 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PackageFragmentDescriptorImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PackageFragmentDescriptorImpl.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor abstract class PackageFragmentDescriptorImpl( module: ModuleDescriptor, - override val fqName: FqName + final override val fqName: FqName ) : DeclarationDescriptorNonRootImpl(module, Annotations.EMPTY, fqName.shortNameOrSpecial(), SourceElement.NO_SOURCE), PackageFragmentDescriptor { override fun substitute(substitutor: TypeSubstitutor): DeclarationDescriptor? = this diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt index ff535919e06..dcda4c13fc9 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/missingDependencies.kt @@ -34,7 +34,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor import org.jetbrains.kotlin.types.error.MissingDependencyErrorClass import org.jetbrains.kotlin.utils.Printer -private class PackageFragmentWithMissingDependencies(override val fqName: FqName, moduleDescriptor: ModuleDescriptor) : +private class PackageFragmentWithMissingDependencies(fqName: FqName, moduleDescriptor: ModuleDescriptor) : PackageFragmentDescriptorImpl(moduleDescriptor, fqName) { override fun getMemberScope(): MemberScope { return ScopeWithMissingDependencies(fqName, this)