Commit Graph

110089 Commits

Author SHA1 Message Date
Marco Pennekamp 9bed2e974b [AA] Add KotlinModuleDependentsProvider.getRefinementDependents
- When calculating sealed inheritors for expect classes, we need to
  expand the search scope to modules with a depends-on/refinement
  dependency on the module containing the expect class, as these modules
  may contain additional sealed inheritors. `getRefinementDependents`
  allows us to get these refinement dependents to build the proper
  search scope.

^KT-66013
2024-03-18 21:14:35 +00:00
Marco Pennekamp 31a65871f2 [AA] Add KotlinDirectInheritorsProvider
- Direct inheritors are needed to calculate sealed inheritors. The new
  `KotlinDirectInheritorsProvider` can be used to implement a common
  sealed inheritors provider in LL FIR.

^KT-66013
2024-03-18 21:14:35 +00:00
Mikhail Glukhikh 3fbb7bc920 K2: report MISSING_DEPENDENCY_CLASS in case of error type of expression
This commit is intended to get a more clear diagnostic in case when
the type checker creates an inconsistent error type due to some
classifier inaccessibility. Before this commit, we reported simply
ARGUMENT_TYPE_MISMATCH (see test). Now we report also
MISSING_DEPENDENCY_CLASS by analyzing an error type of a qualified
expression.

#KT-66356 Fixed
2024-03-18 18:11:14 +00:00
Mikhail Glukhikh 2d755aabe7 K1/K2: add test data for KT-66356 2024-03-18 18:11:14 +00:00
Egor Kulikov 36b89f5e84 [FIR] Fix resolve for java synthetic properties in KDoc
^KT-62880 fixed
2024-03-18 17:35:32 +00:00
Leonid Startsev 7c8c65d291 Call a specified function in intrinsic if polymorphic serializer is provided for interface.
This prioritizes module contents over default polymorphic serializer.

See https://github.com/Kotlin/kotlinx.serialization/issues/2060 and https://github.com/Kotlin/kotlinx.serialization/pull/2565
2024-03-18 17:21:16 +00:00
Igor Yakovlev c8f84a74b9 [Wasm] Fix invalid value passing through externalized FrameworkAdapter
Fixed #KT-66440
2024-03-18 17:12:04 +00:00
Stanislav Ruban 29efe8645c [FIR][checkers][JS] Expand type aliases to supertypes in FirJsInheritanceClassChecker
#KT-66673 Fixed
2024-03-18 15:57:59 +00:00
Stanislav Ruban 1f3d318cae [tests][FIR][checkers][JS] Add test data for KT-66673 2024-03-18 15:57:59 +00:00
Kirill Rakhman 672512d19d [FE] Skip CST computation if list of types has exactly one entry
Otherwise, we can get in a situation where the single item is flexible,
and we replace its attributes with the attribute of the lower bound,
which messes up `EnhancedTypeForWarningAttribute`.

#KT-65193 Fixed
2024-03-18 15:52:50 +00:00
Kirill Rakhman 19cc739118 [Tests] Reproduce #KT-65193 2024-03-18 15:52:50 +00:00
Dmitrii Krasnov ffef1630dd [Gradle] Added provisioned.ok after k/n bundle installation
Added provisioned.ok file to ensure
that Kotlin Native bundle has been successfully installed.

^KT-66309 Fixed
2024-03-18 13:35:41 +00:00
Bogdan Mukvich e72bac333f Update SPDX gradle plugin
* contains local license cache
* add more info to license parsing exception
https://github.com/Badya/spdx-gradle-plugin/commit/9802dbe05f9462c9e24f5a62af4678754d367648

KTI-1630
2024-03-18 12:56:50 +00:00
Wojciech Litewka 6af930fc0e Partially revert "[IR] Hide constructors of implementation classes behind factory functions"
To restore binary compatibility with a compiler plugin used in
one of user projects.

#KT-66636 Fixed
2024-03-18 12:17:52 +00:00
Alexander Udalov e007153ae6 Parcelize: remove testData for old JVM backend
Old JVM backend implementation was removed in 163a052f98 along with
tests, but .asm.txt files were not removed.
2024-03-18 12:06:36 +00:00
Sebastian Sellmair 426d71b088 [aa-klib-reader] Only resolve symbols from the associated library/sourceFile
Previously the addresses were resolved by only respecting
CallableId or ClassId. This however, could lead to
resolving symbols that were not defined in the klib which
initially provided the declaration address.

E.g. this commit adds a test in `GetSymbolsTest`, where
```
// A.kt
private fun foo() = 42

// B.kt
private fun foo() = 42
```

In this case the two source files (A.kt and B.kt) defined
two distinct addresses for `foo`. However: Resolving
any of those two addresses would resolve both functions (A&B), which
is not expected.

^KT-66271 Fixed
2024-03-18 10:13:57 +00:00
Sebastian Sellmair 6b98602afc [Analysis Api] Expose klibSourceFile via KtKlibSourceFileProviderMixIn
This `klibSourceFile` information is deserialized from klibs
to retain the information of the original SourceFile location
of a declaration.

^KT-66271 Fixed
2024-03-18 10:13:57 +00:00
Sebastian Sellmair 6d8a4a28af [FIR] Deserialize Klib KlibMetadataProtoBuf. classFile, functionFile & propertyFile
klibs provide information about the container source file
in the KlibMetadataProtoBuf extensions for functions,
properties and classes.

This information is deserialized and attached to the
`klibSourceFile` extension (stored in FirDeclarationDataRegistry)

^KT-66271 Fixed
2024-03-18 10:13:57 +00:00
Kirill Rakhman 85a1d67d19 [FIR] Fix giant type produced by CST
#KT-65704 Fixed
2024-03-18 08:41:26 +00:00
Kirill Rakhman 81c0ee471f [Tests] Reproduce #KT-65704 2024-03-18 08:41:26 +00:00
Ilya Goncharov 8b258426ee [Wasm]Log webpack result only in there was infrastructure logging before 2024-03-16 09:44:51 +00:00
Vladimir Sukharev 0ae7c66fc8 [Tests] Drop DCE tests
^KT-44602
2024-03-16 07:50:33 +00:00
Vladimir Sukharev e03af07a1c [Tests] Revive KlibEvolutionTests
Allows CI testing for KT-44602, KT-44604, KT-44598, KT-44599, KT-66342

^KT-44602
2024-03-16 07:50:33 +00:00
Dmitriy Dolovov a007551574 Revert "[K/N] add header_cache output type"
This reverts commit 84341a9e25.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov 722acc028a Revert "[K/N] add testing setup for header klibs and caches"
This reverts commit a89893a2c5.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov ce6021e11d Revert "[K/N] serialize field names to caches"
This reverts commit 1b521d564f.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov a78d498e36 Revert "[K/N] add flag to klib manifest for header klibs"
This reverts commit 59f0c0464b.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov de3ad3cd3a Revert "[K/N] deserialize inline functions for header klibs"
This reverts commit a481f35450.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov dc66a53611 Revert "[K/N] remove class field types from caches"
This reverts commit 1f1522b787.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov 0df9b4242c Revert "[K/N] do not save klib hash in header caches"
This reverts commit 612caf13cf.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov ef814fe76e Revert "[K/N] skip consistency check for header caches"
This reverts commit d845e7c3f6.
2024-03-15 22:32:50 +01:00
Dmitriy Dolovov 23ee7cedfa Revert "[K/N] skip lowerings for header caches"
This reverts commit cf2135aaa4.
2024-03-15 22:32:50 +01:00
Nataliya.Valtman 762927410a Use snapshot version for kotlin native when kotlin.native.enabled=true
#KT-64046: Fixed
2024-03-15 18:30:16 +00:00
Leonid Startsev 69ad68ca83 Make intrinsics more consistent with reflective serializer() lookup
Intrinsic should not look into use-site `@Serializable(with)` annotations.

#KT-64920 Fixed
2024-03-15 17:29:48 +00:00
Stanislav Ruban a781a08386 [tests] Fix KMP test data affected by 9d566465
Affected test data was in a correct state in the corresponding MR branch, but that state was invalidated by the appearance of 9d566465 in the master branch. Because the MR branch in question was created and checked via CI runs before 9d566465 was committed to master, the discrepancy couldn't be caught by MR quality gates.
2024-03-15 17:00:03 +00:00
Sergej Jaskiewicz bbb91d7871 [build] Update a comment in gradle.properties 2024-03-15 15:07:13 +00:00
Sergej Jaskiewicz 1476b89ea3 [build] Forward the JDK_21_0 environment variable to tests 2024-03-15 15:07:13 +00:00
Alexander Udalov 5cbaf077f3 JVM: remove FilteredJvmDiagnostics
The purpose of this class was to avoid reporting conflicting JVM
signatures / accidental override errors when there's a similar (e.g.
conflicting overloads) diagnostic already reported.

It was not used meaningfully because it only affected diagnostics
reported by the old JVM backend. Also, in real life, backend diagnostics
would not be reported anyway in most cases because backend is not even
run if there's an error after frontend.
2024-03-15 14:39:56 +00:00
Alexander Udalov b4d65fe5cd JVM: remove obsolete code for reporting JVM backend diagnostics
The last remaining usages from diagnostic tests were removed in previous
commits.
2024-03-15 14:39:56 +00:00
Alexander Udalov 32c8664f71 Tests: remove JVM diagnostics from AbstractDiagnosticsTest
There's no behavior specific for JVM backend diagnostics in any of the
affected tests, and this code is using an incorrect way to obtain those
diagnostics, so it should be removed anyway.
2024-03-15 14:39:56 +00:00
Alexander Udalov 88d159ec65 IR: minor, update the comment about K2 kapt in IrGenerationExtension
K2 kapt does use stub generation in the end after all, but using the
analysis API instead of the IR backend.
2024-03-15 14:32:39 +00:00
Nataliya.Valtman 76d555e5d6 Add FUS metrics for power-assert compiler plugin usage
#KT-63619: Fixed
2024-03-15 13:53:50 +00:00
Ilya Goncharov 8a9fb7d954 [Wasm] Print result of webpack and webpack process not into error log level, print everything from webpack to info log
^KT-64601 fixed
2024-03-15 13:32:45 +00:00
Anton Lakotka 2880082c9a [Gradle] Test for KLIB manifest in CompositeMetadataArtifactImpl
This should protect from cases when CompositeMetadataArtifact got
polluted due to some bugs or user misconfiguration.

One of the cases is when resource file is added to common source set.
In this case due to KT-66563 bug, resources will be mixed in to the
KLIB content. But if for some source set there is no sources.
Then in composite metadata artifact will be only the resources.
And previous implementation of CompositeMetadataArtifactImpl treated
that content as Metadata KLIB, however the metadata compiler didn't.
And thus it was failing with. This change makes it stricter.

Now it checks for `default/manifest` entry. This entry is considered
a sane check for KLIB content.

^KT-65315 Verification Pending
2024-03-15 13:13:47 +00:00
Anton Lakotka 322940f228 [Gradle] Test that composite metadata artifact with resources only...
...doesn't fail metadata compilation of depending projects.

^KT-65315
2024-03-15 13:13:47 +00:00
Alejandro Serrano Mena a18dca5728 Add missing cases for PROPERTY_AS_OPERATOR 2024-03-15 12:52:10 +00:00
Nataliya.Valtman 869cc8bdb8 Do not run FusStatisticIT.testProjectWithIncludedBuild test on windows
#KT-65227
2024-03-15 12:50:58 +00:00
Kirill Rakhman 2095f90e69 [FIR] Fix exception in Java scope caused by inherited member with implicit return type
It's caused by checking the return type of an inherited property.
toConeKotlinTypeProbablyFlexible() returns an error type when the
type ref is unresolved instead of throwing.
This "breaks" some override checks and in the added test, it leads
to an additional candidate being created for a synthetic property.
However, the candidate has applicability K2_SYNTHETIC_RESOLVED
and gets filtered out because the real property has a higher
applicability.

#KT-66392 Fixed
2024-03-15 12:01:55 +00:00
Stanislav Ruban 8f420eb3e1 [FIR][checkers][Wasm] Turn FirWasmJsInteropTypesChecker into a platform checker
#KT-66475 Fixed
2024-03-15 11:40:55 +00:00
Stanislav Ruban 478c1a6d50 [FIR][checkers][JS] Move reporting of FirJsErrors.EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE to FirJsInheritanceClassChecker
#KT-66474 Fixed
2024-03-15 11:40:55 +00:00