Jinseong Jeon
cdf5a2a5a1
FIR: set dispatch receiver parameter for inner class's constructor.
2020-03-25 12:40:09 +03:00
Jinseong Jeon
e46a4246d2
FIR: regard property accessor without body as FirDefaultPropertyAccessor
2020-03-23 15:12:54 +03:00
Mikhail Glukhikh
9836520287
[FIR2IR] Generate synthetic bodies for Enum.values() and valueOf()
2020-03-20 11:55:34 +03:00
Mikhail Glukhikh
95108a1bce
[FIR2IR] Enable type parameter index >= 0 requirement
2020-03-18 17:09:36 +03:00
Mikhail Glukhikh
1036d8a35a
[FIR] Provide dispatch receiver for 'field' synthetic variable
2020-03-18 17:09:36 +03:00
Mikhail Glukhikh
10c2aa1657
[FIR2IR] Set origin properly for set field / variable
2020-03-18 17:09:35 +03:00
Mikhail Glukhikh
c0f8be5d4e
[FIR2IR] Generate setter call for assignments, if any
2020-03-18 17:09:35 +03:00
Mikhail Glukhikh
3d17ce05b5
[FIR] Introduce FirResolvedArgumentList with argument-parameter mapping
...
#KT-36345 Fixed
2020-03-11 22:08:59 +03:00
Mikhail Glukhikh
e9699e7173
FIR2IR: provide correct origins for arithmetic operators
2020-03-10 15:19:35 +03:00
Dmitriy Novozhilov
770dfb69ba
[FIR] Analyze all statements in block except last one in independent mode
...
Some broken tests will be fixed in next commit
#KT-37176 Fixed
2020-03-05 16:48:47 +03:00
Dmitriy Novozhilov
25dc9f948a
Revert "[FIR] Support deserialization of annotations on JVM"
...
This is needed because of that commit tragically decreases performance,
so this changes will be delayed for now
2020-03-05 16:48:47 +03:00
Mikhail Glukhikh
fe658ce47f
FIR2IR: remove redundant receiver generation from visitor
...
Now static functions have no dispatch receiver: they really shouldn't.
2020-03-04 16:55:34 +03:00
Mikhail Glukhikh
940567b8bd
FIR2IR: set enum class modality properly for complex entries case
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
3ffe1a1876
FIR2IR: create IrEnumConstructorCall even in complex entries
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
5af3d92271
FIR2IR: cache enum entry classes properly
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
03eab2ec6c
FIR2IR: get rid of setParentAndContent + fixes around anonymous objects
2020-03-04 16:55:32 +03:00
Mikhail Glukhikh
cfa626ad77
FIR2IR: introduce conversion scope, remove dispatch receiver for lambdas
2020-03-04 16:55:31 +03:00
Dmitriy Novozhilov
dfa6dfa960
[FIR] Support deserialization of annotations on JVM
2020-03-02 09:49:28 +03:00
Mikhail Glukhikh
db7401d8eb
FIR2IR: set GET_PROPERTY origin for property reads
2020-02-28 15:29:01 +03:00
Mikhail Glukhikh
5b3b35cd78
FIR2IR: set "external stub" origin for external enum entries
2020-02-28 15:29:01 +03:00
Mikhail Glukhikh
3a3d6e740c
FIR2IR: correctly set type parameters of property accessors
...
In particular, we generate different type parameters for
getters & setters here.
2020-02-28 15:29:01 +03:00
simon.ogorodnik
f9483b1f4f
[FIR] KT-37027: Add 'out' projection to vararg elements
2020-02-27 19:07:17 +03:00
Mikhail Glukhikh
522eeae062
FIR2IR: standardize expression with smart cast conversion
...
To convert smart cast expression, now we just convert
original expression in standard way and wrap it with TYPE_OP.
Before this commit original expression was converted in different way,
that led to errors e.g. for this expression casting.
2020-02-25 12:13:42 +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
Mikhail Glukhikh
39bd97147f
[FIR] Don't create initializers for simple enum entries
...
Usually FIR enum entry is initialized by anonymous object,
which is the container for all enum entry' declarations.
However, for simple enum entries there is no need of initializer at all.
2020-02-21 16:38:52 +03:00
Mikhail Glukhikh
b1e9dbf994
[FIR] Use super<Enum> as delegated calls in enum constructors
2020-02-21 16:37:56 +03:00
Mikhail Glukhikh
f173af9238
FIR2IR: use enum constructor call for enum entries
2020-02-21 16:37:50 +03:00
Mikhail Glukhikh
14fd1d3c9f
[FIR] Check visibility correctly for sealed class in file
2020-02-19 22:41:23 +03:00
Mikhail Glukhikh
a4c4b2650c
FIR2IR: remove hacky & redundant resolve of delegating constructor calls
2020-02-19 18:09:06 +03:00
Mikhail Glukhikh
fdf4f477a6
FIR2IR: fix problems with enum entry / anonymous object visibility
2020-02-18 10:50:03 +03:00
Steven Schäfer
50c477bee1
Update IR text test expectations for FIR
2020-02-15 22:38:10 +03:00
Roman Artemev
e57d34dd9e
Make fix test:
...
- [JS IR] Unmute fixed tests
- [IrText] Update testdata
- [WASM] Temporary turn wasm test off
- [FirText] Temporary turn fit text tests off
- [JVM IR] Turn off klib jvm test
- [IR] Add new test
2020-02-14 18:22:17 +03:00
Mikhail Glukhikh
ba770f7b61
FIR2IR: fix type parameter indexes & fix some black-box & FIR2IR tests
2020-02-12 17:02:41 +03:00
Juan Chen
8e35545e10
FIR2IR: provide type arguments for class 'this' receiver
2020-02-11 22:50:06 +03:00
Anton Bannykh
0bcde9dffc
IR API: Make IrEnumEntry.initializerExpression IrExpressionBody
...
All non-declarations should be inside IrBody's now
2020-02-06 21:03:32 +03:00
Juan Chen
7249d2f889
[FIR] Fix translation of invokes & add return expressions for lambdas
...
* fixed NoSuchMethod caused by mismatched signatures of the "invoke" method generated for lambda arguments
* added test cases in invoke.kt for KFunction and anonymous functions
* added a transformer to wrap the last expression in the bodies of lambdas with return
2020-02-06 12:44:14 +03:00
Juan Chen
188abc243a
[FIR] add vararg arguments support, improve vararg parameters support
2020-01-31 16:41:25 +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
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
Mads Ager
e327b174a2
IR: Use name \$\$delegate_n for the field for interface delegation.
...
Without this change, these fields could have names such as
`<no name provided>$SuperClass$delegate` for something like
`object SuperClass by I { }`.
2020-01-27 15:28:27 +03:00
Dmitriy Novozhilov
3dfad4f0c3
[FIR] Fix generating properties for varargs in primary constructors
2020-01-24 10:57:52 +03:00
Dmitriy Novozhilov
76b3964e96
Update testdata according to change compiler version to 1.4
2020-01-17 10:33:50 +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
simon.ogorodnik
961037506a
FIR2IR: support FirEnumEntry
2020-01-10 10:23:51 +03:00
Mikhail Glukhikh
1cf582e9ed
FIR2IR: set extension receiver for anonymous functions
2019-12-27 15:31:36 +03:00
Mikhail Glukhikh
e4b2c238c7
FIR2IR: temporarily allow null receivers & use findIr*Receiver also for fields
2019-12-27 13:46:06 +03:00
simon.ogorodnik
5e426fdc71
[FIR] Optimization & checking fix: remove usage of dispatchReceiverValue
2019-12-27 13:45:59 +03:00
Dmitry Petrov
fefdce0406
KT-35550 Generate type parameters for delegating property accessors
2019-12-23 10:10:16 +03:00
Mikhail Glukhikh
684bdc44bb
FIR: add implementation of reified type parameter references
...
This adds support of T::class.java for reified type parameters
2019-12-17 17:28:01 +03:00
Dmitriy Novozhilov
d840671620
[FIR] Don't create delegating super constructor call to kotlin.Enum for enums
2019-12-05 17:47:14 +03:00