Pavel Mikhailovskii
3b5179686e
KT-52592 Fix NPE from KProperty.getExtensionDelegate on property delegated to another property; make $delegate methods private
2022-06-01 14:02:28 +00:00
Victor Petukhov
96d1f89836
[BE] Support until operator in back-ends
2022-05-31 08:42:56 +00:00
Pavel Mikhailovskii
2ceccec2b8
KT-52551 Create a static initialization section in case of delegation to a property reference from a file class
2022-05-30 14:16:18 +00:00
Ivan Kochurkin
e004c8e2d6
[FIR2IR] Pass value parameter name to createDefaultSetterParameter if it exists
2022-05-29 23:41:25 +03:00
Ivan Kochurkin
feb3f41108
[FIR] Fix resolve inside lambda
...
The lambda is passed to extension function with type parameters
that defined inside this lambda
^KT-52197
^KT-52190 Fixed
2022-05-29 23:41:25 +03:00
Ivan Kochurkin
ad7c213ab2
[FIR] Initialize type for annotation arguments during deserialization
...
Get rid of IrErrorTypeImpl creating in FIR2IR
2022-05-29 23:41:23 +03:00
Ivan Kochurkin
0ef043b074
[FIR2IR] Consider property init value from nested class, ^KT-52057 Fixed
2022-05-29 23:41:23 +03:00
Victor Petukhov
0199c76c06
[FE 1.0] Check callable reference return type safety during resolution
...
^KT-51844
^KT-52503 Fixed
2022-05-27 13:56:34 +00:00
Victor Petukhov
51551998c7
Revert "[FE 1.0] Take care callable reference candidates with recursive candidate return type"
...
This reverts commit d04beaa8bb49c99ceb993f3f7b32169c393b39f4.
2022-05-27 13:56:33 +00:00
Victor Petukhov
b411eb36e8
[FE 1.0] Take care standalone lambdas during updating types in the builder inference
...
^KT-50520 Fixed
2022-05-27 13:56:32 +00:00
Mikhail Glukhikh
6f17a8713c
Fix KT-47708 in FIR by transferring SAM annotations to synthetic constr.
2022-05-24 12:29:28 +00:00
Dmitriy Novozhilov
706a0d287a
[FIR2IR] Don't use source to determine that function is anonymous
2022-05-20 13:33:07 +00:00
Dmitriy Novozhilov
c3a03de557
[FIR2IR] Search for ExtensionFunctionType constructor symbol using symbol provider
2022-05-20 13:33:05 +00:00
Dmitriy Novozhilov
119bc06435
[FIR2IR] Add Fir2IrComponents context receiver to standalone helper functions
2022-05-20 13:33:05 +00:00
Georgy Bronnikov
7605494f2b
Fir2Ir: provide fake file-level signatures for toplevel privates
...
We need to supply signatures for private declarations even when their
containing file is not known. In situations where the FirDeclaration in
question is already known (i.e. where we are never going to serach for
the declaation based on that signature), FirDeclaration itself is
sufficient as a key.
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
8fd29a9fec
Fir2Ir: properly compute setter type parameter bounds
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
3a4b8962f9
Fir2Ir: simplify getCachedIrTypeParameter
...
I could not figure out the reason for the special case in that function.
Tests do not show anything useful.
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
e504d9faed
Minor: remove unused import
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
49576e0cbb
Fir2Ir: handle nested class references in type parameter bounds
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
9fb1a901cf
Fir2Ir: handle intersection types in FirJvmMangleComputer
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
a8cc3ec316
Fir2IR: introduce IdSignature?.iscomposite()
2022-05-19 12:02:44 +02:00
Georgy Bronnikov
64818c817f
Fir2Ir: do generate enum constructors even when private
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
32e94cc126
Fir2Ir: simplify check for fake override in createIrLazyFunction
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
d2781f37ad
Fir2Ir: ignore private imported declarations
...
Code that checks for inclusion is translated from IrLazyClass.
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
536bd99fe7
Fir2Ir: use class id when determining whether declaration is toplevel
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
39bba7973c
Fir2Ir: create file level signatures where appropriate
...
This is godugly code, where a flag for file level signatures is passsed
around.
An alternative would be not to create file level signatures for toplevel
private clases, since those still need unique names, at least on JVM.
But that would break binary compatibility.
Signatures are due for overhaul anyway. Hopefully this code can be
reverted at that point.
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
dafcafc232
Fix infinite tail recursion
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
1eaec5a6e6
Fir2Ir: use typeContext in Fir2IrDeclarationStorage.createIrParameter
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
e7b1cc03de
Fir2Ir: deal with flexible and raw types in FirJvmMangleComputer and type converter
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
ad625a4631
Fir2Ir: deal with Java fields in FirIrProvider
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
571ba9298e
Fir2Ir: put properties data from IrBuiltinsOverFir into symbol table
...
Properties themselves, accessors, backing fields.
2022-05-19 12:02:43 +02:00
Georgy Bronnikov
ff2f6fe5e5
Fir2Ir: handle enum entries in Fir2IrProvider
...
NB: only the easy path works for sure. Need to have a look at:
- enum entry members
- Java enum entries
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
0653ba7313
Fir2Ir: Specify containingClass in getOrCreateIrFunction
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
bbec6f0d85
Fir2Ir: handle type parameter signatures
...
Type parameter references should be deserialized.
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
a6d4cd0fe4
Fir2Ir: compute mangles for anonymous objects
...
Needs review to avoid assigning the same mangle to different objects,
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
12d34589d8
Psi2Ir, Fir2Ir: always include return type into signature mangle of a function
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
b79903b2f4
Fir2Ir: do generate signatures for private declarations
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
a251a49664
Fir2Ir: register special annotations in symbol table
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
6421e649ad
Fir2Ir: fix mangling property type parameters for accessor signatures
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
1c00f731fd
Fir2Ir: deal with fake overrides in FirIrLinker
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
49bd3c1758
Fir2Ir: make sure Fir2IrLazyClass gets registered in symbol table
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
1fbd79e310
Fir2Ir: fix deserializing IR for property accessors
...
1. Need to register Fir2IrLazyPropertyAccessors in symbol table.
2. Need to set their bodies.
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
f94b0bbcea
Fir2Ir: add Fir2IrTypeParametersContainer
...
Fir2IrLazyProperty should not be a IrTypeParametersContainer.
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
4b34648327
Fir2Ir: repair computation of IR signatures
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
ffe1615e9c
Fir: simplify IrBuiltInsOverFir
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
bf5cd14acd
Fir2Ir: allow setting Fir2IrLazyConstructor.extensionReceiverParameter
...
Needed by handleJvmStaticInSingletonObjects after IR deserialization.
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
8771ce94ef
Fir2Ir: deal with toplevel privates
2022-05-19 12:02:41 +02:00
Georgy Bronnikov
9ea14a6eab
Fir2Ir: pass file data to Fir2IrSignatureComposer
2022-05-19 12:02:41 +02:00
Georgy Bronnikov
ae158e4c5b
Fir2Ir: make Fir2IrLazyClass a DeserializableClass
2022-05-19 12:02:41 +02:00
Georgy Bronnikov
0012ba79e1
Fir2Ir: rework FirIrProvider
2022-05-19 12:02:41 +02:00