Commit Graph

99966 Commits

Author SHA1 Message Date
Vladislav Grechko bd7bce9f97 [JVM IR] Get rid of MfvcNodeWithSubnodesImpl class
`MfvcNodeWithSubnodesImpl` has two problems:
- Naming: its name makes one think that the class is inherited from
`MfvcNode` and implements `MfvcNodeWithSubnodes`.However, both
statements are false.
- Semantics: the class only makes unnecessary indirection between its
properties and code of `MfvcNodeWithSubnodes` class
2023-04-04 11:38:15 +00:00
Igor Yakovlev 8102744e00 [Serialization] Fix serialization test data 2023-04-04 11:04:18 +00:00
Igor Yakovlev 81ceb856bb [Serialization] Fix invalid int array creation 2023-04-04 11:04:18 +00:00
Igor Yakovlev 8cb1fca299 [Serialization] Add wasm target platform to serialization plugin 2023-04-04 11:04:17 +00:00
Igor Yakovlev e990c8efd2 [Serialization] Fix invalid ir type for serialize generator 2023-04-04 11:04:17 +00:00
Igor Yakovlev b4d6482581 [Serialization] Fix invalid ir type for deserialize generator 2023-04-04 11:04:17 +00:00
Anna Kozlova 3496f69f33 [cfg] don't traverse annotation arguments for decompiled code
^ KT-57768
decompiled code have no annotation arguments expressions,
but search for them causes decompiling of code
which is slow and unneeded
2023-04-04 10:55:22 +00:00
Kirill Rakhman d6e14f37a7 [FIR] Let FirTopLevelFunctionsChecker run on all platforms
Use a session component to control platform specific suppression logic.
2023-04-04 10:36:40 +00:00
Kirill Rakhman 085df96afe [FIR] Make Volatile diagnostics applicable to kotlin.concurrent.Volatile
#KT-55628 Fixed
2023-04-04 10:36:39 +00:00
Kirill Rakhman 91adb88eff [K1] Make Volatile diagnostics applicable to kotlin.concurrent.Volatile
#KT-55628
2023-04-04 10:36:39 +00:00
Kirill Rakhman e93628d0e6 [Tests] Fix stdlib in common diagnostic tests modules 2023-04-04 10:36:38 +00:00
Pavel Kunyavskiy 09474758ab [K/N] Fix typo in language feature name 2023-04-04 09:13:36 +00:00
nataliya.valtman 6330def427 Fix kotlin compiler arg test plugin's dependencies 2023-04-03 18:03:23 +00:00
Svyatoslav Scherbina cae7f90b59 Bump Kotlin/Native version to 1.9.0-dev-4844 2023-04-03 17:44:40 +00:00
Mikhail Glukhikh d76b32daf2 K1: rename 'kotlinCall' -> 'selectorCall' in relevant places 2023-04-03 16:35:55 +00:00
Mikhail Glukhikh bd27ec840c K1: report swallowed diagnostic about receiver type mismatch
#KT-55056 Fixed
2023-04-03 16:35:55 +00:00
Vladimir Sukharev 176325eaa7 [K2/N] KT-55598: Use InteropBuiltIns only in KonanSymbols and DescriptorsLookup
Merge-request: KT-MR-9431
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-04-03 14:05:43 +00:00
Vladimir Sukharev 23c3d0c36d [K2/N] KT-57716: Workaround by not verifying IR for interop_objc_smoke
Merge-request: KT-MR-9442
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-04-03 14:03:06 +00:00
Leonid Shalupov 7480befe32 Replace reflection-based compiler arguments copying with generated code
Using of Kotlin reflection for simple operations like bean management is very slow

First time initialization time: 261 ms for `copyBean(K2JVMCompilerArguments())`
Subsequent calls of `copyBean(K2JVMCompilerArguments())` take 1.7 ms per call

Unfortunately compiler argument handling is also used in Kotlin IntelliJ plugin
to parse facet settings. Big projects may have thousands of Kotlin facets

The same `ArgumentUtilsKt.copyProperties` frame is seen across various freezes:
IDEA-252440 2-3 minutes freeze on Kotlin project reimporting in last 203 eap
IDEA-253107 A lot of short freezes (1-3 sec) during Kotlin project development
KTIJ-23501 Make main run configuration detection lighter
KTIJ-22435 Unresponsive UI with 100% cpu

Reflection issue:
KT-56358 KClasses.getMemberProperties takes too much time

This commit replaces all reflection stuff with a simple code generation
Now `K2JVMCompilerArguments().clone()` goes to hard-to-measure time
2023-04-03 15:47:35 +02:00
Denis.Zharkov 56557fb8ff K2: Fix generic inference case with !! synthetic call
Result of the `checkNotNull` calls should always be a non-nullable
values.
The simplest idea how to acheive it is adding not-nullable Any bound
to the type parameter declaration.

Existing comment stating about impossibility of such bound seems to be
not 100% correct because it doesn't take into account presence of
definitely-non-nullable X & Any types that allow described case with
nullable generic.

^KT-55804 Fixed
2023-04-03 12:44:52 +00:00
Abduqodiri Qurbonzoda 352316ba9f [K/N] Add @SinceKotlin for ObjC annotations #KT-57197 2023-04-03 12:21:31 +00:00
Dmitriy Novozhilov d7d7620db2 [FIR2IR] Correctly calculate signature for non-dynamic calls on dynamic receiver
If dispatch receiver is dynamic and call on it is not dynamic that means
  that this call was resolved to some specific declaration because of
  smartcast. So we should use original type of this declaration as
  dispatch receiver during calculation of IdSignature instead of Any
  (which came from dynamic type). Otherwise we will have two different
  signatures for the same member declaration

^KT-57682 Fixed
2023-04-03 12:20:01 +00:00
Sebastian Sellmair e3c7241abd [Gradle] ModuleName.orNull: Use predefined 'instrumentedTest'
^KT-56654 Verification Pending
2023-04-03 11:24:21 +00:00
Sebastian Sellmair cdca6da679 [Gradle] KotlinSourceSet.commonizerTarget: Use awaitPlatformCompilations instead of Stage
^KT-56654 Verification Pending
2023-04-03 11:24:21 +00:00
Sebastian Sellmair 8fe444f15e [Gradle] Migrate LenientFuture<T>: Future<T?> to LenientFuture: Future<T>
^KT-56654 Verification Pending
2023-04-03 11:24:21 +00:00
Sebastian Sellmair 262b45405d [Gradle] Change signature of top-level await(Stage) to Stage.await()
^KT-56654 Verification Pending
2023-04-03 11:24:20 +00:00
Sebastian Sellmair 775e08e41d [Gradle] Property.awaitFinalValue: Support generic properties
... even when not declared as lifecycle aware

^KT-56654 Verification Pending
2023-04-03 11:24:20 +00:00
Sebastian Sellmair 2043c9db8e [Gradle] Rename Kotlin~Multiplatfom~PluginLifecycleCoroutineContextElement
^KT-56654 Verification Pending
2023-04-03 11:24:19 +00:00
Sebastian Sellmair a7a689841f [Gradle] Convert KotlinTargetHierarchy.ModuleName to regular class (instead of data)
^KT-56654 Verification Pending
2023-04-03 11:24:19 +00:00
Sebastian Sellmair b5d188d44e [Gradle] Remove suspend functions from KotlinTargetHierarchyBuilder API
^KT-56654 Verification Pending
2023-04-03 11:24:18 +00:00
Sebastian Sellmair 9b8611ea9b [Gradle] RestrictedLifecycleStages: Reuse ContinuationInterceptor as Key
^KT-34662 Verification Pending
2023-04-03 11:24:18 +00:00
Sebastian Sellmair e76119b5eb [Gradle] KotlinPluginLifecycle: Remove unnecessary before stages
^KT-34662 Verification Pending
2023-04-03 11:24:18 +00:00
Sebastian Sellmair 4a896a2579 [Gradle] invokeWhenCreated: Lenient until last stage of lifecycle
^KT-34662 Verification Pending
2023-04-03 11:24:17 +00:00
Sebastian Sellmair 28fa5423a1 [Gradle] warnAboutIncorrectDependencies: Use launch instead of whenEvaluated
^KT-34662 Verification Pending
2023-04-03 11:24:17 +00:00
Sebastian Sellmair c94c4df046 [Gradle] KotlinMetadataTargetConfigurator: Support metadataCompilationsCreated for !isKotlinGranularMetadataEnabled
^KT-34662 Verification Pending
2023-04-03 11:24:17 +00:00
Sebastian Sellmair ab81e92932 [Gradle] KotlinSoftwareComponent: Use future instead of lazy
^KT-34662 Verification Pending
2023-04-03 11:24:16 +00:00
Sebastian Sellmair 50f4531c77 [Gradle] UnusedSourceSetsChecker: Use lifecycle instead of whenEvaluated
^KT-34662 Verification Pending
2023-04-03 11:24:16 +00:00
Sebastian Sellmair 15ca5412d2 [Gradle] sourcesJarTask: Wait for compilations to finalise
^KT-34662 Verification Pending
2023-04-03 11:24:15 +00:00
Sebastian Sellmair aa969fe764 [Gradle] Implement lazyFuture as Future<T> instead of Lazy<Future<T>>
^KT-34662 Verification Pending
2023-04-03 11:24:15 +00:00
Sebastian Sellmair 510eca9da1 [Gradle] Implement source set inspection methods as 'suspend'
this includes:
- isNativeSourceSet
- getCommonSourceSetsForMetadataCompilation
- getPublishedPlatformCompilations
- getHostSpecificSourceSets
- getHostSpecificMainSharedSourceSets
- allPublishableCommonSourceSets

As all of those methods are heavily lifecycle aware and might
return bad values when called to early

^KT-34662 Verification Pending
2023-04-03 11:24:15 +00:00
Sebastian Sellmair eb9936397b [Gradle] Future: Support Gradle Configuration Cache
^KT-34662 Verification Pending
2023-04-03 11:24:14 +00:00
Sebastian Sellmair ea48b52d43 [Gradle] GranularMetadataTransformation: ProjectData: Use Future instead of lambda
^KT-34662 Verification Pending
2023-04-03 11:24:14 +00:00
Sebastian Sellmair 7c65d00f29 [Gradle] Introduce lazyFuture and futureExtension methods
^KT-34662 Verification Pending
2023-04-03 11:24:14 +00:00
Sebastian Sellmair 7192b4c5af [Gradle] KotlinPluginLifecycle: Do not suspend when 'isFinished'
^KT-34662 Verification Pending
2023-04-03 11:24:13 +00:00
Sebastian Sellmair b064493c7b [Gradle] Implement CInteropCommonizerDependent factories as safe suspend functions
^KT-34662 Verification Pending
2023-04-03 11:24:13 +00:00
Sebastian Sellmair 9517667081 [Gradle] NativeExternalDependenciesIT: Build dependencies file at execution time
^KT-34662 Verification Pending
2023-04-03 11:24:13 +00:00
Sebastian Sellmair 4264e49970 [Gradle] Add test `test - launchInState - Configure`
^KT-34662 Verification Pending
2023-04-03 11:24:12 +00:00
Sebastian Sellmair b6a215d681 [Gradle] Implement 'findMetadataCompilation' in safe way
(replacing old getMetadataCompilationsForSourceSet)

^KT-34662 Verification Pending
2023-04-03 11:24:12 +00:00
Sebastian Sellmair 4c653a4297 [Gradle] KotlinPluginLifecycle: Ensure no enqueued actions will be missed
^KT-34662 Verification Pending
2023-04-03 11:24:11 +00:00
Sebastian Sellmair 4ba2107ec5 [Gradle] checkSourceSetVisibilityRequirements: Run in 'ReadyForExecution'
^KT-34662 Verification Pending
2023-04-03 11:24:11 +00:00