1555 Commits

Author SHA1 Message Date
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
Ivan Kylchik 795d4bb739 Make regenerated inlined classes public by default 2023-03-14 20:47:37 +00:00
Ivan Kylchik d9382b2b66 Properly remove duplicated inlined classes using capturedConstructors 2023-03-14 20:47:36 +00:00
Ivan Kylchik 969b0216d4 Support inlining of property reference with non-nullable field 2023-03-14 20:47:36 +00:00
Ivan Kylchik 4baf970d5b Collect classes for JVM that must be regenerated after IR inline 2023-03-14 20:47:35 +00:00
Ivan Kylchik 41b56e5f16 Add some new utils to work with IrInlinedFunctionBlock 2023-03-14 20:47:35 +00:00
Ivan Kylchik 163ed20de5 Set original type for expression inlined as arguments
This is mainly needed to fix cases like in "kt44429".
2023-03-14 20:47:34 +00:00
Ivan Kylchik ce6084302f Add FunctionInlining lowering to JvmLower 2023-03-14 20:47:34 +00:00
Ivan Kylchik ef78196cbc Replace all usages of inlineFunctionSymbol with inlineFunction 2023-03-14 20:47:34 +00:00
Ivan Kylchik 1d30a68285 Separate inlined by IR inliner arguments into two categories
First category of arguments is those that present at call site, and
second category is for those that are default.
2023-03-14 20:47:33 +00:00
Ivan Kylchik 59522a6130 Improve IR inliner to be able to inline property references 2023-03-14 20:47:33 +00:00
Ivan Kylchik a09a48492b Set names for tmp vars in FunctionInlining without special symbols
This way we drop excess symbols like `<` and `>`. This is need on
JVM to get rid of "dexing error".
2023-03-14 20:47:32 +00:00
Ivan Kylchik c2fc745d66 Create special copy function in FunctionInlining
Semantically this is the same code, but it is easier to read
2023-03-14 20:47:32 +00:00
Artem Kobzar 26f6661d1e [K/JS] Remove the possibility to have negative lines and columns in Source Maps 2023-03-06 16:55:26 +00:00
Ivan Kochurkin 5b2a1feaf0 [IR] Support of @OptionalExpectation in IrActualizer
^KT-56579 Fixed
2023-03-01 22:10:10 +00:00
Ivan Kochurkin d87619e06e [FIR & IR] Support of default values for arguments in expect functions
Add FirActualDeclarationChecker that checks expect/actual return types

^KT-56331 Fixed, ^KT-56334 Fixed
2023-03-01 22:10:07 +00:00
Ivan Kochurkin a54b56d74e [IR] Simplify ExpectActualCollector, remove nesting 2023-03-01 22:10:06 +00:00
Ilmir Usmanov 01c670194a FIR2IR: Do not add fake override if the member is overridden
#KT-56398
2023-02-24 14:24:12 +00:00
Alexander Udalov 5f4a560899 Fix binary compatibility with AS 222/223 in PhaseConfig
(cherry picked from commit a419120cbd6050417945a0e9f411213debd15b77)
2023-02-24 14:23:52 +00:00
Alexander Udalov 22b4b29292 IR: make most properties mutable 2023-02-22 22:40:34 +00:00
Ilmir Usmanov bfa2937fb8 FIR2IR: Do not add fake override if the member is overridden
#KT-56398 Fixed
2023-02-21 17:18:01 +01:00
Alexander Udalov b152600e35 IR: add flag to IrGenerationExtension for executing in kapt mode
#KT-56635 Fixed
2023-02-17 14:00:54 +00:00
Dmitriy Novozhilov 30ea4b6b53 [FIR2IR] Adapt IrActualizer to HMPP modules
Previously it collected actual declaration only from platform module
2023-02-17 11:08:51 +00:00
Igor Chevdar 0655b02097 [IR] Proper error message for IR validation 2023-02-14 07:30:46 +00:00
Igor Chevdar 1e8cd91e0f [IR] Fixed wrong IrCall type (to fix IR validation) 2023-02-14 07:30:45 +00:00
Igor Chevdar 3dad0cfb05 [IR] Fixed wrong IrCall type (to fix IR validation) 2023-02-14 07:30:45 +00:00
Igor Chevdar 5e6aa649ed [IR] Extracted implicitCastIfNeeded to common utils 2023-02-14 07:30:44 +00:00
Igor Chevdar ea2ce2b52e [IR] Fixed wrong parents 2023-02-14 07:30:44 +00:00
Svyatoslav Kuzmich 26c1098a4f [Wasm] Fix inliner issues (KT-56584)
* Fix objects in inline functions and lambdas:
  * Add common lowerings used in K/JS and K/Native
* Fix inline lambda call detection logic in presence of additional casts


Merge-request: KT-MR-8791
Merged-by: Svyatoslav Kuzmich <svyatoslav.kuzmich@jetbrains.com>
2023-02-13 13:14:43 +00:00