Buried remnants of Ira's descriptors
This commit is contained in:
-1
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.backend.common
|
package org.jetbrains.kotlin.backend.common
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
|||||||
+1
-5
@@ -9,14 +9,10 @@ import llvm.*
|
|||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedValueParameterDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedValueParameterDescriptor
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.fqNameSafe
|
import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.*
|
import org.jetbrains.kotlin.backend.konan.llvm.*
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.konan
|
package org.jetbrains.kotlin.backend.konan
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.containsNull
|
import org.jetbrains.kotlin.backend.konan.ir.containsNull
|
||||||
import org.jetbrains.kotlin.builtins.PrimitiveType
|
import org.jetbrains.kotlin.builtins.PrimitiveType
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
|
|||||||
+1
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.backend.konan
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.findPackageView
|
import org.jetbrains.kotlin.backend.konan.descriptors.findPackageView
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.getStringValue
|
import org.jetbrains.kotlin.backend.konan.descriptors.getStringValue
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.getStringValueOrNull
|
import org.jetbrains.kotlin.backend.konan.descriptors.getStringValueOrNull
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
||||||
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConst
|
import org.jetbrains.kotlin.ir.expressions.IrConst
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
|
||||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|||||||
+1
-2
@@ -6,8 +6,7 @@ import org.jetbrains.kotlin.backend.common.lower.irNot
|
|||||||
import org.jetbrains.kotlin.backend.konan.PrimitiveBinaryType
|
import org.jetbrains.kotlin.backend.konan.PrimitiveBinaryType
|
||||||
import org.jetbrains.kotlin.backend.konan.RuntimeNames
|
import org.jetbrains.kotlin.backend.konan.RuntimeNames
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.createAnnotation
|
import org.jetbrains.kotlin.backend.konan.descriptors.createAnnotation
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
|
||||||
import org.jetbrains.kotlin.builtins.UnsignedType
|
import org.jetbrains.kotlin.builtins.UnsignedType
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.descriptors
|
package org.jetbrains.kotlin.backend.konan.descriptors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
||||||
import org.jetbrains.kotlin.backend.konan.lower.bridgeTarget
|
import org.jetbrains.kotlin.backend.konan.lower.bridgeTarget
|
||||||
|
|||||||
+1
-2
@@ -5,8 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.konan.descriptors
|
package org.jetbrains.kotlin.backend.konan.descriptors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.ir.ir2stringWhole
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
|
||||||
import org.jetbrains.kotlin.backend.konan.isInlined
|
import org.jetbrains.kotlin.backend.konan.isInlined
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
|||||||
+2
-4
@@ -3,13 +3,14 @@
|
|||||||
* that can be found in the LICENSE file.
|
* that can be found in the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.backend.konan.irasdescriptors
|
package org.jetbrains.kotlin.backend.konan.ir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.llvmSymbolOrigin
|
import org.jetbrains.kotlin.backend.konan.llvm.llvmSymbolOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.types.toKotlinType
|
import org.jetbrains.kotlin.ir.types.toKotlinType
|
||||||
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
|
|
||||||
@@ -21,9 +22,6 @@ internal val IrDeclaration.isLocal get() = DescriptorUtils.isLocal(this.descript
|
|||||||
|
|
||||||
internal val IrDeclaration.module get() = this.descriptor.module
|
internal val IrDeclaration.module get() = this.descriptor.module
|
||||||
|
|
||||||
@Deprecated("Do not call this method in the compiler front-end.")
|
|
||||||
internal val IrField.isDelegate get() = @Suppress("DEPRECATION") this.descriptor.isDelegated
|
|
||||||
|
|
||||||
internal fun IrFunction.getObjCMethodInfo() = this.descriptor.getObjCMethodInfo()
|
internal fun IrFunction.getObjCMethodInfo() = this.descriptor.getObjCMethodInfo()
|
||||||
internal fun IrFunction.getExternalObjCMethodInfo() = this.descriptor.getExternalObjCMethodInfo()
|
internal fun IrFunction.getExternalObjCMethodInfo() = this.descriptor.getExternalObjCMethodInfo()
|
||||||
internal fun IrFunction.isObjCClassMethod() = this.descriptor.isObjCClassMethod()
|
internal fun IrFunction.isObjCClassMethod() = this.descriptor.isObjCClassMethod()
|
||||||
+4
-644
@@ -6,8 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.ir
|
package org.jetbrains.kotlin.backend.konan.ir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.COROUTINE_SUSPENDED_NAME
|
import org.jetbrains.kotlin.backend.common.COROUTINE_SUSPENDED_NAME
|
||||||
import org.jetbrains.kotlin.backend.common.RenderIrElementWithDescriptorsVisitor.Companion.DECLARATION_RENDERER
|
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedDeclarationDescriptor
|
|
||||||
import org.jetbrains.kotlin.backend.common.ir.Ir
|
import org.jetbrains.kotlin.backend.common.ir.Ir
|
||||||
import org.jetbrains.kotlin.backend.common.ir.Symbols
|
import org.jetbrains.kotlin.backend.common.ir.Symbols
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
@@ -21,12 +19,12 @@ import org.jetbrains.kotlin.config.coroutinesPackageFqName
|
|||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.IrEnumEntry
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrTypeParameterSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrTypeParameterSymbolImpl
|
||||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||||
@@ -34,20 +32,13 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
||||||
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
|
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
|
||||||
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
|
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
|
||||||
import org.jetbrains.kotlin.ir.types.impl.originalKotlinType
|
|
||||||
import org.jetbrains.kotlin.ir.types.toKotlinType
|
|
||||||
import org.jetbrains.kotlin.ir.types.typeWith
|
import org.jetbrains.kotlin.ir.types.typeWith
|
||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.renderer.*
|
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
|
||||||
import java.io.StringWriter
|
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
// This is what Context collects about IR.
|
// This is what Context collects about IR.
|
||||||
@@ -540,635 +531,4 @@ private fun getArrayListClassDescriptor(context: Context): ClassDescriptor {
|
|||||||
NoLookupLocation.FROM_BACKEND)
|
NoLookupLocation.FROM_BACKEND)
|
||||||
|
|
||||||
return classifier as ClassDescriptor
|
return classifier as ClassDescriptor
|
||||||
}
|
|
||||||
|
|
||||||
fun IrElement.render() = accept(RenderIrElementVisitor(), null)
|
|
||||||
|
|
||||||
fun IrType.render() =
|
|
||||||
originalKotlinType?.let {
|
|
||||||
DECLARATION_RENDERER.renderType(it)
|
|
||||||
} ?: DECLARATION_RENDERER.renderType(this.toKotlinType())
|
|
||||||
|
|
||||||
class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
|
||||||
override fun visitElement(element: IrElement, data: Nothing?): String =
|
|
||||||
"? ${element::class.java.simpleName}"
|
|
||||||
|
|
||||||
override fun visitDeclaration(declaration: IrDeclaration, data: Nothing?): String =
|
|
||||||
"? ${declaration::class.java.simpleName} ${declaration.descriptor.ref()}"
|
|
||||||
|
|
||||||
override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): String =
|
|
||||||
"MODULE_FRAGMENT name:${declaration.name}"
|
|
||||||
|
|
||||||
override fun visitExternalPackageFragment(declaration: IrExternalPackageFragment, data: Nothing?): String =
|
|
||||||
"EXTERNAL_PACKAGE_FRAGMENT fqName:${declaration.fqName}"
|
|
||||||
|
|
||||||
override fun visitFile(declaration: IrFile, data: Nothing?): String =
|
|
||||||
"FILE fqName:${declaration.fqName} fileName:${declaration.name}"
|
|
||||||
|
|
||||||
override fun visitFunction(declaration: IrFunction, data: Nothing?): String =
|
|
||||||
"FUN ${declaration.renderOriginIfNonTrivial()}${declaration.renderDeclared()}"
|
|
||||||
|
|
||||||
override fun visitSimpleFunction(declaration: IrSimpleFunction, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"FUN ${renderOriginIfNonTrivial()}" +
|
|
||||||
//"name:$name visibility:$visibility modality:$modality " +
|
|
||||||
"name:$name $descriptor $symbol visibility:$visibility modality:$modality " +
|
|
||||||
renderTypeParameters() + " " +
|
|
||||||
renderValueParameterTypes() + " " +
|
|
||||||
"returnType:${returnType.render()} " +
|
|
||||||
"flags:${renderSimpleFunctionFlags()}"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun renderFlagsList(vararg flags: String?) =
|
|
||||||
flags.filterNotNull().joinToString(separator = ",")
|
|
||||||
|
|
||||||
private fun IrSimpleFunction.renderSimpleFunctionFlags(): String =
|
|
||||||
renderFlagsList(
|
|
||||||
"tailrec".takeIf { isTailrec },
|
|
||||||
"inline".takeIf { isInline },
|
|
||||||
"external".takeIf { isExternal },
|
|
||||||
"suspend".takeIf { isSuspend }
|
|
||||||
)
|
|
||||||
|
|
||||||
private fun IrFunction.renderTypeParameters(): String =
|
|
||||||
typeParameters.joinToString(separator = ", ", prefix = "<", postfix = ">") { it.name.toString() }
|
|
||||||
|
|
||||||
private fun IrFunction.renderValueParameterTypes(): String =
|
|
||||||
ArrayList<String>().apply {
|
|
||||||
addIfNotNull(dispatchReceiverParameter?.run { "\$this:${type.render()}" })
|
|
||||||
addIfNotNull(extensionReceiverParameter?.run { "\$receiver:${type.render()}" })
|
|
||||||
valueParameters.mapTo(this) { "${it.name}:${it.type.render()}" }
|
|
||||||
}.joinToString(separator = ", ", prefix = "(", postfix = ")")
|
|
||||||
|
|
||||||
override fun visitConstructor(declaration: IrConstructor, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"CONSTRUCTOR ${renderOriginIfNonTrivial()}" +
|
|
||||||
"visibility:$visibility " +
|
|
||||||
renderTypeParameters() + " " +
|
|
||||||
renderValueParameterTypes() + " " +
|
|
||||||
"returnType:${returnType.render()} " +
|
|
||||||
"flags:${renderConstructorFlags()}"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrConstructor.renderConstructorFlags() =
|
|
||||||
renderFlagsList(
|
|
||||||
"inline".takeIf { isInline },
|
|
||||||
"external".takeIf { isExternal },
|
|
||||||
"primary".takeIf { isPrimary }
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun visitProperty(declaration: IrProperty, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"PROPERTY ${renderOriginIfNonTrivial()}" +
|
|
||||||
"name:$name visibility:$visibility modality:$modality " +
|
|
||||||
"flags:${renderPropertyFlags()}"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrProperty.renderPropertyFlags() =
|
|
||||||
renderFlagsList(
|
|
||||||
"external".takeIf { isExternal },
|
|
||||||
"const".takeIf { isConst },
|
|
||||||
"lateinit".takeIf { isLateinit },
|
|
||||||
"delegated".takeIf { isDelegated },
|
|
||||||
if (isVar) "var" else "val"
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun visitField(declaration: IrField, data: Nothing?): String =
|
|
||||||
"FIELD ${declaration.renderOriginIfNonTrivial()}" +
|
|
||||||
"name:${declaration.name} type:${declaration.type.render()} visibility:${declaration.visibility} " +
|
|
||||||
"flags:${declaration.renderFieldFlags()}"
|
|
||||||
|
|
||||||
private fun IrField.renderFieldFlags() =
|
|
||||||
renderFlagsList(
|
|
||||||
"final".takeIf { isFinal },
|
|
||||||
"external".takeIf { isExternal },
|
|
||||||
"static".takeIf { isStatic }
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun visitClass(declaration: IrClass, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"CLASS ${renderOriginIfNonTrivial()}" +
|
|
||||||
"$kind name:$name modality:$modality visibility:$visibility " +
|
|
||||||
"flags:${renderClassFlags()} " +
|
|
||||||
"superTypes:[${superTypes.joinToString(separator = "; ") { it.render() }}]"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrClass.renderClassFlags() =
|
|
||||||
renderFlagsList(
|
|
||||||
"companion".takeIf { isCompanion },
|
|
||||||
"inner".takeIf { isInner },
|
|
||||||
"data".takeIf { isData },
|
|
||||||
"external".takeIf { isExternal },
|
|
||||||
"inline".takeIf { isInline }
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?): String =
|
|
||||||
"TYPEALIAS ${declaration.renderOriginIfNonTrivial()}${declaration.descriptor.ref()} " +
|
|
||||||
"type=${declaration.descriptor.underlyingType.render()}"
|
|
||||||
|
|
||||||
override fun visitVariable(declaration: IrVariable, data: Nothing?): String =
|
|
||||||
"VAR ${declaration.renderOriginIfNonTrivial()}" +
|
|
||||||
"name:${declaration.name} type:${declaration.type.render()} flags:${declaration.renderVariableFlags()}"
|
|
||||||
|
|
||||||
private fun IrVariable.renderVariableFlags(): String =
|
|
||||||
renderFlagsList(
|
|
||||||
"const".takeIf { isConst },
|
|
||||||
"lateinit".takeIf { isLateinit },
|
|
||||||
if (isVar) "var" else "val"
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun visitEnumEntry(declaration: IrEnumEntry, data: Nothing?): String =
|
|
||||||
"ENUM_ENTRY ${declaration.renderOriginIfNonTrivial()}name:${declaration.name}"
|
|
||||||
|
|
||||||
override fun visitAnonymousInitializer(declaration: IrAnonymousInitializer, data: Nothing?): String =
|
|
||||||
"ANONYMOUS_INITIALIZER ${declaration.descriptor.ref()}"
|
|
||||||
|
|
||||||
override fun visitTypeParameter(declaration: IrTypeParameter, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"TYPE_PARAMETER ${renderOriginIfNonTrivial()}" +
|
|
||||||
"name:$name index:$index variance:$variance " +
|
|
||||||
"superTypes:[${superTypes.joinToString(separator = "; ") { it.render() }}]"
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitValueParameter(declaration: IrValueParameter, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"VALUE_PARAMETER ${renderOriginIfNonTrivial()}" +
|
|
||||||
"name:$name " +
|
|
||||||
(if (index >= 0) "index:$index " else "") +
|
|
||||||
"type:${type.render()} " +
|
|
||||||
(varargElementType?.let { "varargElementType:${it.render()} " } ?: "") +
|
|
||||||
"flags:${renderValueParameterFlags()}"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrValueParameter.renderValueParameterFlags(): String =
|
|
||||||
renderFlagsList(
|
|
||||||
"vararg".takeIf { varargElementType != null },
|
|
||||||
"crossinline".takeIf { isCrossinline },
|
|
||||||
"noinline".takeIf { isNoinline }
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty, data: Nothing?): String =
|
|
||||||
declaration.run {
|
|
||||||
"LOCAL_DELEGATED_PROPERTY ${declaration.renderOriginIfNonTrivial()}" +
|
|
||||||
"name:$name type:${type.render()} flags:${renderLocalDelegatedPropertyFlags()}"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrLocalDelegatedProperty.renderLocalDelegatedPropertyFlags() =
|
|
||||||
if (isVar) "var" else "val"
|
|
||||||
|
|
||||||
override fun visitExpressionBody(body: IrExpressionBody, data: Nothing?): String =
|
|
||||||
"EXPRESSION_BODY"
|
|
||||||
|
|
||||||
override fun visitBlockBody(body: IrBlockBody, data: Nothing?): String =
|
|
||||||
"BLOCK_BODY"
|
|
||||||
|
|
||||||
override fun visitSyntheticBody(body: IrSyntheticBody, data: Nothing?): String =
|
|
||||||
"SYNTHETIC_BODY kind=${body.kind}"
|
|
||||||
|
|
||||||
override fun visitExpression(expression: IrExpression, data: Nothing?): String =
|
|
||||||
"? ${expression::class.java.simpleName} type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun <T> visitConst(expression: IrConst<T>, data: Nothing?): String =
|
|
||||||
"CONST ${expression.kind} type=${expression.type.render()} value=${expression.value}"
|
|
||||||
|
|
||||||
override fun visitVararg(expression: IrVararg, data: Nothing?): String =
|
|
||||||
"VARARG type=${expression.type.render()} varargElementType=${expression.varargElementType.render()}"
|
|
||||||
|
|
||||||
override fun visitSpreadElement(spread: IrSpreadElement, data: Nothing?): String =
|
|
||||||
"SPREAD_ELEMENT"
|
|
||||||
|
|
||||||
override fun visitBlock(expression: IrBlock, data: Nothing?): String =
|
|
||||||
if (expression is IrReturnableBlock)
|
|
||||||
"RETURNABLE_BLOCK type=${expression.type.render()} origin=${expression.origin} function=name:${expression.symbol.descriptor.name} ${expression.symbol.descriptor} ${expression.symbol}"
|
|
||||||
else "BLOCK type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitComposite(expression: IrComposite, data: Nothing?): String =
|
|
||||||
"COMPOSITE type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitReturn(expression: IrReturn, data: Nothing?): String =
|
|
||||||
"RETURN type=${expression.type.render()} from='name=${expression.returnTarget.name} ${expression.returnTarget/*.ref()*/} ${expression.returnTargetSymbol}'"
|
|
||||||
|
|
||||||
override fun visitCall(expression: IrCall, data: Nothing?): String =
|
|
||||||
"CALL '${expression.descriptor/*.ref()*/} ${expression.descriptor} ${expression.symbol}' ${expression.renderSuperQualifier()}" +
|
|
||||||
"type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
private fun IrCall.renderSuperQualifier(): String =
|
|
||||||
superQualifier?.let { "superQualifier=${it.name} " } ?: ""
|
|
||||||
|
|
||||||
override fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall, data: Nothing?): String =
|
|
||||||
"DELEGATING_CONSTRUCTOR_CALL '${expression.descriptor.ref()}'"
|
|
||||||
|
|
||||||
override fun visitEnumConstructorCall(expression: IrEnumConstructorCall, data: Nothing?): String =
|
|
||||||
"ENUM_CONSTRUCTOR_CALL '${expression.descriptor.ref()}'"
|
|
||||||
|
|
||||||
override fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall, data: Nothing?): String =
|
|
||||||
"INSTANCE_INITIALIZER_CALL classDescriptor='${expression.classDescriptor.ref()}'"
|
|
||||||
|
|
||||||
override fun visitGetValue(expression: IrGetValue, data: Nothing?): String =
|
|
||||||
"GET_VAR '${expression.descriptor.ref()}' /*${expression.symbol.owner} ${expression.symbol.owner.hashCode()} ${expression.descriptor} ${expression.descriptor.hashCode()} */ type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitSetVariable(expression: IrSetVariable, data: Nothing?): String =
|
|
||||||
"SET_VAR '${expression.descriptor.ref()}' type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitGetField(expression: IrGetField, data: Nothing?): String =
|
|
||||||
"GET_FIELD '${expression.descriptor.ref()}' type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitSetField(expression: IrSetField, data: Nothing?): String =
|
|
||||||
"SET_FIELD '${expression.descriptor.ref()}' type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitGetObjectValue(expression: IrGetObjectValue, data: Nothing?): String =
|
|
||||||
"GET_OBJECT '${expression.descriptor.ref()}' type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitGetEnumValue(expression: IrGetEnumValue, data: Nothing?): String =
|
|
||||||
"GET_ENUM '${expression.descriptor.ref()}' type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitStringConcatenation(expression: IrStringConcatenation, data: Nothing?): String =
|
|
||||||
"STRING_CONCATENATION type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitTypeOperator(expression: IrTypeOperatorCall, data: Nothing?): String =
|
|
||||||
"TYPE_OP type=${expression.type.render()} origin=${expression.operator} typeOperand=${expression.typeOperand.render()}"
|
|
||||||
|
|
||||||
override fun visitWhen(expression: IrWhen, data: Nothing?): String =
|
|
||||||
"WHEN type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitBranch(branch: IrBranch, data: Nothing?): String =
|
|
||||||
"BRANCH"
|
|
||||||
|
|
||||||
override fun visitWhileLoop(loop: IrWhileLoop, data: Nothing?): String =
|
|
||||||
"WHILE label=${loop.label} origin=${loop.origin}"
|
|
||||||
|
|
||||||
override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: Nothing?): String =
|
|
||||||
"DO_WHILE label=${loop.label} origin=${loop.origin}"
|
|
||||||
|
|
||||||
override fun visitBreak(jump: IrBreak, data: Nothing?): String =
|
|
||||||
"BREAK label=${jump.label} loop.label=${jump.loop.label}"
|
|
||||||
|
|
||||||
override fun visitContinue(jump: IrContinue, data: Nothing?): String =
|
|
||||||
"CONTINUE label=${jump.label} loop.label=${jump.loop.label}"
|
|
||||||
|
|
||||||
override fun visitThrow(expression: IrThrow, data: Nothing?): String =
|
|
||||||
"THROW type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitFunctionReference(expression: IrFunctionReference, data: Nothing?): String =
|
|
||||||
"FUNCTION_REFERENCE 'name=${expression.descriptor.name/*.ref()*/} ${expression.descriptor} ${expression.symbol}' type=${expression.type.render()} origin=${expression.origin}"
|
|
||||||
|
|
||||||
override fun visitPropertyReference(expression: IrPropertyReference, data: Nothing?): String =
|
|
||||||
buildString {
|
|
||||||
append("PROPERTY_REFERENCE ")
|
|
||||||
append("'${expression.descriptor.ref()}' ")
|
|
||||||
appendNullableAttribute("field=", expression.field) { "'${it.descriptor.ref()}'" }
|
|
||||||
appendNullableAttribute("getter=", expression.getter) { "'${it.descriptor.ref()}'" }
|
|
||||||
appendNullableAttribute("setter=", expression.setter) { "'${it.descriptor.ref()}'" }
|
|
||||||
append("type=${expression.type.render()} ")
|
|
||||||
append("origin=${expression.origin}")
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun <T : Any> StringBuilder.appendNullableAttribute(prefix: String, value: T?, toString: (T) -> String) {
|
|
||||||
append(prefix)
|
|
||||||
if (value != null) {
|
|
||||||
append(toString(value))
|
|
||||||
} else {
|
|
||||||
append("null")
|
|
||||||
}
|
|
||||||
append(" ")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference, data: Nothing?): String =
|
|
||||||
buildString {
|
|
||||||
append("LOCAL_DELEGATED_PROPERTY_REFERENCE ")
|
|
||||||
append("'${expression.descriptor.ref()}' ")
|
|
||||||
append("delegate='${expression.delegate.descriptor.ref()}' ")
|
|
||||||
append("getter='${expression.getter.descriptor.ref()}' ")
|
|
||||||
appendNullableAttribute("setter=", expression.setter) { "'${it.descriptor.ref()}'" }
|
|
||||||
append("type=${expression.type.render()} ")
|
|
||||||
append("origin=${expression.origin}")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitClassReference(expression: IrClassReference, data: Nothing?): String =
|
|
||||||
"CLASS_REFERENCE '${expression.descriptor.ref()}' type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitGetClass(expression: IrGetClass, data: Nothing?): String =
|
|
||||||
"GET_CLASS type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitTry(aTry: IrTry, data: Nothing?): String =
|
|
||||||
"TRY type=${aTry.type.render()}"
|
|
||||||
|
|
||||||
override fun visitCatch(aCatch: IrCatch, data: Nothing?): String =
|
|
||||||
"CATCH parameter=${aCatch.parameter.ref()}"
|
|
||||||
|
|
||||||
override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Nothing?): String =
|
|
||||||
"ERROR_DECL ${declaration.descriptor::class.java.simpleName} ${declaration.descriptor.ref()}"
|
|
||||||
|
|
||||||
override fun visitErrorExpression(expression: IrErrorExpression, data: Nothing?): String =
|
|
||||||
"ERROR_EXPR '${expression.description}' type=${expression.type.render()}"
|
|
||||||
|
|
||||||
override fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?): String =
|
|
||||||
"ERROR_CALL '${expression.description}' type=${expression.type.render()}"
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
val DECLARATION_RENDERER = DescriptorRenderer.withOptions {
|
|
||||||
withDefinedIn = false
|
|
||||||
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE
|
|
||||||
includePropertyConstant = true
|
|
||||||
classifierNamePolicy = ClassifierNamePolicy.FULLY_QUALIFIED
|
|
||||||
verbose = false
|
|
||||||
modifiers = DescriptorRendererModifier.ALL
|
|
||||||
}
|
|
||||||
|
|
||||||
val REFERENCE_RENDERER = DescriptorRenderer.ONLY_NAMES_WITH_SHORT_TYPES
|
|
||||||
|
|
||||||
internal fun IrDeclaration.name(): String =
|
|
||||||
descriptor.name.toString()
|
|
||||||
|
|
||||||
internal fun DescriptorRenderer.renderDescriptor(descriptor: DeclarationDescriptor): String =
|
|
||||||
if (descriptor is ReceiverParameterDescriptor)
|
|
||||||
"this@${if (descriptor is WrappedDeclarationDescriptor<*>) "Wrapped" else descriptor.containingDeclaration.name}: ${if (descriptor is WrappedDeclarationDescriptor<*>) "Wrapped" else descriptor.type}"
|
|
||||||
else
|
|
||||||
render(descriptor)
|
|
||||||
|
|
||||||
internal fun IrDeclaration.renderDeclared(): String =
|
|
||||||
DECLARATION_RENDERER.renderDescriptor(this.descriptor)
|
|
||||||
|
|
||||||
internal fun DeclarationDescriptor.ref(): String =
|
|
||||||
REFERENCE_RENDERER.renderDescriptor(this)
|
|
||||||
|
|
||||||
internal fun KotlinType.render(): String =
|
|
||||||
DECLARATION_RENDERER.renderType(this)
|
|
||||||
|
|
||||||
internal fun IrDeclaration.renderOriginIfNonTrivial(): String =
|
|
||||||
if (origin != IrDeclarationOrigin.DEFINED) origin.toString() + " " else ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class DumpIrTreeVizitor(out: Appendable) : IrElementVisitor<Unit, String> {
|
|
||||||
|
|
||||||
private val printer = Printer(out, " ")
|
|
||||||
private val elementRenderer = RenderIrElementVisitor()
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
val ANNOTATIONS_RENDERER = DescriptorRenderer.withOptions {
|
|
||||||
verbose = true
|
|
||||||
annotationArgumentsRenderingPolicy = AnnotationArgumentsRenderingPolicy.UNLESS_EMPTY
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitElement(element: IrElement, data: String) {
|
|
||||||
element.dumpLabeledElementWith(data) {
|
|
||||||
if (element is IrAnnotationContainer) {
|
|
||||||
dumpAnnotations(element)
|
|
||||||
}
|
|
||||||
element.acceptChildren(this@DumpIrTreeVizitor, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitModuleFragment(declaration: IrModuleFragment, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
declaration.files.dumpElements()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitFile(declaration: IrFile, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
declaration.fileAnnotations.dumpItemsWith("fileAnnotations") {
|
|
||||||
ANNOTATIONS_RENDERER.renderAnnotation(it)
|
|
||||||
}
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.declarations.dumpElements()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitClass(declaration: IrClass, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.thisReceiver?.accept(this, "\$this")
|
|
||||||
declaration.typeParameters.dumpElements()
|
|
||||||
declaration.declarations.dumpElements()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitTypeParameter(declaration: IrTypeParameter, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitSimpleFunction(declaration: IrSimpleFunction, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.correspondingProperty?.dumpInternal("correspondingProperty")
|
|
||||||
declaration.overriddenSymbols.dumpItems<IrSymbol>("overridden") {
|
|
||||||
it.dumpDeclarationElementOrDescriptor()
|
|
||||||
}
|
|
||||||
declaration.typeParameters.dumpElements()
|
|
||||||
declaration.dispatchReceiverParameter?.accept(this, "\$this")
|
|
||||||
declaration.extensionReceiverParameter?.accept(this, "\$receiver")
|
|
||||||
declaration.valueParameters.dumpElements()
|
|
||||||
declaration.body?.accept(this, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun dumpAnnotations(element: IrAnnotationContainer) {
|
|
||||||
element.annotations.dumpItems("annotations") {
|
|
||||||
element.annotations.dumpElements()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrSymbol.dumpDeclarationElementOrDescriptor(label: String? = null) {
|
|
||||||
when {
|
|
||||||
isBound ->
|
|
||||||
owner.dumpInternal(label)
|
|
||||||
label != null ->
|
|
||||||
printer.println("$label: ", "UNBOUND: ", DescriptorRenderer.COMPACT.render(descriptor))
|
|
||||||
else ->
|
|
||||||
printer.println("UNBOUND: ", DescriptorRenderer.COMPACT.render(descriptor))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitConstructor(declaration: IrConstructor, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.typeParameters.dumpElements()
|
|
||||||
declaration.dispatchReceiverParameter?.accept(this, "\$outer")
|
|
||||||
declaration.valueParameters.dumpElements()
|
|
||||||
declaration.body?.accept(this, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitProperty(declaration: IrProperty, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.backingField?.accept(this, "")
|
|
||||||
declaration.getter?.accept(this, "")
|
|
||||||
declaration.setter?.accept(this, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitField(declaration: IrField, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.overriddenSymbols.dumpItems("overridden") {
|
|
||||||
it.dumpDeclarationElementOrDescriptor()
|
|
||||||
}
|
|
||||||
declaration.initializer?.accept(this, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun List<IrElement>.dumpElements() {
|
|
||||||
forEach { it.accept(this@DumpIrTreeVizitor, "") }
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitErrorCallExpression(expression: IrErrorCallExpression, data: String) {
|
|
||||||
expression.dumpLabeledElementWith(data) {
|
|
||||||
expression.explicitReceiver?.accept(this, "receiver")
|
|
||||||
expression.arguments.dumpElements()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitEnumEntry(declaration: IrEnumEntry, data: String) {
|
|
||||||
declaration.dumpLabeledElementWith(data) {
|
|
||||||
dumpAnnotations(declaration)
|
|
||||||
declaration.initializerExpression?.accept(this, "init")
|
|
||||||
declaration.correspondingClass?.accept(this, "class")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitMemberAccess(expression: IrMemberAccessExpression, data: String) {
|
|
||||||
expression.dumpLabeledElementWith(data) {
|
|
||||||
dumpTypeArguments(expression)
|
|
||||||
expression.dispatchReceiver?.accept(this, "\$this")
|
|
||||||
expression.extensionReceiver?.accept(this, "\$receiver")
|
|
||||||
for (valueParameter in expression.descriptor.valueParameters) {
|
|
||||||
expression.getValueArgument(valueParameter.index)?.accept(this, valueParameter.name.asString())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun dumpTypeArguments(expression: IrMemberAccessExpression) {
|
|
||||||
for (index in 0 until expression.typeArgumentsCount) {
|
|
||||||
printer.println(
|
|
||||||
"${expression.descriptor.renderTypeParameter(index)}: ${expression.renderTypeArgument(index)}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun CallableDescriptor.renderTypeParameter(index: Int): String {
|
|
||||||
val typeParameter = original.typeParameters.getOrNull(index)
|
|
||||||
return if (typeParameter != null)
|
|
||||||
DescriptorRenderer.ONLY_NAMES_WITH_SHORT_TYPES.render(typeParameter)
|
|
||||||
else
|
|
||||||
"<`$index>"
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrMemberAccessExpression.renderTypeArgument(index: Int): String =
|
|
||||||
getTypeArgument(index)?.render() ?: "<none>"
|
|
||||||
|
|
||||||
override fun visitGetField(expression: IrGetField, data: String) {
|
|
||||||
expression.dumpLabeledElementWith(data) {
|
|
||||||
expression.receiver?.accept(this, "receiver")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitSetField(expression: IrSetField, data: String) {
|
|
||||||
expression.dumpLabeledElementWith(data) {
|
|
||||||
expression.receiver?.accept(this, "receiver")
|
|
||||||
expression.value.accept(this, "value")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitWhen(expression: IrWhen, data: String) {
|
|
||||||
expression.dumpLabeledElementWith(data) {
|
|
||||||
expression.branches.dumpElements()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitBranch(branch: IrBranch, data: String) {
|
|
||||||
branch.dumpLabeledElementWith(data) {
|
|
||||||
branch.condition.accept(this, "if")
|
|
||||||
branch.result.accept(this, "then")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitWhileLoop(loop: IrWhileLoop, data: String) {
|
|
||||||
loop.dumpLabeledElementWith(data) {
|
|
||||||
loop.condition.accept(this, "condition")
|
|
||||||
loop.body?.accept(this, "body")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: String) {
|
|
||||||
loop.dumpLabeledElementWith(data) {
|
|
||||||
loop.body?.accept(this, "body")
|
|
||||||
loop.condition.accept(this, "condition")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitTry(aTry: IrTry, data: String) {
|
|
||||||
aTry.dumpLabeledElementWith(data) {
|
|
||||||
aTry.tryResult.accept(this, "try")
|
|
||||||
aTry.catches.dumpElements()
|
|
||||||
aTry.finallyExpression?.accept(this, "finally")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitTypeOperator(expression: IrTypeOperatorCall, data: String) {
|
|
||||||
expression.dumpLabeledElementWith(data) {
|
|
||||||
expression.typeOperandClassifier.dumpDeclarationElementOrDescriptor("typeOperand")
|
|
||||||
expression.acceptChildren(this, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun IrElement.dumpLabeledElementWith(label: String, body: () -> Unit) {
|
|
||||||
printer.println(accept(elementRenderer, null).withLabel(label))
|
|
||||||
indented(body)
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun <T> Collection<T>.dumpItems(caption: String, renderElement: (T) -> Unit) {
|
|
||||||
if (isEmpty()) return
|
|
||||||
indented(caption) {
|
|
||||||
forEach {
|
|
||||||
renderElement(it)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun <T> Collection<T>.dumpItemsWith(caption: String, renderElement: (T) -> String) {
|
|
||||||
if (isEmpty()) return
|
|
||||||
indented(caption) {
|
|
||||||
forEach {
|
|
||||||
printer.println(renderElement(it))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun IrElement.dumpInternal(label: String? = null) {
|
|
||||||
if (label != null) {
|
|
||||||
printer.println("$label: ", accept(elementRenderer, null))
|
|
||||||
} else {
|
|
||||||
printer.println(accept(elementRenderer, null))
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun indented(label: String, body: () -> Unit) {
|
|
||||||
printer.println("$label:")
|
|
||||||
indented(body)
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun indented(body: () -> Unit) {
|
|
||||||
printer.pushIndent()
|
|
||||||
body()
|
|
||||||
printer.popIndent()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun String.withLabel(label: String) =
|
|
||||||
if (label.isEmpty()) this else "$label: $this"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fun ir2stringWholezzz(ir: IrElement?): String {
|
|
||||||
val strWriter = StringWriter()
|
|
||||||
|
|
||||||
ir?.accept(DumpIrTreeVizitor(strWriter), "")
|
|
||||||
return strWriter.toString()
|
|
||||||
}
|
}
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the LICENSE file.
|
* that can be found in the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.backend.konan.irasdescriptors
|
package org.jetbrains.kotlin.backend.konan.ir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
|
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
|
||||||
import org.jetbrains.kotlin.builtins.getFunctionalClassKind
|
import org.jetbrains.kotlin.builtins.getFunctionalClassKind
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the LICENSE file.
|
* that can be found in the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.backend.konan.irasdescriptors
|
package org.jetbrains.kotlin.backend.konan.ir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.atMostOne
|
import org.jetbrains.kotlin.backend.common.atMostOne
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.getArgumentValueOrNull
|
import org.jetbrains.kotlin.backend.konan.descriptors.getArgumentValueOrNull
|
||||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.backend.konan.*
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.externalSymbolOrThrow
|
import org.jetbrains.kotlin.backend.konan.descriptors.externalSymbolOrThrow
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.getAnnotationValue
|
import org.jetbrains.kotlin.backend.konan.descriptors.getAnnotationValue
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
||||||
import org.jetbrains.kotlin.backend.konan.optimizations.DataFlowIR
|
import org.jetbrains.kotlin.backend.konan.optimizations.DataFlowIR
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
|
|||||||
+1
-1
@@ -10,13 +10,13 @@ import kotlinx.cinterop.*
|
|||||||
import llvm.*
|
import llvm.*
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.objc.*
|
import org.jetbrains.kotlin.backend.konan.llvm.objc.*
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.resolveFakeOverride
|
import org.jetbrains.kotlin.backend.konan.descriptors.resolveFakeOverride
|
||||||
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
|
|
||||||
internal class CodeGenerator(override val context: Context) : ContextUtils {
|
internal class CodeGenerator(override val context: Context) : ContextUtils {
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -8,9 +8,9 @@ package org.jetbrains.kotlin.backend.konan.llvm
|
|||||||
import kotlinx.cinterop.*
|
import kotlinx.cinterop.*
|
||||||
import llvm.*
|
import llvm.*
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.findPackage
|
|
||||||
import org.jetbrains.kotlin.backend.konan.hash.GlobalHash
|
import org.jetbrains.kotlin.backend.konan.hash.GlobalHash
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.isReal
|
||||||
|
import org.jetbrains.kotlin.backend.konan.ir.llvmSymbolOrigin
|
||||||
import org.jetbrains.kotlin.descriptors.konan.CompiledKonanModuleOrigin
|
import org.jetbrains.kotlin.descriptors.konan.CompiledKonanModuleOrigin
|
||||||
import org.jetbrains.kotlin.descriptors.konan.CurrentKonanModuleOrigin
|
import org.jetbrains.kotlin.descriptors.konan.CurrentKonanModuleOrigin
|
||||||
import org.jetbrains.kotlin.descriptors.konan.DeserializedKonanModuleOrigin
|
import org.jetbrains.kotlin.descriptors.konan.DeserializedKonanModuleOrigin
|
||||||
|
|||||||
-2
@@ -12,14 +12,12 @@ import org.jetbrains.kotlin.backend.common.ir.ir2string
|
|||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
|
||||||
import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExport
|
import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExport
|
||||||
import org.jetbrains.kotlin.backend.konan.optimizations.*
|
import org.jetbrains.kotlin.backend.konan.optimizations.*
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.UnsignedType
|
import org.jetbrains.kotlin.builtins.UnsignedType
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.konan.CurrentKonanModuleOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ import llvm.LLVMValueRef
|
|||||||
import org.jetbrains.kotlin.backend.common.atMostOne
|
import org.jetbrains.kotlin.backend.common.atMostOne
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.getStringValue
|
import org.jetbrains.kotlin.backend.konan.descriptors.getStringValue
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
import org.jetbrains.kotlin.ir.util.constructors
|
import org.jetbrains.kotlin.ir.util.constructors
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import kotlinx.cinterop.*
|
|||||||
import llvm.*
|
import llvm.*
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.types.isNothing
|
import org.jetbrains.kotlin.ir.types.isNothing
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import llvm.*
|
|||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.computePrimitiveBinaryTypeOrNull
|
import org.jetbrains.kotlin.backend.konan.computePrimitiveBinaryTypeOrNull
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.isExternalObjCClassMethod
|
import org.jetbrains.kotlin.backend.konan.isExternalObjCClassMethod
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
import org.jetbrains.kotlin.ir.declarations.IrField
|
||||||
|
|||||||
+2
-6
@@ -7,13 +7,9 @@ package org.jetbrains.kotlin.backend.konan.llvm
|
|||||||
|
|
||||||
import kotlinx.cinterop.cValuesOf
|
import kotlinx.cinterop.cValuesOf
|
||||||
import llvm.*
|
import llvm.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.fqNameSafe
|
import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.llvmSymbolOrigin
|
import org.jetbrains.kotlin.backend.konan.ir.llvmSymbolOrigin
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
|
||||||
|
|
||||||
private fun ConstPointer.add(index: Int): ConstPointer {
|
private fun ConstPointer.add(index: Int): ConstPointer {
|
||||||
return constPointer(LLVMConstGEP(llvm, cValuesOf(Int32(index).llvm), 1)!!)
|
return constPointer(LLVMConstGEP(llvm, cValuesOf(Int32(index).llvm), 1)!!)
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.backend.common.atMostOne
|
|||||||
import org.jetbrains.kotlin.backend.common.descriptors.allParameters
|
import org.jetbrains.kotlin.backend.common.descriptors.allParameters
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.constructedClass
|
import org.jetbrains.kotlin.backend.konan.ir.constructedClass
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.*
|
import org.jetbrains.kotlin.backend.konan.llvm.*
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.objc.ObjCCodeGenerator
|
import org.jetbrains.kotlin.backend.konan.llvm.objc.ObjCCodeGenerator
|
||||||
import org.jetbrains.kotlin.backend.konan.objcexport.*
|
import org.jetbrains.kotlin.backend.konan.objcexport.*
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.backend.common.ir.copyTo
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.*
|
import org.jetbrains.kotlin.backend.common.lower.*
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.target
|
import org.jetbrains.kotlin.backend.konan.descriptors.target
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
|
|||||||
+3
-3
@@ -11,9 +11,9 @@ import org.jetbrains.kotlin.backend.common.lower.IrBuildingTransformer
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.at
|
import org.jetbrains.kotlin.backend.common.lower.at
|
||||||
import org.jetbrains.kotlin.backend.common.lower.irNot
|
import org.jetbrains.kotlin.backend.common.lower.irNot
|
||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.containsNull
|
import org.jetbrains.kotlin.backend.konan.ir.containsNull
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isSubtypeOf
|
import org.jetbrains.kotlin.backend.konan.ir.isSubtypeOf
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.overrides
|
import org.jetbrains.kotlin.backend.konan.ir.overrides
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
|
|||||||
+2
-2
@@ -14,8 +14,8 @@ import org.jetbrains.kotlin.backend.konan.Context
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.common.pop
|
import org.jetbrains.kotlin.backend.common.pop
|
||||||
import org.jetbrains.kotlin.backend.common.push
|
import org.jetbrains.kotlin.backend.common.push
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.fqNameSafe
|
import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isFunctionOrKFunctionType
|
import org.jetbrains.kotlin.backend.konan.ir.isFunctionOrKFunctionType
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
|||||||
+1
-2
@@ -14,13 +14,12 @@ import org.jetbrains.kotlin.backend.konan.Context
|
|||||||
import org.jetbrains.kotlin.backend.konan.InteropFqNames
|
import org.jetbrains.kotlin.backend.konan.InteropFqNames
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.konan.KonanBackendContext
|
import org.jetbrains.kotlin.backend.konan.KonanBackendContext
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithStarProjections
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithStarProjections
|
||||||
import org.jetbrains.kotlin.backend.konan.isObjCClass
|
import org.jetbrains.kotlin.backend.konan.isObjCClass
|
||||||
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptorImpl
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.backend.common.lower.irBlockBody
|
|||||||
import org.jetbrains.kotlin.backend.common.runOnFilePostfix
|
import org.jetbrains.kotlin.backend.common.runOnFilePostfix
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.DECLARATION_ORIGIN_ENUM
|
import org.jetbrains.kotlin.backend.konan.DECLARATION_ORIGIN_ENUM
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.constructedClass
|
import org.jetbrains.kotlin.backend.konan.ir.constructedClass
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.backend.common.peek
|
|||||||
import org.jetbrains.kotlin.backend.common.pop
|
import org.jetbrains.kotlin.backend.common.pop
|
||||||
import org.jetbrains.kotlin.backend.common.push
|
import org.jetbrains.kotlin.backend.common.push
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.containsNull
|
import org.jetbrains.kotlin.backend.konan.ir.containsNull
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
|
|||||||
-1
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.backend.common.*
|
|||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.file
|
|
||||||
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.backend.common.lower.CoroutineIntrinsicLambdaOrigin
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.resolveFakeOverride
|
import org.jetbrains.kotlin.backend.konan.descriptors.resolveFakeOverride
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.backend.konan.getInlinedClass
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.allOverriddenFunctions
|
import org.jetbrains.kotlin.backend.konan.descriptors.allOverriddenFunctions
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.objcexport.namePrefix
|
import org.jetbrains.kotlin.backend.konan.objcexport.namePrefix
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.IntrinsicType
|
import org.jetbrains.kotlin.backend.konan.llvm.IntrinsicType
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.llvmSymbolOrigin
|
import org.jetbrains.kotlin.backend.konan.llvm.llvmSymbolOrigin
|
||||||
|
|||||||
+1
-2
@@ -9,8 +9,7 @@ import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
|||||||
import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext
|
import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext
|
||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithStarProjections
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithoutArguments
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithoutArguments
|
|
||||||
import org.jetbrains.kotlin.backend.konan.reportCompilationError
|
import org.jetbrains.kotlin.backend.konan.reportCompilationError
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.backend.common.lower.*
|
|||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWith
|
import org.jetbrains.kotlin.backend.konan.ir.typeWith
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
|||||||
+3
-7
@@ -8,16 +8,14 @@ package org.jetbrains.kotlin.backend.konan.lower
|
|||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.lower.SymbolWithIrBuilder
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.common.reportWarning
|
import org.jetbrains.kotlin.backend.common.reportWarning
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.KonanBackendContext
|
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.fqNameSafe
|
import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithStarProjections
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithStarProjections
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithoutArguments
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithoutArguments
|
||||||
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
import org.jetbrains.kotlin.backend.konan.SYNTHETIC_OFFSET
|
||||||
import org.jetbrains.kotlin.backend.konan.reportCompilationError
|
import org.jetbrains.kotlin.backend.konan.reportCompilationError
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
@@ -39,9 +37,7 @@ import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
|||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
||||||
|
|
||||||
internal class TestProcessor (val context: Context) {
|
internal class TestProcessor (val context: Context) {
|
||||||
|
|||||||
+2
-2
@@ -11,8 +11,8 @@ import org.jetbrains.kotlin.backend.common.lower.at
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.common.lower.irBlock
|
import org.jetbrains.kotlin.backend.common.lower.irBlock
|
||||||
import org.jetbrains.kotlin.ir.util.isSimpleTypeWithQuestionMark
|
import org.jetbrains.kotlin.ir.util.isSimpleTypeWithQuestionMark
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.containsNull
|
import org.jetbrains.kotlin.backend.konan.ir.containsNull
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isSubtypeOf
|
import org.jetbrains.kotlin.backend.konan.ir.isSubtypeOf
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.lower.loops
|
package org.jetbrains.kotlin.backend.konan.lower.loops
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isSubtypeOf
|
import org.jetbrains.kotlin.backend.konan.ir.isSubtypeOf
|
||||||
import org.jetbrains.kotlin.backend.konan.lower.matchers.IrCallMatcher
|
import org.jetbrains.kotlin.backend.konan.lower.matchers.IrCallMatcher
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrValueDeclaration
|
import org.jetbrains.kotlin.ir.declarations.IrValueDeclaration
|
||||||
|
|||||||
+2
-2
@@ -4,8 +4,8 @@ import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isSubtypeOf
|
import org.jetbrains.kotlin.backend.konan.ir.isSubtypeOf
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithStarProjections
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithStarProjections
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.builders.irCall
|
import org.jetbrains.kotlin.ir.builders.irCall
|
||||||
import org.jetbrains.kotlin.ir.builders.irGet
|
import org.jetbrains.kotlin.ir.builders.irGet
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.lower.matchers
|
package org.jetbrains.kotlin.backend.konan.lower.matchers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.fqNameSafe
|
import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.backend.konan.*
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.allOverriddenFunctions
|
import org.jetbrains.kotlin.backend.konan.descriptors.allOverriddenFunctions
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.target
|
import org.jetbrains.kotlin.backend.konan.descriptors.target
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
|||||||
+2
-3
@@ -9,13 +9,12 @@ import org.jetbrains.kotlin.backend.konan.*
|
|||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
import org.jetbrains.kotlin.backend.konan.descriptors.isAbstract
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.target
|
import org.jetbrains.kotlin.backend.konan.descriptors.target
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.isExported
|
import org.jetbrains.kotlin.backend.konan.llvm.isExported
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.symbolName
|
import org.jetbrains.kotlin.backend.konan.llvm.symbolName
|
||||||
import org.jetbrains.kotlin.backend.konan.lower.bridgeTarget
|
import org.jetbrains.kotlin.backend.konan.lower.bridgeTarget
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
@@ -495,7 +494,7 @@ internal object DataFlowIR {
|
|||||||
if (irClass.module.name == Name.special("<forward declarations>") || irClass.isObjCClass())
|
if (irClass.module.name == Name.special("<forward declarations>") || irClass.isObjCClass())
|
||||||
return Type.Virtual
|
return Type.Virtual
|
||||||
|
|
||||||
if (eraseLocalObjects && irClass.isAnonymousObject && irClass.isLocal)
|
if (eraseLocalObjects && irClass.isAnonymousObject)
|
||||||
return mapClassReferenceType(irClass.getSuperClassNotAny() ?: context.irBuiltIns.anyClass.owner)
|
return mapClassReferenceType(irClass.getSuperClassNotAny() ?: context.irBuiltIns.anyClass.owner)
|
||||||
|
|
||||||
val isFinal = irClass.isFinal()
|
val isFinal = irClass.isFinal()
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.backend.konan.descriptors.isInterface
|
|||||||
import org.jetbrains.kotlin.backend.konan.ir.IrPrivateClassReferenceImpl
|
import org.jetbrains.kotlin.backend.konan.ir.IrPrivateClassReferenceImpl
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.IrPrivateFunctionCall
|
import org.jetbrains.kotlin.backend.konan.ir.IrPrivateFunctionCall
|
||||||
import org.jetbrains.kotlin.backend.konan.ir.IrPrivateFunctionCallImpl
|
import org.jetbrains.kotlin.backend.konan.ir.IrPrivateFunctionCallImpl
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.getErasedTypeClass
|
import org.jetbrains.kotlin.backend.konan.ir.getErasedTypeClass
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
|
|||||||
+3
-4
@@ -1,9 +1,8 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.serialization
|
package org.jetbrains.kotlin.backend.konan.serialization
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isAccessor
|
import org.jetbrains.kotlin.backend.konan.ir.isAccessor
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isGetter
|
import org.jetbrains.kotlin.backend.konan.ir.isGetter
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.isSetter
|
import org.jetbrains.kotlin.backend.konan.ir.isSetter
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.name
|
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.isExported
|
import org.jetbrains.kotlin.backend.konan.llvm.isExported
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan.serialization
|
package org.jetbrains.kotlin.backend.konan.serialization
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.fqNameSafe
|
import org.jetbrains.kotlin.backend.konan.ir.fqNameSafe
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.name
|
import org.jetbrains.kotlin.backend.konan.ir.name
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.extensionReceiverNamePart
|
import org.jetbrains.kotlin.backend.konan.llvm.extensionReceiverNamePart
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
import org.jetbrains.kotlin.backend.konan.llvm.functionName
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.symbolName
|
import org.jetbrains.kotlin.backend.konan.llvm.symbolName
|
||||||
|
|||||||
+1
-2
@@ -8,8 +8,7 @@ package org.jetbrains.kotlin.ir.util
|
|||||||
import org.jetbrains.kotlin.backend.common.pop
|
import org.jetbrains.kotlin.backend.common.pop
|
||||||
import org.jetbrains.kotlin.backend.common.push
|
import org.jetbrains.kotlin.backend.common.push
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWith
|
import org.jetbrains.kotlin.backend.konan.ir.typeWithStarProjections
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWithStarProjections
|
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
|
|||||||
+2
-6
@@ -9,13 +9,13 @@ import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
|||||||
import org.jetbrains.kotlin.backend.common.descriptors.*
|
import org.jetbrains.kotlin.backend.common.descriptors.*
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedPropertyDescriptor
|
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.substitute
|
import org.jetbrains.kotlin.backend.common.descriptors.substitute
|
||||||
import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom
|
import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom
|
||||||
import org.jetbrains.kotlin.backend.konan.KonanBackendContext
|
import org.jetbrains.kotlin.backend.konan.KonanBackendContext
|
||||||
import org.jetbrains.kotlin.backend.konan.KonanCompilationException
|
import org.jetbrains.kotlin.backend.konan.KonanCompilationException
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
|
||||||
import org.jetbrains.kotlin.backend.konan.irasdescriptors.*
|
import org.jetbrains.kotlin.backend.konan.ir.allParameters
|
||||||
|
import org.jetbrains.kotlin.backend.konan.ir.containsNull
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.ir.expressions.impl.*
|
|||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
||||||
@@ -45,9 +44,6 @@ import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
|||||||
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
|
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
|
||||||
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
|
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.calls.checkers.isRestrictsSuspensionReceiver
|
import org.jetbrains.kotlin.resolve.calls.checkers.isRestrictsSuspensionReceiver
|
||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
|
|||||||
Reference in New Issue
Block a user