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
Svyatoslav Kuzmich
4ba780be26
[Wasm] unmute test
2022-11-14 13:55:39 +01: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
Ilya Chernikov
92ec8e6a3e
FIR JS: Convert KLib symbol provider for handling multiple libs
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
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
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
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
[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
Mikhail Glukhikh
4dc7b6dddc
K2: fix/universalize logic to determine that member is from Java
2022-11-11 13:30:40 +00:00
Mikhail Glukhikh
d35dedcb72
FIR2IR: simplify f/o owner lookup tag extraction
2022-11-11 13:30:39 +00:00
Mikhail Glukhikh
4cb41f8e82
FIR2IR: rename unmatchedReceiver -> unmatchedOwner
2022-11-11 13:30:39 +00:00
Mikhail Glukhikh
08d351db57
K2: unify all importing data logic inside FirAbstractImportingScope
2022-11-11 13:30:39 +00:00
Mikhail Glukhikh
e46978f7b3
K2: simplify visibility check for static qualifiers
2022-11-11 13:30:38 +00:00
Mikhail Glukhikh
104fd4c14d
K2: don't use dispatch receiver to store imported static qualifiers
...
Related to KT-53441
2022-11-11 13:30:38 +00:00
Mikhail Glukhikh
7205a90d9d
FIR2IR: drop redundant visibility check in fake override generator
2022-11-11 13:30:37 +00:00
Mikhail Glukhikh
cb39221f85
FIR2IR: drop unused code with annotation placeholder
2022-11-11 13:30:37 +00:00
Mikhail Glukhikh
3a81174a4c
FIR2IR: support static fake overrides (functions) #KT-53441 Fixed
2022-11-11 13:30:36 +00:00
Mikhail Glukhikh
ec77e1896c
FIR2IR: cleanup CallAndReferenceGenerator
2022-11-11 13:30:35 +00:00
Mikhail Glukhikh
f070401bb5
K2: fix visibility checks for static overrides via imported from static
...
#KT-53441 In Progress
2022-11-11 13:30:35 +00:00
Mikhail Glukhikh
cc1a094b6c
K2: rename importedFromObject -> importedFromObjectOrStatic
2022-11-11 13:30:34 +00:00
Mikhail Glukhikh
2b2cc07c89
FirObjectImportedCallableScope: fix wrong variable name
2022-11-11 13:30:34 +00:00
Mikhail Glukhikh
d16a4ae647
FirClassSubstitutionScope: partial cleanup
2022-11-11 13:30:33 +00:00
Mikhail Glukhikh
53f37a3893
FIR: always use class-based dispatch receiver type in class member helpers
2022-11-11 13:30:33 +00:00