Mikhail Glukhikh
668684ca13
K2: correct FirJavaField usages taking imported variant into account
...
Related to KT-59140
2023-06-20 14:13:21 +00:00
Kirill Rakhman
8ff67218f5
[FIR] Fix serialization of annotation vararg arguments
...
#KT-58937 Fixed
2023-06-14 08:41:27 +00:00
Ivan Kochurkin
1e09e8663c
[FIR] Add compatibleOnly parameter to getSingleCompatibleExpectForActualOrNull
...
Rename `getSingleCompatibleExpectForActualOrNull` to `getSingleExpectForActualOrNull`
2023-06-13 10:12:44 +00:00
Ivan Kochurkin
2251214d24
[FIR] Don't crash on complex expression as annotation argument if metadata compilation is used
...
^KT-58139 Fixed
2023-05-31 14:38:38 +00:00
Vladimir Sukharev
6a8981372b
[K2/N] Read KDoc strings from LightTree nodes
...
^KT-56090
Merge-request: KT-MR-9613
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-05-17 08:12:39 +00:00
Mads Ager
089928ba2b
[K2] Support legacy serialization for custom function type extensions.
...
For Compose libraries, it is important that libraries built with
K2 in version 2.0 can be read and used by a version 1.9 K1
compiler. That is not possible if custom function types are
in the metadata.
^KT-58456 Fixed
2023-05-12 10:49:43 +00:00
Ivan Kylchik
d83f6a40fb
[K2] Revert commit Pass FirFile to metadata serialization
...
We will ignore this for now. It is quite painful to bring `FirFile`
in all necessary places.
#KT-57812
2023-05-11 08:22:14 +00:00
Ivan Kylchik
951e30b683
[K2] Pass FirFile to metadata serialization
...
This is needed to extract correct const value from `ConstValueProvider`.
#KT-57812
2023-05-11 08:22:13 +00:00
Ivan Kylchik
846ad95c9e
[K2] Return from toConstantValue only if expected type match
...
There was a bug with early return from `toConstantValue`
method when we found any const value in `ConstValueProvider`.
Actually we should return only if expected type match. This error can
occur if annotation and constant inside it are fakes and
have the same offset.
#KT-57812
2023-05-11 08:22:13 +00:00
Mikhail Glukhikh
0906258d03
K2: handle suspend anonymous functions properly in various compiler parts
...
#KT-58332 Fixed
2023-05-09 09:19:38 +00:00
Dmitriy Novozhilov
af60681705
[FIR] Save declarations in metadata in source order
...
^KT-54792 Fixed
^KT-54801
^KT-54800
2023-05-09 07:36:32 +00:00
Dmitriy Novozhilov
b359a5538c
[FIR] Get rid of FirSerializerExtension.customClassMembersProducer
...
This service was needed in FE 1.0 because of different scope structure
for Java classes, but seems like it has no sense for FIR
2023-05-09 07:36:32 +00:00
Ilya Chernikov
a045a0a81c
FIR: use default getter in serializer if fir contains none
...
since we generate the default getter in this case in
Fir2IrDeclarationStorage.createIrProperty, so the serialized metadata
should follow the same behavior.
#KT-57373 fixed
2023-04-27 09:14:20 +00:00
Mikhail Glukhikh
f6bf7560a6
K2: fix field annotation handling around serialization
...
#KT-57135 Fixed
2023-04-25 12:18:27 +00:00
Anna Kozlova
4fe239375f
[cls] write contracts information to cls stubs
...
^ KTIJ-24665
this information would be used to create resolved FirElements from stubs,
so no ProtoBuf would be kept in memory
2023-04-25 08:34:18 +00:00
Mads Ager
a6520a294b
[K2] Local property accessors are always default.
2023-04-21 23:40:41 +02:00
Mads Ager
3795fc1106
[K2] Fix stable parameter name metadata.
2023-04-21 23:40:41 +02:00
Mads Ager
3a8f1ca690
[K2] Type parameter metadata handling.
2023-04-21 23:40:41 +02:00
Mads Ager
73191ff9bc
[K2] Add version requirement for definitely non-null types to metadata.
2023-04-21 23:40:40 +02:00
Mads Ager
1f3b8142a8
[K2] Enable tests for hasConstant field on properties in metadata.
2023-04-21 23:40:40 +02:00
Mads Ager
f7171f01ae
[K2] Enable tests for metadata for nested types.
2023-04-21 23:40:40 +02:00
Dmitriy Novozhilov
37e4a05878
[FIR] Serialize generated classes into Klib metadata
...
^KT-57781 Fixed
2023-04-20 09:27:08 +00:00
Dmitriy Novozhilov
0f8c797d7c
[FIR] Introduce caching service for metadata declarations provided by extensions
...
This is needed to allow to call for provided declarations multiple times
with only one real invocation of plugins
2023-04-20 09:27:07 +00:00
Ivan Kylchik
c00c7ffbe0
[K2] Use file name as one of parameters to extract evaluated const
...
It is not enough to store evaluated constants only by
<startOffset, endOffset> pair. We need to consider case there constant
can be located in different files with the same offset but with
different values.
#KT-57928 Fixed
#KT-57929 Fixed
2023-04-19 13:52:46 +00:00
Ivan Kylchik
45aacae945
[K2] Rewrite the way of extraction const values from IR for FIR
...
Right now it is much easier to extract constant values from
`EvaluatedConstTracker`
#KT-57928
#KT-57929
2023-04-19 13:52:44 +00:00
Ivan Kylchik
297b6ae64b
[K2] Move ConstantValue from fir-serialization to compiler.common
...
This is needed to be able to save `ConstantValue` in map of
evaluated constants.
2023-04-19 13:52:42 +00:00
Mikhail Glukhikh
bde0282fb1
K2: extract constant from Java enum entry properly
...
#KT-58002 Fixed
2023-04-17 21:05:04 +00:00
Mikhail Glukhikh
5cff8c15ab
K2: fix intrinsic analysis in FirToConstantValueChecker
...
#KT-57986 Fixed
2023-04-17 20:53:31 +00:00
Nikolay Lunyak
caa7bee917
[FIR] KT-57835: Prevent the compiler crash
...
^KT-57835 Fixed
2023-04-12 10:20:44 +00:00
Ivan Kylchik
6909d9a2f9
[K2] Support proper serialization of string concatenation expressions
2023-04-07 18:07:11 +00:00
Ivan Kylchik
2d0acecbd2
[K2] Allow to evaluate constant property in FIR constant transformer
2023-04-07 18:07:10 +00:00
Ivan Kylchik
0354cf3ed7
[K2] Drop excess method from ConstValueProvider
2023-04-07 18:07:10 +00:00
Ivan Kylchik
8499891756
[K2] Properly serialize constant values
...
#KT-56190 Fixed
2023-04-07 18:07:10 +00:00
Ivan Kylchik
4a50bd9b16
[K2] Fix annotation serialization for simple cases
...
#KT-57611
2023-04-07 18:07:09 +00:00
Dmitriy Novozhilov
92a59279d5
[FIR] Properly implement serializer extension for klib compilation
...
^KT-57654 Fixed
2023-04-05 07:31:33 +00:00
Ivan Kylchik
32297c0f21
Serialize and deserialize const val's properly for K2 klib
...
#KT-57312 Fixed
2023-04-04 12:35:54 +00:00
Vladimir Sukharev
639b0cc525
Revert "[K2/N] KT-56190 Serialize simple const property initializers"
...
This reverts commit 2ace8ba9bd .
2023-03-29 18:00:09 +02:00
Vladimir Sukharev
2ace8ba9bd
[K2/N] KT-56190 Serialize simple const property initializers
...
Merge-request: KT-MR-8623
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com >
2023-03-29 13:26:43 +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 Novozhilov
a64d8e8a31
[Stdlib] Deprecate and make open Number.toChar()
...
^KT-46465 Fixed
2023-03-27 10:46:13 +00:00
Ivan Kochurkin
ee73e4774b
[K2, MPP] Remove redundant expect declarations from klib metadata
...
^KT-57250 Fixed
Introduce flat Fir2IrActualizedResult
It contains output from Fir2Ir and IrActualizer
2023-03-24 14:48:26 +00:00
Dmitrii Gridin
706ff6b61f
[FIR] pre-resolve some scope callables before creating a scope
...
In a lot of cases, when we want to process the
declaration in scope, it should be resolved to at least TYPES phase.
To avoid doing it manually in all our variety of scopes, we do it when the scope it created.
It was implicitly working manually before as lazy resolve did a lot of extra work
on resolving a declaration it was not supposed to resolve.
Now it's not the case, and we have to explicitly resolve all the declarations we need.
^KT-56543
Co-authored-by: Ilya Kirillov <ilya.kirillov@jetbrains.com >
2023-03-24 09:57:46 +00:00
Pavel Kunyavskiy
b01cc1f88c
[K2/N] Fix property accessors modality in K2 metadata
...
^KT-56603
2023-03-22 13:47:01 +00:00
Mads Ager
683220a32c
[K1] Remove compiler version requirements for context receivers in metadata.
2023-03-17 07:15:13 +00:00
Mads Ager
e051751005
[K2] Use metadata method kind Delegation for delegated members.
2023-03-17 07:15:12 +00:00
Alexander Udalov
6595275ba7
Remove ClassBuilderMode.ABI
...
It was a special mode used only by the removed legacy implementation of
jvm-abi-gen.
2023-03-10 12:24:50 +00:00
Evgeniy.Zhelenskiy
394cd944b6
[IR] Add MFVC representation during serialization of FIR to IR
...
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com >
#KT-1179
2023-03-07 21:44:41 +00:00
Ivan Kochurkin
f1fef62f76
[FIR] Consider default values from expect function during serialization
...
It's not possible to unmute some tests for K2 because it causes testData structure changing
If change testData, NATIVE doesn't work even with `IGNORE_BACKEND`
2023-03-01 22:10:07 +00:00
Kirill Rakhman
314784f435
[FIR] Introduce FirDeclarationStatus.hasStableParameterNames
...
This flag is true by default but is set to false for
- Java methods and constructors
- interface delegation methods that delegate to Java
The NAMED_ARGUMENTS_NOT_ALLOWED logic is mostly refactored to use the
new flag though some custom logic remains for determining the correct
message and to work around a corner case with fake overrides.
The flag is (de)serialized from/to metadata. For backward compatibility
with K1, delegated methods to Java types are deserialized as stable.
^KT-40480 Fixed
2023-02-13 12:09:39 +00:00
Kirill Rakhman
d204d65174
[FIR] Reformat FirElementSerializer
2023-02-13 12:09:39 +00:00