Commit Graph

97551 Commits

Author SHA1 Message Date
Jinseong Jeon 2dca2b4827 AA FE1.0: Fix StackOverflowError during resolution to a function w/ recursive type parameter
^KT-55825 Fixed
2023-01-12 19:48:21 +09:00
Justin Paupore 0c516f8483 [AA-FE1.0] Flatten spread arguments in annotations.
This requires plumbing a Fe10AnalysisContext through to the
KtFe10AnnotationsList, so that the context's module descriptor and
KotlinBuiltIns instance can be used to look up types correctly.

This eliminates the difference between the FIR and FE1.0 AA
implementations with regards to annotation spread argument handling.
2023-01-12 19:48:21 +09:00
Justin Paupore 212baf580c [AA-FIR] Fix handling of Java annotation parameters.
This changes FirAnnotationValueConverter to no longer rely on PSI
information when projecting annotation parameter information to AA.
For annotations defined in Java, including many meta-annotations, PSI
information is not available for the annotation. This caused those
annotation values to be projected as KtUnsupportedAnnotationValue.

Instead of using PSI information, this changes
FirAnnotationValueConverter to use the tree structure instead. Spread
and named parameter arguments are spliced into the parameter list of
their surrounding vararg calls, meaning that callers see the expected
structure. (See the varargSpreadParameter.kt test file for an example.)
2023-01-12 19:48:21 +09:00
Justin Paupore fbcde11b04 [AA] Add meta-annotation test for analysis API.
This test ensures that annotations on other annotations are properly
handled, even if those annotations are defined in Java rather than in
Kotlin.

Note that this functionality only works on FIR, and currently has bugs
that mean the result is an error type. Follow-on changes will fix the
error-type bug, and restore proper functionality for FIR.
2023-01-12 19:48:21 +09:00
Justin Paupore 686551d1eb [AA] Add support for printing meta-annotations in annotation tests.
This functionality will be used in follow-on commits.
2023-01-12 19:48:21 +09:00
Pavel Punegov a90983ca6a [K/N][test] Sync PsiFactory creation
CoreApplicationEnvironment.registerApplicationDynamicExtensionPoint should be
guarded to ensure registration won't happen concurrently

Merge-request: KT-MR-8251
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-01-12 10:39:43 +00:00
Yahor Berdnikau 37f3b7e816 Limit test versions in KotlinAndroidMppIT.testAndroidWithNewMppApp
Due to https://youtrack.jetbrains.com/issue/KT-51940/HMPP-resolves-configurations-during-configuration
2023-01-12 09:49:34 +00:00
Yahor Berdnikau e29bfffb6a Set max supported AGP version to 7.3 2023-01-12 09:49:34 +00:00
Yahor Berdnikau cd6f57eb86 Add AGP 8.0 to test versions 2023-01-12 09:49:33 +00:00
Yahor Berdnikau 90366dc914 Bump Kotlin stable version in tests to 1.6.21 2023-01-12 09:49:33 +00:00
Yahor Berdnikau fde17e60d3 Bump Gradle 8 version in tests to 8.0-rc1 2023-01-12 09:49:33 +00:00
Alexander Udalov 539f1b32a6 Minor, somewhat deduplicate code in ClassFileToSourceStubConverter 2023-01-12 02:13:08 +01:00
Nicklas Ansman Giertz 3c69a0493e KAPT: Fix error types for receivers and property setters in stubs
When using correct error types and there is a property setter or
receiver for an unknown type then the parameter type would be `Object` instead
of the error type.

This fixes KT-46965 and KT-46966
2023-01-12 02:13:08 +01:00
Nicklas Ansman Giertz dd051c1556 KAPT: Preserve the order of annotations in the stubs
Previously the annotations were included in reverse order. With this
change they are kept in the same order as in the source file.

This changes the test case for KT-23427 but that issue seems to relate
to annotation arguments that are missing, not the order of repeatable
annotations.

This fixes KT-51087
2023-01-11 22:01:22 +01:00
Stanislav Erokhin 6f5ffeb6bb [Gradle][MPP] Fix test after K/N targets deprecation 2023-01-11 17:52:29 +00:00
Stanislav Erokhin dd95256b24 [Gradle][MPP] Add console warning about deprecated K/N targets 2023-01-11 17:52:28 +00:00
Stanislav Erokhin 37ab139139 [Gradle][MPP] Deprecate several K/N targets 2023-01-11 17:52:28 +00:00
Nikolay Krasko 3d4af8e1ab Remove mentioning of maven.zip in 1.8.0 instruction
KTI-1091
2023-01-11 16:46:08 +00:00
Anton Bannykh 3f57c9b107 JS IR: use ByteBuffer for faster js ast deserialization 2023-01-11 15:56:58 +00:00
Anton Bannykh 698be0fddd JS IR: custom JS AST serialization 2023-01-11 15:56:57 +00:00
Ivan Kochurkin 978f937fa9 [FIR Serialization] Fix serialization of generated nested classifiers
^KT-55759 Fixed
2023-01-11 16:07:02 +01:00
Aleksei.Cherepanov c120b185af Regenerate and mute JPS+K2 Tests
#KT-55195 Related
2023-01-11 15:35:16 +01:00
Alexander.Likhachev 32b98135a9 [Gradle] Remove redundant thread-safety in BuildStatisticsWithKtorIT 2023-01-11 14:19:34 +00:00
Alexander.Likhachev 25004a4842 [Gradle] Fix failures in reporting were saved effectively statically 2023-01-11 14:19:34 +00:00
Alexander.Likhachev 3f3d6fc74e [Gradle] Remove unused http reporting code 2023-01-11 14:19:33 +00:00
Alexander.Likhachev 5fd17fb233 [Gradle] Try to adjust port finding logic to fix tests flakiness 2023-01-11 14:19:33 +00:00
Alexander.Likhachev bef34e9cbf [Gradle] Add test for KT-55323 2023-01-11 14:19:33 +00:00
Alexander.Likhachev ded0bb760f [Gradle] Await for ktor initialization in BuildStatisticsWithKtorIT 2023-01-11 14:19:32 +00:00
Alexander.Likhachev 4f9adf894a [Gradle] Add ability to opt-out from reporting compiler arguments
#KT-55323 Fixed
2023-01-11 14:19:32 +00:00
Igor Chevdar ebaa09a710 [K/N][gradle] Fixed some gradle integration tests 2023-01-11 14:13:05 +00:00
Igor Chevdar 84d9afafd2 [gradle] Gradle property to switch between caching orchestration machineries
This is needed only for the translation period between old (Gradle) machinery
and the one (implemented directly in the K/N compiler)
2023-01-11 14:13:05 +00:00
Igor Chevdar 9aa287257b [K/N] Refactored a bit configuration setup 2023-01-11 14:13:04 +00:00
Igor Chevdar ae56f2686a [K/N][tests] Extracted common utility functions 2023-01-11 14:13:03 +00:00
Igor Chevdar 758e9ea9ae [K/N][tests] Added a couple of tests on caches 2023-01-11 14:13:03 +00:00
Igor Chevdar 342236491a [K/N] Supported different runtime options for caches 2023-01-11 14:13:02 +00:00
Igor Chevdar 73e10b17c6 [K/N][gradle] Set klib version from gradle 2023-01-11 14:13:02 +00:00
Igor Chevdar 9c86532eb0 [K/N] Implemented cache orchestration machinery in the compiler 2023-01-11 14:13:01 +00:00
Ilya Goncharov 816971ed47 [JS] Use correct source for stdlib jar, because of lazy java source sets
^KT-55862 fixed
2023-01-11 13:35:02 +00:00
Leonid Startsev 2634303055 Fix compilation error when @Serializable expect class has explicit companion
as it may have no primary constructor (only actual class has it).

Refactor & rename Fir2IrGeneratorUtils.kt as having 'Fir' in stacktrace
when actual K2 compiler is not used is very confusing.

Fixes https://github.com/Kotlin/kotlinx.serialization/issues/2134
#KT-55683 Fixed
2023-01-11 13:00:15 +00:00
Anton Lakotka 6d3812c259 [Gradle] remove unused imports 2023-01-11 12:33:00 +00:00
Anton Lakotka 6f12fbe220 [Gradle] Keep adding dependencies to implementationMetadataConfigurationName
when IntransitiveMetadataConfiguration is disabled
2023-01-11 12:33:00 +00:00
Anton Lakotka c3274b61ee [Gradle] rename projectIdOrNull to currentBuildProjectIdOrNull for clarity 2023-01-11 12:33:00 +00:00
Anton Lakotka d70a57d689 [Gradle, Test] Remove ktor 1_5_4 and coroutines 1_4_3-native-mt test
as consuming coroutines 1.4.3-native-mt is no longer compatible with
current KGP version. Since it transitively depends on
old atomicfu of version 0.15.1. And that atomicfu library was published
with experimental publication model by old Multiplatform Gradle Plugin
2023-01-11 12:32:59 +00:00
Anton Lakotka b730bfe51e [Gradle, Test] Bump coroutines and serialization libraries version...
for MPP test. As they were way too old and no longer compatible with
MPP plugin because of the experimental publication model that were used
in earlier versions.
2023-01-11 12:32:59 +00:00
Anton Lakotka a83bdc9772 [Gradle] Don't consume old MPP dependencies with external metadata artifact
Old KGP versions published metadata artifact in separate maven module.
Current KGP should no longer support such dependencies.
2023-01-11 12:32:59 +00:00
Anton Lakotka 26c1b931c8 [Gradle] Create deprecated configurations as some projects are still...
...dependending on them.
2023-01-11 12:32:58 +00:00
Anton Lakotka ee3034328b [Gradle] Update test that resolves jsMain dependencies metadata
This behavior is incorrect and it is not supported by new
resolvable metadata dependencies configurations.
Because this configuration is expected to be resolved to metadata
artifacts only. And the fact that it gets resolvled to some platform
variant is not right. But is not critical as well.

The next steps is to remove metadata configurations from platform
source sets.
2023-01-11 12:32:58 +00:00
Anton Lakotka 0e3be164c7 [Gradle] Update kotlin-gradle-plugin-api after removing...
... `getRelatedConfigurationNames` override.

This property shouldn't be used in user scripts. It supposed to be
internal.
2023-01-11 12:32:58 +00:00
Anton Lakotka b16f404cc2 [Gradle, Test] Remove unnecessary JS test that checks metadata dependencies
Kotlin metadata dependencies shouldn't be used in JS plugin. It is
pure multiplatform thing.
2023-01-11 12:32:57 +00:00
Anton Lakotka 89acfd0a98 [Gradle] Source Dependency Resolver shouldn't check whether project...
...dependency is in current build or not. Because for IDE import it
matters that it is a source dependency. While for CLI it is not
since included builds will produce an actual klib that will be transformed
2023-01-11 12:32:57 +00:00