Commit Graph

92578 Commits

Author SHA1 Message Date
Georgy Bronnikov 0ef474a8d3 Do not set parent for deserialized IR declarations 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
Georgy Bronnikov 4a450a6627 Fir2Ir: handle flexible types in FirJvmMangleComputer
This is preliminary: like Fir2IrTypeConverter, we just take the upper
bound. Need to replicate the approximation performed in TypeTranslator.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov 57679bda79 Fir2Ir: run type enhancement in FirIrProvider 2022-05-19 12:02:41 +02:00
Georgy Bronnikov 829b2822c6 Fir2Ir: adjust FirBasedSignatureComposer for constructors
Consatructor's name in the signature should be '<init>', not the
name of the constructed class.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov af123d1daf Fir2Ir: deserialize bodies of inline functions 2022-05-19 12:02:41 +02:00
Georgy Bronnikov e0c175bb50 Fir2Ir: remove symbolTable as separate component from FirResult
It's already in components.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov 3f66b31a47 Fir2Ir: add irProviders to Fir2IrComponents
Removes the last use of DeclarationStubGenerator in the FIR pipeline.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov 13d4d60afa Fir2Ir: pass Fir2IrExtensions to backend 2022-05-19 12:02:41 +02:00
Georgy Bronnikov 3c3c1be543 Fir2Ir: introduce Fir2IrExtensions
This allows us to remove DeclarationStubGenerator from Fir2IrConverter,
thus reducing dependency on descriptor-based code.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov 6bc01f031c JVM_IR: remove dependency of JvmFileFacadeClass on stub generator 2022-05-19 12:02:41 +02:00
Georgy Bronnikov 3c939a1bdd Fir2Ir: remove unneeded ExternalDependenciesGenerator calls 2022-05-19 12:02:41 +02:00
Georgy Bronnikov c87748209d Fir2Ir: use lazy declarations for imported toplevel functions and properties 2022-05-19 12:02:41 +02:00
Georgy Bronnikov c32d0f3852 Fir2Ir: add FirIrProvider 2022-05-19 12:02:41 +02:00
Georgy Bronnikov 320ba3db75 JVM_IR, FIR: add FIR tests for IR serialization 2022-05-19 12:02:41 +02:00
Dmitriy Novozhilov 89b1307e16 [FE 1.0] Don't report UNUSED_* warnings on local properties with delegate
^KT-25527 Fixed
2022-05-19 07:14:23 +00:00
Dmitriy Novozhilov 4d5a4ccd6b [FE 1.0] Don't fail on calls of functions with contracts from object
^KT-51704 Fixed
2022-05-19 07:14:22 +00:00
Dmitriy Novozhilov 993021a71d [Build] Use 1.8 target version instead of 1.6 while using JPS build 2022-05-19 07:14:21 +00:00
Ivan Kylchik 73a571ef7f Report warning from backend if constant expression cannot be evaluated 2022-05-18 21:20:04 +03:00
Ivan Kylchik f3252334b2 Move most of ir utils from backend.common to ir.tree 2022-05-18 21:20:03 +03:00
Ivan Kylchik 40d224d5fe Change error message of EXCEPTION_IN_CONST_VAL_INITIALIZER 2022-05-18 21:20:03 +03:00
Ivan Kylchik 001ecaa9b2 Support RENDER_DIAGNOSTICS_FULL_TEXT directive in new test infra 2022-05-18 21:20:03 +03:00
Ivan Kylchik 20d0a531df Add new tests to check evaluation of intrinsic сonsts 2022-05-18 21:20:02 +03:00
Ivan Kylchik dca22d745a Drop excessive lowerings that are replaced by ConstEvaluationLowering 2022-05-18 21:20:02 +03:00
Ivan Kylchik 0f0b48f87b Move reporting of interpreter's backend errors tests to fir module 2022-05-18 21:20:01 +03:00
Ivan Kylchik 44cf64a00c Convert const values in ranges without explicit cast 2022-05-18 21:20:01 +03:00
Ivan Kylchik 0b22cf6cb9 Rewrite ir interpreter's dump tests to box
Box tests will check the correctness of interpreter, meantime
by dumped ir we can understand that expression was folded.
2022-05-18 21:20:01 +03:00
Ivan Kylchik fac98b7787 Add possibility to dump lowered ir in tests before lowering execution 2022-05-18 21:20:00 +03:00
Ivan Kylchik 592baf134e Change ir const checker to match new rules of IntrinsicConstEvaluation 2022-05-18 21:20:00 +03:00
Ivan Kylchik 1431d4b356 Add jvm diagnostic tests to check report of exceptions from interpreter 2022-05-18 21:20:00 +03:00
Ivan Kylchik 20d8e6607d Add new diagnostic tests to check new rules for const modifier 2022-05-18 21:19:59 +03:00
Ivan Kylchik df7be06558 Add tests to check constant evaluation for intrinsic const declarations 2022-05-18 21:19:58 +03:00
Ivan Kylchik 2dcfe219be Move string concat folding into FlattenStringConcatenationLowering
Originally `FoldConstantLowering` is responsible for this, but it can
be removed in the future.
2022-05-18 21:19:58 +03:00
Ivan Kylchik 23f9e97a5f Create getInnerDeclarations function to extract statements from parent
This function is needed to be able to work with files and scripts
2022-05-18 21:19:58 +03:00
Ivan Kylchik 51ccc32a3f Update test data after introducing IntrinsicConstEvaluation annotation 2022-05-18 21:19:57 +03:00
Ivan Kylchik d0ab01ad24 Add lowering that will evaluate all intrinsic const expressions 2022-05-18 21:19:56 +03:00
Ivan Kylchik 6a0802a1be Allow interpreting code extension property 2022-05-18 21:19:56 +03:00
Ivan Kylchik 7113523e34 Support interpretation of trimMargin and trimIndent 2022-05-18 21:19:56 +03:00
Ivan Kylchik 3bf678a011 Add ONLY_INTRINSIC_CONST evaluation mode 2022-05-18 21:19:55 +03:00
Ivan Kylchik 761424b131 Add IntrinsicConstEvaluation annotation to some ir builtins functions 2022-05-18 21:19:55 +03:00
Ivan Kylchik a993939127 [FIR] Allow constant values for IntrinsicConstEvaluation declarations 2022-05-18 21:19:55 +03:00