Commit Graph

99800 Commits

Author SHA1 Message Date
Svyatoslav Kuzmich e32611d2f2 [Wasm] Make Promise methods generic instead of using Dynamic
Copy full Promise implementation from Kotlin/JS,
and specify JsAny? upper bounds
2023-03-29 11:08:29 +00:00
Svyatoslav Kuzmich 635671d623 [Wasm] Stop using Dynamic in kotlin-test 2023-03-29 11:08:28 +00:00
Denis.Zharkov 1071669a92 Fix project K2-bootstrapping when KT-57609 breaking change is introduced 2023-03-29 10:45:40 +00:00
Denis.Zharkov 55a58e54fe K2: Rework scopes for types with projection arguments for Out types
The only case when behavior is change is described at
 computeNonTrivialTypeArgumentForScopeSubstitutor

The idea is to avoid depending on the presence of @UnsafeVariance
and instead approximate captured types in covariant argument positions
before building substitution scopes

It's correct because for Captured(*) <: Supertype,
Out<Captured(*)> <: Out<Supertype> and when we've got @UnsafeVariance
value parameters at Out, it's ok to allow passing Supertype there.

^KT-57602 Fixed
^KT-54894 Fixed
2023-03-29 10:45:40 +00:00
Ilya Kirillov 1cd040fd6a [Analysis API FIR] remove redundant lazy resolve in KtFirImportOptimizer for empty imports list 2023-03-29 10:36:28 +00:00
Ilya Kirillov 063666344d [Analysis API FIR] remove redundant check for validity assertion in KtFirImportOptimizer
validity is already checked in KtImportOptimizerMixIn
2023-03-29 10:36:28 +00:00
Ilya Kirillov 15f19f324e [Analysis API FIR] do not consider unresolved imports as unused in import optimizer
Otherwise, the import optimizer breaks incomplete code

^KTIJ-25034 fixed
2023-03-29 10:36:27 +00:00
Denis.Zharkov d9ca77f716 K2: Fix false-positive RETURN_TYPE_MISMATCH_ON_OVERRIDE
The reason was that `substitutorByMap` ignored the difference between
`T` and `T?`

^KT-57001 Fixed
2023-03-29 10:27:49 +00:00
Pavel Kunyavskiy ac8cbcafb4 [K/N] Do not export all operator component functions in data classes
^KT-57507
2023-03-29 10:25:51 +00:00
Kirill Rakhman 3b0c36da3f [FIR] Fix ClassCastException when rendering ACTUAL_WITHOUT_EXPECT
#KT-57320
2023-03-29 10:19:47 +00:00
Jinseong Jeon 3b09313192 SLC: fix inheritance list for subtype of Comparator
^KT-57548 Fixed
2023-03-29 11:27:34 +02:00
Jinseong Jeon 1b3b554084 SLC: force boxed return type when needed
e.g., when overriding a function whose return type is not primitive

^KT-57579 Fixed
2023-03-29 11:27:34 +02:00
Dmitrii Gridin 19dbe69651 [FIR] move deprecations calculation on TYPES phase
can be moved to COMPILER_REQUIRED_ANNOTATIONS phase in the future

^KT-57256 Fixed
2023-03-29 08:52:37 +00:00
Nikolay Lunyak f644eb7988 [FIR JS] Implement FirJsExportDeclarationChecker 2023-03-29 08:51:48 +03:00
Nikolay Lunyak 624162dc07 [FIR JS] Report NESTED_JS_EXPORT 2023-03-29 08:51:48 +03:00
Nikolay Lunyak 8f94899187 [FIR JS] Fix a typo in the dynamic upper bound check
`FirDynamicTypeRef` is the unresolved version, and after resolution it
becomes `FirResolvedTypeRef` with `ConeDynamicType`.
2023-03-29 08:51:48 +03:00
Nikolay Lunyak 2b5d2dc539 [FIR JS] Report rtti-related diagnostics 2023-03-29 08:51:48 +03:00
Vladimir Sukharev 351588f0a7 [K2/N] Enable some fixed MPP tests
Merge-request: KT-MR-9364
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-03-28 16:49:57 +00:00
Dmitriy Novozhilov 0149ac3dbd Advance bootstrap to 1.9.0-dev-4392 2023-03-28 19:42:13 +03:00
Kirill Rakhman 32cc28c6cf [FIR] Skip expect-actual rules check when overriding non-expect member
Overriding equals, hashCode, toString and any other member that is not
expect does not require satisfying the rules of expect-actual matching.

#KT-57381 Fixed
2023-03-28 16:21:33 +00:00
Dmitriy Novozhilov ef51cf9083 [AA] Ignore tests due to KT-57619 2023-03-28 15:35:12 +00:00
Dmitriy Novozhilov e02194b461 [FIR] Properly prohibit access to enum companion in enum entry initialization section
^KT-57456 Fixed
KT-57608
2023-03-28 15:35:12 +00:00
Dmitriy Novozhilov cbfa155333 [FIR] Make FirClass an inheritor of FirControlFlowGraphOwner
Both inheritors of FirClass (FirRegularClass and FirAnonymousObject)
  already were CFG owners
2023-03-28 15:35:11 +00:00
Dmitriy Novozhilov a9c1091140 [Test] Add test for KT-57456 2023-03-28 15:35:11 +00:00
Ilya Goncharov 95d33da10d [Gradle, JS] Watch options ignore kt file to not trigger webpack
[Gradle, JS] Webpack prod dist not in default dist dir

^KT-57629 fixed
^KT-57630 fixed
2023-03-28 14:39:10 +00:00
Ilya Goncharov 4fabe8b29a [Gradle, JS] Fix composite build to not depend package json task on full aggregated configuration
^KT-57604 fixed
2023-03-28 13:37:23 +00:00
Kirill Rakhman 1f0d56e157 [FIR] Make type parameters inaccessible for non-inner nested types
#KT-57209
2023-03-28 13:20:53 +00:00
Kirill Rakhman c39ab956a0 [FIR2IR] Fix redundant let in Fir2IrDeclarationStorage 2023-03-28 12:47:42 +00:00
Kirill Rakhman ee78c31174 [FIR2IR] Fix generation of Any method call on expect receiver
#KT-57583 Fixed
2023-03-28 12:47:42 +00:00
Kirill Rakhman ed99f8bcdd [FIR2IR] Remove redundant toMutableList 2023-03-28 12:47:41 +00:00
Artem Kobzar c6e4858bc9 [K/JS] Remove the ability to run Legacy JS backend from the Gradle Plugin 2023-03-28 12:47:04 +00:00
Simon Ogorodnik ae32eff543 KT-57154: Fix JRT-FS contents served for wrong JDK home on JDK 9+
If the compiler runtime JDK is 9+,
it will already contain JrtFileSystemProvider and won't use provided
classloader
In order to fix KT-57154 we need to provide "java.home" argument to
newFileSystem

In order to reduce the severity of the leak in KT-56789 we cache
instances of FileSystem itself forever
Otherwise, each invocation of newFileSystem on JDK 9+ will leak
classloader, which is created deep inside the JDK code

Add unit test for JRT-FS contents served through CoreJrtFs

Add Gradle Integration test to 
test if the daemon correctly reads JDK contents from the specified 
toolchain and not from its runtime JDK

^KT-57154
Regression test for ^KT-57077
2023-03-28 10:38:46 +00:00
Mikhail Glukhikh 563781a246 K2: serialize data class equals / hashCode / toString functions
#KT-57510 Fixed
2023-03-28 09:30:02 +00:00
Dmitriy Dolovov 0a38b29491 [PL] Drop useless KotlinIrLinkerInternalException
It only added a confusion, while in fact has no practical sense.
2023-03-28 08:50:59 +00:00
Dmitriy Dolovov 850879375a [PL] Special handling of function references produced by FIR 2023-03-28 08:50:59 +00:00
Pavel Mikhailovskii 85b5a4521e KT-56843 [SLC] Support unsafe property initializers 2023-03-28 08:17:37 +00:00
Artem Kobzar 6b62499c85 [K/JS] Add previousOffset to InteropCallableReferenceLowering + include SYNTHETIC_OFFSET branch into previousOffset calculation 2023-03-27 21:45:00 +00:00
Vladimir Sukharev 9df5c54db3 [K2/N] KT-55828: Enable fixed tests
Merge-request: KT-MR-9246
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-03-27 17:25:54 +00:00
Mikhail Glukhikh 8b247982e3 Fix text/description of FirIncompatiblePluginAPI 2023-03-27 14:00:52 +00:00
Dmitriy Dolovov 7382b31fdc [PL] Native: Remove harmful private visibility guard in deserialization of LazyIr
Kotlin/Native codegen needs to deserialize all fields throughout the class hierarchy to build the proper binary class layout. That becomes impossible with the guard condition that prevents loading private top-level classes from another module in LazyIR (see https://github.com/JetBrains/kotlin/blob/2a4d8800374578c1aa9ec9c996b393a98f5a6e3b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt#L701). The guard suits well for the partial linkage needs, but it causes the codegen to fail with `Unbound public symbol IrClassPublicSymbolImpl: [ File '/file/in/the/library.kt' <- private.top.level/ClassDeclaration|null[0] ]` error.

To prevent this the guard is removed. This does not influence the partial linkage in general except for the different error message being generated: `Function 'foo' can not be called: Private function declared in module <A> can not be accessed in module <B>` instead of `Function 'foo' can not be called: No function found for symbol '<symbol>'`.

#KT-54469
2023-03-27 15:50:13 +02:00
Mikhail Zarechenskiy 681e85eaed Don't report unused variable warning for delegated variables with provide delegate
^KT-38871 Fixed
2023-03-27 13:46:13 +00:00
Bogdan Mukvich 18cfc9fcf1 Add space Safe-Merge feature config
KTI-1108
2023-03-27 15:43:47 +02:00
Vladimir Sukharev b375307aa6 KT-57349: Disable target-wide tests for K1/Native
Merge-request: KT-MR-9353
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-03-27 13:32:18 +00:00
Vladimir Sukharev 9212464887 Enable tests fixed by KT-56023
Merge-request: KT-MR-9350
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-03-27 13:21:20 +00:00
Kirill Rakhman 56da3c2ee2 [FIR] Bring conflicting overloads errors closer to K1 behavior
#KT-55860 Fixed
2023-03-27 11:56:16 +00:00
Abduqodiri Qurbonzoda 9dd778bc89 [K/N] Deprecate initRuntimeIfNeeded() with WARNING
As a part of stabilizing Native stdlib.
2023-03-27 14:52:26 +03:00
Abduqodiri Qurbonzoda 33053405e0 [K/N] Mark Any?.identityHashCode() as experimental
As part of stabilizing Native stdlib.
2023-03-27 14:51:39 +03:00
mcpiroman 25bcd86552 Simplify and optimize BridgeLowering 2023-03-27 13:49:07 +02:00
Abduqodiri Qurbonzoda 0d53e11851 [K/N] Internalize all annotations in kotlin.native.internal package
As a part of efforts to stabilize Native stdlib #KT-55765.
2023-03-27 11:47:25 +00:00
Dmitriy Novozhilov 62ad784b73 [FIR] Fix matching annotated predicate for java and binary declarations
^KT-57400 Fixed
2023-03-27 10:54:27 +00:00