-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor SirPhases to remove dependency on the Kotlin compiler.
- Loading branch information
1 parent
6e444f3
commit 102b58b
Showing
143 changed files
with
2,612 additions
and
1,978 deletions.
There are no files selected for viewing
Submodule acceptance-tests
updated
from cbb18f to 84a86f
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 3 additions & 9 deletions
12
...on/kotlin/co/touchlab/skie/compilerinject/compilerplugin/SkieCompilerConfigurationKeys.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 5 additions & 2 deletions
7
...r/kotlin-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/ClassExportPhaseContext.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,17 @@ | ||
package co.touchlab.skie.context | ||
|
||
import co.touchlab.skie.kir.descriptor.MutableDescriptorProvider | ||
import co.touchlab.skie.kir.irbuilder.impl.DeclarationBuilderImpl | ||
import co.touchlab.skie.phases.ClassExportPhase | ||
import co.touchlab.skie.phases.SkiePhase | ||
import co.touchlab.skie.phases.ForegroundPhase | ||
|
||
class ClassExportPhaseContext( | ||
mainSkieContext: MainSkieContext, | ||
) : ClassExportPhase.Context, SkiePhase.Context by mainSkieContext { | ||
) : ClassExportPhase.Context, ForegroundPhase.Context by mainSkieContext { | ||
|
||
override val context: ClassExportPhaseContext = this | ||
|
||
override val descriptorProvider: MutableDescriptorProvider = mainSkieContext.descriptorProvider | ||
|
||
override val declarationBuilder: DeclarationBuilderImpl = mainSkieContext.declarationBuilder | ||
} |
50 changes: 50 additions & 0 deletions
50
...plugin/src/kgp_common/kotlin/co/touchlab/skie/context/DescriptorConversionPhaseContext.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
package co.touchlab.skie.context | ||
|
||
import co.touchlab.skie.kir.KirProvider | ||
import co.touchlab.skie.kir.builtin.KirBuiltins | ||
import co.touchlab.skie.kir.descriptor.DescriptorKirProvider | ||
import co.touchlab.skie.kir.descriptor.ObjCExportedInterfaceProvider | ||
import co.touchlab.skie.kir.type.translation.KirCustomTypeMappers | ||
import co.touchlab.skie.kir.type.translation.KirDeclarationTypeTranslator | ||
import co.touchlab.skie.kir.type.translation.KirTypeTranslator | ||
import co.touchlab.skie.phases.DescriptorConversionPhase | ||
import co.touchlab.skie.phases.ForegroundPhase | ||
import org.jetbrains.kotlin.backend.konan.objcexport.ObjCExportNamer | ||
|
||
class DescriptorConversionPhaseContext( | ||
mainSkieContext: MainSkieContext, | ||
override val objCExportedInterfaceProvider: ObjCExportedInterfaceProvider, | ||
) : DescriptorConversionPhase.Context, ForegroundPhase.Context by mainSkieContext { | ||
|
||
override val context: DescriptorConversionPhase.Context = this | ||
|
||
override val kirProvider: KirProvider = KirProvider(lazy { descriptorKirProvider }, rootConfiguration).also { | ||
mainSkieContext.kirProvider = it | ||
} | ||
|
||
override val descriptorKirProvider: DescriptorKirProvider = DescriptorKirProvider( | ||
mainModuleDescriptor = mainSkieContext.mainModuleDescriptor, | ||
kirProvider = kirProvider, | ||
kotlinBuiltIns = kotlinBuiltins, | ||
extraDescriptorBuiltins = extraDescriptorBuiltins, | ||
namer = namer, | ||
descriptorConfigurationProvider = descriptorConfigurationProvider, | ||
rootConfiguration = rootConfiguration, | ||
).also { | ||
mainSkieContext.descriptorKirProvider = it | ||
} | ||
|
||
override val kirBuiltins: KirBuiltins = descriptorKirProvider.kirBuiltins | ||
|
||
private val kirCustomTypeMappers = KirCustomTypeMappers(kirBuiltins, lazy { kirTypeTranslator }) | ||
|
||
override val kirTypeTranslator: KirTypeTranslator = KirTypeTranslator(descriptorKirProvider, kirCustomTypeMappers) | ||
|
||
override val kirDeclarationTypeTranslator: KirDeclarationTypeTranslator = KirDeclarationTypeTranslator( | ||
kirTypeTranslator = kirTypeTranslator, | ||
kirBuiltins = kirBuiltins, | ||
) | ||
|
||
override val namer: ObjCExportNamer | ||
get() = objCExportedInterfaceProvider.namer | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 5 additions & 2 deletions
7
...compiler/kotlin-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/LinkPhaseContext.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.