Commit Graph

40987 Commits

Author SHA1 Message Date
Pavel Kunyavskiy 467d2b42fc [K/N] Make AbstractSuspendFunctionsLowering independent of files order
When coroutine class is created, it's made child of SuspendFunction
class. Normally, SuspendFunction class can't be already lowered,
but if we are compiling stdlib it can happen. And if it is
bad fake overrides would be created before this commit.

Unfortunately, as problem can happen only during stdlib compilation,
no specific test can be added.
2022-10-05 06:27:39 +00:00
pyos 5ba76ee757 FIR: convert Java type parameter bounds before reading annotations
This avoids a crash due to circular class references through annotation
arguments.
2022-10-04 19:48:15 +00:00
Ilya Kirillov 49f2f85927 [Low Level FIR] fix exception when creating symbol by invalid code 2022-10-04 12:56:07 +00:00
Nikolay Lunyak e2fdb352f1 [FIR] KT-42962: Ensure the issue is not present in K2
Merge-request: KT-MR-7288
Merged-by: Nikolay Lunyak <nikolay.lunyak@jetbrains.com>
2022-10-04 12:27:17 +00:00
Sergej Jaskiewicz c9c50ff73c [JS IR] Disable some flaky stepping tests
^KT-54283
2022-10-04 10:31:14 +00:00
Artem Kobzar 574d774277 [K/JS] Remove illegal chars from the new js-minimal-stdlib path 2022-10-03 15:59:07 +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
Simon Ogorodnik 53069ee03f Fix application disposer registered only once due to deduplication
Disposer uses passed object identity to decide should it be registered
Since lambda, that passed into disposer doesn't capture anything, it has
only one instance, so it ends up being registered only once
While it should be registered for every parentDisposable
2022-10-03 13:36:05 +00:00
Simon Ogorodnik f2dee2bf85 Core. Fix data-race in ApplicationEnvironment initialization
getOrCreateApplicationEnvironment is main entrypoint to create
ApplicationEnvironment in production and compiler tests
It is subject to be called concurrently, that's why
APPLICATION_LOCK exists

ApplicationEnvironment itself hosts Application from idea-core
It is actually singleton, that is subject to be disposed, once all
operations referencing it completes

To properly dispose ApplicationEnvironment when there is no references
left, we maintain reference counter aka ourProjectCount

Originally, there was data-race caused by the fact, that ourProjectCount
was updated after publication of application

Linear, data-race occurs in following order
T1: getOrCreateApplicationEnvironment returns application
T2: Disposes its reference to application, causing ourProjectCount to
reach zero, and disposing application that is already available to T1
T1: Updates counter, but its application already disposed
2022-10-03 13:36:05 +00:00
Dmitriy Novozhilov a6c7d4c0c6 [FIR] Analyze bodies of non delegated property accessors without expected type
^KT-53349 Fixed
2022-10-03 15:48:17 +03:00
Dmitriy Novozhilov c5fd248e69 [FIR] Add pretty toString to ResolutionMode 2022-10-03 15:48:17 +03:00
Dmitriy Novozhilov 6623456d2a [FIR] Properly support @JvmRecord
^KT-53867 Fixed
2022-10-03 15:48:17 +03:00
Dmitriy Novozhilov c0ad67c4f9 [FIR] Generate java declarations for record components of java records
^KT-53964 Fixed
2022-10-03 15:48:17 +03:00
Nikolay Krasko 20692c9837 Minor: cleanup code in cli-js and js.sourcemap 2022-10-03 11:08:29 +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
Ilya Kirillov dd9ed02fbd [FIR] fix memory leak via static ConeIntegerLiteralTypeImpl.COMPARABLE_TAG 2022-10-02 20:38:34 +00:00
Ilya Kirillov 9ac9bef20f [FIR] fix nested access to FirCache
it's forbidden by the contract and causes ISE "Recursive update" or deadlock in the IDE
2022-10-02 19:00:02 +02:00
Jinseong Jeon fc1eb02590 SLC: implement PsiVariable#computeConstantValue for light field 2022-10-02 13:41:12 +02:00
Jinseong Jeon a58e0803fb ULC: output update (annotation on enum entry)
Input has `// CHECK_BY_JAVA_FILE`
and thus ULC output as .java file should be updated too
when input was changed to add annotation on enum entry
(at commit c5916e1d)
Tested by UltraLightClassLoadingTestGenerated in IntelliJ
2022-10-02 13:41:12 +02:00
Nikolay Lunyak fcd3e4f4c5 [FIR JS] KT-51740: Alter positioning of NO_VALUE_FOR_PARAMETER 2022-09-30 21:39:20 +03:00
Ilya Kirillov 556b7894d5 [Low Level FIR] do not search for declarations from kotlin. package in source modules 2022-09-30 12:15:49 +02:00
Pavel Kunyavskiy ea3713f051 Fix building fake overrides for sam and function references 2022-09-30 08:48:59 +00:00
Pavel Kunyavskiy 95eaf3d234 [K/N] Add lowered suspend function mangling to avoid clashes 2022-09-30 08:48:59 +00:00
Pavel Kunyavskiy 2d4c94a115 [K/N] Add test for inter-module suspend function override 2022-09-30 08:48:59 +00:00
Pavel Kunyavskiy 817dba8564 [K/N] Use suspend function desugaring lowerings. 2022-09-30 08:48:58 +00:00
Pavel Kunyavskiy 8886e1b8b4 Move Js suspend functions lowerings to common code 2022-09-30 08:48:57 +00:00
Ilya Goncharov 7d8636aac4 [JS] Keep interfaces
^KT-54173 fixed
2022-09-29 16:12:19 +00:00
Ilya Goncharov c726360ad2 Change policy with legacy compiler backend
[JS] Remove incremental js jps test

[JS] Remove test of maven js archetype

[JS] Fix another one test

[JS] Fix tests for jps

[JS] Try to fix maven test data

[JS] Fix test data

[JS] Fix test data for ant

[JS] Fix jsExtraHelp test

[JS] Fix test run from not-Gradle build tools

[JS] Set flag without compiler error

[JS] Disable warnings and errors in legacy compiler called from Gradle

[JS] Proofread messages

[JS] Not proofread messages

KT-42326
2022-09-29 13:56:30 +00:00
Mikhail Glukhikh 85965d74f6 K2: fix implicit body resolve in case delegated property is on the path
#KT-54212 Fixed
2022-09-29 10:55:14 +02:00
Mikhail Glukhikh 75a29434bd K2: add reproducer of KT-54212 2022-09-29 10:55:04 +02:00
Mikhail Glukhikh f68f06a93f FIR visibility checker: remove redundant session from isVisibleForOverriding 2022-09-29 08:34:14 +00:00
Mikhail Glukhikh de43877161 K2: add more tests about false overrides
Related to KT-53197
2022-09-29 08:34:13 +00:00
Mikhail Glukhikh bcd7a531b9 K2: filter invisible overridden in status resolver & FIR2IR
Related to KT-53197
2022-09-29 08:34:13 +00:00
pyos 3a5d75fd22 K2: introduce platform-specific visibility checks for overrides + tests
Related to KT-53197
2022-09-29 08:34:13 +00:00
Mikhail Glukhikh 1ad2ec302b FirOverrideChecker: don't report VIRTUAL_MEMBER_HIDDEN with invisible
#KT-53197 Fixed
2022-09-29 08:34:12 +00:00
Mikhail Glukhikh 8281c166b1 K2 checkers: extract retrieveDirectOverriddenOf to FirTypeScope.kt 2022-09-29 08:34:11 +00:00
Mikhail Glukhikh 9f7c465eb0 FE: add test for KT-53197 2022-09-29 08:34:11 +00:00
Pavel Mikhailovskii 903a5d69a4 KT-53146 Don't coerce Nothing? returned from "catch" clauses
At first, I tried to modify the logic in PromisedValue.materializeAt
to get rid of all casts from Nothing? to other types, but that broke
a number of tests containing casts of java.lang.Void to other types,
so I decided to fix only this particular case with try...catch
(for some reason, here we get a null of type java.lang.Object).
2022-09-29 06:15:39 +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
Mikhail Glukhikh d9934cd01a Rename in test infra: hasFail() -> hasFailure() 2022-09-28 15:29:44 +00:00
Mikhail Glukhikh 591992dc12 K1: mute failing test with slow assertions
Note: in this test, we create a flexible type from two captured types
during substitution, which provokes exception from
FlexibleTypeImpl.runAssertions() (they are run only in test mode)

Related to KT-54198
2022-09-28 15:29:44 +00:00
Mikhail Glukhikh e9bb0f4fda Resolution: extract projections from captured flexible type properly
#KT-54100 Fixed
Related to KT-54196, KT-54198
2022-09-28 15:29:43 +00:00
Nikita Nazarov 784ceb6baa Add support for context receivers evaluation
KTIJ-21214
2022-09-28 18:59:56 +04:00
Nikita Nazarov bd742bb95c Account for context class receivers when creating the ExpressionReceiver
^KT-54084 Fixed
2022-09-28 18:59:56 +04:00
Nikolay Lunyak f578381726 [FIR] KT-46483: Forbid annotations in where Clauses
Merge-request: KT-MR-7208
Merged-by: Nikolay Lunyak <lunyak.kolya@mail.ru>
2022-09-28 13:38:18 +00:00
Igor Chevdar 1963860a92 [K/N][caches] Removed old slow and hacky version of per-file caches building 2022-09-27 17:06:48 +00:00
Igor Chevdar 77f24a22dd [K/N][IR][codegen][caches] Speed-up of per-file caches 2022-09-27 17:06:48 +00:00
Ilmir Usmanov 4a10dbf383 FE: Warn about generic inline class parameter in LV < 1.8
#KT-54192 Fixed
2022-09-27 16:50:43 +00: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
Vladimir Dolzhenko b2b88662d8 Clean up
#KTIJ-23032
2022-09-27 15:17:27 +00:00