Drop JvmFileClassesProvider and inline implementations
Both of its implementations called the same static function; inline those and move related utilities to JvmFileClassUtil
This commit is contained in:
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberDescriptor
|
||||
|
||||
object JvmFileClassUtil {
|
||||
@@ -40,6 +41,14 @@ object JvmFileClassUtil {
|
||||
return (descriptor.containingDeclaration as PackageFragmentDescriptor).fqName.child(implClassName)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getFileClassInternalName(file: KtFile): String =
|
||||
getFileClassInfoNoResolve(file).fileClassFqName.internalNameWithoutInnerClasses
|
||||
|
||||
@JvmStatic
|
||||
fun getFacadeClassInternalName(file: KtFile): String =
|
||||
getFileClassInfoNoResolve(file).facadeClassFqName.internalNameWithoutInnerClasses
|
||||
|
||||
private fun manglePartName(facadeName: String, fileName: String): String =
|
||||
"$facadeName$MULTIFILE_PART_NAME_DELIMITER${PackagePartClassUtils.getFilePartShortName(fileName)}"
|
||||
|
||||
@@ -100,3 +109,6 @@ fun KtDeclaration.isInsideJvmMultifileClassFile() = JvmFileClassUtil.findAnnotat
|
||||
containingKtFile,
|
||||
JvmFileClassUtil.JVM_MULTIFILE_CLASS_SHORT
|
||||
) != null
|
||||
|
||||
val FqName.internalNameWithoutInnerClasses: String
|
||||
get() = JvmClassName.byFqNameWithoutInnerClasses(this).internalName
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
@file:JvmName("FileClasses")
|
||||
package org.jetbrains.kotlin.fileClasses
|
||||
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
|
||||
interface JvmFileClassesProvider {
|
||||
fun getFileClassInfo(file: KtFile): JvmFileClassInfo
|
||||
}
|
||||
|
||||
val FqName.internalNameWithoutInnerClasses: String
|
||||
get() = JvmClassName.byFqNameWithoutInnerClasses(this).internalName
|
||||
|
||||
fun JvmFileClassesProvider.getFileClassFqName(file: KtFile): FqName =
|
||||
getFileClassInfo(file).fileClassFqName
|
||||
|
||||
fun JvmFileClassesProvider.getFileClassInternalName(file: KtFile): String =
|
||||
getFileClassFqName(file).internalNameWithoutInnerClasses
|
||||
|
||||
fun JvmFileClassesProvider.getFileClassType(file: KtFile): Type =
|
||||
Type.getObjectType(getFileClassFqName(file).internalNameWithoutInnerClasses)
|
||||
|
||||
fun JvmFileClassesProvider.getFacadeClassInternalName(file: KtFile): String =
|
||||
getFileClassInfo(file).facadeClassFqName.internalNameWithoutInnerClasses
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fileClasses
|
||||
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
|
||||
object NoResolveFileClassesProvider : JvmFileClassesProvider {
|
||||
override fun getFileClassInfo(file: KtFile): JvmFileClassInfo =
|
||||
JvmFileClassUtil.getFileClassInfoNoResolve(file)
|
||||
}
|
||||
@@ -19,8 +19,7 @@ package org.jetbrains.kotlin.resolve.jvm
|
||||
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorNonRoot
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.fileClasses.NoResolveFileClassesProvider
|
||||
import org.jetbrains.kotlin.fileClasses.getFileClassFqName
|
||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
||||
import org.jetbrains.kotlin.load.java.descriptors.getImplClassNameForDeserialized
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
@@ -36,7 +35,7 @@ object JvmOverloadFilter : OverloadFilter {
|
||||
for (overload in overloads) {
|
||||
val file = DescriptorToSourceUtils.getContainingFile(overload) ?: continue
|
||||
result.add(overload)
|
||||
sourceClassesFQNs.add(NoResolveFileClassesProvider.getFileClassFqName(file))
|
||||
sourceClassesFQNs.add(JvmFileClassUtil.getFileClassInfoNoResolve(file).fileClassFqName)
|
||||
}
|
||||
|
||||
for (overload in overloads) {
|
||||
|
||||
Reference in New Issue
Block a user