Commit Graph

105457 Commits

Author SHA1 Message Date
vladislav.grechko 897eab6b50 Do not add nullability annotations to the methods of local classes
Nullability annotations are useless for the methods of local classes
due to their restricted scope.

^KT-62513: Fixed
2023-10-18 19:48:38 +00:00
Sergej Jaskiewicz 417aa236fb [FIR/IR generator] Factor out printing the preamble in generated files 2023-10-18 18:42:40 +00:00
strangepleasures a33da2a1c6 Temporarily disable Kapt4IT and KaptIncrementalIT and the descendants.
Those tests are currently producing OOMs on Windows
2023-10-18 17:40:29 +00:00
Hung Nguyen 5ceebec331 Cache Gradle properties with a BuildService to improve performance
Currently, the performance overhead when loading a Gradle property
consists of:
  1. Creating a Provider
  2. Resolving the Provider

Both steps are performed even when the same property was loaded before.
That means this overhead will multiply when there are a large number of
property read requests (e.g., in KT-62496, the tested project 400,000
read requests for only 17 properties).

To improve performance, we will now cache both steps with a
BuildService.

With this commit, configuration time for the tested project returns to
the same level before commit d6becee where the performance regression
happened (that commit can't be reverted because it introduced
`Provider`s which are required for proper Gradle usage).

Test: Manually verified on the large project in KT-62496

^KT-62496 Fixed
2023-10-18 17:27:32 +00:00
Svyatoslav Scherbina 141f2e3234 Bump Kotlin/Native version in KGP to 2.0.0-dev-5387 2023-10-18 15:27:08 +00:00
Artem Kobzar d625d9a988 [K/JS] Fix ES6-classes compilation for objects without constructor generated by plugins 2023-10-18 13:29:15 +00:00
Nikolay Lunyak ba9baa7457 [FIR] Don't enable features without sinceKotlin in Progressive Mode
There are two BUG_FIX features that have
been added to the compiler, without a clear
decision to enable them somewhere in the
future. Since there is no decision to
force users rewrite their code, such
features should not be enabled in
Progressive Mode.

^KT-62644 Fixed
^KT-62143 Fixed
2023-10-18 13:16:10 +00:00
Dmitriy Novozhilov 9366847e96 [FIR2IR] Properly approximate intersection types during fir2ir conversion
^KT-62544 Fixed
2023-10-18 13:02:11 +00:00
Sergej Jaskiewicz 8c6da9fddb [FIR/IR generator] Deduplicate interface/abstract class configuration 2023-10-18 12:39:39 +00:00
Alejandro Serrano Mena b231e69cd3 Remove unneeded K1/K2 split in test 2023-10-18 12:34:58 +00:00
Alejandro Serrano Mena b9b15cba08 [K2] Warn about deprecation and opt-in markers for overrides of Any
^KT-62620 Fixed

Include opt-in markers in the diagnostics
2023-10-18 12:34:58 +00:00
Sebastian Sellmair 6afe716238 [Gradle] Implement CustomizeKotlinDependenciesSetupAction
KT-61634
2023-10-18 12:22:09 +00:00
Sebastian Sellmair eba13b5b91 [Gradle] KotlinSingleTargetExtension: Implement lateinit target as Future
It is not obvious from 'KotlinSingleTargetExtension' that calling
into 'target' is unsafe and it might throw.

Ordering code (especially with Android) is hard:
It is not clear when the target will become available.

The Future (and forAllTargets implementation) is intended
to make working with targets generically more safe.

KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 77376f0d28 [Gradle] Implement KotlinMultiplatformSourceSetSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 382482a26c [Gradle] Implement MultiplatformBuildStatsReportSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 070b80a05f [Gradle] Implement KotlinMetadataTargetSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 0ccb98f579 [Gradle] Implement KotlinArtifactsExtensionSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair cc0a9e1cc1 [Gradle] Implement MultiplatformPublishingSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 822cb7f545 [Gradle] Implement UserDefinedAttributesSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair c22a7bf802 [Gradle] Implement LanguageSettingsSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 8ca1c06cf2 [Gradle] Implement SyncLanguageSettingsWithKotlinExtensionSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 58385ef64f [Gradle] Implement ScriptingGradleSubpluginSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 9ca22fa999 [Gradle] Implement GlobalProjectStructureMetadataStorageSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 2b823cba1e [Gradle] Implement IdeMultiplatformImportSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 246deafd6d [Gradle] Implement IdeResolveDependenciesTaskSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 9d01ad7c3b [Gradle] Implement CInteropCommonizedCInteropApiElementsConfigurationsSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair b9db036053 [Gradle] Implement AddBuildListenerForXCodeSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 3be2eb9b31 [Gradle] Implement CreateFatFrameworksSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair c7b4057dab [Gradle] Implement KotlinProjectSetupCoroutine
as util to easily launch configure action as suspending code

KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 628bd7a6be [Gradle] Implement KotlinMultiplatformAndroidGradlePluginCompatibilityChecker
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 234e5735e3 [Gradle] Implement KotlinToolingDiagnosticsSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 1c568c2a10 [Gradle] Implement RegisterBuildKotlinToolingMetadataTask
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 13492d3316 [Gradle] Implement AddNpmDependencyExtensionProjectSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair ff6b883cb4 [Gradle] Implement KotlinProjectSetupAction extensionPoint
KT-61634
2023-10-18 12:22:07 +00:00
Dmitriy Novozhilov 43929398da [FIR] Pass implications from subject of safe call in DFA
^KT-59689 Fixed
2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov 5d3402339e [FIR DFA] Rename Persistent.logicStatements -> implications 2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov dc08e3bf99 [FIR] Cleanup formatting in DFA code 2023-10-18 12:17:44 +00:00
Sergej Jaskiewicz 9a4c28498c [FIR generator] Deduplicate the logic of needPureAbstractElement 2023-10-18 11:12:55 +00:00
Alexander Kuznetsov 45792c2e60 [Analysis API] support unsigned arrays creation functions
IDEA-335151, KT-62663


Merge-request: KT-MR-12614
Merged-by: Alexander Kuznetsov <Aleksander.Kuznetsov@jetbrains.com>
2023-10-18 10:53:52 +00:00
Alexander Shabalin 4922223bec [K/N] Refactor :kotlin-native:dependencies
Move K/N dependencies handling logic into gradle plugins:

`NativeDependenciesDownloader` is instantiated in
`:kotlin-native:dependencies` and provides a single configuration that
contains all directories with the dependencies. The configuration has
a variant for each target.

`NativeDependencies` is instantiated by projects that require native
dependencies (i.e. previously used to depend on
`:kotlin-native:dependencies:update`). This plugin creates a configuration
that by default depends on `:kotlin-native:dependencies`. Its extension
provides `llvmDependency`, `libffiDependency`, `hostPlatformDependency`,
`targetDependency()` to depend on the parts needed for the project and
provides accessors `llvmPath`, `libffiPath`, `hostPlatform` that are
safe to use during configuration time, but which do not automatically
resolve those dependencies.

`llvmDir`, `*LibffiDir` properties on `:kotlin-native` are removed
completely, as their use is replaced by `NativeDependencies`. As a
consequence, `evaluationDependsOn(":kotlin-native:dependencies")` is
also gone.

All direct dependencies on `:kotlin-native:dependencies:update` are
replaced with dependencies on specific parts via `NativeDependencies`
2023-10-18 10:53:12 +00:00
Nataliya.Valtman 9de791b9ac Create FUS Gradle plugin
fus-statistics-gradle-plugin can be used by any other Gradle plugins to
collect additional metrics for FUS.

KT-59627
2023-10-18 10:32:11 +00:00
Mikhail Glukhikh 4ed7504d87 FIR deserializer: apply attributes on type parameter-based types
#KT-62578 Fixed
2023-10-18 10:30:31 +00:00
Dmitrii Krasnov 1d95927582 [Gradle IT] Added property for enabling/disabling k/n from master in IT
#KT-45978 Ready for Review
2023-10-18 09:24:27 +00:00
Dmitriy Novozhilov ef3d3a9724 [Metadata] Update tests according to KT-62580, KT-62581 and KT-62582 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov fa69d4837b [AA] Add workaround for KT-62578 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 605a567e10 [AA] Add workaround for KT-62544 2023-10-18 07:59:27 +00:00
Alexander.Likhachev 274198d8f3 [Build] Return the logic to force LV=1.9 for KGP and its dependencies
KT-61951
KT-61449
2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 5602fcdf76 [Build] Handle renderDiagnosticNames build property in stdlib and dom-api-compat modules 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 704e2ef5c5 Suppress K2 specific warnings in the codebase
^KT-62472
2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 9e66a7b999 Workaround KT-62473 in the codebase 2023-10-18 07:59:27 +00:00