Dmitriy Dolovov
715aba3d18
[PL][tests] K/JS: Run compiler through CLI interface
2023-07-17 21:09:40 +00:00
Kirill Rakhman
feed740415
[FIR2IR] Don't copy default value to annotation call with vararg parameter
...
This aligns the behavior with K1 and fixes an issue when the default
value was deserialized as FirExpressionStub leading to an exception
in FIR2IR when trying to convert it to an IR expression.
#KT-60120 Fixed
#KT-59610 Fixed
2023-07-17 11:42:39 +00:00
Alexander Korepanov
a588e75c11
[JS IR] Optimize JS AST for closures
...
^KT-58891 Fixed
2023-07-13 16:37:18 +00:00
Alexander Korepanov
524c475834
[JS IR] Implement MoveTemporaryVariableDeclarationToAssignment optimization
2023-07-13 16:37:18 +00:00
Alexander Korepanov
25f7b81d51
[JS IR] Drop TemporaryAssignmentElimination optimization
...
Enable TemporaryAssignment tests
2023-07-13 16:37:17 +00:00
Yahor Berdnikau
73f6316f27
[repo] Enable warnings as errors for Gradle Kotlin scripts
2023-07-12 12:49:32 +00:00
Brian Norman
10ed26991d
[FIR] Extract LHS receiver of assignment operator statements
...
#KT-53490 Fixed
2023-07-12 11:41:33 +00:00
Artem Kobzar
fdda394a77
[K/JS] Calculate generated function names based on signatures of argument types (instead of fqNames) ^KT-49077 Fixed
2023-07-11 13:14:45 +00:00
Mikhail Glukhikh
39406710b2
FIR2IR: fix origin calculation for explicit inc/dec calls
2023-07-11 08:28:04 +00:00
Dmitriy Novozhilov
e7a10057f2
[Test] Use special test facade for IR actualization and IR plugins in all codegen configurations
...
Previously application of plugins was part of fir2ir conversion and
ir actualization was the responsibility of each specific IR backend
facade. Now (after moving IR extensions after IR actualization) those
actions are extracted into separate facade for two purposes:
1. Avoid code duplication in backend facades
2. Step with this facade goes exactly after fir2ir conversion before
irHandlersStep, which allows IR handlers to observe IR which was
actualized and modified by extensions, which is quite useful
^KT-56173
2023-07-07 11:26:15 +00:00
Dmitriy Novozhilov
8e73d5a54a
[FIR] Run irGenerationExtensions after IR actualization
...
^KT-56173 Fixed
2023-07-07 11:26:15 +00:00
Artem Kobzar
cf949e8760
[K/JS] Support KClass<*>.createInstance reflection method ^KT-58684 Fixed
2023-07-06 18:18:14 +00:00
Dmitriy Dolovov
8aacdb471b
[K/N] Fix: Ignore bridge functions in FunctionReferenceLowering
...
^KT-59858
2023-07-06 12:39:46 +00:00
Ivan Kylchik
d3d28783c5
[IR] Support const optimizations for JS backend
2023-07-06 11:00:14 +00:00
Ilya Goncharov
b6803b2400
[JS] Migrate web demo examples
2023-07-06 08:08:55 +00:00
Ilya Goncharov
b5a7b9c661
[JS] Migrate multi module order test
2023-07-06 08:08:55 +00:00
Ilya Goncharov
08c04af5b5
[JS] Remove legacy line numbers test
2023-07-06 08:08:55 +00:00
Kirill Rakhman
b68962018c
[FIR] Remove incompatible from expect actual matching if compatible exists
...
This fixes an issue with checking for default values in call resolution
(see FirDefaultParametersResolver) where it is expected that the map
only contains a single compatible entry.
#KT-59613 Fixed
2023-07-05 08:51:01 +00:00
Alexander Korepanov
4695dca056
[JS IR] Keep box and unbox intrinsics in call args after decomposing
...
^KT-59717 Fixed
2023-07-05 07:33:03 +00:00
Artem Kobzar
9ad5910de9
[K/JS] Remove isObject check from runtime ^KT-57926 Fixed
2023-07-03 13:19:43 +00:00
Denis.Zharkov
3279313f2c
K2: Fix priority for implicit receiver + extensionInvoke
...
See K1 counterpart at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver.Task.processImplicitReceiver
^KT-58943 Fixed
^KT-59541 Fixed
2023-07-01 16:29:06 +00:00
Artem Kobzar
966a342bf1
[K/JS] Migrate invalidation tests to ES modules
2023-06-30 16:13:35 +00:00
Alexander Udalov
5dc882abf5
Reflection: create synthetic classes instead of throwing UOE
...
... for Kotlin-generated classes which do not correspond to a "class"
from the Kotlin language's point of view. For example, Kotlin lambdas,
file facade classes, multifile class facade/part classes, WhenMappings,
DefaultImpls. They can be distinguished from normal classes by the value
of `KotlinClassHeader.Kind` (which is the same as `Metadata.kind`).
Another theoretical option would be to throw exception at the point
where the `::class` expression is used, if the expression's type on the
left-hand side is a synthetic class. But we can't really do that since
it'll affect performance of most `<expression>::class` expressions.
So, construct a fake synthetic class instead, without any members except
equals/hashCode/toString, and without any non-trivial modifiers. It kind
of contradicts the general idea that kotlin-reflect presents anything
exactly the same as the compiler sees it, but arguably it's worth it to
avoid unexpected exceptions like in KT-41373.
In the newly added test, Java lambda check is muted but it should work
exactly the same as for Kotlin lambdas and other synthetic classes. It's
fixed in a subsequent commit.
#KT-41373 In Progress
2023-06-30 13:11:41 +00:00
Alexander Udalov
1e031d9fb8
Reflection: add test on introspection of local classes
...
kotlin-reflect works correctly already for Kotlin-generated local
classes and anonymous objects, but not for Java ones. This is fixed in a
subsequent commit.
#KT-41373 In Progress
2023-06-30 13:11:41 +00:00
Ilya Goncharov
0ac0c51c23
[JS] Remove Ant js test
2023-06-29 14:25:45 +00:00
Ilya Goncharov
b0b266b73d
[JS] Fix test of Ir Stdlib api
2023-06-29 14:25:45 +00:00
Alexander.Likhachev
cb087b7def
[Build] Bump gradle-node-plugin version to 5.0.0
...
This change is required to fix a configuration cache problem revealed after migration to Gradle 8.1
2023-06-26 10:36:25 +00:00
Vladimir Sukharev
09a0905ffc
[Test] Convert IGNORE: NATIVE directives in rest of tests
...
^KT-59057 Fixed
Merge-request: KT-MR-10794
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-26 07:44:12 +00:00
Svyatoslav Kuzmich
736519c506
[JS] Rename JsLibraryProvider to LibraryProvider
...
This class is not JS-specific and can be used in Wasm test services
2023-06-25 10:18:50 +02:00
Vladimir Sukharev
7930885131
[Test] Convert IGNORE: NATIVE directives in box tests from M to R
...
^KT-59057
Merge-request: KT-MR-10757
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-23 14:15:48 +00:00
Vladimir Sukharev
a036e41809
[Test] Convert IGNORE: NATIVE directives in box tests from D to I
...
^KT-59057
Merge-request: KT-MR-10748
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-23 09:11:17 +00:00
Ivan Kylchik
8f88f08573
[FIR] Use correct source for implicit this receiver
...
#KT-57489 Fixed
#KT-56139 Fixed
#KT-56755 Fixed
2023-06-23 07:23:39 +00:00
Vladimir Sukharev
ab03cb2357
[Test] Convert IGNORE: NATIVE directives in box tests sam/* and sameFile*/*
...
^KT-59057
Merge-request: KT-MR-10758
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-23 06:23:53 +00:00
Vladimir Sukharev
1bf3bde4f8
[Test] Convert IGNORE: NATIVE directives in box tests from J to J
...
^KT-59057
Merge-request: KT-MR-10749
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-22 18:39:59 +00:00
Vladimir Sukharev
f3fcaa69eb
[Test] Convert IGNORE: NATIVE directives in box tests from T to W and boxInline
...
^KT-59057
Merge-request: KT-MR-10752
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-22 18:33:24 +00:00
Artem Kobzar
64158a8a2f
[K/JS] Add file-to-file compilation ^KT-6168 Fixed
2023-06-22 18:23:45 +00:00
Alexander.Likhachev
407a2d4203
[Build] Remove usages of Provider.forUseAtConfigurationTime()
...
It's not required anymore and was deprecated since Gradle 7.4
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Ilya Goncharov
1c89a7e400
[JS] Remove legacy and output prefix-postfix tests
2023-06-22 12:25:24 +00:00
Ilya Goncharov
1465abcfed
[JS] Source map to IR
2023-06-22 12:25:24 +00:00
Ilya Goncharov
5783693039
[JS] Remove js legacy codegen
2023-06-22 12:25:24 +00:00
Vladimir Sukharev
3d60ed8874
[Test] Convert IGNORE: NATIVE directives in box tests from A to C
...
^KT-59057
Merge-request: KT-MR-10747
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-06-22 08:39:20 +00:00
Dmitriy Dolovov
2e43fa7cd0
[PL][tests] Adapt tests for K/N to the conditions when static cache is used w/o lazy IR
2023-06-22 08:10:11 +00:00
Dmitriy Novozhilov
1b24b95cde
[FIR] Check for subtyping during actualization of supertypes of expect class
...
^KT-59356 Fixed
2023-06-22 07:05:31 +00:00
Kirill Rakhman
c867a4b52f
[FIR] Don't expand typealiases when checking for DeprecatedSinceKotlin
...
During serialization, this can lead to a cycle resulting in a Stack
Overflow.
#KT-58356 Fixed
2023-06-21 14:35:43 +00:00
Kirill Rakhman
ee91ee9403
[FIR] Set publishedApiEffectiveVisibility on deserialized declarations
...
#KT-58641 Fixed
2023-06-21 07:34:29 +00:00
Artem Kobzar
039b5fca7a
[K/JS] Use declared upper-bound types for parameters inside inlined functions body, instead of the provided types
2023-06-20 12:01:28 +00:00
Artem Kobzar
66bdb9ce79
[K/JS] Fix private constructor delegating inside single class with ES6 mode ^KT-59335 Fixed
2023-06-20 11:07:08 +00:00
Evgeniy.Zhelenskiy
2d920df507
[IR] Fix KT-59346, KT-55993
...
#KT-59346
#KT-55993
2023-06-19 12:36:08 +00:00
Dmitriy Novozhilov
d972b78627
[FIR] Allow actualization of expect classes by classes with wider visibility
...
^KT-59355 Fixed
2023-06-19 11:09:32 +00:00
Abduqodiri Qurbonzoda
d6867917c9
Enum entry hashCode() should return identity hash code #KT-59223
2023-06-16 22:18:20 +00:00