Commit Graph

3553 Commits

Author SHA1 Message Date
Dmitriy Dolovov 181809e2af [IR][tests] Support friend-dependencies in KLIB ABI compatibility tests 2022-10-20 10:18:56 +02:00
Dmitriy Dolovov 500e4f5e24 [IR][tests] Add test to check absence of false positively-detected unimplemented callables
^KT-53663
2022-10-20 10:18:56 +02:00
Dmitriy Dolovov 296c1cbd0f [Native][tests] Add partial linkage tests (muted) for replacement-of-return-type case
^KT-51707
2022-10-20 10:18:54 +02:00
Dmitriy Dolovov db1c8cc7a7 [IR][tests] Make ABI compatibility tests less verbose, part 1 2022-10-20 10:18:53 +02:00
Dmitriy Dolovov 437d6b8391 [IR][tests] AbstractJsKLibABITestCase - forgotten super.tearDown() call 2022-10-20 10:18:53 +02:00
Dmitriy Dolovov 3569ec7666 [IR][tests] New test: change of visibility for callables 2022-10-20 10:18:53 +02:00
Dmitriy Dolovov 8374b2da85 [IR][tests] New test: non-abstract callable member in abstract class becomes abstract
^KT-53663
2022-10-20 10:18:53 +02:00
Dmitriy Dolovov 9b199a174d [IR][tests] Partial linkage: Fix JS tests after rebasing
^KT-53608
2022-10-19 13:46:25 +00:00
Dmitriy Dolovov 125507b559 [IR][JS] Partial linkage: Temporarily mute tests that fail with IR IC turned on 2022-10-19 13:46:24 +00:00
Dmitriy Dolovov f048e3ddf7 [IR][tests] Refactoring: Get rid of AbstractKlibABITestCase 2022-10-19 13:46:24 +00:00
Dmitriy Dolovov 6f8c2a36f9 [IR][JS] Partial linkage: Support KLIB ABI compat tests w/ and w/o IC 2022-10-19 13:46:23 +00:00
Dmitriy Dolovov 15635482aa [IR] Partial linkage: Enable it by just passing a boolean flag to IR linker constructor 2022-10-19 13:46:22 +00:00
Alexander Korepanov 621e361366 [JS IR] Pass a js generation granularity param to IC infrastructure 2022-10-19 10:21:44 +00:00
Ilya Goncharov ca8b415726 [JS IR] Change names of ir-only arguments 2022-10-18 09:59:17 +00:00
Alexander Korepanov 901ebcc043 [JS IR] Add JS IR IC tests about companion properties modifications
^KT-54479 Test
2022-10-17 18:59:40 +00:00
Artem Kobzar cd87830ffa [K/JS] Generate the similar variant of newlines on different OS in the @file:JsExport tests generating task 2022-10-17 16:48:40 +00:00
vladislav.grechko aeccc2e787 Fix equality comparison of inline classes with primitive underlying type
^KT-54455 Fixed
2022-10-14 23:25:48 +00:00
Artem Kobzar 6d888e8e31 [K/JS] Fix stdlib long path problem on Windows for ES modules tests 2022-10-14 13:29:36 +00:00
Sergej Jaskiewicz d9681caf0c [JS IR] Generate 'names' entries for functions in sourcemaps 2022-10-14 10:09:40 +00:00
Artem Kobzar de880ce9aa [K/JS] Move ES modules logic to a new transformer with IC 2022-10-13 07:32:44 +00:00
Alexander Korepanov 7b2c125754 [JS IR] Update IC depends graph after intrinsics loading
- Remove unused params from compilerWithIC wrapper.
- Move JsIrBackendContext creation logic into separate function
- Introduce and use compiler interface for IC infrastructure

On dirty rebuild we may reload IR from stdlib,
such reloading may affect files with intrinsics and builtins.
As soon as we load only exported symbols, we must track dependencies
for files with intrinsics or builtins as for others.
This patch implements the logic which updates dependencies for
the stdlib files after loading of intrinsics and builtins.

^KT-54323 Fixed
2022-10-12 22:14:15 +00:00
Anton Bannykh 9342356c38 JS IR: fix type checks for suspend function descendants (^KT-54382 fixed)
Consider `class A : suspend () -> Unit {}`. Type checks such as `is A`
are now performed via a regular `instanceof` check instead of the special
checks for suspend lambdas.
2022-10-12 17:38:23 +00:00
Artem Kobzar 34c32e91e8 [K/JS] Don't remvove @JsExport.Ignore while test generating running 2022-10-11 17:02:23 +00:00
vladislav.grechko e0c8142106 Support of custom 'equals' and 'hashCode' in inline classes
'equals' from any made available for overriding in inline classes
'typed' equals made available for definition in inline classes
'typed' equals definition made compulsory if 'untyped' is overridden
'operator' keyword is allowed in 'typed' equals definition

^KT-24874: Fixed
2022-10-10 16:52:34 +00:00
pyos 8d33de4297 JVM: partially reify typeOf and signatures as soon as possible
E.g. when substituting T -> Array<T>, write the bytecode for the
Array<...> part for typeOf.

This fixes various issues where either Array nesting levels, nullability
information (for typeOf), or entire reification markers were missing,
causing incorrect outputs ranging from missing `?`s to missing `[]`s to
just reified types not really being reified.

^KT-53761 Fixed
2022-10-06 00:58:25 +02:00
Sergej Jaskiewicz c9c50ff73c [JS IR] Disable some flaky stepping tests
^KT-54283
2022-10-04 10:31:14 +00:00
Leonid Startsev ccdb6fc599 Fix .equals for instantiated annotations with unsigned array types.
#KT-53876 Fixed
2022-10-03 13:54:06 +00:00
Artem Kobzar eb2326eabb [K/JS] Add ability to exclude declarations from export by a new annotation @JsExport.Ignore. 2022-10-03 11:07:25 +00:00
Pavel Kunyavskiy 2d4c94a115 [K/N] Add test for inter-module suspend function override 2022-09-30 08:48:59 +00:00
Ilya Goncharov 7d8636aac4 [JS] Keep interfaces
^KT-54173 fixed
2022-09-29 16:12:19 +00:00
Alexander Udalov 4baa74f396 Add regression tests for obsolete issues
#KT-50909
 #KT-50974
 #KT-51888
2022-09-28 23:18:59 +02:00
Alexander Korepanov 252dc01dd5 [JS IR] IC: Propagate dependencies from nested declaration to parent
JsIrLinker can't load nested declarations,
 therefore it is required to load their parent.
 This patch adds a dependency in the incremental cache graph
 between nested declaration user and nested declaration parent.

^KT-53931 Fixed
^KT-54120 Fixed
2022-09-27 15:27:20 +00:00
Marat Akhin aca390263e [K/N][KLIB][Tests]: regenerate klib binary compatibility tests 2022-09-27 10:03:06 +00:00
pyos 2dd49e5fb4 JVM_IR: unwrap suspend views when generating SAM wrappers
If the super class is in a file that has already been lowered, the base
method has an extra continuation parameter which breaks things.

Also, SAM wrappers around functional objects are tail-call and do not
need continuations ever, so don't even try.

^KT-50950 Fixed
2022-09-23 21:55:00 +02:00
Artem Kobzar 2081dc327c [K/JS] Trick-out the D8 bug related to a long path on Windows 2022-09-22 15:22:00 +00:00
Artem Kobzar 39a44d4ccb [K/JS] Add lateinit as exception for simple properties ^KT-53968 Fixed 2022-09-22 13:50:51 +00:00
Igor Yakovlev 081cd4a4a8 [WASM] Support nullable types for external functions 2022-09-22 11:54:04 +02:00
Artem Kobzar 443f7d1048 [K/JS] Do not run generate-file-tests task if the source was not changed 2022-09-21 13:53:43 +00:00
Ilya Goncharov 4906f17d09 [JS IR] Fix js compiler arguments 2022-09-21 10:58:25 +00:00
Ilya Goncharov cab79d950f [Gradle, JS] outputName -> moduleName 2022-09-21 10:58:25 +00:00
Ilya Goncharov f320efedd3 [JS, Tests] Migrate IR tests onto outputDir and outputName 2022-09-21 10:58:21 +00:00
Ilya Goncharov eeb0520b48 [Gradle, JS] Migrate kotlin-stdlib-js 2022-09-21 10:58:21 +00:00
Ilya Goncharov d203dc35bf [JS IR] Add to IR keep possibility similar to legacy-dce one
It helps to:

- keep declarations even if they are not reachable and not exported
- not minify names of not exported declarations

Compiler argument: -Xir-keep=A,B

Can be used for top-level declarations or for member

^KT-54118 fixed
2022-09-20 16:06:17 +00:00
Artem Kobzar 73e7053c35 [K/JS] Use only single variant of default arguments function wrapper for exported and not-exported functions 2022-09-19 17:49:04 +00:00
Alexander Korepanov ea7ce55082 [JS IR] Add a test with an object in inline function for JS IC 2022-09-19 16:54:14 +00:00
Artem Kobzar a368fc37c7 [K/JS] Make interface subtyping faster and lighter. 2022-09-19 10:26:11 +00:00
Alexander Korepanov 46afb46a6d [JS IR] Add IC test for local inline function
^KT-50739
2022-09-16 12:14:35 +02:00
Alexander Korepanov 47bbd5e8c1 [JS IR] Add work around in EnumEntriesList for JS IR to avoid name clashes
JS IR generates bridges with type checks for special class methods,
 however if parent and child type parameters are same,
 the JS signature for the generated brige will be clashed with
 the JS signature of original method.

 This patch changes type parameter name of EnumEntriesList to avoid the clash.

^KT-54011 Fixed
2022-09-16 07:19:20 +00:00
Alexander Korepanov dd7d669464 [JS IR] Use jsOutputName for module naming when IC is enabled
^KT-53986 Fixed
2022-09-16 07:19:20 +00:00
Igor Yakovlev c2d4a2cfb5 [WASM] Small refactoring of box test runner 2022-09-15 16:27:40 +00:00