Dmitriy Novozhilov
35dd1cf75a
[FIR] Fix binding return expression to function
2019-11-19 10:43:46 +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
82c527c2cc
IR: IrProperty.isFakeOverride
2019-11-01 14:55:10 +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
0da4b06074
psi2ir: Fix return insertion
...
We should only insert a return statement at the end of a lambda or
function if the final statement is used as an expression (slice
USED_AS_RESULT_OF_LAMBDA and USED_AS_EXPRESSION).
2019-10-31 11:13:44 +03:00
Dmitriy Novozhilov
36ad065792
[FIR] Fix testdata broken after d2b895d8
2019-10-30 18:49:07 +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
Steven Schäfer
76ab631214
psi2ir: Optimize generated data class members
...
- Access underlying fields directly, instead of using accessors. This is
safe since data classes are always final.
- Don't generate a temporary variable in hashCode to use as the
accumulator.
Both optimizations are effectively present in the current JVM backend
and with these changes the generated code is much closer to what the
current backend generates.
2019-09-18 18:56:42 +02:00
Denis Zharkov
2bdbed978b
FIR: Support SAM constructors
2019-09-18 10:03:55 +07:00
Mikhail Glukhikh
5386cfe254
FIR2IR: support fake overridden properties
2019-09-05 16:26:14 +03:00
Mikhail Glukhikh
bd5e1aeef5
FIR2IR: change backing field visibility to private
2019-08-30 11:47:32 +03:00
Mikhail Glukhikh
13d14df8ae
FIR: set dispatch receiver for data class generated functions
2019-08-30 11:47:31 +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
Steven Schäfer
a90ac2438d
Set correct field visibility in psi2ir
2019-08-28 19:41:11 +02:00
Dmitriy Novozhilov
e3e1f3c2aa
[FIR] Fix transforming value parameters of anonymous functions
2019-08-22 14:14:55 +03:00
Dmitriy Novozhilov
d841090866
[FIR] Don't analyze properties with implicit types twice
...
Test `cast.kt` now don't work absolutely correct and implicit type of
value parameter in lambda is't replaced with error type, but it's
minor bug
2019-08-22 14:14:55 +03:00
Dmitriy Novozhilov
57a2665b00
[FIR] Update tests for previous commit
2019-08-22 10:55:07 +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
Dmitry Petrov
ffd9b45ef3
IrFunctionExpression: add 'origin'
...
This is actually either a LAMBDA or an ANONYMOUS_FUNCTION.
Not quite sure if it's really required, but some tools such as IR-based
decompiler might require this information.
2019-07-19 11:36:19 +03:00
Dmitry Petrov
41b59f9b9a
IrFunctionExpression: update fir2ir tests
2019-07-19 11:36:19 +03:00
Dmitry Petrov
ed2b4a8bec
Introduce IrFunctionExpression IR element
...
Use it to represent proper function expressions (lambdas and anonymous
functions).
2019-07-19 11:36:18 +03:00
Mikhail Glukhikh
d96c66adac
FIR: partially implement invoke resolution
2019-07-08 16:59:37 +03:00
Mikhail Glukhikh
d41c50d6cf
FIR: support type inference for assignments, fix related lambda inference
2019-06-24 18:51:03 +03:00
Mikhail Glukhikh
d2bdbd8978
FIR resolve: record & check implicit extension receiver type properly
2019-05-28 10:20:35 +03:00
Simon Ogorodnik
d3f00280e9
Disable data class copy function body in raw FIR
...
After this commit we require 'copy' body generation in FIR2IR converter
2019-05-28 10:18:00 +03:00
Mikhail Glukhikh
05e4539019
Set resolved type for lambdas properly during FIR resolve
...
Partially done by semoro
2019-05-28 10:17:31 +03:00
Simon Ogorodnik
cef108a5ae
FIR: implement qualifier resolver
2019-05-28 10:17:05 +03:00
Mikhail Glukhikh
a973a21ec6
FIR2IR: support assignments of local variables
2019-05-23 14:02:11 +03:00
Mikhail Glukhikh
2bf80ff64e
FIR: support copy functions in data classes
2019-05-23 14:02:10 +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
b78d1bb2b9
IrConstructorCall support in JVM_IR, JS_IR, and FIR2IR
2019-04-26 17:43:25 +03:00
Dmitry Petrov
11eea6e86a
psi2ir: generate IrConstructorCall elements in IR builder helpers
2019-04-26 17:43:24 +03:00
Dmitry Petrov
e3fd74a580
IR: annotations are represented as IrConstructorCall elements
...
Also, they are rendered somewhat nicer
2019-04-26 17:43:24 +03:00
Simon Ogorodnik
9abf4062b1
FIR tree: implement trivial expressions typing
2019-04-23 11:14:55 +03:00
Mikhail Glukhikh
881073b1c9
Add basic FIR -> IR converter with a set of text tests
...
Tests duplicate IrTextTestCaseGenerated
#KT-24065 Fixed
2019-04-05 16:18:58 +03:00
Anton Bannykh
9c3e452396
IR: (update test data) NOT(Boolean) -> Boolean.not
2019-03-25 17:49:15 +03:00
Dmitry Petrov
a5c95275f0
IR: get rid of descriptors in DumpIrTree
2019-03-21 11:23:51 +03:00
Dmitry Petrov
9a82f926a1
IR: descriptor-less rendering of IR elements (work in progress)
2019-03-21 11:23:51 +03:00
Dmitry Petrov
e49eae528c
IR: don't use descriptors in rendering (work in progress)
...
There's some descriptor-based code remaining. Need some more work on IR.
2019-03-21 11:23:51 +03:00
Ting-Yuan Huang
6bbb0269b1
IR: Set when.origin for IrIfElseImpl
...
Change-Id: I38510b59e3dc936baadbfe3ef2702990493815e5
2019-03-13 08:48:20 +01:00
Dmitry Petrov
85f55dec9a
Support SAM conversion in psi2ir
...
SAM conversion takes a function value (function type or a subtype),
and produces a SAM interface value.
2018-12-19 10:58:34 +03:00
Dmitry Petrov
6f97db81c8
Update testData after IR type rendering changes
2018-12-07 10:51:55 +03:00
Igor Chevdar
2ff87ab1ce
Fixed tests on IR copier
2018-11-15 19:13:06 +03:00
Dmitry Petrov
bd1491ac8a
psi2ir: Merge constant entries in string template expressions
...
This is required to handle UCNs properly, see KT-28006.
#KT-28006
2018-11-08 12:29:15 +03:00
Mikhael Bogdanov
4fb434c0de
Move out jvm-specific part from ir-common
...
#KT-27005 Fixed
2018-10-02 11:12:21 +02:00
Mikhael Bogdanov
1a1bb53381
Update IR text test
...
Additional implicit coercions to unit was added
2018-08-15 14:18:15 +03:00