Commit Graph

96095 Commits

Author SHA1 Message Date
Nikolay Lunyak e34dd49872 [FIR] Get rid of the argumentMapping function.
It's just a duplicate of `resolvedArgumentMapping`. Plus there is a
member with the same name inside `FirAnnotationCall`.
2022-11-14 22:40:41 +02:00
Nikolay Lunyak 89f8821d0a [FIR] KT-53371, KT-53519: Fix annotations arguments mapping
See: compiler/testData/asJava/lightClasses/
AnnotatedParameterInInnerClassConstructor.kt

The muted tests don't work with the (KT-53371, KT-53519)-related
changes. During this test happens an attempt to access unresolved
annotations via CustomAnnotationTypeAttribute.
Discussion: KTIJ-23547
2022-11-14 22:40:41 +02:00
Nikolay Lunyak 6653f654ec [FIR] Add the missing transformPropertyAccessor override
Otherwise, `transformPropertyAccessor` from
`FirDeclarationsResolveTransformerForArgumentAnnotations` is
never called

See:
- compiler/testData/asJava/ultraLightFacades/properties.kt
- analysis/analysis-api/testData/symbols/symbolByPsi/
  contextReceivers/contextReceiversOnProperty.kt
2022-11-14 16:55:08 +02:00
Pavel Kunyavskiy ef54a6d7cb [K/N] Fix calls checker use-after-free in main thread deinit
Calls checker was trying to read thread state while unlocking mutex in
unregister thread function. At this point thread is already
unregistered and reference to current thread node is dangling.

To avoid this, we nullify this reference in advance, as its anyway
explicitly passed to unregister function, not read from global.
2022-11-14 14:25:01 +00:00
Dmitrii Gridin b7b221d261 Code ownership: /compiler/light-classes/ 2022-11-14 14:24:01 +00:00
Svyatoslav Kuzmich 4ba780be26 [Wasm] unmute test 2022-11-14 13:55:39 +01:00
nataliya.valtman 5fa3b85581 Update metric collection and tags for build statistics 2022-11-14 11:24:16 +00:00
Dmitriy Dolovov d9eda3c485 Code ownership: /compiler/testData/serialization/nonStableParameterNames/ 2022-11-14 10:29:31 +00:00
Svyatoslav Kuzmich 78bd6dbdcd [Wasm] Allow implementing function interfaces 2022-11-14 11:23:18 +01:00
Mikhael Bogdanov edc54524aa Xjdk-release: support mixed compilation of Java and Kotlin
#KT-52815 Fixed
2022-11-14 06:57:12 +00:00
mvicsokolova 9bd17f628d Atomicfu-compiler plugin: update test text files. 2022-11-13 21:58:25 +00:00
mvicsokolova 5708b2229a Atomicfu plugin (JS IR): fix for private delegated properties
Fixes https://github.com/Kotlin/kotlinx-atomicfu/issues/260
2022-11-13 21:58:25 +00:00
Ilya Chernikov 92ec8e6a3e FIR JS: Convert KLib symbol provider for handling multiple libs 2022-11-12 16:28:25 +01:00
Ilya Chernikov b28dd95621 FIR JS: rename test classes for uniformity 2022-11-12 16:28:25 +01:00
Ilya Chernikov c3197491a0 FIR JS: temporarily mute failing box tests 2022-11-12 16:28:25 +01:00
Ilya Chernikov 7e4ee399c8 FIR JS: temporarily mute remaining codegen tests 2022-11-12 16:28:25 +01:00
Ilya Chernikov 78ca733c38 FIR JS: add K2 variants of all other JS tests
except tests that are not possible to add without some modifications in
the test infra. See todos on the commented-out test declarations
2022-11-12 16:28:24 +01:00
Ilya Chernikov 5baf4a55c1 FIR JS: fix nodejs box tests infrastructure 2022-11-12 16:28:24 +01:00
Ilya Chernikov 4e4511bba2 FIR2IR: convert enums with non-primary default ctor correctly
see added test for example
2022-11-12 16:28:24 +01:00
Ilya Chernikov 22d6906b33 FIR JS: implement a copy of JS Gradle IT with K2 2022-11-12 16:28:24 +01:00
Ilya Chernikov a4da33cae6 [minor] missing option rename fir -> k2 2022-11-12 16:28:24 +01:00
Ilya Chernikov 7a57e8d903 FIR JS: Add K2 support to K2JsIrCompiler 2022-11-12 16:28:24 +01:00
Ilya Chernikov 4e8fed09b4 FIR JS: fix klib matching in fir dependencies
use file paths for more reliable matching, since klib-based libs
do strange things with libraryName
2022-11-12 16:28:24 +01:00
Ilya Chernikov 1f11a2865f FIR: refactor session factory to better support JS scenarios 2022-11-12 16:28:23 +01:00
Ilya Chernikov 982ab8beac FIR2IR: fix processing of classes created on the fly
finding local parent and create it on the fly, instead of the requested
class.
avoiding double processing of class members and properly handling
"innerness"
fixes localClassMetadata test problem with propLocal.<>.D
2022-11-12 16:28:23 +01:00
Ilya Chernikov dfa1e8d03d FIR: fix findClassRepresentation for dynamic type
related to KT-53463 and KT-53464
needed e.g. to find proper (fake) override on calls on dynamic receiver
fixes test js/js.translator/testData/box/dynamic/equals.kt
2022-11-12 16:28:23 +01:00
Ilya Chernikov 8feb2a9505 FIR: component for deserialized class configuration
do not add Serializable JVM interface to non-JVM classes
2022-11-12 16:28:23 +01:00
Ilya Chernikov 44cce3ad52 FIR JS: mute remaining tests for now 2022-11-12 16:28:23 +01:00
Ilya Chernikov 5b3816cce5 Test infra: refactor IGNORE_BACKEND directive
treat it as a general one, introduce *_K1 and *_K2 variants for
more specific ignoring
2022-11-12 16:28:23 +01:00
Ilya Chernikov 8f18ab19f7 FIR: use serialization extension protocol correctly
otherwise the deserialization breaks on KLibs
2022-11-12 14:34:08 +01:00
Ilya Chernikov 112f91ba3b FIR: process DynamicExtension ann on resolution as in K1 2022-11-12 14:34:08 +01:00
Ilya Chernikov c02923c5b5 [minor] FIR resolution for dynamics - use more appropriate prio 2022-11-12 14:34:08 +01:00
Ilya Chernikov 40ec72a51b FIR2IR: do not skip getter generation for const properties
otherwise some IR pipeline breaks for JS, e.g. some intrinsics, like
numeric constants, are not inlined properly
2022-11-12 14:34:08 +01:00
Ilya Chernikov 302ccf12d0 FIR: deserialize classes lazily from KLib to avoid cycles
the cycle appears e.g. on the Target annotation
2022-11-12 14:34:08 +01:00
Ilya Chernikov e1d19516e8 [minor] fix import statement position in testdata
the import statement is (should be) ignored before FILE directive
2022-11-12 14:34:07 +01:00
Ilya Chernikov fa0cda6236 FIR JS: enable full JS box tests with FIR 2022-11-12 14:34:07 +01:00
Ilya Chernikov 30df65c321 FIR2IR: pass external builtins to module descriptor
to support scenario when builtins are deserialized from KLib
2022-11-12 14:34:07 +01:00
Ilya Chernikov af5d74e888 IR/FIR: refactor builtins over FIR for correct signature creation
when a declaration created on the fly (not loaded from FIR), we
have no good way (yet) to create a correct signature for it before
creating IR. And proper signatures are needed for Klib linking.
So here we create the declaration (function) twice, first time
to calculate proper signature and the second time again with correct
signature.
The approach is weird and should be unnecessary in the presence of the
stdlib, so should be doublechecked again in the future.
2022-11-12 14:34:07 +01:00
Ilya Chernikov 0fbc099d32 FIR JS: Refactor Klib serialization for FIR support 2022-11-12 14:34:07 +01:00
Ilya Chernikov c0cf8e508a FIR JS: prepare session factory for JS/KLib usage 2022-11-12 14:34:07 +01:00
Ilya Chernikov 8bf108dc17 FIR JS: Prepare JS/KLib infrastructure for FIR integration
rearrange declarations, abstract things that should be done differently
with FIR, etc.
2022-11-12 14:34:07 +01:00
Sebastian Sellmair 126c8eafa3 [Gradle] KotlinWithJavaCompilationFactory: Use compile&runtime classpath from javaSourceSet
^KT-54867 Verification Pending
2022-11-12 13:18:50 +00:00
Sebastian Sellmair cc004c75c2 [Gradle] Implement KT54867KotlinWithJavaCompilationClasspathTest to cover KT-54867 2022-11-12 13:18:50 +00:00
[pʲɵs] 3f52d03164 FIR: render entire declaration header in *_MISMATCH_ON_OVERRIDE (#5019)
Otherwise it's really not clear what exactly the type is supposed to be.
2022-11-11 20:59:25 +02:00
Anna Kozlova 9f470e2a4d [LL API] return FirErrorProperty for top level destructuring declaration
KTIJ-23552
2022-11-11 17:39:54 +01:00
Anna Kozlova 3590c4ea35 [Analysis API FIR] support generated temp properties
KTIJ-23492 (array index expression), KTIJ-23138 (inc/dec desugaring)
2022-11-11 17:39:53 +01:00
Svyatoslav Kuzmich ee2e966c5c [Wasm] Reuse JS interop closure converters across modules
Otherwise, these function export names clash without proper linking
2022-11-11 16:29:52 +00:00
pyos f745d0db0e FIR: deserialize value class representation from metadata
This is necessary when jvm-abi-gen strips out private constructors.
#KT-54897 Fixed
2022-11-11 16:28:38 +00:00
Alexander Udalov af2b77dd4e FIR: minor, add message when value class has no representation
KT-54897
2022-11-11 16:28:38 +00:00
Alexander Udalov beb3759f5a Add jvm-abi-gen test on inline class with private ctor
KT-54897
2022-11-11 16:28:37 +00:00