Commit Graph

108563 Commits

Author SHA1 Message Date
cristiangarcia 9f8ea3e2e5 Proguard 7.4.2 - ConfigurationCache compatible
Required for KTI-1553
2024-02-06 20:16:22 +00:00
Alexander Udalov 28797a31b4 JVM: refactor JvmDefaultMode, remove/rename some entries
- remove ENABLE/COMPATIBILITY because they can no longer be used
- remove forAllMethodsWithBody because its behavior is now equivalent to
  isEnabled
- inline isCompatibility
- inline DEFAULT
- rename ALL_INCOMPATIBLE -> ALL
2024-02-06 17:18:44 +00:00
Dmitrii Krasnov 6219806ab9 [Gradle Native] Made eager outputFile in CInteropProcess deprecated
^KT-63206 Fixed
2024-02-06 14:01:29 +00:00
Igor Yakovlev b6ef1e08e1 [WasmJs] Fix kotlin.test AfterTest for test with Promise return type
Fix #KT-61888
2024-02-06 13:55:20 +00:00
Igor Yakovlev 78b666bb40 [WasmJs] Support custom js adapter support
Fix KT-58291
2024-02-06 13:55:20 +00:00
Igor Yakovlev 109ff2135f [WasmJs] Add async tests in kotlin.test 2024-02-06 13:55:20 +00:00
Ilya Gorbunov 905423aa17 [kotlin-test] Reconfigure JVM unit tests
- Include common annotations and assertions test source sets into each test platform test compilation in order to check how they work with that platform's annotations and asserter
- Run these tests without platform support jar to check the default asserter implementation
2024-02-06 12:58:50 +00:00
Ilya Gorbunov 309cecdefd [kotlin-test] Rename test to avoid duplication 2024-02-06 12:58:50 +00:00
Igor Yakovlev ff20ae34e5 [Wasm/WASI] Allow external declarations only for top-level functions
Fix #KT-63737
2024-02-06 12:03:08 +00:00
Kirill Rakhman 376a9b8ace [FIR] Implement deprecation for accessing private operators from public inline function
This only affects delegation operators as well as the for-loop-related
next and hasNext operators.
All the other operators worked correctly before.
In K2, the previously mentioned operator calls will be flagged with a
deprecation error and will become and error in 2.1.

#KT-59782 Fixed
2024-02-06 11:18:25 +00:00
Ilya Gorbunov 58c03e021b Update transitive dependencies of JVM test frameworks in kotlin-test KT-65242, KT-63397 2024-02-06 11:06:12 +00:00
Yahor Berdnikau a636f822d0 [Gradle] Fix warnings in NativeDistributionCommonizerTask
^KT-56904 In Progress
2024-02-06 10:20:23 +00:00
Yahor Berdnikau 5ca953b7ff [Gradle] Remove unused import in KotlinNativePlatformDependencies.kt
^KT-56904 In Progress
2024-02-06 10:20:23 +00:00
Yahor Berdnikau 44c421c2a3 [Gradle] Remove unused import in CInteropCommonizerCompositeMetadataJarBundling
^KT-56904 In Progress
2024-02-06 10:20:23 +00:00
Yahor Berdnikau 9a94ac5d20 [Gradle] Fix warnings in AddIntransitiveMetadataDependency.kt
^KT-56904 In Progress
2024-02-06 10:20:23 +00:00
Yahor Berdnikau a58d0dc237 [Gradle] Fix warnings in KotlinNativeCompilation
^KT-56904 In Progress
2024-02-06 10:20:23 +00:00
Yahor Berdnikau 5b18687935 [Gradle] Fix warnings in KotlinMetadataTargetConfigurator
^KT-56904 In Progress
2024-02-06 10:20:23 +00:00
cristiangarcia c897328af6 Make lombok tests CC compatible
Required for KTI-1553
2024-02-06 10:11:15 +00:00
Mads Ager 79eee6de4f [FIR] Do not enhance nullability for annotation interface field types.
Java annotation interface fields are constant declarations that can
have any Java type and are not restricted in the same way that
method return types are for annotation interfaces.

#KT-65482 Fixed
2024-02-06 09:45:34 +00:00
Simon Ogorodnik f5d0a5b92d CODEOWNERS: Update Compiler Core team ownership
- Move Simon.Ogorodnik out of the Compiler Core team
2024-02-06 09:25:11 +00:00
Nikolay Lunyak 183c263c55 [FIR] Create proper error name references for invoke receivers
In this example, when processing
the `jso` property candidate form
the `dynamic` scope we get
`DslScopeViolation`.
When we later create the
receiver for the invoke call
(since we still call `jso {}` as
a function), we create a non-error
named reference which fails at
`toResolvedReference()`.

The included test should not fail
with exception.

^KT-65255 Fixed
2024-02-06 09:12:46 +00:00
Dmitrii Krasnov be6ab943f4 [Gradle] Fixed Mac and Windows integration tests
These tests were failed because of `dependencyManagement` in testDsl.

^KT-64903


Merge-request: KT-MR-14201
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
2024-02-06 09:09:34 +00:00
Pavel Kunyavskiy 1cc138431d [Fir2IR] Get rid of simple symbol table usages
We have two sources of truth in Fir2Ir - declaration storages,
which maps fir to ir symbols and symbolTable which maps
IdSignature to ir symbol.

The long-term goal is to have only one - declaration storages. This
commit goes to this goal by removing all symbolTable usages that are
straightforward to remove, i.e., all except:

1. classes as there is some code, that uses signature inside ClassSymbol
2. functions/properties as sometimes declaration storage fails to match
symbols correctly (i.e. for generated data class members)
3. type parameters, as we need to remove functions first.

As a side effect, it fixes some of the signature clash cases on valid
code, as we no longer rely on signature uniqueness, except cases
mentioned above.

^KT-65274 Fixed
^KT-64990
2024-02-06 08:55:35 +00:00
Sergej Jaskiewicz 06684f207a [klib] Don't rely on Lazy IR for signature clash checking
We only want to report signature clashes for declarations that come
from the module currently being serialized. In GlobalDeclarationTable,
declarations from other modules could also be stored.
Checking whether a declaration is a Lazy IR declaration to
determine if it comes from an external module works okay, but it is
a hack which relies on an implementation detail of IR, which may or
may not work in the future.

Use a more robust logic here, since IrFileSerializer is always aware
which declarations are declared in the current module and which are
just referenced from it.
2024-02-05 17:30:08 +00:00
Bogdan Mukvich 55a87f301b Ignore native bundle artifacts in ArtifactsTest
* kotlin-native not enabled by default in project
2024-02-05 17:16:35 +00:00
Bogdan Mukvich 86fa4507d0 Publish native SBOMs with binaries to maven repository
^KTI-1569
2024-02-05 17:16:35 +00:00
Dmitrii Krasnov 06a3e9135c [Gradle Native] Made a k/n bundle as input for commonizeNativeDist task
Also, extracted moving konan bundle to konanHome into BuildService and wrapped moving k/n bundle to konan home with file lock.
And added an integration test for checking ^KT-65222 and ^KT-65347.

^KT-65450
^KT-65347 Fixed


Merge-request: KT-MR-14099
Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
2024-02-05 16:37:49 +00:00
Gleb Lukianets f262247b2b [Swift Export] KT-65008: support simple top-level properties
Merge-request: KT-MR-14131
Merged-by: Gleb Lukianets <Gleb.Lukianets@jetbrains.com>
2024-02-05 16:29:37 +00:00
Yahor Berdnikau ad5ee28d58 [Gradle] Use proper approach to local repository
^KT-65528 In Progress
2024-02-05 16:14:41 +00:00
Yahor Berdnikau eac48d065b [Gradle] Migrate HierarchicalStructureOptInMigrationArtifactContentMppIT to new test DSL
^KT-65528 In Progress
2024-02-05 16:14:41 +00:00
Yahor Berdnikau 81fded3c8b [Gradle] Migrate KotlinToolingMetadataIT to new test DSL
^KT-65528 In Progress
2024-02-05 16:14:40 +00:00
Vladimir Sukharev 72d92cd9b2 [K/N][Tests] Don't make per-file-cache from given dependencies
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev e20b91ab30 [K/N][Tests] Fix FreeArgs
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev e4d36d3840 [K/N][Tests] Fix wrong root cache path
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev 95b1fba37f [K/N][Tests] Clean up framework testing code
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev c72443e4be [K/N][Tests] Move "-Xcache-directory" flag generation to BasicCompilation
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev 8ce8441409 [K/N][Tests] Split away cache-dependent part of "multiple" test
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev fc6fc8d122 [K/N][Tests] Check lazy headers in K1's ObjCExportTest
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev 025771460c [K/N][Tests] Migrate framework and objcexport tests
^KT-61259
2024-02-05 16:06:34 +00:00
Vladimir Sukharev f00a145dd7 [K/N] Don't cut cinterop exceptions from TC logs. 2024-02-05 15:47:01 +00:00
Alexander Udalov 53c5230520 IR: copy EnhancedNullability in CopyIrTreeWithSymbolsForFakeOverrides
Otherwise it leads to the following problem in the newly added test.

Suppose that we have a fake override `remove(Int)` inherited from
LinkedList _without_ EnhancedNullability on its parameter type. By
normal Kotlin rules, this method should override the method from
KotlinInterface. However, on JVM we have another overridability check in
IrJavaIncompatibilityRulesOverridabilityCondition which ensures that
"JVM primitivity" of parameter types is the same for the base and the
overridden method.

So the fake override `remove(Int)` from LinkedList is determined to be
override-incompatible with `remove(Int)` from KotlinInterface. But when
we try to create symbols for all fake overrides in the class, we get a
clash because there are two fake overrides with exactly the same
IdSignature, neither of which overrides the other.

If we keep the EnhancedNullability annotation on the parameter, it
starts working because the logic of computing signature in
JvmIrMangler.JvmIrManglerComputer.mangleTypePlatformSpecific adds an
"{EnhancedNullability}" mark to the IdSignature of a fake override from
LinkedList.

 #KT-65499 Fixed
2024-02-05 13:28:19 +00:00
Evgeniy.Zhelenskiy f05c972efb [K2, CLI] Support endOffset in Kotlin CLI
Duplicated messages in testdata appeared because default renderer
renders diagnostic spans ambiguously. It shows only start position.
In fact, there are 3 failures, 2 of them distinguish only by the
diagnostic end offset. See youtrack for more information.

The issue about inconvenient rendering is KT-64989.

#KT-64608
2024-02-05 13:26:13 +00:00
Yahor Berdnikau 6404cede07 [Gradle] Fix warnings in KotlinWebpack
^KT-56904 In Progress
2024-02-05 10:27:18 +00:00
Yahor Berdnikau ac8edc168d [Gradle] Fix warnings in KotlinJsTest
^KT-56904 In Progress
2024-02-05 10:27:18 +00:00
Yahor Berdnikau bbf0402a0f [Gradle] Remove unused import in NodeJsRootExtension
^KT-56904 In Progress
2024-02-05 10:27:18 +00:00
Yahor Berdnikau 07ae48d1a3 [Gradle] Fix warnings in NodeJsExec
^KT-56904 In Progress
2024-02-05 10:27:18 +00:00
Dmitrii Gridin 9589043a05 [LL FIR] adapt LLFirTargetResolver for new FirDesignation
We should maintain `containingDeclarations` to be consistent with
the new ` FirDesignation `

^KT-65345 Fixed
2024-02-05 09:32:45 +00:00
Dmitrii Gridin 9b60e5ca06 [LL FIR] adapt RawFirNonLocalDeclarationBuilder for new FirDesignation
Effectively nothing changed right now, but now it is possible to process
`FirScript` as `containingDeclaration` inside `moveNext`

^KT-65345
2024-02-05 09:32:45 +00:00
Dmitrii Gridin eb8e3f64f0 [LL FIR] reuse FirDesignation for LLFirResolveTarget
This is an intermediate change before unification

^KT-65345
2024-02-05 09:32:45 +00:00
Dmitrii Gridin 39131a7f30 [LL FIR] rework FirDesignation collector
The main change – now we collect not only `FirRegularClass`, but also
`FirScript`.
This allows us to have a proper context collector for
diagnostics for scripts.
Also, this change fixes dangling files for scripts in `IGNORE_SELF`
as now we have the correct patcher for this case, so we won't resolve
the copied script

^KT-65345
^KT-62841 Fixed
2024-02-05 09:32:45 +00:00