[Native] Support evaluation of const intrinsics for K2
#KT-56023 #KT-55469 Fixed
This commit is contained in:
@@ -417,9 +417,14 @@ class Fir2IrConverter(
|
||||
|
||||
companion object {
|
||||
private fun evaluateConstants(irModuleFragment: IrModuleFragment) {
|
||||
val firModuleDescriptor = irModuleFragment.descriptor as? FirModuleDescriptor
|
||||
val languageVersionSettings = firModuleDescriptor?.session?.languageVersionSettings
|
||||
val intrinsicConstEvaluation = languageVersionSettings?.supportsFeature(LanguageFeature.IntrinsicConstEvaluation) == true
|
||||
|
||||
val interpreter = IrInterpreter(irModuleFragment.irBuiltins)
|
||||
val mode = if (intrinsicConstEvaluation) EvaluationMode.ONLY_INTRINSIC_CONST else EvaluationMode.ONLY_BUILTINS
|
||||
irModuleFragment.files.forEach {
|
||||
it.transformChildren(IrConstTransformer(interpreter, it, mode = EvaluationMode.ONLY_BUILTINS), null)
|
||||
it.transformChildren(IrConstTransformer(interpreter, it, mode = mode), null)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user