Evgeniy.Zhelenskiy
bf5fa61ffb
[IR] Unify MFVC bridge redirection, fix related bugs, support MFVC overriding functions with default parameters
...
#KT-1179
2023-05-04 16:44:18 +00:00
Pavel Kunyavskiy
af318fdfb0
[K/N] Fix default arguments in suspend functions
...
AddContinuationToFunctionsLowering was rewritten in way the order
of this lowering and defaults lowering doesn't matter.
^KT-58214
2023-05-03 12:14:53 +00:00
Dmitriy Novozhilov
e9c8be3b64
[FIR] Don't generated fake-overrides for private declarations of actualized super classes
...
^KT-58252 Fixed
2023-05-02 10:24:53 +00:00
Pavel Kunyavskiy
f55fd481e9
[K/N] Refactor default argument lowering to avoid boxing
...
Current inline classes API is not compatible between different backends.
So implementing common function required for this optimization
was not possible in Native backend.
So, common default arguments lowering was refactored to make bigger
piece of code replaceable in backends.
^KT-57860
2023-05-01 13:04:21 +00:00
Igor Chevdar
4e661a6337
[IR] Liveness analysis
...
Compute actually used variables for specified IR nodes
2023-04-24 09:57:06 +03:00
Igor Chevdar
6a79163205
[K/N][IR] Extracted a common util function
2023-04-24 09:36:43 +03:00
Ivan Kochurkin
b72dcf8b37
[K2, MPP] Fix actualization of nullability-based overloads
...
^KT-58043 Fixed
2023-04-20 17:22:45 +00:00
Ivan Kylchik
37c3dff0c5
[K2] Add new class to keep track of evaluated const by IrInterpreter
2023-04-19 13:52:42 +00:00
Artem Kobzar
33c5068b79
[K/JS] Rework IR deserialization and lowering phases to consume less memory
2023-04-19 13:10:19 +00:00
Dmitriy Dolovov
87125d0703
[PL] Fix: Don't run partial linkage on early stages when no external dependencies have been loaded yet
2023-04-18 09:22:54 +00:00
Ivan Kochurkin
beaeb405d2
[K2, MPP] Build expect-actual map for type parameters from functions
...
^KT-57181 Fixed
2023-04-17 19:55:35 +00:00
Ivan Kochurkin
3a60b30dae
Minor: IrActualizationResult -> IrActualizedResult
2023-04-17 19:55:35 +00:00
Ivan Kochurkin
b7bb9c317f
[K2, MPP] Introduce FunctionDefaultParametersActualizerVisitor and use it in FunctionDefaultParametersActualizer
...
^KT-57263 Fixed
2023-04-17 19:55:34 +00:00
Ivan Kochurkin
1073797ed3
[IR] Extract ActualizerSymbolRemapper and ActualizerVisitor from ExpectActualLinker
...
It will provide the possibility to use them not only locally
Clarify code of IrActualizer pipeline
2023-04-17 19:55:34 +00:00
Evgeniy.Zhelenskiy
aceab2ac1f
[IR] Fix KT-57973
...
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com >
#KT-57973
2023-04-17 12:33:10 +00:00
Artem Kobzar
c695da1bed
[K/JS] Allow declare inline functions inside external declarations with a million suppresses ^KT-48154 Fixed
2023-04-13 08:53:57 +00:00
Ivan Kochurkin
9a09565cf6
[K2, MPP] Handle overloaded properties
...
^KT-57532 Fixed
2023-04-12 20:43:57 +00:00
Igor Yakovlev
edf4e80165
[Wasm] Fix for ReturnableBlockLowering invalid ir type for converted inlined blocks
2023-04-12 13:24:02 +00:00
Kirill Rakhman
6e7b078873
[IR] Refactor IrActualizerUtils to use buildString
2023-04-05 08:44:57 +00:00
Kirill Rakhman
4dfef6ba6f
[IR] Fix arguments of backend error messages
...
#KT-57662 Fixed
2023-04-05 08:44:56 +00:00
Igor Yakovlev
44190937b0
[Wasm] Fix generic call return type for functions with default parameters
2023-04-04 18:39:18 +00:00
Dmitriy Dolovov
1fef48bb60
[PL] Log partial linkage messages at different severity
...
As specified in -Xpartial-linkage-loglevel CLI argument.
2023-03-31 18:29:44 +00:00
Mikhail Glukhikh
8b247982e3
Fix text/description of FirIncompatiblePluginAPI
2023-03-27 14:00:52 +00:00
Ivan Kylchik
7cf9dda8dc
[JS] Support evaluation of const intrinsics for K2
...
#KT-56023 Fixed
#KT-51582 Fixed
2023-03-24 15:55:04 +00:00
Ivan Kylchik
5d5582d201
Move ignoreConstOptimizationErrors compiler key from jvm to common
...
#KT-56023
2023-03-24 15:55:03 +00:00
Ivan Kylchik
b58de2f8da
Move ConstEvaluationLowering into folder for common lowerings
...
#KT-56023
2023-03-24 15:55:03 +00:00
Ivan Kochurkin
ee73e4774b
[K2, MPP] Remove redundant expect declarations from klib metadata
...
^KT-57250 Fixed
Introduce flat Fir2IrActualizedResult
It contains output from Fir2Ir and IrActualizer
2023-03-24 14:48:26 +00:00
Dmitriy Dolovov
2a4d880037
[PL] Deep rework of the partial linkage
...
1. Leaving no unbound symbols in the IR tree, KT-54491:
- All unbound symbols are bound to synthetic stub declarations
- Improved detection of the root cause for every partially linked classifier
- Improved error messages
2. Visibility valiation, KT-54469
3. Always check deserialized symbols:
If the deserialized symbol mismatches the symbol kind at the call site in the deserializer then generate and reference another symbol with the same signature. In case PL is off, just throw IrSymbolTypeMismatchException.
4. Handle class inheritance violation:
- Detect illegal inheritance (ex: inheriting from a final class)
- Detect invalid constructor delegation (ex: delegating to another class than the direct superclass)
- Simplification: Reduce the number of PartialLinkageCase subclasses
- Reworked error message generation to have shorter and clearer messages
5. Handle class transformations and all known side-effects, examples:
- nested <-> inner
- class <-> enum/object
- adding/removing subclasses of sealed class
- adding/removing enum entries
6. Check direct instantiation of abstract class.
Such instantiation could be possible if a class was non-abstract in the previous version of a library.
7. Handle unlinked annotations on declarations.
Such annotations are removed from the IR. The appropriate compiler error message is produced for every individual case.
8. Handle value argument count mismatch at call sites
9. Handle calling suspend function from non-suspend context.
This could happen if a suspen function was non-suspend in the previous version of a library.
10. Handle overriding inline callables.
Only the leaf final callable can be marked with `inline`.
11. Detect illegal non-local returns from noinline/crossinline lambdas.
2023-03-23 10:24:27 +00:00
Ivan Kochurkin
cd07eba25c
[K2, MPP] Fix reporting of MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED
2023-03-22 01:28:19 +00:00
Ivan Kochurkin
60edf1def3
[K2, MPP] Support actualization of enums and annotations that have primary constructor with arguments
...
^KT-57241 Fixed
2023-03-22 01:28:18 +00:00
Ivan Kochurkin
44807b7bd4
[K2, MPP] Support actualization of actual function with dynamic arguments
...
^KT-57210 Fixed
2023-03-22 01:28:18 +00:00
Ivan Kochurkin
ce7af9ff2b
[K2, MPP] Support arguments with expect types in actual functions
2023-03-22 01:28:18 +00:00
Ivan Kochurkin
ec34b9fa7b
[K2, MPP] Restore ir functions actualization by argument types instead of full signatures
...
Refactor IrActualizer
2023-03-22 01:28:17 +00:00
Ivan Kochurkin
d99b4c78d2
[K2, MPP] Correct actualization of nested objects
...
^KT-57182 Fixed
2023-03-22 01:28:17 +00:00
Ilya Chernikov
59b88f33b2
[K2, MPP] implement IR errors reporting and test infrastructure
...
Fix test data
^KT-56344 Fixed
2023-03-22 01:28:16 +00:00
Ivan Kylchik
7cf70e7b15
[JVM IR] Fix performance issue caused by support of IR Inliner
2023-03-20 23:36:33 +00:00
Artem Kobzar
948c511284
[K/JS] Rework ES modules part with squashed JsImport and right renaming strategy inside import/export statements
2023-03-16 10:28:39 +00:00
Pavel Kunyavskiy
62fb3df7f0
[K/N] Disable scope initialization on constant access
...
^KT-57098
2023-03-15 09:03:19 +00:00
Ivan Kylchik
f8deae4570
Reuse implicitCastIfNeededTo function in FunctionInlining
2023-03-14 20:47:46 +00:00
Ivan Kylchik
5b3d6583af
Change isLambdaCall logic in FunctionInlining
...
We are allowing to inline `KFunction` invoke call. This is needed for
JVM paired with K2 compiler. Probably this can be reverted after
#KT-57249 fix.
2023-03-14 20:47:45 +00:00
Ivan Kylchik
d2e92fd70d
Add additional test cases and notes for KT44429
2023-03-14 20:47:45 +00:00
Ivan Kylchik
4fc95624a0
Rename attributeOwnerIdBeforeInline to originalBeforeInline
2023-03-14 20:47:44 +00:00
Ivan Kylchik
d148231bce
Rewrite copy method in FunctionInlining
...
This way we can avoid unnecessary cast
2023-03-14 20:47:44 +00:00
Ivan Kylchik
ab2c3572ab
Drop all usages of inlineFunctionSymbol in IrReturnableBlock
2023-03-14 20:47:41 +00:00
Ivan Kylchik
095c7c5930
Remove all secondary constructors from FunctionInlining
2023-03-14 20:47:41 +00:00
Ivan Kylchik
b31114fa52
Extract new smap creation logic into separate class LineNumberMapper
2023-03-14 20:47:39 +00:00
Ivan Kylchik
32a7633c06
Support smap creation for functions inlined with IR inliner
2023-03-14 20:47:38 +00:00
Ivan Kylchik
6e690f709e
Avoid irGet with Unit value if it is last it IrReturnableBlock
...
This is needed to pass `MethodVerifier` check on JVM backend
2023-03-14 20:47:38 +00:00
Ivan Kylchik
707c5f03b8
Add new "invent name" phase to generate names for regenerated classes
2023-03-14 20:47:37 +00:00
Ivan Kylchik
e159f7f682
Move some file level lowerings to module level
...
This is needed to fix "kt42408" test with enabled
IR inliner.
2023-03-14 20:47:37 +00:00