Commit Graph

101281 Commits

Author SHA1 Message Date
Ivan Kylchik e5c45a4e51 [IR] Move extension val property into Utils for interpreter 2023-05-18 18:16:54 +00:00
Ivan Kylchik 70560fc3eb [IR] Handle each interpreter checker one by one
This wy we can interpret all expressions like `A::a.name` at first and
after that evaluate all complex expressions like
`A::a.name + A::b.name`.
2023-05-18 18:16:54 +00:00
Ivan Kylchik e58e20fc7b [IR] Add special preprocessors for ir interpreter
These preprocessors allow us to modify IR at first and only after that
try to evaluate. With this we can drop `KCallableNamePropertyLowering`.
2023-05-18 18:16:54 +00:00
Ivan Kylchik c8371a339f [IR] Create common interface for all interpreter checkers 2023-05-18 18:16:54 +00:00
Ivan Kylchik 82a111250b [IR] Drop excess containingDeclaration parameter from IR checker 2023-05-18 18:16:54 +00:00
Ivan Kylchik 1fd8ef801e [IR] Create special checker that will analyze name methods
We can insert all this logic into `IrCompileTimeChecker` but it is
a little bit specific and looks like it is nicer to just extract it.
2023-05-18 18:16:54 +00:00
Ivan Kylchik 104ac4bd69 [IR] Move IR interpreter transformers into separate package 2023-05-18 18:16:53 +00:00
Ivan Kylchik b779dc5d27 [IR] Drop all explicit usages of EvaluationMode from interpreter checker 2023-05-18 18:16:53 +00:00
Ivan Kylchik e3fa342d5c [IR] Drop WITH_ANNOTATIONS evaluation mode in interpreter
This is old mode, that was used mainly in prototype phase
2023-05-18 18:16:53 +00:00
Ivan Kylchik 535806d0ab [K2] Force interpretation of default argument for annotation's property
We miss these expression because they might be represented as
`IrGetFiled` values, but they still must be turned into `IrConst`.

#KT-58007 Fixed
2023-05-18 18:16:53 +00:00
Yahor Berdnikau 37402336d5 [Gradle] Fix compiler plugins options were not passed to KaptGenerateStubs task
^KT-58745 Fixed
2023-05-18 14:55:16 +00:00
Sergej Jaskiewicz 5f5b32b8ae [IR] Add kdocs for IrSymbol-related classes and interfaces 2023-05-18 12:19:52 +00:00
Sergej Jaskiewicz e473eaa5d6 [IR] Give generic parameters proper names in IrSymbol-related classes
Single-letter names were very confusing, especially in declarations like

```kotlin
private inline fun <
        reified D : IrDeclaration,
        reified ES : IrDelegatingSymbol<AS, D, *>,
        reified AS : IrBindableSymbol<*, D>
        > finalizeExpectActual(
    expectSymbol: ES,
    actualSymbol: IrSymbol,
    noinline actualizer: (e: D, a: D) -> Unit
)
```
2023-05-18 12:19:52 +00:00
Pavel Kirpichenkov 88d68f77e5 [LL FIR] Temporarily stub common FIR session factory with JVM
A measure to not break tests until common session factory impl is ready

KT-58769
2023-05-18 09:48:40 +00:00
Pavel Kirpichenkov 2a79643dcf [LL FIR] introduce platform-aware LL FIR session factories
KT-58769
2023-05-18 09:48:40 +00:00
Aleksei.Cherepanov e11f7daae4 Disable JvmTargetDefaultSubstitutor
Disable JvmTargetDefaultSubstitutor as far as minimal supported jvmTarget version is 1.8

#KTIJ-25445 Fixed
2023-05-17 21:47:21 +00:00
Alexander.Likhachev 3273ee4519 [Build, IGS] Add a plugin-switch property
The plugin is not being actually applied until the `kotlin.build.internal.gradle.setup` property is explicitly set to enable the plugin logic.
#KTI-1223 Fixed
2023-05-17 19:36:15 +00:00
Alexander.Likhachev b304f54d80 [Build] Apply InternalGradleSetupSettingsPlugin at first
#KTI-1223 In Progress
2023-05-17 19:36:15 +00:00
Alexander.Likhachev ecbf5abb81 [Build, IGS] Don't run a separate thread as it leads to problems with user input
#KTI-1223 In Progress
2023-05-17 19:36:15 +00:00
Alexander.Likhachev 1e583d2946 [Build, IGS] Add logging to InternalGradleSetupSettingsPlugin
#KTI-1223 In Progress
2023-05-17 19:36:15 +00:00
Alexander.Likhachev 2a634ead6f [Build, IGS] Specify the used value in the case of a property override
#KTI-1223 In Progress
2023-05-17 19:36:15 +00:00
Alexander.Likhachev cf03863b65 [Build, IGS] Ignore non-existing keys during setup file parsing
#KTI-1223 In Progress
2023-05-17 19:36:15 +00:00
Alexander.Likhachev ea38cfebf2 [Build, IGS] Implement InternalGradleSetupSettingsPlugin
#KTI-1223 In Progress
2023-05-17 19:36:15 +00:00
Alexander.Likhachev f04f1d18c4 [Build, IGS] Implement ConsentManager
#KTI-1223 In Progress
2023-05-17 19:36:14 +00:00
Alexander.Likhachev 6804d0a0af [Build, IGS] Implement LocalPropertiesModifier
#KTI-1223 In Progress
2023-05-17 19:36:14 +00:00
Alexander.Likhachev e30b72fa8f [Build, IGS] Deserialize setup json using kotlinx-serialization-json
#KTI-1223 In Progress
2023-05-17 19:36:14 +00:00
Alexander.Likhachev 188203197b [Build] Add internal-gradle-setup settings plugin
#KTI-1223 In Progress
2023-05-17 19:36:14 +00:00
Alexander.Likhachev e8ab063dc9 Use uppercase() instead of uppercase(Locale) in CliJavaModuleFinder
It follows the 877438b1f3 commit removing LV/AV limits for the module and it needed to avoid, for example, cases when `i` is being uppercased to `İ` in the `TR` locale
2023-05-17 19:34:40 +00:00
Alexander.Likhachev 169ef4874f [Build] Enable checks of the build tools API on CI
At the moment, the only check is the binary compatibility check
#KT-58479 Fixed
2023-05-17 18:57:11 +00:00
Yahor Berdnikau c14bb499e1 [Gradle] Update Duckduckgo regression benchmark 2023-05-17 18:22:47 +00:00
Yahor Berdnikau 7f0ecb0fc1 [Gradle] Update KVision regression benchmark 2023-05-17 18:22:47 +00:00
Yahor Berdnikau 1369183d36 [Gradle] Update graphql-kotlin benchmark 2023-05-17 18:22:46 +00:00
Artem Daugel-Dauge ca0b0e61e8 [Gradle] Add workarounds in CocoaPods plugin for compatibility with Xcode 14.3
Raise deployment target for 3rd-party pods if it's less then minimal supported by the new Xcode

^KT-57539 Verification Pending
2023-05-17 16:02:14 +00:00
Artem Daugel-Dauge f7acbb5252 [Gradle] Explicitly forbid an interop-binding self-dependency in CocoaPods plugin 2023-05-17 15:58:14 +00:00
Egor Kulikov bff1520c9e [FIR] Resolve where subjects to corresponding type argument
^KTIJ-25295 fixed

Merge-request: KT-MR-10044
Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
2023-05-17 15:28:02 +00:00
Ilya Goncharov bcefa1cd66 [Gradle, Wasm] Add wasm platform kind
KTIJ-25583
2023-05-17 13:28:20 +00:00
Ilya Kirillov 04cb217791 Fix binary compatibility of KtPsiFactory.contextual
^KTIJ-25307 fixed
2023-05-17 13:09:45 +00:00
Vladimir Dolzhenko 4a1552e907 Use nameSequence instead of file extensions to reduce memory allocations
#KTIJ-25470
2023-05-17 12:45:19 +00:00
Vladimir Dolzhenko 37c493f593 Add missed DOT_DEFAULT_EXTENSION
#KTIJ-25470
2023-05-17 12:45:19 +00:00
Nikolay Lunyak f94c795b5b [FIR] KT-55552: Report type mismatch for delegated properties
^KT-55552 Fixed
2023-05-17 12:44:52 +00:00
Nikolay Lunyak 81d955a712 [FIR] KT-55552: Ensure type mismatch is missing 2023-05-17 12:44:52 +00:00
Sergej Jaskiewicz 56f977f70c [IR] Don't render facade classes in JVM fq-names in irText tests
This makes the tests more compatible with non-JVM backends
(see KT-58605)
2023-05-17 12:43:35 +00:00
vladislav.grechko a5e0a937d6 Do not dump header of IrInlinedFunctionBlock twice
Otherwise, incorrect dump is produced:

INLINED_BLOCK
  inlinedElement
  INLINED_BLOCK
     statements

instead of:

INLINED_BLOCK
  inlinedElement
  statements
2023-05-17 11:41:53 +00:00
Simon Ogorodnik 3e6b42083b FIR: Fix leakage of type variables in builder inference for lambdas returning Unit
When BI/incomplete call is present in return argument, it will be
added to the main call-tree, leading to requirement violation in
`ConstraintSystemCompleter.getOrderedAllTypeVariables`
as after `FirBuilderInferenceSession.inferPostponedVariables` it will
be completed, and its type variables couldn't be found anymore

In K1, we actually do the same, but we are able to find type variables
of such calls due to architecture difference:
In K2, `getOrderedAllTypeVariables` uses FIR as the main source to
lookup
In K1, `getOrderedAllTypeVariables` uses resolution atom tree, where
candidate/CS of the call is still available after
`inferPostponedVariables`

In fact, all incomplete calls were analyzed in FULL mode according to
the contract of `FirBuilderInferenceSession.addPartiallyResolvedCall`.
Thus, it means we normally shouldn't add them to the main call-tree, but
accidentally do it as incomplete calls contain non-completed candidate

This particular commit addresses the problem partially, only
in cases when the expected return type for the lambda is Unit and when
the incomplete call is located in the last expression of the lambda

In such cases, we can skip the call from the last expression completely,
since all potential calls there were analyzed in FULL mode,
and couldn't introduce any useful info to the CS of the main call-tree

^KT-54294
2023-05-17 10:50:36 +00:00
Dmitrii Gridin ae1622d059 [LL FIR] support lazy resolve for fake override declarations
^KT-58727 Fixed
2023-05-17 09:51:21 +00:00
Dmitrii Gridin 4472e1ae4e [AA FIR] add tests on implicit type in delegated scope
^KT-58727
2023-05-17 09:51:21 +00:00
Vladimir Sukharev 6a8981372b [K2/N] Read KDoc strings from LightTree nodes
^KT-56090

Merge-request: KT-MR-9613
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-05-17 08:12:39 +00:00
Igor Chevdar 39dfb9958b [K/N][tests] Fixed some of lldb tests 2023-05-17 07:28:14 +00:00
Denis.Zharkov d7559b8972 Update JDK in AdditionalBuiltInsMembersSignatureListsTest to 17
So, we're slowly getting rid of the hack with LATE_JDK_SIGNATURES
which is necessary because there's no freshest JDK available at
build agents.

But hope, it would be removed once JDK 21 is there (see KT-58716).
2023-05-17 06:42:52 +00:00
Denis.Zharkov b0c5d26d92 Add new JDK-21 List methods to HIDDEN_METHOD_SIGNATURES
Tests are on the way waiting for Build agents with EA version
(KT-58716 for tracking)

^KT-58371 Fixed
2023-05-17 06:42:52 +00:00