Dmitriy Novozhilov
58af8d68a1
[FIR] Check for isFun flag in SAM resolution
2020-07-08 12:13:32 +03:00
Juan Chen
d163853c97
[FIR] add support for implementation by delgation
...
This commit handles "subclass: super-interface by delegate-expression".
During Psi2Fir, for each delegate, we add to the subclass a synthetic
field (which has type super-interface), and an assignment of the
delegate-expression to the synthetic field in the primary constructor,
so that the delegate-expression can be resolved and transformed along
the way.
During Fir2Ir, we look up delegatable members from the super-interface
and generate corresponding functions/properties for the subclass.
TODO: support for generic delegatable members and generic
super-interface.
2020-07-08 09:42:24 +03:00
Jinseong Jeon
44d0af8597
FIR2IR: handle 'this' as reference to outer object
2020-07-03 12:53:57 +03:00
Dmitriy Novozhilov
a7ed9c7dc5
[FIR] Add conversion of FirElvisCall to backend IR
2020-07-02 15:10:52 +03:00
Jinseong Jeon
c3fc524c0d
FIR: handle named arguments in annotations properly
2020-06-29 16:23:03 +03:00
Mikhail Glukhikh
fcabd02fe8
[FIR] Take class expect flag into account in its substitution scope
2020-06-29 16:08:00 +03:00
Mikhail Glukhikh
c1609ed490
[FIR] Make expect class members also expect
2020-06-29 16:07:50 +03:00
Mikhail Glukhikh
9a0e763761
[FIR2IR] Require classId from parent class for fake overrides
2020-06-29 16:07:48 +03:00
Mikhail Glukhikh
bf009a4949
[FIR2IR] Handle delegating constructor call type arguments properly
2020-06-29 16:07:30 +03:00
Mikhail Glukhikh
2cffbadbd5
[FIR2IR] Use overridden symbol when handling delegating constructor call
2020-06-29 16:07:29 +03:00
Ivan Kylchik
de2b20482a
Allow IrConstTransformer to visit and evaluate vararg elements
2020-06-29 15:27:25 +03:00
Dmitriy Novozhilov
dbbb999952
[FIR] Support builder (coroutine) inference
...
#KT-37431 Fixed
2020-06-29 12:19:02 +03:00
Denis Zharkov
9668a60151
FIR: Explicitlty separate static and member scopes
...
For Java, they have rather different semantics considering "overrides"
and obtaining functions/properties from supertypes
See the Java statics implementation
2020-06-26 16:52:10 +03:00
Ivan Kylchik
e34246faec
Fix fir2ir text tests after introducing const evaluator
2020-06-24 16:13:02 +03:00
Mikhail Glukhikh
d08f91bf35
[FIR2IR] Introduce & use lazy function for external class functions
2020-06-23 19:06:08 +03:00
Mikhail Glukhikh
0622be14a5
[FIR2IR] Introduce creation of Fir2Ir lazy classes
2020-06-23 19:06:07 +03:00
Georgy Bronnikov
4ecb228d50
IR: handle enhanced nullability in TypeTranslator
2020-06-22 22:06:01 +03:00
Dmitriy Novozhilov
be2ac3bb4f
[FIR] Fix completing bodies of property setters with delegates
2020-06-22 12:29:26 +03:00
Ilya Gorbunov
696701d377
Drop deprecated MutableMap property delegation operator
2020-06-22 12:29:25 +03:00
Yan Zhulanow
713a305f45
Update change data for IrTextTestCaseGenerated
...
Reason of changes: 098469eb85
2020-06-18 19:01:06 +09:00
Georgy Bronnikov
ee6d432ced
Add forgotten test files
2020-06-18 12:22:53 +03:00
Jinseong Jeon
9e9ca4953f
FIR2IR: coerce to Unit when "when" expr is not effectively exhaustive
2020-06-18 09:23:32 +03:00
Georgy Bronnikov
c015463926
IR: remove field fake overrides
2020-06-17 20:02:26 +03:00
Georgy Bronnikov
36f22dafc5
IR: remove field fake override usage
...
Still a problem: Java static fields.
2020-06-17 20:02:26 +03:00
Jinseong Jeon
f64f9c2144
FIR: inherit property accessor modifiers from property and vice versa
2020-06-16 19:17:27 +03:00
Dmitriy Novozhilov
d7ee168dff
[FIR] Create error candidate for completion instead of simple error reference
2020-06-15 15:32:25 +03:00
Mikhail Glukhikh
6f0eeecc64
[FIR2IR] Fix generation of type arguments of delegated constructor calls
2020-06-09 11:40:26 +03:00
Mikhail Glukhikh
6eab6a96cb
[FIR2IR] Support type aliases properly
2020-06-08 16:19:37 +03:00
Mikhail Glukhikh
3567880303
[FIR] Consider enum entry nested classes as local
2020-06-08 12:11:33 +03:00
Jinseong Jeon
0d2552b0b6
FIR: record and serialize the modifier "fun" for functional interface
2020-06-08 09:42:32 +03:00
Denis Zharkov
409e90e7de
FIR: Fix codegen test data after safe-call refactoring
...
^KT-38444 In Progress
2020-06-03 10:43:37 +03:00
Dmitriy Novozhilov
164b4dd439
[FIR-TEST] Update testdata according to #KT-39340
2020-06-03 10:36:00 +03:00
Dmitry Petrov
5efbe6ae15
PSI2IR: SAM conversion in varargs
2020-06-02 23:53:47 +03:00
Mikhail Glukhikh
8c422fbfc7
[FIR2IR] Use signature composer to read external callables
2020-06-02 18:47:58 +03:00
Dmitry Petrov
246c68b0a9
PSI2IR: Don't generate IMPLICIT_INTEGER_COERCION
...
Generate integer coercion function calls and properly typed constant
expressions instead.
2020-06-01 16:51:47 +03:00
Jinseong Jeon
4a511c7721
FIR: extend arrayOf call transformation to other variants
2020-06-01 10:45:42 +03:00
simon.ogorodnik
99b2a4745a
[FIR2IR] Fix superQualifier in case of composed super type ref
2020-05-29 21:10:56 +03:00
Mikhail Glukhikh
19f1a3de1a
[FIR2IR] Populate overridden symbols also with public symbol inheritors
2020-05-28 22:19:21 +03:00
Mikhail Glukhikh
cd24745f1f
[FIR2IR] Add primitive signature composer & use it for external classes
2020-05-28 22:18:13 +03:00
Jinseong Jeon
18953c4717
FIR: transform resolved arrayOf call inside annotation to FirArrayOfCall
2020-05-27 11:38:34 +03:00
Juan Chen
adba0a03a6
[FIR] Create builtin primitive array types for properties
...
If the primary constructor has a vararg parameter, the corresponding
property has an array type. This commit creates the builtin array
types for such properties if the vararg element type is primitive,
e.g., CharArray instead of Array.
2020-05-26 14:08:47 +03:00
simon.ogorodnik
ac1769a474
[FIR2IR] Support SAM constructors
2020-05-25 21:24:39 +03:00
Denis Zharkov
e1e149a062
FIR: Support coercion-to-unit semantics for callable references
2020-05-18 11:17:45 +03:00
Jinseong Jeon
615636ed55
FIR2IR: apply SAM conversion to arguments of functional type.
2020-05-15 15:08:43 +03:00
Mikhail Glukhikh
cdac6157a9
[FIR2IR] Force loading Java SAM from external classes
2020-05-14 14:07:40 +03:00
Mikhail Glukhikh
e7e80be34a
[FIR2IR] Populate overridden symbols even for !isOverride
...
Before this commit we considered !isOverride as a sign that
function / field / accessor has no overridden symbols.
However, it's false for deserialized, because isOverride
is always false there.
This commit fixes 68 BB tests but breaks 25 BB tests (not yet muted)
2020-05-14 13:40:36 +03:00
Jinseong Jeon
e844c59e7e
FIR2IR: filter correct use-site target for value parameter annotations.
2020-05-14 09:41:11 +03:00
Jinseong Jeon
931ba4892a
FIR2IR: split property annotations according to use-site targets.
2020-05-14 09:41:11 +03:00
Jinseong Jeon
6034fcdc46
FIR2IR: apply SAM conversion to arguments if needed
2020-05-13 11:28:48 +03:00
Mikhail Glukhikh
457fb09e3a
[FIR] Use tower to resolve delegated constructors, set dispatch receiver
2020-05-12 16:57:07 +03:00