Commit Graph

6599 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
Mads Ager a525983e38 [JVM IR] Use error types in KAPT mode for unresolved delegate types.
^KT-57388 Fixed
2023-03-21 22:09:14 +01:00
Ivan Kylchik 7cf70e7b15 [JVM IR] Fix performance issue caused by support of IR Inliner 2023-03-20 23:36:33 +00:00
Vyacheslav Gerasimov 76c54a8ff3 Build: Fix usages of apis deprecated in Gradle 8 2023-03-20 19:45:39 +00:00
Svyatoslav Kuzmich 1b7c63bd49 [Wasm] Fix js interop closure signature
Before we used IrType.render() which is not unique.
This changes adds a proper serialization of adapter signature to string.
2023-03-20 15:16:00 +00:00
Vsevolod Tolstopyatov 33d13474c5 Make EnumEntries implementation eager
* Addresses the recent design changes of the corresponding language feature
* Also rework JS/Wasm enumEntries implementation with the function that accepts array instead of fabric function


^KT-57318


Co-authored-by: Artem Kobzar <Artem.Kobzar@jetbrains.com>

Merge-request: KT-MR-9204
Merged-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
2023-03-20 10:18:28 +00:00
Sergej Jaskiewicz de7de7b287 [IR] Add kdoc for IrElement 2023-03-17 13:55:13 +00:00
Sergej Jaskiewicz ba5ff7967c [IR] Don't use @sample in generated kdocs
`@sample` is used for showing usage examples, not the generation
template.

IDEA shows the body of the method referenced in `@sample` in
the class's kdoc, which pollutes the docs with irrelevant code.
2023-03-17 13:55:13 +00:00
Sergej Jaskiewicz f96ff6d52d [IR] Add a kdoc for IrMetadataSourceOwner 2023-03-17 13:55:12 +00:00
Sergej Jaskiewicz 396451b5da [IR] Support specifying kdocs for properties in IR tree generator 2023-03-17 13:55:12 +00:00
Sergej Jaskiewicz b3e5612f79 [IR] Unescape identifiers in tree generator more accurately
Simply removing all backticks makes kdocs with code blocks ugly
2023-03-17 13:55:12 +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
Svyatoslav Kuzmich 1208a26fc4 [Wasm] Use JsAny, JsHandle and other Js* types in stdlib and kotlin-test 2023-03-16 09:12:07 +00:00
Svyatoslav Kuzmich d6886d69ec [Wasm] Add internal JsPrimitive annotation
Before external classes could only represent JS object types and are
type-checked with `instanceof`.
@JsPrimitive allows external classes to represent primitive types with
`typeof` checks.
2023-03-16 09:12:07 +00:00
Alexander Korepanov e3402fcc87 [K2 JS] Do not load transitive dependencies for building K2/JS klibs
^KT-57262 Fixed
2023-03-15 10:49:54 +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 f0d4220ad1 Extract flags from RemoveDuplicatedInlinedLocalClassesLowering 2023-03-14 20:47:45 +00:00
Ivan Kylchik 4ab38ffcfc Extract some common code into extractRelatedDeclaration 2023-03-14 20:47:44 +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 4506ca6792 Add KDoc to IrAttributeContainer 2023-03-14 20:47:43 +00:00
Ivan Kylchik 14b876546d Implement fake vars generation for functions inlined with IR inliner 2023-03-14 20:47:42 +00:00
Ivan Kylchik 1c210822ea Add new configuration key that can enable IR inlining for JVM 2023-03-14 20:47:41 +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 71487e534b Reuse some available variables in JVM backend 2023-03-14 20:47:40 +00:00
Ivan Kylchik c034edd58d Disable tail call optimizations for inlined from IR functions 2023-03-14 20:47:40 +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 d451bc94a2 Separate creation and usage of synthetic accessors
This change allow us to inline private declarations
and only after that create synthetic accessors for them.
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 60702f0f02 Add new filed attributeOwnerIdBeforeInline to IrAttributeContainer
This field is null by default, and it is set to current
`attributeOwnerId` when declaration was inlined and must be
generated with new name. In its turn `attributeOwnerId` must be set to
`this` to show that this is actually a new declaration, not a copy.
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