Commit Graph

2256 Commits

Author SHA1 Message Date
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