70f195598e
In IR interpreter we have "preprocessors". Preprocessor is a transformer that changes IR expressions in a way that we can interpret them at least partially. We have two places where interpretation is happening: 1. Right after fir2ir where we evaluate only strictly necessary expression for `const val` and annotations. 2. In lowering for every backend where we are doing some constant folding. Earlier, to avoid double work, we didn't launch preprocessors in backend if we were using K2. But this approach breaks compilation for MPP projects where one module is compiled with K1 into klib and the overall project is compiled with K2. On the backend side, we are mistakenly assuming that preprocessors were launched, but they were not. The solution is to run preprocessors only on the backend side. If we think about it, interpretation on fir2ir doesn't require any preprocessing because we are working only with expressions that are correct and must be fully evaluated. #KT-62126 Fixed