Commit Graph

109452 Commits

Author SHA1 Message Date
Dmitriy Dolovov b0dc5b8a93 [Test] Support running Fir/Native diagnostic tests with backend
^KT-64393
2024-02-29 16:44:45 +00:00
Dmitriy Dolovov b3efc05728 [Test] Rename JsBackendDiagnosticsHandler -> KlibBackendDiagnosticsHandler
^KT-64393
2024-02-29 16:44:45 +00:00
Dmitriy Dolovov a4f2a4438b [Test] Move JsBackendDiagnosticsHandler to common test infra
^KT-64393
2024-02-29 16:44:45 +00:00
Dmitriy Dolovov d40f88337a [Test] Report all KLIB resolve warnings as errors 2024-02-29 16:44:45 +00:00
Dmitriy Dolovov 05628660ba [Test] Implement classic & Fir Native KLIB facades for test infra
With these test facades it would be possible to serialize Native
test modules to KLIBs.

^KT-65117
2024-02-29 16:44:45 +00:00
Sergey Bogolepov 9a2d748817 Bump Kotlin/Native version in KGP to 2.0.0-dev-17343 2024-02-29 16:16:49 +00:00
Wojciech Litewka 105ffb15a5 [FIR generator] Remove FirField
To simplify tree generator for further development and align it
with IR and SIR generators.
2024-02-29 15:48:58 +00:00
Brian Norman de775c62c8 [PowerAssert] Update CODEOWNERS for Power-Assert compiler plugin 2024-02-29 15:10:09 +00:00
Brian Norman 721d02f4f3 [PowerAssert] Find the earliest starting offset for receiver expression
Calls of infix functions have a start offset which doesn't include the
receiver. Property accessors have a start offset at the start of the
property name and do not include their receiver expression. This
combination can cause problems when the entire expression needs to be
displayed, including the entirety of a complex receiver. Make sure to
navigate expressions to find their earliest starting offset and use that
instead.

^KT-65810 Fixed
2024-02-29 15:10:09 +00:00
Brian Norman d53d5dddc5 [PowerAssert] Add tests to recreate KT-65810 2024-02-29 15:10:09 +00:00
Brian Norman 78bb0be7aa [FIR2IR] Propagate NOT_IN statement origin when converting to IR
^KT-65636 Fixed
2024-02-29 15:10:09 +00:00
Brian Norman 6d634ac87f [PowerAssert] Mark project tests as using JUnit 5 2024-02-29 15:10:09 +00:00
Brian Norman f0268721c1 [PowerAssert] Use OS path separator to parse JUnit5 classpath property 2024-02-29 15:10:09 +00:00
Brian Norman 184d773cd0 [PowerAssert] Add power-assert test data to helper plugin configuration 2024-02-29 15:10:09 +00:00
Brian Norman 027474cfb8 [PowerAssert] Correctly align infix calls with string const receivers
^KT-65640 Fixed
2024-02-29 15:10:09 +00:00
Artem Kobzar 2e4d02e9f4 [PSI2IR, K/Wasm] Sync start and end offsets on PSI and FIR for primary constructors 2024-02-29 14:42:33 +00:00
eugene.levenetc 87e162e052 [ObjCExport] Add nullable dependency parameter failing test
KT-66068
2024-02-29 13:49:44 +00:00
eugene.levenetc 468efc77dd [ObjCExport] Add failing member function signature order test
KT-66066
2024-02-29 13:49:44 +00:00
Artem Olkov e6705e9db2 add distinction between functions and methods in SIR #KT-65046 fixed
Merge-request: KT-MR-14667
Merged-by: Artem Olkov <artem.olkov@jetbrains.com>
2024-02-29 12:52:10 +00:00
Pavel Mikhailovskii 12552e4e04 [KAPT] KT-44706 Support @JvmRecord-annotated classes
Don't parse Java stubs in tests if no validation is needed

Merge-request: KT-MR-14308
Merged-by: Pavel Mikhailovskii <Pavel.Mikhailovskii@jetbrains.com>
2024-02-29 12:44:56 +00:00
Ilya Chernikov 6288bdbd3f K2 scripting, IDE: add missing extension registration
The commit "K2 scripting: treat default import similarly to K1"
introduced the new extension that provides default imports for scripts,
instead of the previous approach of explicit `FirImport` elements
creation. But registering it for the IDE case was forgotten. This
commit adds missing registration.

#KTIJ-28960 fixed
2024-02-29 12:35:18 +00:00
Artem Olkov ac403a466e add support for classes with packages #KT-65909 fixed
Merge-request: KT-MR-14623
Merged-by: Artem Olkov <artem.olkov@jetbrains.com>
2024-02-29 12:04:23 +00:00
Wojciech Litewka 4d2aadb925 [IR] Remove old @IDEAPluginsCompatibilityAPI constructor 2024-02-29 11:22:57 +00:00
Alexander Udalov 939a74add3 CLI: improve error message for -Xjdk-release=1.6/1.7
#KT-66174 Fixed
2024-02-29 11:05:20 +00:00
Alexander Udalov 5f261d3ad0 CLI: fix "unknown JVM target version" error message
Do not list 1.6 as supported because it was removed in KT-45165.

 #KT-66175 Fixed
2024-02-29 11:05:20 +00:00
eugene.levenetc e65caee26b [ObjCType] Add vararg translation
KT-66056
2024-02-29 10:24:40 +00:00
Alexander Udalov dfd9aabf8e JVM: update test data after enabling IR fake override builder
#KT-61514 Fixed
2024-02-29 10:14:31 +00:00
Alexander Udalov f98a22e8e4 Fir2Ir: enable IR-based fake override builder
Invert the logic of IR/FIR2IR-based generators: change the CLI argument
to -Xuse-fir-fake-override-builder, test directive to
USE_FIR_BASED_FAKE_OVERRIDE_GENERATOR, etc.

The changes in test data caused by using IR fake override builder by
default are in the subsequent commit.

 #KT-61514
2024-02-29 10:14:31 +00:00
Mikhail Glukhikh 09db7dbd22 K2: add tests to confirm current behavior of KT-65679 examples 2024-02-29 10:02:06 +00:00
Artem Kobzar 4f4c98ec73 [K/JS] Allow parameter properties inside external declarations ^KT-65965 Fixed 2024-02-29 09:46:59 +00:00
Kirill Rakhman 5e83350576 [Infrastructure] Assert dumps don't exist without directive
#KT-58697 Fixed
2024-02-29 08:36:16 +00:00
Andrey Yastrebov 42f6eb4eb4 KT-66156 add KotlinRuntime to Swift Export Synthetic 2024-02-29 08:11:29 +00:00
Jaebaek Seo a17ad6bc55 Fix K2 CodeGen annotation parameter resolution failure
When we have parameters of annotation like
```
// FILE: Anno.kt
package p3

@Target(AnnotationTarget.FUNCTION)
annotation class Anno(vararg val x: String)

// FILE: main.kt
import p3.Anno

@Anno("A", "B")
fun foo(): Int = 10
```
the K2 CodeGen causes an exception reporting the unresolved type
reference. A lazy resolution call fixes the issue.

In addition, FIR for the value parameter to IR conversion fails because
`Fir2IrLazyProperty` for the value parameter tries to resolve the
initializer before creating the `IrParameterSymbol`. When it checks the
`localStorage`, it reports an error for the missing `IrParameterSymbol`.
This commit adds `IrParameterSymbol` before resolving the initializer.

^KT-65099 Fixed
2024-02-29 06:44:05 +00:00
Yahor Berdnikau 3511733aa7 [Gradle] Deprecate kotlinOptions in KotlinNativeLinkArtifactTask task
^KT-63419 Verification Pending
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 48a84e5b79 [Gradle] Deprecate kotlinOptions in KotlinNativeLinkArtifactTask task
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 6719a437f7 [Gradle] Deprecate kotlinOptions in KotlinNativeLink task
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 6e874340e9 [Gradle] Deprecate Kotlin*Options types
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 4921a29aa5 [Gradle] Deprecate dceOptions in KotlinJsDce task
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 24acf800d6 [Gradle] Deprecate KotlinCompile DSL
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 2f70478e67 [Gradle] Deprecate kotlinOptions DSL in KotlinCompile DSL
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 433bec3700 [Gradle] Deprecate kotlinOptions DSL in KotlinCompilation
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 2e3a209d0d [Gradle] Fix usages of kotlinOptions in BuildKotlinToolingMetadataTask
Replaced them with compiler options DSL.

^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 66a39952ee [Gradle] Fix usages of kotlinOptions in KotlinJsIrTarget
Replaced them with compiler options DSL.

^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Yahor Berdnikau 0986733f29 [Gradle] Remove unused method
^KT-63419 In Progress
2024-02-28 21:20:18 +00:00
Marco Pennekamp beb40484dd [LL] Add LLFirSession invalidation tests
- This commit moves all session invalidation tests from the IDE which
  are non-cyclic to the Analysis API. Cyclic session invalidation tests
  cannot be moved because the Kotlin test infrastructure doesn't support
  cyclic module dependencies.
- In fact, these new tests cover more cases, because the IDE tests only
  covered global module state and module out-of-block modification
  events. Crucially, global source modification events are now
  supported, which require libraries to be left alone.
- Module out-of-block modification for libraries is technically
  undefined, but the test still checks this behavior. The current
  session invalidation implementation behaves the same for any kind of
  module-level modification event, so it is possible to publish a module
  OOBM event for libraries. If this changes in the future, we can
  disable those tests. But for now, it's good that these tests run,
  because they will alert us to (accidental) changes to this behavior.

^KT-56288 fixed
^KT-65265 fixed
2024-02-28 21:08:18 +00:00
Marco Pennekamp 56a08319ec [AA] Add toString implementation for KtLibraryModuleImpl
- This allows stable mentions of test module libraries in output test
  data.

^KT-56288
2024-02-28 21:08:18 +00:00
Marco Pennekamp 56fd4b562b [AA] Improve modification event test directives
- Rewrite `TestModule.publishModificationEventByDirective`: we can get
  the `KtModule` to publish an event for via the test module. The
  directive can now be made optional, which is necessary when we want to
  specify it in potentially multiple modules.
- Introduce the `WILDCARD_MODIFICATION_EVENT` directive, which allows
  specifying THAT some modification event should be raised for a module,
  but not WHICH one. This allows generating multiple tests which raise
  different modification events over the same test data.
- Add various convenience functions for publishing wildcard modification
  events. `publishWildcardModificationEventsByDirective` for the test
  module structure is quite opinionated, but takes a lot of work from
  test implementations.
- Because `ModificationEventDirectives` are part of the analysis test
  framework, we register them as a general Analysis API test directive.

^KT-56288
2024-02-28 21:08:17 +00:00
Marco Pennekamp 3044941201 [AA] Add TestModule.getKtModule convenience function
^KT-56288
2024-02-28 21:08:17 +00:00
Timofey Solonin 1435fcc50f Add an IT for consumption of multiplatform resources
^KT-65540
2024-02-28 20:19:08 +00:00
Timofey Solonin 2fda16f526 Add APIs to resolve multiplatform resources in variant publications
^KT-65540
2024-02-28 20:19:08 +00:00