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
Ivan Kylchik
4ddbb89103
[JS] Manually change receiver's type of Char's equals method
...
Char's equals method in js doesn't work properly because now equals
method is not fake override in Char, but it is actual override and so
when we call equals for some char in js, it will not be boxed. To fix
it we need to get correct receiver's type.
2022-05-18 21:19:54 +03:00
Ivan Kylchik
1564f2c549
Mark all declarations that will be evaluated with ir interpreter
2022-05-18 21:19:54 +03:00
Ivan Kylchik
1ccd5d1a3a
Add new internal annotation IntrinsicConstEvaluation to kotlin-native
2022-05-18 21:19:53 +03:00
Iven Krall
ba5c85d6f2
KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing
2022-05-18 17:23:40 +00:00
Dmitriy Dolovov
8de4eb798c
[IR] Fix removal-of-abstract-fun IR linkage case
...
^KT-50771
2022-05-18 18:05:09 +03:00
Dmitriy Dolovov
deb9039b0f
[IR][tests] Add tests for IR linkage issues related to properties
2022-05-18 18:05:05 +03:00