[IR] Rename fqName to packageFqName for IrPackageFragment
This commit is contained in:
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.builtins.PrimitiveType
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.builtins.StandardNames.KOTLIN_REFLECT_FQ_NAME
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrPackageFragment
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol
|
||||
@@ -242,7 +241,7 @@ abstract class Symbols(
|
||||
symbol is IrSimpleFunctionSymbol && symbol.owner.let { function ->
|
||||
function.name.asString() == "<get-isInitialized>" &&
|
||||
function.isTopLevel &&
|
||||
function.getPackageFragment().fqName.asString() == "kotlin" &&
|
||||
function.getPackageFragment().packageFqName.asString() == "kotlin" &&
|
||||
function.valueParameters.isEmpty() &&
|
||||
symbol.owner.extensionReceiverParameter?.type?.classOrNull?.owner.let { receiverClass ->
|
||||
receiverClass?.fqNameWhenAvailable?.toUnsafe() == StandardNames.FqNames.kProperty0
|
||||
@@ -253,7 +252,7 @@ abstract class Symbols(
|
||||
symbol is IrSimpleFunctionSymbol && symbol.owner.let { function ->
|
||||
function.name.asString() == "typeOf" &&
|
||||
function.valueParameters.isEmpty() &&
|
||||
(function.parent as? IrPackageFragment)?.fqName == KOTLIN_REFLECT_FQ_NAME
|
||||
(function.parent as? IrPackageFragment)?.packageFqName == KOTLIN_REFLECT_FQ_NAME
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ fun IrFunction.isTopLevelInPackage(name: String, packageName: String): Boolean {
|
||||
if (name != this.name.asString()) return false
|
||||
|
||||
val containingDeclaration = parent as? IrPackageFragment ?: return false
|
||||
val packageFqName = containingDeclaration.fqName.asString()
|
||||
val packageFqName = containingDeclaration.packageFqName.asString()
|
||||
return packageName == packageFqName
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ class ExportModelGenerator(val context: JsIrBackendContext, val generateNamespac
|
||||
private val transitiveExportCollector = TransitiveExportCollector(context)
|
||||
|
||||
fun generateExport(file: IrPackageFragment): List<ExportedDeclaration> {
|
||||
val namespaceFqName = file.fqName
|
||||
val namespaceFqName = file.packageFqName
|
||||
val exports = file.declarations.memoryOptimizedFlatMap { declaration -> listOfNotNull(exportDeclaration(declaration)) }
|
||||
return when {
|
||||
exports.isEmpty() -> emptyList()
|
||||
|
||||
+2
-2
@@ -51,7 +51,7 @@ private val JsPackage = FqName("kotlin.js")
|
||||
private val JsIntrinsicFqName = FqName("kotlin.js.JsIntrinsic")
|
||||
|
||||
private fun IrDeclaration.isPlacedInsideInternalPackage() =
|
||||
(parent as? IrPackageFragment)?.fqName == JsPackage
|
||||
(parent as? IrPackageFragment)?.packageFqName == JsPackage
|
||||
|
||||
private fun isIntrinsic(declaration: IrDeclaration): Boolean =
|
||||
declaration is IrSimpleFunction && declaration.isPlacedInsideInternalPackage() &&
|
||||
@@ -73,7 +73,7 @@ class MoveBodilessDeclarationsToSeparatePlaceLowering(private val context: JsIrB
|
||||
|
||||
val externalPackageFragment by lazy(LazyThreadSafetyMode.NONE) {
|
||||
context.externalPackageFragment.getOrPut(irFile.symbol) {
|
||||
IrFileImpl(fileEntry = irFile.fileEntry, fqName = irFile.fqName, symbol = IrFileSymbolImpl(), module = irFile.module).also {
|
||||
IrFileImpl(fileEntry = irFile.fileEntry, fqName = irFile.packageFqName, symbol = IrFileSymbolImpl(), module = irFile.module).also {
|
||||
it.annotations = it.annotations memoryOptimizedPlus irFile.annotations
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.ir.util.transformFlat
|
||||
|
||||
fun moveOpenClassesToSeparateFiles(moduleFragment: IrModuleFragment) {
|
||||
fun createFile(file: IrFile, klass: IrClass): IrFile =
|
||||
IrFileImpl(fileEntry = file.fileEntry, fqName = file.fqName, symbol = IrFileSymbolImpl(), module = file.module).also {
|
||||
IrFileImpl(fileEntry = file.fileEntry, fqName = file.packageFqName, symbol = IrFileSymbolImpl(), module = file.module).also {
|
||||
it.annotations = it.annotations memoryOptimizedPlus file.annotations
|
||||
it.declarations += klass
|
||||
klass.parent = it
|
||||
|
||||
+2
-2
@@ -55,8 +55,8 @@ class TestGenerator(val context: JsCommonBackendContext, val groupByPackage: Boo
|
||||
|
||||
private val packageSuites = hashMapOf<FqName, IrSimpleFunction>()
|
||||
|
||||
private fun suiteForPackage(irFile: IrFile) = packageSuites.getOrPut(irFile.fqName) {
|
||||
context.suiteFun!!.createInvocation(irFile.fqName.asString(), context.createTestContainerFun(irFile))
|
||||
private fun suiteForPackage(irFile: IrFile) = packageSuites.getOrPut(irFile.packageFqName) {
|
||||
context.suiteFun!!.createInvocation(irFile.packageFqName.asString(), context.createTestContainerFun(irFile))
|
||||
}
|
||||
|
||||
private fun IrSimpleFunctionSymbol.createInvocation(
|
||||
|
||||
+1
-1
@@ -233,7 +233,7 @@ class IrModuleToJsTransformer(
|
||||
globalNameScope = globalNameScope
|
||||
)
|
||||
|
||||
val result = JsIrProgramFragment(fileExports.file.fqName.asString()).apply {
|
||||
val result = JsIrProgramFragment(fileExports.file.packageFqName.asString()).apply {
|
||||
if (shouldGeneratePolyfills) {
|
||||
polyfills.statements += backendContext.polyfills.getAllPolyfillsFor(fileExports.file)
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ fun IrConstructor.hasStrictSignature(context: JsIrBackendContext): Boolean {
|
||||
}
|
||||
|
||||
private fun getKotlinOrJsQualifier(parent: IrPackageFragment, shouldIncludePackage: Boolean): FqName? {
|
||||
return (parent as? IrFile)?.getJsQualifier()?.let { FqName(it) } ?: parent.fqName.takeIf { shouldIncludePackage }
|
||||
return (parent as? IrFile)?.getJsQualifier()?.let { FqName(it) } ?: parent.packageFqName.takeIf { shouldIncludePackage }
|
||||
}
|
||||
|
||||
val IrFunctionAccessExpression.typeArguments: List<IrType?>
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ class JsMainFunctionDetector(val context: JsCommonBackendContext) {
|
||||
var resultPair: Pair<String, IrSimpleFunction>? = null
|
||||
|
||||
module.files.forEach { f ->
|
||||
val fqn = f.fqName.asString()
|
||||
val fqn = f.packageFqName.asString()
|
||||
getMainFunctionOrNull(f)?.let {
|
||||
val result = resultPair
|
||||
if (result == null) {
|
||||
|
||||
+1
-1
@@ -712,7 +712,7 @@ class ExpressionCodegen(
|
||||
// Copy-pasted bytecode blocks are not suspension points.
|
||||
symbol.owner.isInline ->
|
||||
if (symbol.owner.name.asString() == "suspendCoroutineUninterceptedOrReturn" &&
|
||||
symbol.owner.getPackageFragment().fqName == FqName("kotlin.coroutines.intrinsics")
|
||||
symbol.owner.getPackageFragment().packageFqName == FqName("kotlin.coroutines.intrinsics")
|
||||
)
|
||||
SuspensionPointKind.ALWAYS
|
||||
else
|
||||
|
||||
+2
-2
@@ -204,9 +204,9 @@ class IrIntrinsicMethods(val irBuiltIns: IrBuiltIns, val symbols: JvmSymbols) {
|
||||
val parent = owner.parent
|
||||
val ownerFqName = when {
|
||||
parent is IrClass && parent.isFileClass ->
|
||||
(parent.parent as IrPackageFragment).fqName
|
||||
(parent.parent as IrPackageFragment).packageFqName
|
||||
parent is IrClass -> parent.fqNameWhenAvailable ?: return null
|
||||
parent is IrPackageFragment -> parent.fqName
|
||||
parent is IrPackageFragment -> parent.packageFqName
|
||||
else -> return null
|
||||
}
|
||||
return Key(
|
||||
|
||||
+1
-1
@@ -116,5 +116,5 @@ private class AssertionLowering(private val context: JvmBackendContext) :
|
||||
}
|
||||
|
||||
private val IrFunction.isAssert: Boolean
|
||||
get() = name.asString() == "assert" && getPackageFragment().fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME
|
||||
get() = name.asString() == "assert" && getPackageFragment().packageFqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME
|
||||
}
|
||||
|
||||
+2
-2
@@ -143,7 +143,7 @@ private class FileClassLowering(val context: JvmBackendContext) : FileLoweringPa
|
||||
val facadeClassType =
|
||||
if (isMultifilePart) AsmUtil.asmTypeByFqNameWithoutInnerClasses(fileClassInfo.facadeClassFqName)
|
||||
else null
|
||||
context.state.factory.packagePartRegistry.addPart(irFile.fqName, partClassType.internalName, facadeClassType?.internalName)
|
||||
context.state.factory.packagePartRegistry.addPart(irFile.packageFqName, partClassType.internalName, facadeClassType?.internalName)
|
||||
|
||||
if (fileClassInfo.fileClassFqName != fqNameWhenAvailable) {
|
||||
context.classNameOverride[this] = JvmClassName.byInternalName(partClassType.internalName)
|
||||
@@ -170,7 +170,7 @@ fun IrFile.getFileClassInfo(): JvmFileClassInfo =
|
||||
|
||||
fun getFileClassInfoFromIrFile(file: IrFile, fileName: String): JvmFileClassInfo {
|
||||
val parsedAnnotations = parseJvmNameOnFileNoResolve(file)
|
||||
val packageFqName = parsedAnnotations?.jvmPackageName ?: file.fqName
|
||||
val packageFqName = parsedAnnotations?.jvmPackageName ?: file.packageFqName
|
||||
return when {
|
||||
parsedAnnotations != null -> {
|
||||
val simpleName = parsedAnnotations.jvmName ?: PackagePartClassUtils.getFilePartShortName(fileName)
|
||||
|
||||
+1
-1
@@ -154,7 +154,7 @@ private class FunctionNVarargBridgeLowering(val context: JvmBackendContext) :
|
||||
get() {
|
||||
val clazz = classOrNull?.owner ?: return false
|
||||
val name = clazz.name.asString()
|
||||
val fqName = (clazz.parent as? IrPackageFragment)?.fqName ?: return false
|
||||
val fqName = (clazz.parent as? IrPackageFragment)?.packageFqName ?: return false
|
||||
return when {
|
||||
name.startsWith("Function") ->
|
||||
fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME || fqName == FUNCTIONS_PACKAGE_FQ_NAME
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ open class JvmInventNamesForLocalClasses(
|
||||
) {
|
||||
file.getFileClassInfo().fileClassFqName
|
||||
} else {
|
||||
file.fqName.child(clazz.name)
|
||||
file.packageFqName.child(clazz.name)
|
||||
}
|
||||
return JvmClassName.byFqNameWithoutInnerClasses(classFqn).internalName
|
||||
}
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ private class PropertyReferenceDelegationTransformer(val context: JvmBackendCont
|
||||
}
|
||||
|
||||
private val IrStatement.isStdlibCall: Boolean
|
||||
get() = this is IrCall && symbol.owner.getPackageFragment().fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME
|
||||
get() = this is IrCall && symbol.owner.getPackageFragment().packageFqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME
|
||||
|
||||
// Some receivers don't need to be stored in fields and can be reevaluated every time an accessor is called:
|
||||
private fun IrExpression.canInline(visibleScopes: Set<IrDeclarationParent>): Boolean = when (this) {
|
||||
|
||||
+1
-1
@@ -80,7 +80,7 @@ internal class SyntheticAccessorLowering(val context: JvmBackendContext) : FileL
|
||||
|
||||
val ownerClass = declaration.parent as? IrClass ?: return true // locals are always accessible
|
||||
val scopeClassOrPackage = inlineScopeResolver.findContainer(currentScope!!.irElement) ?: return false
|
||||
val samePackage = ownerClass.getPackageFragment().fqName == scopeClassOrPackage.getPackageFragment()?.fqName
|
||||
val samePackage = ownerClass.getPackageFragment().packageFqName == scopeClassOrPackage.getPackageFragment()?.packageFqName
|
||||
return when {
|
||||
jvmVisibility == Opcodes.ACC_PRIVATE -> ownerClass == scopeClassOrPackage
|
||||
!withSuper && samePackage && jvmVisibility == 0 /* package only */ -> true
|
||||
|
||||
+2
-2
@@ -105,7 +105,7 @@ internal fun IrFunction.isArrayOf(): Boolean {
|
||||
is IrPackageFragment -> directParent
|
||||
else -> return false
|
||||
}
|
||||
return parent.fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME &&
|
||||
return parent.packageFqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME &&
|
||||
name.asString().let { it in PRIMITIVE_ARRAY_OF_NAMES || it == ARRAY_OF_NAME } &&
|
||||
extensionReceiverParameter == null &&
|
||||
dispatchReceiverParameter == null &&
|
||||
@@ -115,4 +115,4 @@ internal fun IrFunction.isArrayOf(): Boolean {
|
||||
|
||||
internal fun IrFunction.isEmptyArray(): Boolean =
|
||||
name.asString() == "emptyArray" &&
|
||||
(parent as? IrPackageFragment)?.fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME
|
||||
(parent as? IrPackageFragment)?.packageFqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME
|
||||
+2
-2
@@ -76,8 +76,8 @@ class IrInlineScopeResolver(context: JvmBackendContext) : IrInlineReferenceLocat
|
||||
get() = isInline && DescriptorVisibilities.isPrivate(visibility)
|
||||
|
||||
private fun IrFunction.isCoroutineIntrinsic(): Boolean =
|
||||
(name.asString() == "suspendCoroutine" && getPackageFragment().fqName == FqName("kotlin.coroutines")) ||
|
||||
(name.asString() == "suspendCoroutineUninterceptedOrReturn" && getPackageFragment().fqName == FqName("kotlin.coroutines.intrinsics"))
|
||||
(name.asString() == "suspendCoroutine" && getPackageFragment().packageFqName == FqName("kotlin.coroutines")) ||
|
||||
(name.asString() == "suspendCoroutineUninterceptedOrReturn" && getPackageFragment().packageFqName == FqName("kotlin.coroutines.intrinsics"))
|
||||
|
||||
fun findContainer(scope: IrElement): IrDeclarationContainer? =
|
||||
findContainer(scope, approximateToPackage = false)
|
||||
|
||||
@@ -475,7 +475,7 @@ val IrMemberWithContainerSource.parentClassId: ClassId?
|
||||
// Translated into IR-based terms from classifierDescriptor?.classId
|
||||
private val IrClass.classId: ClassId?
|
||||
get() = when (val parent = parent) {
|
||||
is IrExternalPackageFragment -> ClassId(parent.fqName, name)
|
||||
is IrExternalPackageFragment -> ClassId(parent.packageFqName, name)
|
||||
// TODO: there's `context.classNameOverride`; theoretically it's only relevant for top-level members,
|
||||
// where `containerSource` is a `JvmPackagePartSource` anyway, but I'm not 100% sure.
|
||||
is IrClass -> parent.classId?.createNestedClassId(name)
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ open class IrTypeMapper(private val context: JvmBackendContext) : KotlinTypeMapp
|
||||
when (val parent = irClass.parent) {
|
||||
is IrPackageFragment ->
|
||||
return StringBuilder().apply {
|
||||
val fqName = parent.fqName
|
||||
val fqName = parent.packageFqName
|
||||
if (!fqName.isRoot) {
|
||||
append(fqName.asString().replace('.', '/')).append("/")
|
||||
}
|
||||
|
||||
+1
-1
@@ -459,7 +459,7 @@ class MethodSignatureMapper(private val context: JvmBackendContext, private val
|
||||
}
|
||||
|
||||
private val IrSimpleFunction.isBuiltIn: Boolean
|
||||
get() = getPackageFragment().fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME ||
|
||||
get() = getPackageFragment().packageFqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME ||
|
||||
(parent as? IrClass)?.fqNameWhenAvailable?.toUnsafe()?.let(JavaToKotlinClassMap::mapKotlinToJava) != null
|
||||
|
||||
// From BuiltinMethodsWithDifferentJvmName.isBuiltinFunctionWithDifferentNameInJvm, BuiltinMethodsWithDifferentJvmName.getJvmName
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ class DescriptorMetadataSerializer(
|
||||
is DescriptorMetadataSource.Class -> serializer!!.classProto(metadata.descriptor).build()
|
||||
is DescriptorMetadataSource.Script -> serializer!!.classProto(metadata.descriptor).build()
|
||||
is DescriptorMetadataSource.File ->
|
||||
serializer!!.packagePartProto(irClass.getPackageFragment().fqName, metadata.descriptors).apply {
|
||||
serializer!!.packagePartProto(irClass.getPackageFragment().packageFqName, metadata.descriptors).apply {
|
||||
serializerExtension.serializeJvmPackage(this, type)
|
||||
}.build()
|
||||
is DescriptorMetadataSource.Function -> {
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ fun excludeDeclarationsFromCodegen(context: WasmBackendContext, module: IrModule
|
||||
if (isExcluded(d)) {
|
||||
it.remove()
|
||||
// Move to "excluded" package fragment preserving fq-name
|
||||
context.getExcludedPackageFragment(file.fqName).addChild(d)
|
||||
context.getExcludedPackageFragment(file.packageFqName).addChild(d)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ internal fun IrClass.internalName(): String {
|
||||
.forEach {
|
||||
when (it) {
|
||||
is IrClass -> internalName.insert(0, it.name.asString() + "$")
|
||||
is IrPackageFragment -> it.fqName.asString().takeIf { it.isNotEmpty() }?.let { internalName.insert(0, "$it.") }
|
||||
is IrPackageFragment -> it.packageFqName.asString().takeIf { it.isNotEmpty() }?.let { internalName.insert(0, "$it.") }
|
||||
}
|
||||
}
|
||||
return internalName.toString()
|
||||
|
||||
@@ -25,5 +25,5 @@ abstract class IrPackageFragment : IrElementBase(), IrDeclarationContainer, IrSy
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
abstract val packageFragmentDescriptor: PackageFragmentDescriptor
|
||||
|
||||
abstract var fqName: FqName
|
||||
abstract var packageFqName: FqName
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ fun IrClass.addAll(members: List<IrDeclaration>) {
|
||||
|
||||
val IrFile.path: String get() = fileEntry.name
|
||||
val IrFile.name: String get() = File(path).name
|
||||
val IrFile.nameWithPackage: String get() = fqName.child(Name.identifier(name)).asString()
|
||||
val IrFile.nameWithPackage: String get() = packageFqName.child(Name.identifier(name)).asString()
|
||||
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
fun IrFunction.getIrValueParameter(parameter: ValueParameterDescriptor): IrValueParameter =
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
|
||||
|
||||
class IrExternalPackageFragmentImpl(
|
||||
override val symbol: IrExternalPackageFragmentSymbol,
|
||||
override var fqName: FqName
|
||||
override var packageFqName: FqName
|
||||
) : IrExternalPackageFragment() {
|
||||
override val startOffset: Int
|
||||
get() = UNDEFINED_OFFSET
|
||||
|
||||
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.name.FqName
|
||||
class IrFileImpl(
|
||||
override var fileEntry: IrFileEntry,
|
||||
override val symbol: IrFileSymbol,
|
||||
override var fqName: FqName
|
||||
override var packageFqName: FqName
|
||||
) : IrFile() {
|
||||
constructor(
|
||||
fileEntry: IrFileEntry,
|
||||
|
||||
@@ -513,7 +513,7 @@ interface IrTypeSystemContext : TypeSystemContext, TypeSystemCommonSuperTypesCon
|
||||
else null
|
||||
} else {
|
||||
val parent = owner.parent
|
||||
if (parent is IrPackageFragment && parent.fqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME)
|
||||
if (parent is IrPackageFragment && parent.packageFqName == StandardNames.BUILT_INS_PACKAGE_FQ_NAME)
|
||||
owner.name.asString()
|
||||
else null
|
||||
}
|
||||
@@ -524,7 +524,7 @@ interface IrTypeSystemContext : TypeSystemContext, TypeSystemCommonSuperTypesCon
|
||||
while (true) {
|
||||
val parent = declaration.parent
|
||||
if (parent is IrPackageFragment) {
|
||||
return parent.fqName.startsWith(StandardNames.BUILT_INS_PACKAGE_NAME)
|
||||
return parent.packageFqName.startsWith(StandardNames.BUILT_INS_PACKAGE_NAME)
|
||||
}
|
||||
declaration = parent as? IrDeclaration ?: return false
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ object IrErrorClassImpl : IrClassImpl(
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
override val packageFragmentDescriptor: PackageFragmentDescriptor
|
||||
get() = TODO("Not yet implemented")
|
||||
override var fqName: FqName
|
||||
override var packageFqName: FqName
|
||||
get() = FqName.ROOT
|
||||
set(_) = TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ fun <T : Enum<T>> IrType.getPrimitiveOrUnsignedType(byIdSignature: Map<IdSignatu
|
||||
|
||||
val klass = symbol.owner
|
||||
val parent = klass.parent
|
||||
if (parent !is IrPackageFragment || parent.fqName != StandardNames.BUILT_INS_PACKAGE_FQ_NAME) return null
|
||||
if (parent !is IrPackageFragment || parent.packageFqName != StandardNames.BUILT_INS_PACKAGE_FQ_NAME) return null
|
||||
return byShortName[klass.name]
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ fun IrFunction.isInlineArrayConstructor(builtIns: IrBuiltIns): Boolean =
|
||||
|
||||
val IrDeclarationParent.fqNameForIrSerialization: FqName
|
||||
get() = when (this) {
|
||||
is IrPackageFragment -> this.fqName
|
||||
is IrPackageFragment -> this.packageFqName
|
||||
is IrDeclarationWithName -> this.parent.fqNameForIrSerialization.child(this.name)
|
||||
else -> error(this)
|
||||
}
|
||||
@@ -44,7 +44,7 @@ val IrDeclarationParent.fqNameForIrSerialization: FqName
|
||||
*/
|
||||
val IrDeclarationParent.kotlinFqName: FqName
|
||||
get() = when (this) {
|
||||
is IrPackageFragment -> this.fqName
|
||||
is IrPackageFragment -> this.packageFqName
|
||||
is IrClass -> {
|
||||
if (isFileClass) {
|
||||
parent.kotlinFqName
|
||||
@@ -59,7 +59,7 @@ val IrDeclarationParent.kotlinFqName: FqName
|
||||
val IrClass.classId: ClassId?
|
||||
get() = when (val parent = this.parent) {
|
||||
is IrClass -> parent.classId?.createNestedClassId(this.name)
|
||||
is IrPackageFragment -> ClassId.topLevel(parent.fqName.child(this.name))
|
||||
is IrPackageFragment -> ClassId.topLevel(parent.packageFqName.child(this.name))
|
||||
else -> null
|
||||
}
|
||||
|
||||
@@ -106,11 +106,11 @@ fun IrConstructorCall.isAnnotationWithEqualFqName(fqName: FqName): Boolean =
|
||||
annotationClass.hasEqualFqName(fqName)
|
||||
|
||||
val IrClass.packageFqName: FqName?
|
||||
get() = symbol.signature?.packageFqName() ?: parent.getPackageFragment()?.fqName
|
||||
get() = symbol.signature?.packageFqName() ?: parent.getPackageFragment()?.packageFqName
|
||||
|
||||
fun IrDeclarationWithName.hasEqualFqName(fqName: FqName): Boolean =
|
||||
symbol.hasEqualFqName(fqName) || name == fqName.shortName() && when (val parent = parent) {
|
||||
is IrPackageFragment -> parent.fqName == fqName.parent()
|
||||
is IrPackageFragment -> parent.packageFqName == fqName.parent()
|
||||
is IrDeclarationWithName -> parent.hasEqualFqName(fqName.parent())
|
||||
else -> false
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ interface SymbolRenamer {
|
||||
fun getClassName(symbol: IrClassSymbol): Name = symbol.owner.name
|
||||
fun getFunctionName(symbol: IrSimpleFunctionSymbol): Name = symbol.owner.name
|
||||
fun getFieldName(symbol: IrFieldSymbol): Name = symbol.owner.name
|
||||
fun getFileName(symbol: IrFileSymbol): FqName = symbol.owner.fqName
|
||||
fun getExternalPackageFragmentName(symbol: IrExternalPackageFragmentSymbol): FqName = symbol.owner.fqName
|
||||
fun getFileName(symbol: IrFileSymbol): FqName = symbol.owner.packageFqName
|
||||
fun getExternalPackageFragmentName(symbol: IrExternalPackageFragmentSymbol): FqName = symbol.owner.packageFqName
|
||||
fun getEnumEntryName(symbol: IrEnumEntrySymbol): Name = symbol.owner.name
|
||||
fun getVariableName(symbol: IrVariableSymbol): Name = symbol.owner.name
|
||||
fun getTypeParameterName(symbol: IrTypeParameterSymbol): Name = symbol.owner.name
|
||||
|
||||
@@ -410,7 +410,7 @@ sealed class IdSignature {
|
||||
) : IdSignature() {
|
||||
|
||||
constructor(fileSymbol: IrFileSymbol) : this(
|
||||
fileSymbol, fileSymbol.owner.fqName, fileSymbol.owner.fileEntry.name
|
||||
fileSymbol, fileSymbol.owner.packageFqName, fileSymbol.owner.fileEntry.name
|
||||
)
|
||||
|
||||
override fun equals(other: Any?): Boolean = other is FileSignature && id == other.id
|
||||
|
||||
@@ -41,12 +41,12 @@ fun IrClassifierSymbol.isKSuspendFunction(): Boolean = this.isClassWithNamePrefi
|
||||
|
||||
private fun IrClassifierSymbol.isClassWithName(name: String, packageFqName: FqName): Boolean {
|
||||
val declaration = owner as IrDeclarationWithName
|
||||
return name == declaration.name.asString() && (declaration.parent as? IrPackageFragment)?.fqName == packageFqName
|
||||
return name == declaration.name.asString() && (declaration.parent as? IrPackageFragment)?.packageFqName == packageFqName
|
||||
}
|
||||
|
||||
private fun IrClassifierSymbol.isClassWithNamePrefix(prefix: String, packageFqName: FqName): Boolean {
|
||||
val declaration = owner as IrDeclarationWithName
|
||||
return declaration.name.asString().startsWith(prefix) && (declaration.parent as? IrPackageFragment)?.fqName == packageFqName
|
||||
return declaration.name.asString().startsWith(prefix) && (declaration.parent as? IrPackageFragment)?.packageFqName == packageFqName
|
||||
}
|
||||
|
||||
fun IrType.superTypes(): List<IrType> = classifierOrNull?.superTypes() ?: emptyList()
|
||||
@@ -77,7 +77,7 @@ private inline fun IrType.isTypeFromKotlinPackage(namePredicate: (Name) -> Boole
|
||||
val classClassifier = classifier as? IrClassSymbol ?: return false
|
||||
if (!namePredicate(classClassifier.owner.name)) return false
|
||||
val parent = classClassifier.owner.parent as? IrPackageFragment ?: return false
|
||||
return parent.fqName == kotlinPackageFqn
|
||||
return parent.packageFqName == kotlinPackageFqn
|
||||
} else return false
|
||||
}
|
||||
|
||||
|
||||
@@ -322,7 +322,7 @@ val IrClass.isNonCompanionObject: Boolean get() = isObject && !isCompanion
|
||||
val IrDeclarationWithName.fqNameWhenAvailable: FqName?
|
||||
get() = when (val parent = parent) {
|
||||
is IrDeclarationWithName -> parent.fqNameWhenAvailable?.child(name)
|
||||
is IrPackageFragment -> parent.fqName.child(name)
|
||||
is IrPackageFragment -> parent.packageFqName.child(name)
|
||||
else -> null
|
||||
}
|
||||
|
||||
|
||||
@@ -214,7 +214,7 @@ class RenderIrElementVisitor(private val options: DumpIrTreeOptions = DumpIrTree
|
||||
}
|
||||
when (parent) {
|
||||
is IrPackageFragment -> {
|
||||
val fqn = parent.fqName.asString()
|
||||
val fqn = parent.packageFqName.asString()
|
||||
append(fqn.ifEmpty { "<root>" })
|
||||
}
|
||||
is IrDeclaration -> {
|
||||
@@ -245,10 +245,10 @@ class RenderIrElementVisitor(private val options: DumpIrTreeOptions = DumpIrTree
|
||||
"MODULE_FRAGMENT name:${declaration.name}"
|
||||
|
||||
override fun visitExternalPackageFragment(declaration: IrExternalPackageFragment, data: Nothing?): String =
|
||||
"EXTERNAL_PACKAGE_FRAGMENT fqName:${declaration.fqName}"
|
||||
"EXTERNAL_PACKAGE_FRAGMENT fqName:${declaration.packageFqName}"
|
||||
|
||||
override fun visitFile(declaration: IrFile, data: Nothing?): String =
|
||||
"FILE fqName:${declaration.fqName} fileName:${declaration.path}"
|
||||
"FILE fqName:${declaration.packageFqName} fileName:${declaration.path}"
|
||||
|
||||
override fun visitFunction(declaration: IrFunction, data: Nothing?): String =
|
||||
declaration.runTrimEnd {
|
||||
@@ -601,7 +601,7 @@ private fun IrDeclaration.renderDeclarationParentFqn(sb: StringBuilder, options:
|
||||
if (parent is IrDeclaration) {
|
||||
parent.renderDeclarationFqn(sb, options)
|
||||
} else if (parent is IrPackageFragment) {
|
||||
sb.append(parent.fqName.toString())
|
||||
sb.append(parent.packageFqName.toString())
|
||||
}
|
||||
} catch (e: UninitializedPropertyAccessException) {
|
||||
sb.append("<uninitialized parent>")
|
||||
|
||||
@@ -535,7 +535,7 @@ object IrTree : AbstractTreeBuilder() {
|
||||
|
||||
+symbol(packageFragmentSymbolType)
|
||||
+field("packageFragmentDescriptor", type(Packages.descriptors, "PackageFragmentDescriptor"), mutable = false)
|
||||
+field("fqName", type<FqName>())
|
||||
+field("packageFqName", type<FqName>())
|
||||
}
|
||||
val externalPackageFragment: ElementConfig by element(Declaration) {
|
||||
visitorParent = packageFragment
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ internal object PartialLinkageUtils {
|
||||
val IrDeclarationWithName.declarationId: DeclarationId?
|
||||
get() {
|
||||
return when (val parent = parent) {
|
||||
is IrPackageFragment -> DeclarationId(parent.fqName.asString(), name.asString())
|
||||
is IrPackageFragment -> DeclarationId(parent.packageFqName.asString(), name.asString())
|
||||
is IrDeclarationWithName -> parent.declarationId?.createNested(name.asString())
|
||||
else -> null
|
||||
}
|
||||
|
||||
+2
-2
@@ -1418,7 +1418,7 @@ open class IrFileSerializer(
|
||||
|
||||
val proto = ProtoFile.newBuilder()
|
||||
.setFileEntry(serializeFileEntry(file.fileEntry))
|
||||
.addAllFqName(serializeFqName(file.fqName.asString()))
|
||||
.addAllFqName(serializeFqName(file.packageFqName.asString()))
|
||||
.addAllAnnotation(serializeAnnotations(file.annotations))
|
||||
|
||||
file.declarations.forEach {
|
||||
@@ -1455,7 +1455,7 @@ open class IrFileSerializer(
|
||||
|
||||
return SerializedIrFile(
|
||||
proto.build().toByteArray(),
|
||||
file.fqName.asString(),
|
||||
file.packageFqName.asString(),
|
||||
file.path,
|
||||
IrMemoryArrayWriter(protoTypeArray.map { it.toByteArray() }).writeIntoMemory(),
|
||||
IrMemoryArrayWriter(protoIdSignatureArray.map { it.toByteArray() }).writeIntoMemory(),
|
||||
|
||||
+1
-1
@@ -153,7 +153,7 @@ open class IrMangleComputer(
|
||||
}
|
||||
|
||||
override fun visitPackageFragment(declaration: IrPackageFragment) {
|
||||
declaration.fqName.let { if (!it.isRoot) builder.appendName(it.asString()) }
|
||||
declaration.packageFqName.let { if (!it.isRoot) builder.appendName(it.asString()) }
|
||||
}
|
||||
|
||||
override fun visitProperty(declaration: IrProperty) {
|
||||
|
||||
+2
-2
@@ -99,7 +99,7 @@ class PublicIdSignatureComputer(val mangler: KotlinMangler.IrMangler) : IdSignat
|
||||
}
|
||||
|
||||
override fun visitPackageFragment(declaration: IrPackageFragment) {
|
||||
packageFqn = declaration.fqName
|
||||
packageFqn = declaration.packageFqName
|
||||
}
|
||||
|
||||
private val IrDeclarationWithVisibility.isTopLevelPrivate: Boolean
|
||||
@@ -231,7 +231,7 @@ class IdSignatureSerializer(
|
||||
|
||||
private fun composeContainerIdSignature(container: IrDeclarationParent, compatibleMode: Boolean): IdSignature =
|
||||
when (container) {
|
||||
is IrPackageFragment -> IdSignature.CommonSignature(container.fqName.asString(), "", null, 0)
|
||||
is IrPackageFragment -> IdSignature.CommonSignature(container.packageFqName.asString(), "", null, 0)
|
||||
is IrDeclaration -> table.signatureByDeclaration(container, compatibleMode)
|
||||
else -> error("Unexpected container ${container.render()}")
|
||||
}
|
||||
|
||||
+2
-2
@@ -34,8 +34,8 @@ class FunctionTypeInterfacePackages {
|
||||
it.fileEntry.name.endsWith(fileWithRequiredPackage) && it.fileEntry.name.contains(FUNCTION_TYPE_INTERFACE_DIR)
|
||||
} ?: error("can not find a functional interface file for $packageFqName package")
|
||||
|
||||
check(packageFragmentDescriptor.fqName == packageFile.fqName) {
|
||||
"unexpected package in file ${packageFile.fileEntry.name}; expected $packageFqName, got ${packageFile.fqName}"
|
||||
check(packageFragmentDescriptor.fqName == packageFile.packageFqName) {
|
||||
"unexpected package in file ${packageFile.fileEntry.name}; expected $packageFqName, got ${packageFile.packageFqName}"
|
||||
}
|
||||
|
||||
functionTypeInterfacePackageFiles += packageFile
|
||||
|
||||
+4
-4
@@ -86,9 +86,9 @@ internal class DependenciesTrackerImpl(
|
||||
?: error("Can't find stdlib")
|
||||
val stdlibDeserializer = context.irLinker.moduleDeserializers[context.stdlibModule]
|
||||
?: error("No deserializer for stdlib")
|
||||
val file = stdlibDeserializer.files.atMostOne { it.fqName == fqName && it.name == fileName }
|
||||
val file = stdlibDeserializer.files.atMostOne { it.packageFqName == fqName && it.name == fileName }
|
||||
?: error("Can't find $fqName:$fileName in stdlib")
|
||||
return LibraryFile(stdlib, file.fqName.asString(), file.path)
|
||||
return LibraryFile(stdlib, file.packageFqName.asString(), file.path)
|
||||
}
|
||||
|
||||
private val stdlibRuntime by lazy { findStdlibFile(KonanFqNames.internalPackageName, "Runtime.kt") }
|
||||
@@ -124,7 +124,7 @@ internal class DependenciesTrackerImpl(
|
||||
library == null -> FileOrigin.CurrentFile
|
||||
packageFragment.packageFragmentDescriptor.containingDeclaration.isFromInteropLibrary() ->
|
||||
FileOrigin.EntireModule(library)
|
||||
else -> FileOrigin.CertainFile(library, packageFragment.fqName.asString(), filePathGetter())
|
||||
else -> FileOrigin.CertainFile(library, packageFragment.packageFqName.asString(), filePathGetter())
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -188,7 +188,7 @@ internal class DependenciesTrackerImpl(
|
||||
require(library.isInteropLibrary()) { "No module deserializer for cached library ${library.uniqueName}" }
|
||||
} else {
|
||||
moduleDeserializer.eagerInitializedFiles.forEach {
|
||||
add(CacheSupport.cacheFileId(it.fqName.asString(), it.path))
|
||||
add(CacheSupport.cacheFileId(it.packageFqName.asString(), it.path))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ internal fun PhaseContext.fir2Ir(
|
||||
components.symbolTable.forEachDeclarationSymbol {
|
||||
val p = it.owner as? IrDeclaration ?: return@forEachDeclarationSymbol
|
||||
val fragment = (p.getPackageFragment() as? IrExternalPackageFragment) ?: return@forEachDeclarationSymbol
|
||||
add(fragment.fqName)
|
||||
add(fragment.packageFqName)
|
||||
}
|
||||
// This packages exists in all platform libraries, but can contain only synthetic declarations.
|
||||
// These declarations are not really located in klib, so we don't need to depend on klib to use them.
|
||||
|
||||
+1
-1
@@ -191,7 +191,7 @@ private fun PhaseEngine<out Context>.splitIntoFragments(
|
||||
val containsStdlib = config.libraryToCache!!.klib == context.stdlibModule.konanLibrary
|
||||
|
||||
files.asSequence().filter { !it.isFunctionInterfaceFile }.map { file ->
|
||||
val cacheDeserializationStrategy = CacheDeserializationStrategy.SingleFile(file.path, file.fqName.asString())
|
||||
val cacheDeserializationStrategy = CacheDeserializationStrategy.SingleFile(file.path, file.packageFqName.asString())
|
||||
val llvmModuleSpecification = CacheLlvmModuleSpecification(
|
||||
config.cachedLibraries,
|
||||
PartialCacheInfo(config.libraryToCache!!.klib, cacheDeserializationStrategy),
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ internal class CodeGenerator(override val generationState: NativeGenerationState
|
||||
|
||||
fun llvmFunction(function: IrFunction): LlvmCallable =
|
||||
llvmFunctionOrNull(function)
|
||||
?: error("no function ${function.name} in ${function.file.fqName}")
|
||||
?: error("no function ${function.name} in ${function.file.packageFqName}")
|
||||
|
||||
fun llvmFunctionOrNull(function: IrFunction): LlvmCallable? =
|
||||
function.llvmFunctionOrNull
|
||||
|
||||
+1
-1
@@ -764,7 +764,7 @@ internal class CodeGeneratorVisitor(
|
||||
}
|
||||
|
||||
private val IrDeclarationContainer.initVariableSuffix get() = when (this) {
|
||||
is IrFile -> "${fqName}\$${fileEntry.name}"
|
||||
is IrFile -> "${packageFqName}\$${fileEntry.name}"
|
||||
else -> fqNameForIrSerialization.asString()
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -160,7 +160,7 @@ private class DeclarationsGeneratorVisitor(override val generationState: NativeG
|
||||
private fun getFqName(declaration: IrDeclaration): FqName {
|
||||
val parent = declaration.parent
|
||||
val parentFqName = when (parent) {
|
||||
is IrPackageFragment -> parent.fqName
|
||||
is IrPackageFragment -> parent.packageFqName
|
||||
is IrDeclaration -> getFqName(parent)
|
||||
else -> error(parent)
|
||||
}
|
||||
|
||||
+1
-1
@@ -595,7 +595,7 @@ internal class RTTIGenerator(
|
||||
null
|
||||
}
|
||||
|
||||
val packageName: String = reflectionPackageName ?: packageFragment.fqName.asString() // Compute and store package name in TypeInfo anyways.
|
||||
val packageName: String = reflectionPackageName ?: packageFragment.packageFqName.asString() // Compute and store package name in TypeInfo anyways.
|
||||
val relativeName: String?
|
||||
val flags: Int
|
||||
|
||||
|
||||
+1
-1
@@ -731,7 +731,7 @@ private class InteropLoweringPart1(val generationState: NativeGenerationState) :
|
||||
|
||||
private fun IrFunction.isAutoreleasepool(): Boolean {
|
||||
return this.name.asString() == "autoreleasepool" && this.parent.let { parent ->
|
||||
parent is IrPackageFragment && parent.fqName == InteropFqNames.packageName
|
||||
parent is IrPackageFragment && parent.packageFqName == InteropFqNames.packageName
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -178,7 +178,7 @@ internal class TestProcessor (val context: Context) {
|
||||
|
||||
val topLevelFunctions = mutableListOf<TestFunction>()
|
||||
val topLevelSuiteClassId: ClassId by lazy {
|
||||
ClassId(irFile.fqName, PackagePartClassUtils.getFilePartShortName(irFile.fileName).let(Name::identifier))
|
||||
ClassId(irFile.packageFqName, PackagePartClassUtils.getFilePartShortName(irFile.fileName).let(Name::identifier))
|
||||
}
|
||||
val topLevelSuiteName: String get() = topLevelSuiteClassId.asFqNameString()
|
||||
|
||||
@@ -546,7 +546,7 @@ internal class TestProcessor (val context: Context) {
|
||||
/** Check if this fqName already used or not. */
|
||||
private fun checkTopLevelSuiteName(irFile: IrFile, topLevelSuiteName: String): Boolean {
|
||||
if (topLevelSuiteNames.contains(topLevelSuiteName)) {
|
||||
context.reportCompilationError("Package '${irFile.fqName}' has top-level test " +
|
||||
context.reportCompilationError("Package '${irFile.packageFqName}' has top-level test " +
|
||||
"functions in several files with the same name: '${irFile.fileName}'")
|
||||
}
|
||||
topLevelSuiteNames.add(topLevelSuiteName)
|
||||
|
||||
+3
-3
@@ -132,7 +132,7 @@ internal class ByteArrayStream(val buf: ByteArray) {
|
||||
}
|
||||
|
||||
data class SerializedFileReference(val fqName: String, val path: String) {
|
||||
constructor(irFile: IrFile) : this(irFile.fqName.asString(), irFile.path)
|
||||
constructor(irFile: IrFile) : this(irFile.packageFqName.asString(), irFile.path)
|
||||
}
|
||||
|
||||
private class StringTableBuilder {
|
||||
@@ -597,7 +597,7 @@ internal class KonanIrLinker(
|
||||
}
|
||||
|
||||
private val fileReferenceToFileDeserializationState by lazy {
|
||||
fileDeserializationStates.associateBy { SerializedFileReference(it.file.fqName.asString(), it.file.path) }
|
||||
fileDeserializationStates.associateBy { SerializedFileReference(it.file.packageFqName.asString(), it.file.path) }
|
||||
}
|
||||
|
||||
private val SerializedFileReference.deserializationState
|
||||
@@ -1011,7 +1011,7 @@ internal class KonanIrLinker(
|
||||
val sortedFileIds by lazy {
|
||||
fileDeserializationStates
|
||||
.sortedBy { it.file.fileEntry.name }
|
||||
.map { CacheSupport.cacheFileId(it.file.fqName.asString(), it.file.fileEntry.name) }
|
||||
.map { CacheSupport.cacheFileId(it.file.packageFqName.asString(), it.file.fileEntry.name) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user