In order to properly analyze top-level property initialization, a
control-flow graph must be created for FirFiles. This change adds the
foundation for the file CFG and updates body resolve to create the CFG.
Checking the CFG for proper initialization is separated into a following
change to ease code review.
KT-56683
After the KT-61568 has been fixed, `isInBestCandidates`
correctly works in more cases, and can be more
reliably used in `KtFirReferenceShortener`
^KTIJ-26808 Fixed
^KTIJ-26840 Fixed
- Move std_alloc, opt_alloc and custom_alloc into alloc/std,
alloc/mimalloc and alloc/custom to mirror convention of gc,
gcScheduler modules.
- Add alloc/common with common allocator API
- Add alloc/legacy with common implementation details of alloc/std and
alloc/mimalloc. alloc/custom does not depend on alloc/legacy.
- Removes experimental_memory_manager_custom as it's now unused
- Additionally, renames experimental_memory_manager module into mm
Create a nested hash map with names as keys that are easier to compute
than the whole `Key`. It helps to substantially reduce the number of
computed FqName instances, since intrinsics are queried on generation of
each call.
Also put intrinsic query a bit lower in SyntheticAccessorLowering, after
operations which are easier to compute.
This commit is needed for adding targetPlatform serialization for Kotlin Facet Settings Workspace Model on IJ side
Merge-request: KT-MR-11953
Merged-by: Aleksei Cherepanov <aleksei.cherepanov@jetbrains.com>
I don't really know which exact commit fixed this test, but there was
a problem with return types of delegated members. Before my changes
delegated `override fun foo(x: Int)` in `actual class E` had error
return type and now it has correct type `Int`
Group methods of Fir2IrClassifierStorage and Fir2IrClassifiersGenerator
by types of declarations they are working with.
This commit contains nothing but just moving code in borders of the same file
This commit just moves methods which create IR callable declarations
from Fir2IrClassifierStorage to newly created Fir2IrClassifiersGenerator
Code in generators contains some errors (mostly because it refers to the
logic of caching created declaration), and those errors will be fixed
in the following commits
Group methods of Fir2IrDeclarationStorage and Fir2IrCallableDeclarationsGenerator
by types of declarations they are working with.
This commit contains nothing but just moving code in borders of the same file
Restore old behavior of forced creation of fake-overrides
This behavior semantically is not fully correct, because it ignores existed
f/o in storages and overwrites them, but replacing `createIr...` with
`getOrCreate...` leads to problems with f/o in actual classes
^KT-61513