Commit Graph

1664 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 9c41e75802 [KAPT] Migrate kapt tests to new test infrastructure 2022-07-20 10:12:24 +00:00
Dmitriy Novozhilov 7aaecf272b [Test] Move configuration of JS specific flags into JsEnvironmentConfigurator 2022-07-20 10:12:23 +00:00
Sergej Jaskiewicz ea556ce428 [JS IR] Implement stepping tests for Kotlin/JS
We already have stepping tests for Kotlin/JVM.
They are helpful for testing the correctness of the generated
debugging information.

They are better than line number tests in that they allow to test the
_behavior_, not the generated data. The structure of the data may change
even if the behavior stays the same. For that reason, stepping tests
are more stable.
2022-07-19 16:06:23 +00:00
Sergej Jaskiewicz 003f846723 Make expectations in stepping tests more flexible
We can now write expectations in the following form:
// EXPECTATIONS [backends...] [frontends...]

Backends are specified as in the TargetBackend enum.
Frontends are specified as in the FrontendKinds object.

This will make it more suitable for supporting Kotlin/JS in stepping
tests.

For example, for expectations that match only JVM backends with the
classic frontend, we use:
// EXPECTATIONS JVM JVM_IR ClassicFrontend
2022-07-19 16:06:22 +00:00
Pavel Mikhailovskii 846537b367 KT-45375 Lightweight lambdas; KT-52817 introduce @JvmSerializableLambda 2022-07-18 17:10:07 +02:00
Alexander Udalov bd0fe2f146 Remove dependency of compiler tests on fir2ir tests
Compiler tests use the old test infrastructure, but fir2ir tests use the
new one (tests-common-new). Removing this dependency means that now the
two big modules, `:compiler:compileTestKotlin` and
`:compiler:tests-common-new:compileTestKotlin` can be compiled in
parallel, which improves the total build time.
2022-07-18 13:13:01 +02:00
Pavel Mikhailovskii fd5800e8b5 KT-53090 Support -Xlambdas=indy for anonymous functions 2022-07-18 08:18:05 +00:00
Alexander Udalov b50d2ff20a Revert "JVM IR: Move direct invoke optimization into a separate pass"
This reverts commit f0760e0550.

The reason is that it leads to KT-53202.
2022-07-15 18:29:07 +02:00
Mikhail Glukhikh 83200f8774 FIR: Support inferring PRIVATE_TO_THIS visibility see KT-49875 2022-07-15 07:57:41 +00:00
Steven Schäfer 8014712569 JVM IR: Check that we generate callable references in tests 2022-07-14 23:24:18 +02:00
Steven Schäfer f0760e0550 JVM IR: Move direct invoke optimization into a separate pass
This also changes the transformation to inline the body of a directly
invoked lambda rather than producing a call to an anonymous local
function. The latter is unsupported in inline functions and problematic
from an ABI perspective, since it results in functions whose name
depends on the entire source code up to this point.
2022-07-14 23:24:18 +02:00
Pavel Mikhailovskii b26155dd9e KT-53007 Fix accessibility checks when calling a protected member via super@Outer 2022-07-14 13:09:42 +02:00
Mikhail Glukhikh 801426d0e6 Simplify creation of FirRenderer 2022-07-14 09:38:44 +00:00
Mikhail Glukhikh 31a46866b6 Extract separate FirPropertyAccessorRenderer 2022-07-14 09:38:41 +00:00
Mikhail Glukhikh 3fe35e6997 Extract separate FirCallArgumentsRenderer 2022-07-14 09:38:39 +00:00
Mikhail Glukhikh 7c27e6f843 FirRenderer: partially get rid of RenderMode 2022-07-14 09:38:37 +00:00
Mikhail Glukhikh 089044e5b0 FirRenderer: get rid of direct Visitor usages 2022-07-14 09:38:34 +00:00
Mikhail Glukhikh f64a7d3ff9 FirRenderer: extract separate printer & visitor 2022-07-14 09:38:32 +00:00
Mikhail Glukhikh 38d6f3d548 Move FirRenderer to separate package 2022-07-14 09:38:31 +00:00
Mikhail Glukhikh 475e40b3e4 K1: report warning for inline virtual member in enum #KT-53148 Fixed
Related to KT-34372
2022-07-14 07:59:33 +00:00
Mikhail Glukhikh 70e15b281c K2: fix exception in deserializer for external setter #KT-53031 Fixed 2022-07-13 17:06:14 +00:00
Pavel Kunyavskiy 5cdda48487 [K/N] Extract const val initializers to place of usage
This would make behaviour more consistent with jvm. There is still
a difference in behaviour about point where side effects happen.

^KT-52970
2022-07-13 08:49:40 +00:00
Igor Chevdar e36bd5fe90 [box-tests] Added a multi-module box test 2022-07-13 08:01:51 +00:00
Mikhail Glukhikh c92d685415 FIR: postpone callable reference candidate in default argument case
#KT-53019 Fixed
2022-07-12 12:22:34 +00:00
Vladimir Sukharev fd52f475cb Devirtualization fails to eliminate boxing in function reference context
^KT-49847 Fixed

Merge-request: KT-MR-6460
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2022-07-12 08:26:27 +00:00
pyos 06c7572ee5 FIR CFG: process called-in-place lambdas as loops 2022-07-11 18:11:30 +03:00
Victor Petukhov cb2dbca0c3 [FE 1.0] Support loading rxjava3 nullability annotations on bounded wildcards
^KT-53041 Fixed
2022-07-11 12:44:07 +00:00
Victor Petukhov 9f72193d57 [FE 1.0] Support BB tests with foreign annotations 2022-07-11 12:44:07 +00:00
Victor Petukhov 2057deb91b [FE 1.0] Create DONT_CARE type only for callable references with no expected type
Otherwise, it can be resolved safety

^KT-52270 Fixed
2022-07-11 12:44:06 +00:00
Victor Petukhov fb21937eb1 [FE 1.0] Report INVISIBLE_MEMBER on all qualified expressions including safe call ones
^KT-47621 Fixed
2022-07-11 12:44:06 +00:00
Igor Chevdar a61d05971e [box-tests] Added a couple of multi-module box tests 2022-07-10 17:56:36 +00:00
Ilmir Usmanov 5144efc7ae Do not split multimodule inliner tests into modules 2022-07-10 17:56:35 +00:00
Nikita Nazarov 7287be6879 Add tests on variable spilling with debug mode enabled
#KT-48678 Fixed
2022-07-07 14:51:24 +03:00
Mikhail Glukhikh 45eb9238b3 Fir2IrClassifierStorage: don't calculate signature in registerClass 2022-07-06 10:02:09 +00:00
Nikolay Krasko d080297c20 Revert "Add tests on variable spilling with debug mode enabled"
This reverts commit 65bb6abae4.
2022-07-05 11:04:50 +00:00
Pavel Kunyavskiy c1ec1d9d4c [K/N] Handle Unit? and Nothing? correctly in finally transformation
^KT-52985
2022-07-05 06:54:29 +00:00
Victor Petukhov 3ed87c29c7 [FE 1.0] Substituted possible fixed type variables after completion in accordance with @OverloadResolutionByLambdaReturnType
^KT-48031 Fixed
2022-07-04 12:05:57 +00:00
Victor Petukhov 5b5da025f4 [FE 1.0] Don't throw empty intersection exception, return empty intersection type instead 2022-07-04 12:05:56 +00:00
Mikhail Glukhikh 3223d3c3e9 Add test with false/true positives for KT-24643 2022-07-03 19:10:01 +00:00
Nikita Nazarov 65bb6abae4 Add tests on variable spilling with debug mode enabled
#KT-48678 Fixed
2022-07-02 18:29:18 +03:00
Pavel Mikhailovskii 8a402bcacd KT-52875 Fix extension function literal creation with -Xlambdas=indy 2022-06-30 14:13:05 +00:00
Ilmir Usmanov a5084c2f69 JVM IR: Make receiver type of IrGetField not null
otherwise, it will be mapped to inline class type if underlying type
is primitive of nullable.

 #KT-52913 Fixed
2022-06-30 01:28:09 +00:00
Dmitriy Novozhilov 1a8496757e [Compiler] Mark all entrypoints to compiler API as experimental 2022-06-29 12:00:01 +00:00
Dmitriy Novozhilov 8b42638afa [Plugins] Introduce new API for registering compiler plugins
Original `ComponentRegistrar` exposes Project to its registration method,
  so plugins should manually register extensions to it. To prepare for
  possible unbound compiler from Project API in future new  `K2ComponentRegistrar`
  introduced which provides registration method without Project at all
2022-06-29 11:59:58 +00:00
Dmitriy Novozhilov 7fa459044f [Test] Fix extracting path to standard libraries from incorrect places for external users 2022-06-29 06:41:07 +00:00
Ilmir Usmanov 09c9641e23 FE: Use safe call when searching for suspend modifier
The modifier does not exist, when the parameter type is typealias.

 #KT-35187 Fixed
2022-06-29 06:12:44 +02:00
Dmitry Gridin 6e75e4a56e Revert "Revert "[light classes] drop old light classes and backend: iteration #12""
This reverts commit 732a08f0df.
2022-06-28 17:57:35 +02:00
Dmitry Gridin cbf9b13ef8 Revert "Revert "[light classes] drop old light classes and backend: iteration #9""
This reverts commit 38c623bc3a.
2022-06-28 17:57:33 +02:00
Pavel Mikhailovskii c3c09aa95a KT-4107 Data objects 2022-06-28 16:58:20 +02:00
Dmitry Gridin 38c623bc3a Revert "[light classes] drop old light classes and backend: iteration #9"
This reverts commit 38378309b1.
2022-06-28 13:52:07 +02:00