Commit Graph

109551 Commits

Author SHA1 Message Date
Kirill Rakhman 69a7bf7f68 [FIR] Add equality constraint from expected type for some synthetic function calls
This fixes some cases where we infer some type variable inside one
of the branches to Nothing instead of the expected type because Nothing
appeared in some other branch.

Specifically, we add an equality instead of a subtype constraint during
completion of calls to synthetic functions for if/when, try and !!.
We don't do it when the call contains a (possibly nested) elvis or is
inside the RHS of an assignment.
Otherwise, we would prevent some smart-casts.

#KT-65882 Fixed
2024-03-05 17:38:59 +00:00
Kirill Rakhman eaef7122f6 [FIR] Update WithExpectedType.toString 2024-03-05 17:38:58 +00:00
Kirill Rakhman 0e7fc3bafe [FIR] Use correct origin for value and type parameters of synthetic functions 2024-03-05 17:38:57 +00:00
Igor Yakovlev c0f387dbd1 [Wasm] Implement IrLinkageError end enable partial linker
KT-58088
2024-03-05 17:17:32 +00:00
Vyacheslav Gerasimov 2e787c50be Build: Create GroupedByGradleVersion Gradle IT test tasks only on CI
All those tasks are displayed in the gutter when running a test making
it very long.
2024-03-05 17:12:31 +00:00
Vyacheslav Gerasimov 679e6f0504 Build: Use junit auto detection for DisabledIfNoArgumentsProvided
#KTI-1596
2024-03-05 17:12:31 +00:00
Vyacheslav Gerasimov 424a5055e2 Build: Group KGP Integration Tests by Gradle version
#KTI-1596

To avoid Gradle daemons pile up during test execution, run each Gradle
version in a separate task. Gradle daemon used for testing will be
terminated at the end of each execution preventing memory exhausting
in a low-memory environment (e.g., build agents).
2024-03-05 17:12:31 +00:00
Artem Kobzar 8d4948c3ee [K/Wasm] Generate .d.ts tests for K/Wasm in the same way as we do for K/JS ^KT-65778 Fixed 2024-03-05 15:33:56 +00:00
Nataliya.Valtman c2023142f5 Add validation for empty kotlin.build.report.json.directory property
#KT-66314: Fixed
2024-03-05 15:05:56 +00:00
Mikhail Glukhikh a77a1cf3db K1/K2: add test confirming correct work of KT-63487 case 2024-03-05 14:51:15 +00:00
Alexander Udalov 9a7d7483a3 IR: simplify IrFakeOverrideBuilder.isMoreSpecific
Using the logic from `OverridingUtil.isMoreSpecific` as a reference.
2024-03-05 14:48:23 +00:00
eugene.levenetc 5c64832c0f [ObjCExport] Fix extensions interface name
KT-66315
2024-03-05 13:38:36 +00:00
Timofey Solonin 2a445a04b0 Specify androidTarget's source sets graph in tests
^KT-65540
2024-03-05 13:38:00 +00:00
Timofey Solonin a8266eb20e Simplify set up of the resources variant in js and native targets
^KT-65540
2024-03-05 13:38:00 +00:00
Timofey Solonin 1895e480c5 Mark resources APIs in ExternalKotlinTarget with ComposeKotlinGradlePluginApi
^KT-65540
2024-03-05 13:38:00 +00:00
Timofey Solonin 9f6fb715dd Improve the creation of resolvable resources configuration
* Remove type casting for KotlinJsIrTarget
* Only create a resolvable configuration when the appropriate strategy
  is used

^KT-65540
2024-03-05 13:38:00 +00:00
Vladimir Sukharev 848cca03c0 [Tests] Add tests for KT-40180
^KT-40180 Fixed
2024-03-05 13:37:26 +00:00
Wojciech Litewka eec14f0054 [tree generator] Remove Suppress("unused") from implementation classes
Those only implement base classes, their members are not supposed
to be referenced directly (those sometimes they are).
So unused code in there can be suspicious.

On the other hand, some generated builders are truly unused, so leave
the suppression for them.
2024-03-05 13:06:03 +00:00
Timofey Solonin 737ad3cde6 Specify broken macros in legacy testing infrastructure
^KT-65542
2024-03-05 12:15:29 +00:00
Alexander Shabalin ce68a1a276 [K/N][tests] Remove native unit tests from old infra ^KTI-1571 2024-03-05 12:10:32 +00:00
cristiangarcia 57edc413a3 Make native tasks CC compatible
This allows running with CC&native:
./gradlew assemble
./gradlew :kotlin-native:bundle
./gradlew :native:native.tests:test

Required for KTI-1553
2024-03-05 11:22:20 +00:00
Mikhail Glukhikh 584d98cd72 K2: add a BB test confirming work of KT-63588 2024-03-05 11:09:51 +00:00
Alexander.Likhachev 9d88e90821 [BTA, Gradle] Share cached classloaders between builds
^KT-64353 Fixed
2024-03-05 10:51:10 +00:00
Ilya Goncharov 0ce7bdc837 [Gradle, Wasm] Fix compileSync input for production binary
^KT-66228 fixed
^KT-66159 fixed
2024-03-05 10:27:43 +00:00
Alexander Udalov 77b3f415a5 IR: fix "most specific" check in IrFakeOverrideBuilder
There were several problems with it:

1) `isMoreSpecific` should return true if a == b. Otherwise
   `isMoreSpecificThenAllOf` would never return true because it's always
   invoked with a collection that contains the candidate. K1 behaves
   similarly, `OverridingUtil.isMoreSpecific` returns true if a == b.
   So in fact, "more" should be understood as "not less" here.
2) `transitivelyMostSpecificMember` in `selectMostSpecificMember` was
   always equal to the first element, so `isMoreSpecific` was invoked
   with incorrect arguments.
3) At the end of `selectMostSpecificMember`, we selected the first
   candidate with the non-flexible return type, however only dynamic
   type was considered. We need to check `isFlexible` via type system
   instead.

 #KT-66120 Fixed
2024-03-05 09:19:38 +00:00
Dmitriy Novozhilov a08df1821f [FIR] Provide suppression from primary value parameter to property
`@Suppress` annotation has `VALUE_PARAMETER` target, so when a property
  in the primary constructor is annotated with `@Suppress` it sticks
  to the parameter. But the suppression should work for all diagnostics
  reported on the parameter **and** the property

^KT-66258 Fixed
2024-03-05 07:59:26 +00:00
Dmitriy Novozhilov 5e742884de [Test] Reproduce KT-66258 2024-03-05 07:59:26 +00:00
Kirill Rakhman 172df04c9b [FIR] Fix raw type nullability computation
Consider the nullability of the type arguments, not of the type.
This fixes a false positive ARGUMENT_TYPE_MISMATCH.

#KT-66294 Fixed
2024-03-05 07:45:01 +00:00
Dmitriy Novozhilov df878918ee [FIR] Optimize memory consumption of KtPsiSourceElement
There were two lazy properties in `KtPsiSourceElement`, which were
  rarely computed, which led to the fact that source element retained
  a lot of memory for those lazy delegates

^KT-66172 Fixed
2024-03-05 07:03:35 +00:00
Alexander Udalov 19cc7981dc Update test data for IR text tests 2024-03-05 06:59:11 +00:00
Alexander Udalov 3bb2ea10b6 K2: add inline JVM target version checker
#KT-60777 Fixed
2024-03-04 22:25:36 +00:00
Alexander Udalov d475371394 FIR: remove default parameter values from FirJvmSessionFactory
Most of them are passed at all call sites anyway. Having default values
makes it easy to forget to pass some meaningful argument (especially
`LanguageVersionSettingsImpl.DEFAULT` seems scary), and complicates
refactoring.
2024-03-04 22:25:36 +00:00
Alexander Udalov bacb2f0d15 K1 JVM: simplify InlinePlatformCompatibilityChecker 2024-03-04 22:25:36 +00:00
Vyacheslav Gerasimov 596aab1673 Build: Increase max metaspace size for Codegen Tests
#KTI-1610
2024-03-04 22:12:24 +00:00
Vyacheslav Gerasimov c3ab87f52b Build: Use reservedCodeCacheSizeMb in test process heap size calculation
#KTI-1609
2024-03-04 22:12:24 +00:00
Vyacheslav Gerasimov 93e8b18cde Build: Limit default max metaspace for test processes
Some test proceses grow much bigger than max heap size. Metaspace also
should be limited to avoid OOM Killer events.

 #KTI-1609
2024-03-04 22:12:24 +00:00
Alexander Shabalin 4e6451c25e [K/N] Use @Escapes for all external funs with escaping arguments 2024-03-04 21:04:04 +00:00
Alexander Shabalin 8d81fd6647 [K/N] Include frameworks via umbrella headers only ^KT-65409 2024-03-04 20:53:05 +00:00
Vladimir Dolzhenko ca88e6e834 Try to acquire LC lock with a smaller time window with checkCancels
#KTIJ-28688


Merge-request: KT-MR-14735
Merged-by: Vladimir Dolzhenko <Vladimir.Dolzhenko@jetbrains.com>
2024-03-04 16:57:32 +00:00
anzhela.sukhanova 82255d5ee8 [Test] KT-61360: add tests for the IrFakeOverrideBuilder
Add tests for fake overrides with focus on java interoperability

Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
2024-03-04 16:21:02 +00:00
Artem Kobzar 30aae741a6 [K/Wasm] Fix DROP location 2024-03-04 15:05:23 +00:00
Artem Kobzar 4b57f38e4e [K/JS] Regenerate tests after merging two different changes into TS generator 2024-03-04 14:40:40 +00:00
Pavel Kunyavskiy 8d725753f8 [Fir2IR] Don't build overrides for expect classes.
We don't need them except for checking.
And checking doesn't work in any reasonable way anyway.

^KT-65249 Fixed
2024-03-04 14:12:48 +00:00
Wojciech Litewka baaaf4567e [IR] Convert methods in IrConstantValue classes to extension functions
to get rid of custom logic inside generated classes.

#KT-65773 In Progress
2024-03-04 14:07:06 +00:00
Wojciech Litewka 42668e2bf6 [IR] Remove IrFactory property from IrBlockBody and IrExpressionBody
in effort to simplify implementation classes when possible.

Those two properties always point to IrFactoryImpl, so it may as well
be used directly.

#KT-65773 In Progress
2024-03-04 14:07:06 +00:00
Wojciech Litewka 49db500369 [IR] Drop IrErrorCallExpressionImpl.addArgument
It was a remnant from the original IR implementation.

#KT-65773 In Progress
2024-03-04 14:07:06 +00:00
Wojciech Litewka 4c7c123fe8 [IR] Drop IrSyntheticBodyImpl.toString
It was the only IrElement with custom toString. And there is
a pending MR, which will override toString in IrElementBase, so this one
would be useless.

#KT-65773 In Progress
2024-03-04 14:07:06 +00:00
Brian Norman 8320668485 [FIR] Adding a test case to show resolution of KT-29559 in K2 2024-03-04 13:34:04 +00:00
Stanislav Ruban 2de0e4b8d2 [FIR][checkers] Respect ClassKind.INTERFACE in FirRegularClass.canHaveAbstractDeclaration
A Kotlin interface can have abstract members regardless of its modality. However, this invariant was previously ignored by FIR checkers. As a result, false-positive `ABSTRACT_<MEMBER>_IN_NON_ABSTRACT_CLASS` errors were being reported in explicitly non-abstract interfaces.

This commit makes a relevant FIR utility used by relevant FIR checkers aware of the aforementioned invariant.

#KT-66260 Fixed
2024-03-04 12:00:18 +00:00
Stanislav Ruban e0b83def00 [tests] Add test data for KT-66260 2024-03-04 12:00:18 +00:00