Commit Graph

13194 Commits

Author SHA1 Message Date
Sebastian Sellmair 685eee38ac [Gradle] GranularMetadataTransformation: Collect moduleIds in ProjectData for non Kotlin Projects
^KT-59446 Verification Pending
2023-06-20 13:55:09 +00:00
Sebastian Sellmair d3d6cdcef7 [Gradle] Implement Future<T>.map(transform)
^KT-59446 In Progress
2023-06-20 13:55:09 +00:00
Sebastian Sellmair ec46c82a13 [Gradle] Implement KT59446TransformationOnTransitiveJavaDependencyTest
^KT-59446 In Progress
2023-06-20 13:55:09 +00:00
Sebastian Sellmair d7facce71f [Gradle] KotlinPluginLifecycle: Implement .toString for better diagnostics
^KT-59446 In Progress
2023-06-20 13:55:09 +00:00
Artem Kobzar 039b5fca7a [K/JS] Use declared upper-bound types for parameters inside inlined functions body, instead of the provided types 2023-06-20 12:01:28 +00:00
Kirill Rakhman aa4ebe1991 [FIR2IR] Fix NPE on missing built-ins when using old stdlib
Specifically, this code was throwing when trying to get the symbol for
IntrinsicConstEvaluation which is only available since 1.7.

#KT-59151 Fixed
2023-06-20 11:52:21 +00:00
Leonid Startsev 3933242340 Deprecate KmModule.annotations because it is unused and always empty.
It used to store state of `-Xexperimental` Kotlin compilation flag,
but this feature was removed long ago.

#KT-59366 Fixed
2023-06-19 17:54:18 +00:00
Leonid Startsev b919a12274 Restructure KotlinClass(Module)Metadata.write/read:
- Write now returns result (Metadata or ByteArray) directly without re-wrapping it;
- annotationData/bytes is private to avoid unsoundness if external client corrupts it;
- .toXxx() do not throw exceptions anymore and deprecated. Exceptions are thrown only from read/write;
- Instead of toXxx(), properties like .kmClass should be used instead. They're initialized eagerly and return a view without copying.
- KotlinClassMetadata.Unknown is now a data object, as no useful information is exposed

#KT-59365 Fixed
2023-06-19 17:54:18 +00:00
Abduqodiri Qurbonzoda e802ee05a7 [K/N] Do not override equals/hashCode for AbstractMutableMap.values collection 2023-06-19 11:41:10 +00:00
Abduqodiri Qurbonzoda 6015e12db8 [K/N] Remove redundant AbstractMutableMap.SimpleEntry 2023-06-19 11:41:10 +00:00
Abduqodiri Qurbonzoda 3be613ced8 [K/N] Use iterator in AbstractMutableList.indexOf/lastIndexOf
Instead of access by index. To avoid performance issues
when the subclass `get(index)` has non-constant time complexity.
It also aligns behavior with JVM.
2023-06-19 11:41:10 +00:00
Abduqodiri Qurbonzoda 60cafc6623 Document the exceptions Iterator throws 2023-06-19 11:41:10 +00:00
Abduqodiri Qurbonzoda 4ae19b2b44 [K/N] Deprecate SharedImmutable annotation #KT-57837
As a part of efforts to stabilize Native stdlib.
2023-06-19 11:35:32 +00:00
Ilya Goncharov 0afe712f07 [Gradle, JS] Test on changing of synced files since 7.6 Gradle 2023-06-19 09:14:27 +00:00
Dmitrii Krasnov a5c72925a0 Fixed testSyncFrameworkMultipleArchitecturesWithCustomName
#KT-51553 In Progress
2023-06-19 10:43:46 +02:00
Abduqodiri Qurbonzoda 91f0c3c342 Clarify copyToRecursively doc about symlinks #SDP-1816
This MR is the result of the security audit that was conducted for Path recursive functions:
https://youtrack.jetbrains.com/issue/SDP-1816/Security-issues-of-Path-recursive-functions-in-StdLib#focus=Comments-27-7269144.0-0
Eliminates confusions regarding symbolic links.

Merge-request: KT-MR-10245
Merged-by: Abduqodiri Qurbonzoda <abduqodiri.qurbonzoda@jetbrains.com>
2023-06-16 22:40:56 +00:00
Abduqodiri Qurbonzoda 295fdc36ce Enum.valueOf throws inconsistent exception across multiple platforms #KT-35116 2023-06-16 22:18:20 +00:00
Timofey Solonin 19c6622ff6 [MPP] Remove obsolete targets from NewMultiplatformIT and ConfigurationCacheIT
^KT-58822
2023-06-16 18:44:03 +00:00
Timofey Solonin cba7154e8a [MPP] Remove broken execution test and replace obsolete targets in CommonizerIT with curl
^KT-58822
2023-06-16 18:05:54 +00:00
Timofey Solonin 5df50c0fca [MPP] Remove obsolete targets from CommonizerHierarchicalIT.commonizeHierarchically
^KT-58822
2023-06-16 17:20:58 +00:00
Alexander.Likhachev ac79633590 [Gradle] Register default kapt classes dir as an output
#KT-59256 Fixed
2023-06-16 15:42:59 +00:00
Alexander.Likhachev b23b9ab287 [Gradle] Add an integration test for KT-59256 2023-06-16 15:42:59 +00:00
Vyacheslav Gerasimov 80758b36e3 Build: Add NodeJs to implicitDependencies
#KTI-72
2023-06-16 12:19:01 +00:00
Anton Lakotka 4a66279f00 fixup! Fix 'commonMain cant depend on androidInstrumentedTest' test 2023-06-16 12:11:38 +00:00
Anton Lakotka deb4ed5e39 [Gradle] Add KotlinSourceSetDependsOnDefaultCompilationSourceSet diagnostic
Default Kotlin Source sets should not have any dependents.

^KT-47144 Verification Pending
2023-06-16 12:11:38 +00:00
Anton Lakotka 4084fc62ee fixup! add cycle check 2023-06-16 12:11:38 +00:00
Anton Lakotka 52cfd01380 fixup! add long diamond source set dependencies test case 2023-06-16 12:11:38 +00:00
Anton Lakotka 765c489eca fixup! Add : 2023-06-16 12:11:38 +00:00
Anton Lakotka 4a869e42c2 fixup! Remove unused import 2023-06-16 12:11:38 +00:00
Anton Lakotka 3774bafc72 fixup! Ignore other diagnostics that can appear during test run
For example when commonMain depends on commonTest there will be
CommonMainWithDependsOnDiagnostic diagnostic reported.

Or running gradle build on linux with apple targets inside will report
DisabledKotlinNativeTargets diagnostic.

KotlinSourceSetTreeDependsOnMismatchTest is not interested in them
2023-06-16 12:11:38 +00:00
Anton Lakotka acf8f5b26b [Gradle] Include android source sets to source set depends on checker
Excluding android source sets can actually bring unexpected behaviour
when, for example, androidInstrumentedTest get depends on commonMain.
In this case "nativeMain" will be reported as checked skipped android
source sets, but they are still present in dependsOn edges.

Another important aspect is that mpp+android is a majority and their
cases should be checked as well

^KT-47144 Verification Pending
2023-06-16 12:11:38 +00:00
Anton Lakotka a4705050b1 [Gradle] Improve KotlinSourceSetTreeDependsOnMismatch heuristic
Introduce "White Crow" heuristic that will report incorrect dependency
edge when there is only one source set with different Source Set Tree.

Otherwise, report all source sets from all Source Set Tree groups
to user to choose which of them are incorrect.

And cover with more tests.

^KT-47144 Verification Pending
2023-06-16 12:11:38 +00:00
Anton Lakotka 681305c8e9 [Gradle] Add KotlinSourceSetTreeDependsOnMismatch diagnostic
In Kotlin Multiplatform it is not possible to have
source set dependencies between two different SourceSet Trees.

For example commonTest can't dependOn commonMain as SourceSet dependency
instead binaries of commonMain should be included as dependency to
commonTest. Which is implemented through different mechanisms

^KT-47144 Verification Pending
2023-06-16 12:11:38 +00:00
Pavel Kirpichenkov a7ff0cfc9d Remove deprecated CInteropSettings#getDependencyConfigurationName
KT-55908
2023-06-16 11:00:42 +00:00
Dmitrii Krasnov c1026a759a Migrated cocoapods tests to new test dsl (junit 5 and gradle test kit) 2023-06-15 15:28:07 +00:00
Artem Daugel-Dauge 2abe04132b [Tests] Try to make CocoaPods installation more robust 2023-06-15 13:46:37 +00:00
Dmitrii Krasnov 39e97e5766 Migrated AppleFrameworkNonMacIT to new test dsl (junit 5 and gradle test kit)
#KT-51553 In Progress
2023-06-15 11:44:58 +00:00
Artem Daugel-Dauge b1faee5ec6 [Gradle] Configuration cache support in CocoaPods plugin and Apple frameworks tasks
^KT-54362 Verification Pending

Merge-request: KT-MR-9947
2023-06-15 10:37:28 +00:00
Dmitrii Krasnov 455aa4a76a Migrated the rest part of git connected cocoapods tests to the new test dsl (junit 5 and gradle test kit)
#KT-51553 In Progress
2023-06-15 07:06:08 +00:00
Dmitry Savvinov a4d40498c7 [mpp] Remove KMM-related diagnostic functional tests
Functional tests do not run on Mac-hosts on CI. Adding a corresponding
integration will be handled as part of more general KGP/MPP tests
rework
2023-06-14 14:36:48 +02:00
Dmitry Savvinov 768e185280 [mpp] Ignore KMM-related diagnostic tests
Currently, CI runs on Linux agents which can not work with iOS targets
2023-06-14 14:36:48 +02:00
Dmitry Savvinov 66411a92f0 [Gradle] Cleanup: remove unused classes
- CompilationFreeArgsValidator got accidentally unused at some point,
and for now we don't see a reason to enable it back. A proper solution
includes exposing K/N linker options more explicitly via DSL, which
would address the initial problem of passing linker options to compiler
accidentally

- With ComplationFreeArgsValidator removal and migration of
DisabledNativeTargetsReporter to diagnostics infra, AggregateReporter
becomes unused so it can be removed as well
2023-06-14 14:36:48 +02:00
Dmitry Savvinov e74e6759ed [Gradle] Cleanup: remove SingleWarningPerBuild API
Instead, newer infrastructure for diagnostics should be used (see
'KotlinToolingDiagnosticsCollector')
2023-06-14 14:36:48 +02:00
Dmitry Savvinov 8a5433734b [Gradle] Migrate K2-usage warning 2023-06-14 14:36:48 +02:00
Dmitry Savvinov b6a90cfe7e [Gradle] Migrate warning about using pre-HMPP dependencies to new infra 2023-06-14 14:36:48 +02:00
Dmitry Savvinov 57b71b8ea6 [Gradle] Migrate warning about not chosen JS-environment 2023-06-14 14:36:48 +02:00
Dmitry Savvinov 76c37f359a [Gradle] Migrate warning about inconsistent JVM target 2023-06-14 14:36:48 +02:00
Dmitry Savvinov 5658991fe3 [Gradle] Migrate reporting of K/N targets disabled on current host 2023-06-14 14:36:48 +02:00
Dmitry Savvinov 5a9aa43aa5 [Gradle] Migrate disabled cinterops commonization warning 2023-06-14 14:36:47 +02:00
Dmitry Savvinov 63f61685c0 [Gradle] Migrate diagnostic about empty Kotlin targets in an MPP project
Also demote it from FATAL to ERROR, as FATAL leads to pretty disruptive
UX in IDE (import fails, and you don't get a broken project, which
makes it hard to fix the root cause and declare a target)
2023-06-14 14:36:47 +02:00