Mikhail Glukhikh
a93c7a39e0
[FIR] Provide object [dispatch] && callable reference receivers properly
2020-04-09 15:22:56 +03:00
Mikhail Glukhikh
b21da3910a
[FIR] Set type arguments also in provideDelegate property reference
2020-04-03 13:42:06 +03:00
Mikhail Glukhikh
8bf4ec66a9
[FIR] Fix receiver type order in delegate property reference
2020-04-03 13:34:46 +03:00
Mikhail Glukhikh
f3f7bf70f6
[FIR] Set delegate field receiver properly
2020-04-03 13:29:55 +03:00
Mikhail Glukhikh
036b6c63f6
[FIR] During resolve, set correctly property reference type in delegate
2020-04-03 13:18:47 +03:00
Mikhail Glukhikh
58e00400f1
[FIR2IR] Support PROPERTY_REFERENCE_FROM_DELEGATE origin
2020-04-03 13:05:13 +03:00
Mikhail Glukhikh
5f8fadb220
[FIR2IR] Remove GET_PROPERTY origin from delegate field reads
2020-04-03 13:04:56 +03:00
Mikhail Glukhikh
d1fc6ff6ee
[FIR2IR] Don't provide backing field symbols for non-Java property refs
2020-03-30 16:23:11 +03:00
Mikhail Glukhikh
810b607a65
[FIR2IR] Provide receivers also for property callable references
2020-03-30 16:23:10 +03:00
Mikhail Glukhikh
e9699e7173
FIR2IR: provide correct origins for arithmetic operators
2020-03-10 15:19:35 +03:00
Mikhail Glukhikh
db7401d8eb
FIR2IR: set GET_PROPERTY origin for property reads
2020-02-28 15:29:01 +03:00
Mikhail Glukhikh
d1fac6dce1
FIR2IR: declare receivers for all accessors of extension properties
...
Before this commit, extension receivers were declared only for
properties with container source, which is strange & inconsistent.
Now we declare accessor extension receiver iff corresponding property
has extension receiver.
2020-02-25 12:13:42 +03:00
pyos
f1669e2230
IR: mark interface delegate fields as synthetic
...
This requires separating them origin-wise from property delegates.
2020-01-28 10:35:22 +03:00
Juan Chen
573188bdc4
[FIR2IR]: fix translation of this references in instance methods
...
Currently FirThisReceiverExpression of instance methods are translated
to references of the class' thisReceiver,
not the method's dispatch receiver,
which causes problems with IrFrameMap::typeOf,
as the class' thisReceiver is not in the typeMap.
This commit translates non-qualified "this" references of
instance methods to references of the methods' dispatch receiver.
2020-01-10 10:43:07 +03:00
Mikhail Glukhikh
e4b2c238c7
FIR2IR: temporarily allow null receivers & use findIr*Receiver also for fields
2019-12-27 13:46:06 +03:00
Dmitry Petrov
cb1b9c2ccf
IR testData: IrSimpleFunction.isOperator
2019-11-29 13:53:05 +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
Mikhail Glukhikh
da7d5d5702
FIR: provide receiver for accessor of extension property
2019-09-27 09:22:52 +03:00
Mikhail Glukhikh
5386cfe254
FIR2IR: support fake overridden properties
2019-09-05 16:26:14 +03:00
Mikhail Glukhikh
0962755fde
FIR2IR: drop field receiver consistency check (due to delegate field case)
2019-08-30 11:47:33 +03:00
Mikhail Glukhikh
bd5e1aeef5
FIR2IR: change backing field visibility to private
2019-08-30 11:47:32 +03:00
Mikhail Glukhikh
652fd7ee73
FIR: fix dispatch receivers for objects
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
Mikhail Glukhikh
da22898a19
FIR2IR: set 'SetField' type to Unit, convert explicit 'this' references
2019-08-30 11:47:30 +03:00
Steven Schäfer
a90ac2438d
Set correct field visibility in psi2ir
2019-08-28 19:41:11 +02:00
Dmitry Petrov
bdec8b04e8
Minor: trim in RenderIrElementVisitor
2019-07-31 10:37:35 +03:00
Mikhail Glukhikh
d32e5065c5
FIR: implementation of delegateProvider in delegate resolve
2019-07-25 09:46:42 +03:00
Mikhail Glukhikh
213f951da3
FIR: partial implementation of delegate resolve #KT-32217 Fixed
2019-07-25 09:46:34 +03:00
Mikhail Glukhikh
63b7fa70f9
FIR2IR: add extension receiver parameters to functions
2019-07-25 09:46:29 +03:00
Mikhail Glukhikh
26974788e9
FIR2IR converter: handle receivers and parents more correctly
2019-05-23 14:02:07 +03:00
Mikhail Glukhikh
f4fdc66a34
Introduce experimental FIR compiler #KT-31265 Fixed
...
This commit also includes several FIR2IR fixes which helps FIR compiler
to produce normal results
2019-05-23 14:02:06 +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
37b1c175ce
IR: introduce IrConstructorCall / IrConstructorCallImpl
2019-04-26 17:43:24 +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
Dmitry Petrov
d4525e19dd
IR: get rid of descriptors in local delegated properties rendering
2019-03-25 11:50:14 +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
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
Dmitry Petrov
6dfcf15a39
IR: IrField.isStatic
2018-07-31 13:39:54 +03:00
Dmitry Petrov
65fe1101fd
Object references in object field initializers are 'GET_VAR this@Object'
2018-07-23 18:16:32 +03:00
Dmitry Petrov
ae0704af9c
Generate singleton references as GET_OBJECT in nested classes
2018-07-20 16:46:18 +03:00
Dmitry Petrov
799fcc2606
Fix IrType rendering, update testData
2018-06-29 11:24:46 +03:00
Dmitry Petrov
ab455d6572
IR: IrSimpleFunction.correspondingProperty: IrProperty?
...
Non-null for a property accessor, points to a corresponding property.
2018-05-25 09:40:51 +03:00
Dmitry Petrov
729efaf912
IR: IrConstructor.isPrimary
...
NB this is required for Kotlin/JS.
2018-05-11 11:24:46 +03:00
Dmitry Petrov
a6057fb499
IR: {IrClass, IrFunction, IrProperty, IrField}.isExternal
2018-05-11 11:24:46 +03:00
Dmitry Petrov
9717345e3b
IR: IrField.isFinal
2018-05-11 11:24:46 +03:00
Svyatoslav Scherbina
7a2d761a7d
Add minor improvements to psi2ir and IR utilities:
...
* Generate missing IR parameter declarations in external stubs
* Use origin = FAKE_OVERRIDE in external IR stubs for fake overrides
* Set .parent in external IR stubs
* Set .parent in IR generated by some utility methods
2018-03-02 15:41:48 +03:00