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