Mikhail Glukhikh
465261e611
FIR: don't create intersection override for duplicating symbols
2021-02-02 16:25:08 +03:00
Dmitriy Novozhilov
842ed624a7
[TD] Remove some outdated dumps in FIR_IDENTICAL tests
2021-01-22 13:51:31 +03:00
Mads Ager
dfc86feecd
[IR] Extend test coverage for smart cast handling.
2021-01-11 12:01:48 +03:00
Mads Ager
6fc0de39c2
[PSI2IR] Propagate smart cast information for variable loads.
...
This gives us more precise type information and can enable backend
optimizations. This was motivated by when expressions not compiled
to table switches in the JVM_IR backend.
Fixed KT-36845.
2021-01-11 12:01:47 +03:00
Zalim Bashorov
57cb8f97e9
[IR] update testdata: don't use "D" suffix on double constants
2020-11-26 00:15:18 +03:00
Zalim Bashorov
c68040753d
[IR] dumpKotlinLike: add testdata for FIR tests
2020-11-26 00:15:13 +03:00
Zalim Bashorov
2dbd784a6a
[IR] update testdata: print else -> ...
2020-11-26 00:14:55 +03:00
Zalim Bashorov
e56787c0b0
[IR] update testdata: IrInstanceInitializerCall
2020-11-26 00:14:25 +03:00
Zalim Bashorov
602f0ddbc8
[IR] update testdata after using maxBlankLines=1 for Printer
2020-11-26 00:14:20 +03:00
Zalim Bashorov
b518c19b38
[IR] update testdata: support for IrDelegatingConstructorCall
2020-11-26 00:14:17 +03:00
Zalim Bashorov
fc5c674c60
[IR] update testdata
2020-11-26 00:14:11 +03:00
Zalim Bashorov
8d5facb15f
[IR] add testdata for dumpKotlinLike
2020-11-26 00:14:03 +03:00
Denis Zharkov
5c9187b270
FIR2IR: Rework fake overrides generation
...
- To discriminate what's already been generated, use the set of declaration
instead of names (it's obviously more correct)
- Make it possible to set more then one overridden (base)
2020-10-01 17:49:02 +03:00
Ivan Kylchik
e34246faec
Fix fir2ir text tests after introducing const evaluator
2020-06-24 16:13:02 +03:00
Mark Punzalan
b74652aa5b
[FIR] Use ieee754equals for floating-point equality operations
2020-04-23 11:50:54 +03:00
Mark Punzalan
d4cbfcb79e
[FIR] Promote numeric types during comparisons
...
Added support for comparing platform types. Extracted logic to convert
operator expressions to OperatorExpressionGenerator.
2020-04-14 11:51:30 +03:00
Denis Zharkov
8fca343ef0
FIR: Support FirComparisonOperator in Fir2Ir
...
^KT-31163 Fixed
2020-02-27 18:21:34 +03:00
Mikhail Glukhikh
8c21f04bf4
FIR2IR: determine type parameters before value parameters
...
Type parameters can be referred from value parameters,
so we should determine them earlier to be able to set their indexes
2020-02-20 18:34:51 +03:00
Juan Chen
8e35545e10
FIR2IR: provide type arguments for class 'this' receiver
2020-02-11 22:50:06 +03:00
Mads Ager
e8a640851a
FIR: Change the Fir2Ir handling of smart casts.
...
Generate the expression with the original type and then insert
an implicit conversion. That matches the behavior of psi2ir
better and therefore avoids breaking backend assumptions.
In particular, IrGetValue expects the type of the underlying
symbol and the type of the IrGetValue to be the same.
2020-01-31 09:31:52 +01:00
simon.ogorodnik
5e426fdc71
[FIR] Optimization & checking fix: remove usage of dispatchReceiverValue
2019-12-27 13:45:59 +03:00
Mark Punzalan
692a83f7bb
[FIR] Add FirCheckNotNullCall converted to CHECK_NOT_NULL intrinsic
...
function call.
2019-12-11 16:54:15 +03:00
Denis Zharkov
b8984d154b
FIR: Do not copy type parameters from class to constructors
...
Use the same instances from class declaration instead
Otherwise, primary constructor value parameter types when used
in the class body are considered as different from types
based on the class type parameters
See the test genericConstructors.kt, before this commit
"id" call was reported in inapplicable
2019-12-05 13:08:51 +03:00
Dmitry Petrov
cb1b9c2ccf
IR testData: IrSimpleFunction.isOperator
2019-11-29 13:53:05 +03:00
Mark Punzalan
5afab1ac2b
[FIR] FIR2IR: Populate calls with type arguments and function type
...
parameters with bounds/supertypes.
2019-11-25 09:37:47 +03:00
Roman Artemev
a343a57207
[IR] Refactor ir infrastructure
...
- Remove range-based uniq id indexes using to link built ins
- Limit KotlinType usages, replace them with corresponding IrType
2019-11-12 20:45:11 +03:00
Steven Schäfer
704e6e96fa
Fir2Ir: Produce IR_TEMPORARY_VARIABLE origins
2019-11-05 14:58:47 +03:00
Steven Schäfer
733c7579aa
Normalize names of temporary variables in IrTextTests
2019-11-05 14:58:47 +03:00
Dmitry Petrov
2682057767
IR tests: update testData for IrSimpleFunction.isFakeOverride
2019-11-01 14:55:09 +03:00
Dmitry Petrov
843fb88459
IR: IrSimpleFunction.isFakeOverride
2019-11-01 14:55:09 +03:00
Steven Schäfer
210c354ae5
Fir2Ir: Set initializers for temporary variables
2019-10-25 14:27:19 +03:00
Dmitriy Novozhilov
4df4c58a05
[FIR] Resolve type of when expression to Unit if it is not exhaustive
2019-10-21 11:59:44 +03:00
Dmitriy Novozhilov
f19a878948
[FIR] Add exhaustive checker for when expressions
...
Also remove generating default else branch introduced in 38fa0122 and 54eb4cf9
2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov
8614323f80
[FIR] Tests. Update some outdated testdata
2019-09-13 12:21:59 +03:00
Dmitriy Novozhilov
5c29af4b53
[FIR] Tests. Update some outdated FIR testdata
2019-09-02 10:43:10 +03:00
Mikhail Glukhikh
0d5cfa97a5
FIR2IR: read & set dispatch & extension receivers
...
NB: this commit includes receiver-based assertions yet failing for some tests
2019-08-30 11:47:31 +03:00
Dmitriy Novozhilov
e374242adf
[FIR] Fix propagating expected type for binary operator calls
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
ba7a137e74
[FIR] Add fir node for binary && and ||
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
57a2665b00
[FIR] Update tests for previous commit
2019-08-22 10:55:07 +03:00
Dmitriy Novozhilov
e6bf3b3263
[FIR] Render nullability in type renderer, not in fir renderer
2019-08-22 10:55:07 +03:00
Dmitry Petrov
7170439517
IR: '!!' is generated as 'CHECK_NOT_NULL' intrinsic
...
```
fun <T : Any> CHECK_NOT_NULL(x: T?): x =
if (x != null) x else throw NullPointerException(...)
```
This allows to compile both Kotlin/JVM and Kotlin/JS effectively.
2019-08-14 11:16:10 +03:00
Dmitry Petrov
bdec8b04e8
Minor: trim in RenderIrElementVisitor
2019-07-31 10:37:35 +03:00
Mikhail Glukhikh
63b7fa70f9
FIR2IR: add extension receiver parameters to functions
2019-07-25 09:46:29 +03:00
Simon Ogorodnik
aa96837758
[FIR] Introduce unchecked not-null cast as internal operation for !!, ?:
2019-05-23 14:02:08 +03:00
Mikhail Glukhikh
26974788e9
FIR2IR converter: handle receivers and parents more correctly
2019-05-23 14:02:07 +03:00
Mikhail Glukhikh
5262f0a53f
Fir2Ir: apply major text data update after a bunch of resolve changes
2019-04-30 18:45:57 +03:00
Dmitry Petrov
865e0cc080
IR: IrConstructorCall: fixes after rebase
2019-04-26 17:43:26 +03:00
Dmitry Petrov
b78d1bb2b9
IrConstructorCall support in JVM_IR, JS_IR, and FIR2IR
2019-04-26 17:43:25 +03:00
Simon Ogorodnik
649c2f6bcc
FIR deserializer: load type-parameters correctly
2019-04-23 11:51:05 +03:00
Simon Ogorodnik
73b1676a03
Raw FIR: fix unary operators (now convention calls use receivers)
2019-04-23 11:40:32 +03:00