Commit Graph

101619 Commits

Author SHA1 Message Date
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
Sergej Jaskiewicz 973adb6a38 [test] Remove TARGET_BACKEND: JVM_IR for non JVM-specific irText tests
If they fail on other backends, use the IGNORE_BACKEND directive instead
2023-05-16 18:28:23 +00:00
Igor Yakovlev a224feefd2 [Wasm] Fix invalid rounding for reminder calculation
#Fixed KT-58681
2023-05-16 15:53:01 +00:00
Dmitrii Gridin 33140b7fcf [FIR] mark empty file annotation container as resolved
To avoid redundant lazy resolve

^KT-56551
2023-05-16 13:25:42 +00:00
Dmitrii Gridin 622f9fb13c [LL FIR] add lazy resolve test on file annotation container
^KT-56551
2023-05-16 13:25:42 +00:00
Sebastian Sellmair 2dcaad2d03 [Gradle] Reshape API surface for setting Android SourceSetTrees
^KT-58710 Verification Pending
2023-05-16 13:19:42 +00:00
Sebastian Sellmair e1d48847dc [Gradle] Rename KotlinTargetHierarchyBuilder.withAndroid to withAndroidTarget
... by deprecating .withAndroid in favor of 'withAndroidTarget' to
make room for the Google maintained 'Android Target'

^KT-58710 Verification Pending
2023-05-16 13:19:42 +00:00
Sebastian Sellmair ff7e4f7986 [Gradle] Implement SourceSetTreeClassifier API
- This new API will be configurable for 'External Kotlin Targets'
- This change also moves targetHierarchy.android {} into the androidTarget
to avoid potential confusion around the KGP managed AndroidTarget vs
the Google implementation.

KT-58710
2023-05-16 13:19:42 +00:00
Sebastian Sellmair dbfa8d4c29 [Gradle] Defer .awaitSourceSets to 'AfterFinaliseRefinesEdges' and awaitFinalValue to 'AfterFinaliseDsl'
KT-58710
2023-05-16 13:19:42 +00:00
Nikolay Lunyak 27e9732f98 [FIR] KT-58686: Warn about the use of global counters 2023-05-16 12:11:47 +00:00
Nikolay Lunyak c57d9097c2 [FIR] Add the syntax tree suffix to buildResolveAndCheckFir 2023-05-16 12:11:47 +00:00
Nikolay Lunyak 51b8e400d9 [FIR] Sort KtSourceFiles analogously to KtFiles
The
`IncrementalJsFirKlibCompilerWithScopeExpansionRunnerTestGenerate
.testSerializedSubClassAndChangedInterfaces`
test fail because the checksums of
the `manifest` files don't match
after the full recompilation.
It happens, because the `b.kt` file may be passed
to the compiler before `a.kt`, in which case while
generating the data class members the compiler
will generate a call to `Any::hashCode` when
accessing the hashcode of the `a` property instead
of generating a call to the fake override
`A::hashCode`.
When working with PSI, the compiler sorts the
input files to at `KotlinCoreEnvironment.kt:200`.

This change removes the flaky
behavior by sorting the input files.
2023-05-16 12:11:46 +00:00
Nikolay Lunyak 90651c5851 [FIR] KT-58065: Support LT in K2Native 2023-05-16 12:11:46 +00:00