Dmitry Petrov
8c71e38c92
JVM_IR KT-49765 bridge for throwing stub should just throw UOE
2021-12-16 21:07:12 +03:00
Simon Ogorodnik
7b8ece8758
FIR: Make constraint injector treat stub types as type variables
2021-12-15 22:22:55 +03:00
Roman Artemev
fb84287ae0
[KLIB] Compute relative path instead of absolute if relative base is provided
...
- normalize path if required
- path it in JS/Native
- path null for JVM (temporary)
- fix build
2021-12-15 21:13:52 +03:00
Leonid Startsev
2eac2ff3a2
Support Array<KClass> in instantiated annotations
...
#KT-47703 Fixed
2021-12-15 16:05:29 +00:00
Tianyu Geng
a5844b754e
Type Approximation: add separate flag to control approx. anonymous type
...
This extra flexibility is useful for IDE where we always want to
approximate anonymous types but may not want to approximate other local
types
2021-12-15 16:09:27 +03:00
Dmitry Petrov
9375f41936
JVM_IR KT-50073 inline callable reference adapter into 'invoke'
2021-12-14 14:35:12 +00:00
Dmitry Petrov
34c70ea04e
JVM_IR KT-50193 result of !! is non-null
2021-12-14 17:10:20 +03:00
Victor Petukhov
24900630cb
Revert "Revert "[FE 1.0] Provide an API to clean compile time initializer cache for variable descriptor""
...
This reverts commit faeb5d21ab .
2021-12-14 14:21:46 +03:00
Ilya Chernikov
c1c94778ce
Detect and report inner classes capturing script instance
2021-12-14 13:39:22 +03:00
Ilya Chernikov
e865652602
[minor] ScriptLowering cleanup
2021-12-14 13:39:22 +03:00
Ilya Chernikov
10c5071eda
Implement backend error reporting on unsupported script capturing
...
#KT-30616 fixed
#KT-43995 fixed
#KT-19424 fixed
#KT-49443 fixed
2021-12-14 13:39:17 +03:00
Ilya Chernikov
cb5e451e05
Implement script instance capturing in script lowering
...
for regular classes only. Reimplementing the main behavior of the
old BE and implementing few cases on top of it.
#KT-19423 fixed
2021-12-14 13:39:17 +03:00
Ilya Chernikov
87952d63a3
Rollback script related LDL changes...
...
to reimplement them properly in the script lowering
2021-12-14 13:39:16 +03:00
Roman Artemev
b719865c25
[JS IR IC] Implement fast path invalidation check
...
Compute library md5 hash and check it first with cached one. If hashes
are equal it means that cache is up-to-date and no additional checks are
needed
- store library hashes (flat + trans) into cache info file
- change invalidator return value
2021-12-13 20:57:52 +03:00
Ilya Goncharov
6adcbe081e
[JS IR] Consider erasing type parameters in return type in js signatures
2021-12-13 16:16:59 +00:00
Dmitry Petrov
df460a842b
JVM_IR KT-50076 avoid CHECKCAST on moved dispatch receiver parameter
2021-12-13 14:13:34 +00:00
Dmitry Petrov
6f148c594f
Revert "JVM_IR KT-50076 avoid CHECKCAST on moved dispatch receiver parameter"
...
This reverts commit 627d838343 .
2021-12-13 14:13:33 +00:00
Sergej Jaskiewicz
41acdefce9
[JS IR] Treat char as inline class no matter how it's declared
2021-12-13 07:36:57 +00:00
Sergej Jaskiewicz
4f13717fea
[IR] Use InlineClassesUtils in lowerings instead of IrClass.isInline
...
We do it because sometimes we want to treat a regular class as
an inline class. For example, in the Wasm backend we treat classes
with the `@WasmAutoboxed` annotation as inline classes. Also, in
the JS IR backend the `Char` class is declared as a regular class for
compatibility reasons, but we want it to be an inline class for
performance.
2021-12-13 07:36:56 +00:00
Sergej Jaskiewicz
e5993ab594
[JS IR] [Wasm] Extract InlineClassesUtils into CommonBackendContext
2021-12-13 07:36:56 +00:00
Sergej Jaskiewicz
962ca40687
[JS IR] Pass JsIrBackendContext as non-nullable in some functions
2021-12-13 07:36:55 +00:00
Dmitry Petrov
81c805a754
JVM_IR KT-50171 add missing parent to temporary vals for proxy fun
2021-12-11 15:51:12 +00:00
Dmitry Petrov
627d838343
JVM_IR KT-50076 avoid CHECKCAST on moved dispatch receiver parameter
2021-12-11 08:04:26 +00:00
Dmitry Petrov
94bb465e62
JVM_IR KT-50076 don't null check moved dispatch receiver parameter
2021-12-11 08:04:26 +00:00
Nikolay Krasko
faeb5d21ab
Revert "[FE 1.0] Provide an API to clean compile time initializer cache for variable descriptor"
...
This reverts commit 0e6762acc3 .
2021-12-10 16:54:55 +03:00
Alexander Udalov
a95375cd9f
JVM IR: extract separate module backend.jvm.codegen
...
The main benefit is that now lowerings and codegen are compiled in
parallel, which speeds up the build. Hopefully, this will also improve
incremental compilation in case of implementation changes because the
rest of the compiler (cli & tests) has no "api" dependency on lowerings
and codegen.
2021-12-09 21:05:49 +01:00
Alexander Udalov
616cec8527
JVM IR: decouple JvmBackendContext from intrinsic implementation
2021-12-09 21:05:49 +01:00
Alexander Udalov
3582188faa
JVM IR: move type/signature mapping to subpackage 'mapping'
2021-12-09 21:05:49 +01:00
Alexander Udalov
3c9e3b7ed4
JVM IR: remove most dependencies of common backend.jvm code on codegen
2021-12-09 21:05:48 +01:00
Alexander Udalov
166f09c409
JVM IR: move indy handle generation logic to MethodSignatureMapper
...
JvmInvokeDynamic.kt is a part of intrinsics which are going to be
moved into a separate module, which backend.lower won't depend on.
2021-12-09 19:59:42 +01:00
Alexander Udalov
b0c5ea4717
JVM IR: remove dependencies of lowerings on codegen
...
Move out utilities which are used both in lowerings and codegen to
JvmIrUtils and JvmIrTypeUtils, and introduce new JvmIrCoroutineUtils and
JvmIrInlineUtils (probably can be renamed or moved somewhere more
appropriate in the future).
2021-12-09 19:59:42 +01:00
Alexander Korepanov
bf57e33713
[JS IR] Add an implicit cast to int32 for the shru operator
...
^KT-20791 Fixed
2021-12-09 14:10:03 +00:00
Alexander Korepanov
a34c97ebd5
[JS IR] Generate context dependent names for anonymous objects and classes.
2021-12-09 13:56:25 +00:00
Artem Kobzar
b1643075f2
fix(KT-50040): remove the corresponding symbol from top-level accessors.
2021-12-09 13:39:35 +00:00
Victor Petukhov
0e6762acc3
[FE 1.0] Provide an API to clean compile time initializer cache for variable descriptor
2021-12-09 16:15:24 +03:00
Dmitry Petrov
3017397960
JVM_IR fix string concatenation performance issues
...
KT-50080 KT-50084 KT-50140
2021-12-09 15:32:13 +03:00
Ivan Kochurkin
fa41e0f5a9
[FIR2IR] Minor: reuse calculated expression
2021-12-09 12:31:25 +00:00
Roman Artemev
dc1155de24
[JS IR] Erase IrErrorType into IrErrorType
2021-12-08 20:18:16 +03:00
Roman Artemev
002d6723ac
[KLIB] Fix partially-linked mode
...
- don't mark super classes as unlinked if its type argument is
- check IrCall type as well
2021-12-08 20:18:15 +03:00
Dmitry Petrov
93713a9ad4
JVM_IR KT-47939 use FunInterfaceConstructorReference as base class
2021-12-08 14:12:41 +03:00
Dmitry Petrov
0ccd7a7e0c
KT-47939 fun interface constructor reference should throw NPE for null
2021-12-08 14:12:41 +03:00
Dmitry Petrov
9eeb8f54fb
JVM_IR KT-47939 fixes after review
2021-12-08 14:12:39 +03:00
Dmitry Petrov
e179598457
JVM_IR KT-47939 equality for fun interface constructor references
2021-12-08 14:12:38 +03:00
Dmitry Petrov
50b0dae786
KT-47939 fixes after review
2021-12-08 14:12:37 +03:00
Dmitry Petrov
27a144f86f
PSI2IR KT-47939 callable references to fun interface constructors
2021-12-08 14:12:34 +03:00
Ilya Goncharov
00289d3514
rra/ilgonmic/exported-bridges-2
...
[JS IR] Use js name for signature
[JS] bridgeSavingExport only for JS IR
[JS IR] Fix test
[JS IR] Stable and non stable signatures
[JS IR] Consider return type in js signature and erase for JS name signature
[JS IR] Copy signature from wasm to JS and export bridge, not original
Merge-request: KT-MR-5174
2021-12-08 08:30:14 +00:00
Ilya Goncharov
0c74376cc4
rra/ilgonmic/after-test-promise
...
[JS] Node downloading for js ir integration kotlin test
[JS] Fix API of Promise
[JS IR] Promise symbol as lazy2
[JS] Support legacy compiler aftertest with promises
[JS IR] Generate finally for promised tests
[JS] Setup it tests for JS IR kotlin-test
Merge-request: KT-MR-5168
^KT-49738 fixed
2021-12-08 08:22:53 +00:00
Alexander Udalov
1471602c9f
JVM IR: do not optimize properties with -Xno-optimized-callable-references
...
#KT-50019 Fixed
2021-12-08 03:15:49 +01:00
Igor Yakovlev
2e78a1cd90
[WASM] Fix invalid string literal encoding
2021-12-07 21:33:21 +03:00
Dmitry Petrov
100d7123c2
JVM_IR KT-50078 fix for-in-array loop bytecode shape
2021-12-07 17:41:59 +03:00