Commit Graph

40225 Commits

Author SHA1 Message Date
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 4aed9511f6 FIR/FE10: fix false positives described in KT-24643 2022-07-03 19:10:02 +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
Nikita Nazarov 38d97d0621 Add a key to enable spilling of all variables in a suspending context
This commit adds a new key that will allow users to enhance their
debugging experience in suspending contexts when using the IR backend.
After the key is enabled, the following things are changed:
1. All variables in a suspending context are spilled regardless their
liveness.
2. Their LVT records are not shrunk.
3. ACONST_NULL is not spilled to dead variables.

#KT-48678 In progress
2022-07-02 18:29:18 +03:00
Mikhail Glukhikh 4737bb07df FIR: look for conflicting declarations more precisely 2022-07-01 15:07:48 +00:00
Mikhail Glukhikh 3092a84b6b Drop unreachable when branch in FirConflictsChecker 2022-07-01 15:07:48 +00:00
Ilya Chernikov 854127bcc8 Fix testdata after switching Kotlin to version 1.8
(see the previous commit with the same title for details)
2022-07-01 14:31:45 +02:00
Ilya Chernikov 513f490502 Scripting: notify writer in REPL on errors reporting complete
required for restoring compatibility with IDE REPL usages (scratch
files included), since IDE counterpart needs a reliable signal
when the processing of the REPL snippet/command is completed
2022-07-01 10:14:42 +00:00
Bart van Helvert 7bef560b6b KTIJ-21986 Don't log non-kotlin code fragment context when it's null
This warning shouldn't be logged when the context is null.
2022-07-01 08:15:58 +00:00
Ilya Chernikov bc1e3667ff Fix testdata after switching Kotlin to version 1.8
the corresponding features - GenericInlineClassParameter && DataObjects
- were turned on in 1.8 right after the last check build, therefore the
discrepancy went unnoticed
2022-06-30 16:34:14 +00: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
Mikhail Glukhikh 38f4a35be2 FIR: introduce flexible types pretty rendering for no arguments case
#KT-52020 Fixed
2022-06-29 16:50:05 +00:00
Mikhail Glukhikh 31ec10142b FirRenderer: add renderAllModifiers and renderDetailedTypeReferences
Related to KT-52020
2022-06-29 16:50:04 +00:00
Mikhail Glukhikh b2a9ad079d Fix unreachable branch in ConeKotlinType.render() 2022-06-29 16:50:03 +00:00
Mikhail Glukhikh 9a8fa300d7 Add test for KT-52020 2022-06-29 16:50:03 +00:00
Dmitriy Novozhilov 1a8496757e [Compiler] Mark all entrypoints to compiler API as experimental 2022-06-29 12:00:01 +00:00
Dmitriy Novozhilov 169e80e8c9 [Build] Cleanup build.gradle.kts for :compiler module 2022-06-29 12:00:01 +00:00
Dmitriy Novozhilov 65e240679e [FE] Move utility of parsing plugin options to :compiler:frontend.common
This is needed to be able to use this utility inside FIR part of IDE plugin
2022-06-29 12:00:00 +00:00
Dmitriy Novozhilov f587c02d38 [FE] Move ServiceLoaderLite to :compiler:frontend.common
This is needed to be able to use this class inside FIR part of IDE plugin
2022-06-29 12:00:00 +00:00
Dmitriy Novozhilov 22dae9bff4 [FIR] Fix registration of multiple compiler plugins 2022-06-29 11:59:59 +00:00
Dmitriy Novozhilov c979e1edcf [Plugins] Deprecate ComponentRegistrar
^KT-52665 In Progress
2022-06-29 11:59:58 +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
Ilya Chernikov bb996c1b27 Switch kotlin version to 1.8
with appropriate fixes in testdata, tests and other
places.
2022-06-29 10:20:30 +02: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
Igor Yakovlev 6f88e9b16f [WASM] Fix interop adapter for long strings 2022-06-28 18:00:40 +00: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 d14a71acfc Revert "Revert "[light classes] drop old light classes and backend: iteration #11""
This reverts commit 357e15085e.
2022-06-28 17:57:34 +02:00
Dmitry Gridin 28aa47af8a Revert "Revert "[light classes] drop old light classes and backend: iteration #10""
This reverts commit 4b3e48dc47.
2022-06-28 17:57:34 +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
Dmitry Gridin 9f3a269d62 Revert "Revert "[light classes] drop old light classes and backend: iteration #8""
This reverts commit 91fa6af556.
2022-06-28 17:57:33 +02:00
Dmitry Gridin ac83d5fcbc Revert "Revert "[light classes] drop old light classes and backend: iteration #7""
This reverts commit d1cde22254.
2022-06-28 17:57:33 +02:00
Dmitry Gridin 9dcc92e394 Revert "Revert "[light classes] drop old light classes and backend: iteration #6""
This reverts commit 8db53c0ca7.
2022-06-28 17:57:32 +02:00
Dmitry Gridin 4d43312cfe Revert "Revert "[light classes] drop old light classes and backend: iteration #5""
This reverts commit 8f7969549b.
2022-06-28 17:57:31 +02:00
Dmitry Gridin 2eaea66a0c Revert "Revert "[light classes] drop old light classes and backend: iteration #4""
This reverts commit 3d9a58627f.
2022-06-28 17:57:31 +02:00
Dmitry Gridin ce183a8eeb Revert "Revert "[light classes] drop old light classes and backend: iteration #3""
This reverts commit 074dd1c19d.
2022-06-28 17:57:30 +02:00
Dmitry Gridin dd824aacb6 Revert "Revert "[light classes] drop old light classes and backend: iteration #2""
This reverts commit 43b4df74bc.
2022-06-28 17:57:30 +02:00
Dmitry Gridin f10c5c28a5 Revert "Revert "[light classes] drop old light classes and backend: iteration #1""
This reverts commit 57de064251.
2022-06-28 17:57:29 +02:00
Dmitry Gridin db3ca797d9 Revert "Revert "[light classes] FakeFileForLightClass: advance language level to 1.8""
This reverts commit 11ad8020c8.
2022-06-28 17:57:17 +02:00
Artem Kobzar 133c6713ca [K/JS] fix(Interface Export): prevent structural identity between two interfaces. 2022-06-28 15:44:38 +00:00
Pavel Mikhailovskii c3c09aa95a KT-4107 Data objects 2022-06-28 16:58:20 +02:00
Ilya Chernikov 6e59c2e079 Scripting: fix CLI REPL error reporting behavior
discrepancy after switching to the new REPL internals was
discovered also on IJ plugin tests, so added a test emulating it.
also some test infra refactoring
2022-06-28 16:21:25 +02:00
Ilya Chernikov 8bc43917ec Scripting: switch default definition to new scheme
also correctly pass externaly provided configuration on compilation
and evaluation.
Fixes REPL evaluation with dependencies passed via compilation classpath.
2022-06-28 16:21:24 +02:00
Hung Nguyen 46c769deb6 [IC] Fix fallback logic in IncrementalCompilerRunner
The current logic works as follows:
- Try either incremental compilation or non-incremental compilation
- If the above (or any of its surrounding work) fails, fall back to
  non-incremental compilation

This means we may perform non-incremental compilation twice.

This commit will fix that logic so that we fall back to non-incremental
compilation only if *incremental compilation* fails.

A nice consequence of this change is that it also resolves the critical
bugs described at KT-52669 (which occur because the current logic is
flawed).

#KT-52669 Fixed
2022-06-28 12:47:11 +00:00
Mikhael Bogdanov 8f60f73207 JvmDefault. Add deprecation warning for '-Xjvm-default=enable|compatibility' options
#KT-46329
2022-06-28 14:11:49 +02:00
Mikhael Bogdanov 42a465efe2 Remove deprecated methods 2022-06-28 14:11:49 +02:00
Mikhael Bogdanov 27cfe11d55 JvmDefaultWithoutCompatibility. Switch retention to source 2022-06-28 14:11:49 +02:00
Dmitry Gridin 11ad8020c8 Revert "[light classes] FakeFileForLightClass: advance language level to 1.8"
This reverts commit d42c9d833f.
2022-06-28 13:52:11 +02:00