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