Commit Graph
46473 Commits
Author SHA1 Message Date
Ilya Goncharov 08e3cb300a [JS] Migrate tests onto IR compiler with outputDir API instead of outputFile
^KT-61117 fixed
2023-11-29 11:21:56 +00:00
Dmitrii Gridin 21de05e5ac [FIR] FirDeclarationsContractResolveTransformer: drop redundant transformations
There is no sense to trying to transform aliases and dangling lists
2023-11-29 10:24:03 +00:00
Dmitrii Gridin 06aad65ed3 [FIR] pass correct scope during annotation resolve for local declarations
We should pass container for correct logic around CLASS_HEADER_ANNOTATIONS.
Also, such correct containers will be used in the context of KT-63042 to
correctly detect an annotation ownership

^KT-63042
^KT-63842 Fixed
2023-11-29 10:24:03 +00:00
Dmitrii Gridin fcb3f003dc [FIR] add more tests on annotations for local declarations
^KT-63842
2023-11-29 10:24:02 +00:00
Dmitrii Gridin 98e12b0d7b [FIR] add missed scope for annotations on property receiver, typealias and init and dangling list
Also, we shouldn't transform type alias during the implicit type phase

^KT-63042
^KT-63832 Fixed
2023-11-29 10:24:02 +00:00
Dmitrii Gridin aaaf35fcb8 [FIR] add missed tests for declaration annotations
^KT-63832
2023-11-29 10:24:02 +00:00
Egor Kulikov 001e9a4489 [FIR] Source for property delegates should not be null
^KT-60327 fixed


Merge-request: KT-MR-13221
Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
2023-11-29 08:27:53 +00:00
Roman Efremov 5cf33c3556 [IR] Render different quotes depending on IR constant type
This is needed for ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT diagnostic
message, but also seems to be good improvement for IR dumps in tests.

^KT-62559
2023-11-28 23:17:23 +00:00
Roman Efremov 8f6b6e17be [IR] Print annotation arguments in report of ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT
Now IR checker is not duplicated by FIR checker reporting, so it's
useful to have more verbose report of annotations in diagnostic message.

^KT-62559
2023-11-28 23:17:23 +00:00
Roman Efremov ec7a2c20d1 [FIR] Beautify ::class expression rendering in annotation arguments
...in `ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT` diagnostic message.

^KT-62559
2023-11-28 23:17:23 +00:00
Roman Efremov c609de5195 [FIR] Refactor: extract class reference expression rendering out of
...`FirRenderer`.

^KT-62559
2023-11-28 23:17:23 +00:00
Roman Efremov fa897e4148 [Tests] Cover rendering of KClass annotation args in
...`ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT`.

^KT-62559
2023-11-28 23:17:23 +00:00
Roman Efremov 29c82c668f [IR] Prevent duplicated reports of ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT
...on property accessors and enum entries.

^KT-62559
2023-11-28 23:17:23 +00:00
Roman Efremov 2b120f6cdc [Tests] Cover rendering of diagnostic text by IR checker in
...`ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT`.

^KT-62559
2023-11-28 23:17:23 +00:00
Sergej Jaskiewicz 7bd4de65f8 [IR generator] Deduplicate field copying logic 2023-11-28 16:24:40 +00:00
Sergej Jaskiewicz 5f04bc8a27 [IR generator] Simplify computation of walkable children
Don't require to specify them explicitly via `isChild` in IR generator,
instead test the field type whether it is an element.
2023-11-28 16:24:40 +00:00
Sergej Jaskiewicz ad4e97154f [FIR/IR generator] Factor out allFields to AbstractElement 2023-11-28 16:24:40 +00:00
Sergej Jaskiewicz 38ee477ab4 [FIR/IR generator] Make AbstractField generic over itself
This will make some code more type-safe.
2023-11-28 16:24:40 +00:00
Sergej Jaskiewicz c6eb7d6c21 [FIR/IR generator] Factor out walkableChildren and transformableChildren 2023-11-28 16:24:40 +00:00
Sergej Jaskiewicz 13ae129505 [FIR/IR generator] Move isSealed property to AbstractElement 2023-11-28 16:24:40 +00:00
Sergej Jaskiewicz 0465c6d0ee [FIR/IR generator] Make InterfaceAndAbstractClassConfigurator open 2023-11-28 16:24:40 +00:00
Nikolay Lunyak d5fa755e63 [FIR] Disable not null checks on dynamics
It looks like K1 doesn't do them.
And it's not particularly bad because
in the ideal world we'd have dynamics
with variable upper bound so that
in `dynamic?.let { it }` `it` would
be `Nothing..Any` (smartcasting to
`Any` is not correct because `dynamic`
can be passed into anything, but `Any`
can not).

^KT-63071
2023-11-28 15:37:09 +00:00
Nikolay Lunyak 875e2b0cd6 [FIR] Prohibit calling functions with dynamic receiver over non-dynamics
^KT-63071 Fixed
2023-11-28 15:37:09 +00:00
Nikolay Lunyak c69c34ff8b [FIR] Properly set isReceiver for implicit invoke on function types 2023-11-28 15:37:09 +00:00
Alexander.Likhachev 06c1bcdc5d [IC] Add filter on files for the CACHE_DIRECTORY_SIZE metric
Without the filter, we were walking both through subdirectories and their files, so some files might be counted twice. Moreover, the behaviour of `File.length` is unspecified for directories.
^KT-63010 In Progress
2023-11-28 15:22:43 +00:00
Alexander.Likhachev 4eccbd75c3 [IC] Measure IC size metrics after the caches are closed
Before this fix, the size metrics were measured after the compilation is finished, but before the caches are closed. In many cases it might lead to incorrect measurements. After flipping the default value of the `keepIncrementalCompilationCachesInMemory` flag for Gradle builds, it started to cause always incorrect results.
^KT-63010 In Progress
2023-11-28 15:22:43 +00:00
Ilya Goncharov 093f51c89a [JS] Removing usage of legacy JS compiler #1 2023-11-28 13:44:37 +00:00
Mikhail Glukhikh 1260d03561 Drop erroneous FirJavaConstructorBuilder.visibility
Related to KT-62961
2023-11-28 13:30:26 +00:00
Mikhail Glukhikh 2cea2b9098 K2/Java: add private enum constructor for MPP matching
#KT-62961 Fixed
2023-11-28 13:30:26 +00:00
Evgeniy.Zhelenskiy 5258e2044d [FIR] Forbid annotations on anonymous initializers and destructuring declarations
#KT-59896


Merge-request: KT-MR-13197
Merged-by: Evgeniy Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>
2023-11-28 11:59:26 +00:00
Svyatoslav Kuzmich e901629cf0 [Wasm] Support WASI target in K2
- Support WASI mode in CLI and test infrastructure
- Add external declaration checker
- Split Fir diagnostic lists into Base, JS and WASI

#KT-56849 Fixed
2023-11-28 11:51:53 +00:00
Artem Kobzar f26b0a5be6 [K/JS] Fix case with boxing/unboxing inside the BlockDecomposerLowering ^KT-63808 Fixed 2023-11-28 11:51:08 +00:00
Igor Chevdar 1805f322f8 [K/N] Do not use LazyIr for per-file caches
#KT-63789 Fixed
2023-11-28 09:22:36 +00:00
Anastasia.Nekrasova 00119c6a97 [K2] Disappeared UNSUPPORTED
Prohibit named parameters in function types in supertype position

^KT-59881
2023-11-28 07:55:15 +00:00
Roman Efremov 5147a5e805 [Test] Add test for current behavior of resolution of nested class type
...when it is actualized via typealias.

^KT-31636
2023-11-27 18:23:43 +00:00
Roman Efremov 205690b220 [IR] Fix incorrect matching of nested classes when actualized via typealias
Also, add tests for the cases when expect and actual nested classes
have no compatible matching to check new logic doesn't crash.

^KT-31636
2023-11-27 18:23:42 +00:00
Roman Efremov d343e40ac5 [FIR] Actualize expect nested classes in type arguments in expect actual
...checker.

^KT-31636
2023-11-27 18:23:42 +00:00
Roman Efremov cec644e9db [Test] Add test for expect nested classes unwrapping
...in type arguments, when they were actualized via
typealias.

^KT-31636
2023-11-27 18:23:42 +00:00
Roman Efremov 4aaf290c99 [FIR] Fix incorrect matching of nested classes when actualized via typealias
There are still some places in `.fir.kt` where false-positive reports
remained. This is because of IR checker, which will be fixed in next
commit.

^KT-31636
2023-11-27 18:23:42 +00:00
Roman Efremov a768ece70d [Tests] Add tests for other checkers having same problem with
...nested classes marching.

^KT-31636
2023-11-27 18:23:42 +00:00
Roman Efremov bfc775faf5 [Tests] Create test for nested classes matching when actualized via typealias
^KT-31636
2023-11-27 18:23:42 +00:00
Svyatoslav Kuzmich 6b6353f3b9 [Wasm] Add external file checker to K2
#KT-56849
2023-11-27 16:55:04 +00:00
Svyatoslav Kuzmich 7687b86654 [Wasm] Add JsModule checker to K2
#KT-56849
2023-11-27 16:55:04 +00:00
Stanislav Ruban 269b60b420 [tests] Add a test case for KT-61978
^KT-61978 Obsolete
2023-11-27 15:50:46 +00:00
Alexander Korepanov b1465fbfb8 [JS FIR] Enable warnings and infos for JS FIR tests 2023-11-27 14:31:31 +00:00
Alexander Korepanov 862be5a787 [JS FIR] Fix FIR NON_EXPORTABLE_TYPE diagnostic bugs
- use a declaration source if a parameter source is null;
 - ignore constructor return type to avoid
   double-checking of the class itself;
 - ignore constructor type parameters
   obtained from the class declaration;
 - ignore enum entries property (it is not checked in K1 at all);
 - fix exportability check for function types;

 ^KT-63089 Fixed
2023-11-27 14:31:30 +00:00
Artem Kobzar 6615b77213 [K/JS] Rework symbol hash calculation to make IC works with @JsExport and @JsName changes 2023-11-27 13:49:56 +00:00
Dmitriy Novozhilov a22a254c1e [Test] Fix passing useIrFakeOverrideBuilder flag in tests 2023-11-27 10:17:54 +00:00
Dmitriy Novozhilov 039baf95fc [Test] Add empty platform module for MPP diagnostic test with only one module
After previous commits IrActualizer runs only there are at least two modules
  in backend input. So to check diagnostics from Actualizer all tests
  should contain at least two modules

Diagnostics in test `extendExpectedClassWithAbstractMember.kt` were
  changed because there is an exception from IrActualizer caused by
  errors from frontend (`ABSTRACT_METHOD_NOT_IMPLEMENTED`), which is
  swallowed by this kind of tests
2023-11-27 10:17:54 +00:00
Dmitriy Novozhilov ffe5b4c40d [Test] Update some IR dumps after previous changes
Now IR dump handlers receiver actualized IR with removed expected
  declarations, so corresponding tests should be updated accordingly
2023-11-27 10:17:54 +00:00