Move some file level lowerings to module level
This is needed to fix "kt42408" test with enabled IR inliner.
This commit is contained in:
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.backend.common.lower
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.BackendContext
|
import org.jetbrains.kotlin.backend.common.BackendContext
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrProperty
|
import org.jetbrains.kotlin.ir.declarations.IrProperty
|
||||||
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
|||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
val kCallableNamePropertyPhase = makeIrFilePhase(
|
val kCallableNamePropertyPhase = makeIrModulePhase(
|
||||||
::KCallableNamePropertyLowering,
|
::KCallableNamePropertyLowering,
|
||||||
name = "KCallableNameProperty",
|
name = "KCallableNameProperty",
|
||||||
description = "Replace name references for callables with constants"
|
description = "Replace name references for callables with constants"
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ private val validateIrAfterLowering = makeCustomPhase(
|
|||||||
)
|
)
|
||||||
|
|
||||||
// TODO make all lambda-related stuff work with IrFunctionExpression and drop this phase
|
// TODO make all lambda-related stuff work with IrFunctionExpression and drop this phase
|
||||||
private val provisionalFunctionExpressionPhase = makeIrFilePhase<CommonBackendContext>(
|
private val provisionalFunctionExpressionPhase = makeIrModulePhase<CommonBackendContext>(
|
||||||
{ ProvisionalFunctionExpressionLowering() },
|
{ ProvisionalFunctionExpressionLowering() },
|
||||||
name = "FunctionExpression",
|
name = "FunctionExpression",
|
||||||
description = "Transform IrFunctionExpression to a local function reference"
|
description = "Transform IrFunctionExpression to a local function reference"
|
||||||
@@ -308,24 +308,6 @@ internal val functionInliningPhase = makeIrModulePhase<JvmBackendContext>(
|
|||||||
)
|
)
|
||||||
|
|
||||||
private val jvmFilePhases = listOf(
|
private val jvmFilePhases = listOf(
|
||||||
typeAliasAnnotationMethodsPhase,
|
|
||||||
provisionalFunctionExpressionPhase,
|
|
||||||
|
|
||||||
jvmOverloadsAnnotationPhase,
|
|
||||||
mainMethodGenerationPhase,
|
|
||||||
|
|
||||||
inventNamesForLocalClassesPhase,
|
|
||||||
kCallableNamePropertyPhase,
|
|
||||||
annotationPhase,
|
|
||||||
annotationImplementationPhase,
|
|
||||||
polymorphicSignaturePhase,
|
|
||||||
varargPhase,
|
|
||||||
|
|
||||||
jvmLateinitLowering,
|
|
||||||
|
|
||||||
inlineCallableReferenceToLambdaPhase,
|
|
||||||
directInvokeLowering,
|
|
||||||
functionReferencePhase,
|
|
||||||
suspendLambdaPhase,
|
suspendLambdaPhase,
|
||||||
propertyReferenceDelegationPhase,
|
propertyReferenceDelegationPhase,
|
||||||
singletonOrConstantDelegationPhase,
|
singletonOrConstantDelegationPhase,
|
||||||
@@ -360,6 +342,7 @@ private val jvmFilePhases = listOf(
|
|||||||
// makePatchParentsPhase(),
|
// makePatchParentsPhase(),
|
||||||
|
|
||||||
removeDuplicatedInlinedLocalClasses,
|
removeDuplicatedInlinedLocalClasses,
|
||||||
|
|
||||||
jvmLocalClassExtractionPhase,
|
jvmLocalClassExtractionPhase,
|
||||||
staticCallableReferencePhase,
|
staticCallableReferencePhase,
|
||||||
|
|
||||||
@@ -448,6 +431,28 @@ private fun buildJvmLoweringPhases(
|
|||||||
createSeparateCallForInlinedLambdas then
|
createSeparateCallForInlinedLambdas then
|
||||||
markNecessaryInlinedClassesAsRegenerated then
|
markNecessaryInlinedClassesAsRegenerated then
|
||||||
|
|
||||||
|
// Note: following phases can be moved to file level, but are located here because of `functionInliningPhase`
|
||||||
|
// This is needed, for example, for `kt42408` test.
|
||||||
|
// Function expression there must be transformed into ir class before moving to file level phases.
|
||||||
|
typeAliasAnnotationMethodsPhase then
|
||||||
|
provisionalFunctionExpressionPhase then
|
||||||
|
|
||||||
|
jvmOverloadsAnnotationPhase then
|
||||||
|
mainMethodGenerationPhase then
|
||||||
|
|
||||||
|
kCallableNamePropertyPhase then
|
||||||
|
annotationPhase then
|
||||||
|
annotationImplementationPhase then
|
||||||
|
polymorphicSignaturePhase then
|
||||||
|
varargPhase then
|
||||||
|
|
||||||
|
jvmLateinitLowering then
|
||||||
|
inventNamesForLocalClassesPhase then
|
||||||
|
|
||||||
|
inlineCallableReferenceToLambdaPhase then
|
||||||
|
directInvokeLowering then
|
||||||
|
functionReferencePhase then
|
||||||
|
|
||||||
buildLoweringsPhase(phases) then
|
buildLoweringsPhase(phases) then
|
||||||
generateMultifileFacadesPhase then
|
generateMultifileFacadesPhase then
|
||||||
resolveInlineCallsPhase then
|
resolveInlineCallsPhase then
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.jvm.lower
|
package org.jetbrains.kotlin.backend.jvm.lower
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.ir.util.isAnnotationClass
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
|
|
||||||
internal val annotationPhase = makeIrFilePhase<JvmBackendContext>(
|
internal val annotationPhase = makeIrModulePhase<JvmBackendContext>(
|
||||||
{ AnnotationLowering() },
|
{ AnnotationLowering() },
|
||||||
name = "Annotation",
|
name = "Annotation",
|
||||||
description = "Remove constructors of annotation classes"
|
description = "Remove constructors of annotation classes"
|
||||||
|
|||||||
+2
-2
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.backend.common.ir.asInlinableFunctionReference
|
|||||||
import org.jetbrains.kotlin.backend.common.ir.inline
|
import org.jetbrains.kotlin.backend.common.ir.inline
|
||||||
import org.jetbrains.kotlin.backend.common.lower.at
|
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.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.ir.builders.irBlock
|
import org.jetbrains.kotlin.ir.builders.irBlock
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
||||||
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.ir.util.explicitParameters
|
|||||||
import org.jetbrains.kotlin.ir.util.render
|
import org.jetbrains.kotlin.ir.util.render
|
||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
|
|
||||||
internal val directInvokeLowering = makeIrFilePhase(
|
internal val directInvokeLowering = makeIrModulePhase(
|
||||||
::DirectInvokeLowering,
|
::DirectInvokeLowering,
|
||||||
name = "DirectInvokes",
|
name = "DirectInvokes",
|
||||||
description = "Inline directly invoked lambdas and replace invoked function references with calls"
|
description = "Inline directly invoked lambdas and replace invoked function references with calls"
|
||||||
|
|||||||
+2
-1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.ir.moveBodyTo
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.SamEqualsHashCodeMethodsGenerator
|
import org.jetbrains.kotlin.backend.common.lower.SamEqualsHashCodeMethodsGenerator
|
||||||
import org.jetbrains.kotlin.backend.common.lower.VariableRemapper
|
import org.jetbrains.kotlin.backend.common.lower.VariableRemapper
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredStatementOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredStatementOrigin
|
||||||
@@ -39,7 +40,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.name.SpecialNames
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_SERIALIZABLE_LAMBDA_ANNOTATION_FQ_NAME
|
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_SERIALIZABLE_LAMBDA_ANNOTATION_FQ_NAME
|
||||||
|
|
||||||
internal val functionReferencePhase = makeIrFilePhase(
|
internal val functionReferencePhase = makeIrModulePhase(
|
||||||
::FunctionReferenceLowering,
|
::FunctionReferenceLowering,
|
||||||
name = "FunctionReference",
|
name = "FunctionReference",
|
||||||
description = "Construct instances of anonymous KFunction subclasses for function references"
|
description = "Construct instances of anonymous KFunction subclasses for function references"
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
|||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.ir.addExtensionReceiver
|
import org.jetbrains.kotlin.backend.common.ir.addExtensionReceiver
|
||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredStatementOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredStatementOrigin
|
||||||
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.ir.util.*
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal val inlineCallableReferenceToLambdaPhase = makeIrFilePhase(
|
internal val inlineCallableReferenceToLambdaPhase = makeIrModulePhase(
|
||||||
::InlineCallableReferenceToLambdaPhase,
|
::InlineCallableReferenceToLambdaPhase,
|
||||||
name = "InlineCallableReferenceToLambdaPhase",
|
name = "InlineCallableReferenceToLambdaPhase",
|
||||||
description = "Transform callable reference to inline lambdas, mark inline lambdas for later passes"
|
description = "Transform callable reference to inline lambdas, mark inline lambdas for later passes"
|
||||||
|
|||||||
+2
-1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
|||||||
import org.jetbrains.kotlin.backend.common.ir.BuiltinSymbolsBase
|
import org.jetbrains.kotlin.backend.common.ir.BuiltinSymbolsBase
|
||||||
import org.jetbrains.kotlin.backend.common.lower.*
|
import org.jetbrains.kotlin.backend.common.lower.*
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder
|
import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.isInPublicInlineScope
|
import org.jetbrains.kotlin.backend.jvm.ir.isInPublicInlineScope
|
||||||
@@ -31,7 +32,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
|||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
|
|
||||||
internal val annotationImplementationPhase = makeIrFilePhase<JvmBackendContext>(
|
internal val annotationImplementationPhase = makeIrModulePhase<JvmBackendContext>(
|
||||||
{ ctxt -> AnnotationImplementationLowering { JvmAnnotationImplementationTransformer(ctxt, it) } },
|
{ ctxt -> AnnotationImplementationLowering { JvmAnnotationImplementationTransformer(ctxt, it) } },
|
||||||
name = "AnnotationImplementation",
|
name = "AnnotationImplementation",
|
||||||
description = "Create synthetic annotations implementations and use them in annotations constructor calls"
|
description = "Create synthetic annotations implementations and use them in annotations constructor calls"
|
||||||
|
|||||||
+6
-3
@@ -6,15 +6,18 @@
|
|||||||
package org.jetbrains.kotlin.backend.jvm.lower
|
package org.jetbrains.kotlin.backend.jvm.lower
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.lower.InventNamesForLocalClasses
|
import org.jetbrains.kotlin.backend.common.lower.InventNamesForLocalClasses
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.util.render
|
import org.jetbrains.kotlin.ir.util.render
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||||
import org.jetbrains.org.objectweb.asm.Type
|
import org.jetbrains.org.objectweb.asm.Type
|
||||||
|
|
||||||
val inventNamesForLocalClassesPhase = makeIrFilePhase(
|
val inventNamesForLocalClassesPhase = makeIrModulePhase(
|
||||||
{ context -> JvmInventNamesForLocalClasses(context) },
|
{ context -> JvmInventNamesForLocalClasses(context) },
|
||||||
name = "InventNamesForLocalClasses",
|
name = "InventNamesForLocalClasses",
|
||||||
description = "Invent names for local classes and anonymous objects",
|
description = "Invent names for local classes and anonymous objects",
|
||||||
|
|||||||
+2
-1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.ir.Symbols
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.common.lower.replaceTailExpression
|
import org.jetbrains.kotlin.backend.common.lower.replaceTailExpression
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
@@ -31,7 +32,7 @@ import org.jetbrains.kotlin.ir.util.resolveFakeOverride
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
|
|
||||||
internal val jvmLateinitLowering = makeIrFilePhase(
|
internal val jvmLateinitLowering = makeIrModulePhase(
|
||||||
::JvmLateinitLowering,
|
::JvmLateinitLowering,
|
||||||
name = "JvmLateinitLowering",
|
name = "JvmLateinitLowering",
|
||||||
description = "Lower lateinit properties and variables"
|
description = "Lower lateinit properties and variables"
|
||||||
|
|||||||
+2
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
@@ -20,7 +21,7 @@ import org.jetbrains.kotlin.ir.types.defaultType
|
|||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.name.JvmNames.JVM_OVERLOADS_FQ_NAME
|
import org.jetbrains.kotlin.name.JvmNames.JVM_OVERLOADS_FQ_NAME
|
||||||
|
|
||||||
internal val jvmOverloadsAnnotationPhase = makeIrFilePhase(
|
internal val jvmOverloadsAnnotationPhase = makeIrModulePhase(
|
||||||
::JvmOverloadsAnnotationLowering,
|
::JvmOverloadsAnnotationLowering,
|
||||||
name = "JvmOverloadsAnnotation",
|
name = "JvmOverloadsAnnotation",
|
||||||
description = "Handle JvmOverloads annotations"
|
description = "Handle JvmOverloads annotations"
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.LocalDeclarationsLowering
|
import org.jetbrains.kotlin.backend.common.lower.LocalDeclarationsLowering
|
||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.getJvmNameFromAnnotation
|
import org.jetbrains.kotlin.backend.jvm.ir.getJvmNameFromAnnotation
|
||||||
@@ -30,7 +31,7 @@ import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
internal val mainMethodGenerationPhase = makeIrFilePhase(
|
internal val mainMethodGenerationPhase = makeIrModulePhase(
|
||||||
::MainMethodGenerationLowering,
|
::MainMethodGenerationLowering,
|
||||||
name = "MainMethodGeneration",
|
name = "MainMethodGeneration",
|
||||||
description = "Generate main bridges to parameterless mains, and wrappers for suspend mains.",
|
description = "Generate main bridges to parameterless mains, and wrappers for suspend mains.",
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.jvm.lower
|
package org.jetbrains.kotlin.backend.jvm.lower
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.ir.util.hasAnnotation
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.resolve.jvm.checkers.PolymorphicSignatureCallChecker
|
import org.jetbrains.kotlin.resolve.jvm.checkers.PolymorphicSignatureCallChecker
|
||||||
|
|
||||||
internal val polymorphicSignaturePhase = makeIrFilePhase(
|
internal val polymorphicSignaturePhase = makeIrModulePhase(
|
||||||
::PolymorphicSignatureLowering,
|
::PolymorphicSignatureLowering,
|
||||||
name = "PolymorphicSignature",
|
name = "PolymorphicSignature",
|
||||||
description = "Replace polymorphic methods with fake ones according to types at the call site"
|
description = "Replace polymorphic methods with fake ones according to types at the call site"
|
||||||
|
|||||||
+2
-1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
|||||||
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
@@ -18,7 +19,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl
|
|||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal val typeAliasAnnotationMethodsPhase = makeIrFilePhase(
|
internal val typeAliasAnnotationMethodsPhase = makeIrModulePhase(
|
||||||
::TypeAliasAnnotationMethodsLowering,
|
::TypeAliasAnnotationMethodsLowering,
|
||||||
name = "TypeAliasAnnotationMethodsLowering",
|
name = "TypeAliasAnnotationMethodsLowering",
|
||||||
description = "Generate method stubs for type alias annotations"
|
description = "Generate method stubs for type alias annotations"
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
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.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.IrArrayBuilder
|
import org.jetbrains.kotlin.backend.jvm.ir.IrArrayBuilder
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder
|
import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder
|
||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.ir.types.makeNotNull
|
|||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
val varargPhase = makeIrFilePhase(
|
val varargPhase = makeIrModulePhase(
|
||||||
::VarargLowering,
|
::VarargLowering,
|
||||||
name = "VarargLowering",
|
name = "VarargLowering",
|
||||||
description = "Replace varargs with array arguments and lower arrayOf and emptyArray calls",
|
description = "Replace varargs with array arguments and lower arrayOf and emptyArray calls",
|
||||||
|
|||||||
@@ -316,7 +316,7 @@ fun IrSimpleFunction.suspendFunctionOriginal(): IrSimpleFunction =
|
|||||||
if (isSuspend &&
|
if (isSuspend &&
|
||||||
!isStaticValueClassReplacement &&
|
!isStaticValueClassReplacement &&
|
||||||
!isOrOverridesDefaultParameterStub() &&
|
!isOrOverridesDefaultParameterStub() &&
|
||||||
parentAsClass.origin != JvmLoweredDeclarationOrigin.DEFAULT_IMPLS
|
parentClassOrNull?.origin != JvmLoweredDeclarationOrigin.DEFAULT_IMPLS
|
||||||
)
|
)
|
||||||
attributeOwnerId as IrSimpleFunction
|
attributeOwnerId as IrSimpleFunction
|
||||||
else this
|
else this
|
||||||
|
|||||||
Reference in New Issue
Block a user