Commit Graph

103530 Commits

Author SHA1 Message Date
Yan Zhulanow 9baef497a8 [LL API] Add missing resolution for enum values on context collection 2023-08-07 16:22:02 +00:00
Yan Zhulanow b1895aacc1 [LL API] Use a common type of 'KtDeclaration' and 'KtCodeFragment' 2023-08-07 16:22:02 +00:00
Yan Zhulanow a04ad5aa28 [LL API] Refactoring, use the 'iterator {}' utility 2023-08-07 16:22:02 +00:00
Yan Zhulanow 00902fdd9c [LL API] Make 'FirFile.codeFragment' an LL-internal API 2023-08-07 16:22:02 +00:00
Yan Zhulanow 1a353b544b [LL API] Remove unnecessary safe type check in 'FirCodeFragment.psi' 2023-08-07 16:22:02 +00:00
Yan Zhulanow 4fa2a24118 [LL API] Refactoring, replace a 'Pair' with a 'ContextKey' data class 2023-08-07 16:22:01 +00:00
Yan Zhulanow 8a5cab6831 [LL API] Support '_DebugLabel's in code fragments 2023-08-07 16:22:01 +00:00
Yan Zhulanow af51b41a8a [LL API] Support on-air resolution in 'FirCodeFragment' 2023-08-07 16:22:01 +00:00
Yan Zhulanow e1db3c88cf [LL API] Support code fragment compilation 2023-08-07 16:22:01 +00:00
Yan Zhulanow 9446118d7f [fir2ir] Support code fragment transformation 2023-08-07 16:22:01 +00:00
Yan Zhulanow 02af189066 [LL API] Support code fragment analysis 2023-08-07 16:22:01 +00:00
Yan Zhulanow 3fb038ffd0 [LL API] Add 'ContextCollector'
The traditional way to get a 'FirTowerDataContext' in K2 was to
reparse the callable body and pass it through all resolution phases.
It is terribly inefficient and requires a lot of magic.

Currently, 'ContextCollector' is only going to be used to collect
a code fragment context. After proper test coverage and a plenty of
patches it's going to become a generic replacement for read-only
on-air resolution.
2023-08-07 16:22:01 +00:00
Svyatoslav Kuzmich 47ade4530c [Wasm] Add compiler flag to disable exception handling proposal
Fail with unreachable instead of throwing an exception

Merge-request: KT-MR-11481
Merged-by: Svyatoslav Kuzmich <svyatoslav.kuzmich@jetbrains.com>
2023-08-07 16:19:29 +00:00
Bogdan Mukvich ec73815f80 Generate SBOM for kotlin gradle plugin and its API
^KTI-1129
2023-08-07 15:50:49 +00:00
Aleksei.Cherepanov 7a97a43036 Fix JPS import after bed16f92 (KT-58358)
Some native test dependencies were excluded from JPS import of `:kotlin-atomicfu-compiler-pligin`


Merge-request: KT-MR-11477
Merged-by: Aleksei Cherepanov <aleksei.cherepanov@jetbrains.com>
2023-08-07 15:06:01 +00:00
Yahor Berdnikau 1b82477ffa [Gradle] Add multiplatform compiler options DSL integration test
^KT-57292 Fixed
2023-08-07 14:09:31 +00:00
Yahor Berdnikau 07593da3f0 [Gradle] Update how JVM toolchain is wired in MPP projects
^KT-57292 In Progress
2023-08-07 14:09:31 +00:00
Yahor Berdnikau bc871c6cfa [Gradle] Add multiplatform extension compiler options DSL
Now the multiplatform extension exposes compiler option DSL for common
compiler arguments. This compiler option synced as a convention for
targets compiler option.

In the case of Kotlin source sets which are not used as defaultSourceSet
 in compilations - extension compiler options are synced as convention
 into those.

^KT-57292 In Progress
2023-08-07 14:09:31 +00:00
Sebastian Sellmair 41e5a31e1b [Gradle] ObservableSet: Only add listeners when a new object is indeed added
^KT-60937 Verification Pending
2023-08-07 13:40:33 +00:00
Sebastian Sellmair d2bd749861 [Gradle] Add integration test for associated 'functionalTest' style sources
Experiments with the DefaultKotlinCompilationAssociator where made
during KT-60937. One experiment broke running functionalTests in
kotlin.git in bootstrap mode. This case was not yet covered by
CI.

^KT-60937 Verification Pending
2023-08-07 13:40:32 +00:00
Sebastian Sellmair 6c6200a9c5 [Gradle][Minor] Deprecate 'KotlinCompilation.associateWith' property...
... in favor of associateCompilations and allAssociateCompilations

^KT-60937 Verification Pending
2023-08-07 13:40:32 +00:00
Sebastian Sellmair 8ce820d944 [Gradle][Minor] KotlinJsIrSourceSetProcessor: Access runtimeDependencyFiles safely
As it might happen, that the configure code could be triggered
too early, capturing the state of 'runtimeDependencyFiles' to early as well.

^KT-60937 Verification Pending
2023-08-07 13:40:32 +00:00
Sebastian Sellmair ba270fc7df [Gradle][Minor] KotlinCompilationAssociator: Use listProperty util function
^KT-60937 Verification Pending
2023-08-07 13:40:32 +00:00
Sebastian Sellmair d978640c42 [Gradle] Remove KotlinOutputDependency
The IdeBinaryDependencyResolver will filter respective
files by using a simpler check: testing if the files
do reside within the build dir of the current project.

^KT-60937 Verification Pending
2023-08-07 13:40:32 +00:00
Igor Chevdar aa0f0c8cb4 [K/N] Do not use '=' in file names
#KT-60986 Fixed
2023-08-07 12:57:17 +00:00
Dmitrii Gridin 1182a156e8 [LL FIR] add debug info to exception 2023-08-07 13:26:39 +02:00
Sergey Bogolepov 8df18c6395 [K/N] Update osVersionMin for arm ios and tvos simulators
While it was working before, it is not correct to use OS
version <= 13.0 for these targets, so let's make our code a bit more
robust.
2023-08-07 09:07:31 +00:00
Sergey Bogolepov 7e288483b3 [K/N] Update minimum iOS and tvOS versions
The new ld from Xcode 15 incorrectly parses a simulator
target version if it is below the minimum supported version.
It is unclear if this is intentional or not, but we have to play
by Apple's rules. Anyway, 9.0 is quite obsolete, so this change
should be pretty safe.

^KT-60758
2023-08-07 09:07:31 +00:00
Roman Golyshev d46be70933 KT-60940 [Analysis API] Properly handle vararg types in KtFirReferenceShortener
^KT-60940 Fixed
^KTIJ-26518 Fixed
2023-08-07 08:35:49 +00:00
Roman Golyshev 68774609f9 KT-60940 [Analysis API] Small refactoring of KtFirReferenceShortener
Instead of unwrapping `partiallyResolvedTypeRef` in `processTypeRef`,
just visit it with the visitor
2023-08-07 08:35:48 +00:00
Nikolay Krasko a1250e838b Ignore compose experimental modules during artifacts check
The check can be improved in the future, so not only parent directory
is checked.
2023-08-07 08:18:19 +00:00
Brian Norman 887dc18719 [LL FIR] Support transforming FirFile in all LL resolvers
In preparation for KT-58531, LL FIR resolvers need to support resolving
FirFiles. This change has a very large impact on test data, so it is
being made separately.
2023-08-04 16:26:58 +00:00
Ilya Gorbunov 1a8cb02a43 [stdlib-mpp] Fix implicit signing task dependency on shared javadoc artifact
By not using shared javadoc artifact for all publications.
See the commit e6df34805f for details.
2023-08-04 16:11:56 +00:00
Ilya Gorbunov 28992b1302 [stdlib-mpp] Move KGP obsolete property suppress closer to usage
Also remove no-op property enableGranularSourceSetsMetadata
2023-08-04 16:11:56 +00:00
Roman Golyshev ab8726cff1 KT-60954 [Analysis API] Unwrap variable assignments in KtFirReferenceShortener
To get to the proper qualified expression, we need to unwrap the outer
`FirVariableAssignment` if we deal with the property access inside of
assignment expressions

^KT-60954 Fixed
2023-08-04 15:26:34 +00:00
Nikolay Lunyak 7151e6a41c [FIR] Report UNSUPPORTED_CONTEXTUAL_DECLARATION_CALL
^KT-59969 Fixed
2023-08-04 15:17:21 +00:00
Alexander Shabalin 906c27736f [K/N] CustomAllocator do not lose finalizer queue 2023-08-04 12:16:17 +00:00
Sebastian Sellmair d510c93241 [Commonizer] Support generic/simple annotation commonization (to support kotlinx.cinterop.* annotations)
^KT-59302 Verification Pending
2023-08-04 11:29:23 +00:00
Nikolay Lunyak c2ad475153 [FIR] Render outer type parameters differently 2023-08-04 11:20:40 +00:00
Nikolay Lunyak e4246e8f51 [FIR] Support ENUM_CLASS_CONSTRUCTOR_CALL
^KT-59411 Fixed
2023-08-04 11:20:40 +00:00
Nikolay Lunyak f4ffd479cc [FIR] Support TYPEALIAS_EXPANDED_TO_MALFORMED_TYPE
^KT-59410 Fixed
2023-08-04 11:20:40 +00:00
Nikolay Lunyak 97b00793b4 [FIR] Prevent duplicate direct overridden-s from substitution overrides
This change prevents going up the scopes once we find a
substitution override. Whatever we'd find by going further is not
going to be a direct overridden anymore, so it would lead to incorrect
results when collecting direct overridden-s. Without this change, we get
error modules in FT intellij.
2023-08-04 11:20:40 +00:00
Nikolay Lunyak 61448531cb [FIR] Support MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES
^KT-59408 Fixed
2023-08-04 11:20:39 +00:00
Nikolay Lunyak 9850987415 [FIR] Fix mutant extension function types
Consider the following example from
`extensionLambdasAndArrow.kt`:

```
val x4: String.() -> String = if (true) {
    { str: String -> "this" }
} else {
    { str: String -> "this" }
}
```

Because of
`coerceFirstParameterToExtensionReceiver`
the given lambdas must be of the type
`String.() -> String`, but because of a bug
they are `String.(String) -> String`. At the
same time, during inference their expected
types are, indeed, calculated correctly as
`String.() -> String`.

^KT-59394 Declined
(no more compiler crashes, #potential-feature)
2023-08-04 11:20:39 +00:00
Nikolay Lunyak bca44e5d8c [FIR] Prepend type variables with '+' rather than '_'
'++' is easier to notice than '__'.
'++++++' is easier to count than '######'.
2023-08-04 11:20:39 +00:00
Nikolay Lunyak a41273b966 [FIR] Properly add the outer type parameters
Looks like a type.

^KT-59393 Fixed
(because other differences are related to
nested typealiases)
2023-08-04 11:20:39 +00:00
Nikolay Lunyak 4bba93f633 [FIR] Implement PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL
^KT-59382 Fixed
2023-08-04 11:20:39 +00:00
Dmitriy Dolovov 00fb927624 [KLIB] ABI reader: Update ReadMe.md
^KT-54402
2023-08-04 10:56:21 +00:00
Dmitriy Dolovov 18f9ada676 [KLIB] ABI reader: More verbose KDocs
^KT-54402
2023-08-04 10:56:21 +00:00
Bogdan Mukvich a20db23b1f Do not generate SBOM for gradle test plugins
^KTI-1129
2023-08-04 10:14:08 +00:00