Dmitry Petrov
5b53663eb8
PSI2IR KT-41181 don't generate deep trees in hashCode
2020-09-07 16:09:42 +03:00
Jinseong Jeon
bf918e6184
FIR: hide local types if needed
2020-09-03 14:24:31 +03:00
Dmitry Petrov
8cb8284957
EnhancedNullability annotation in IR
...
Fixes KT-40115 & KT-40117.
Move FlexibleNullability annotation to 'kotlin.internal.ir'.
2020-09-01 16:06:03 +03:00
Mikhail Glukhikh
1e360d9c91
[FIR2IR] Pass type context for type argument conversion properly
2020-08-31 14:31:58 +03:00
Mikhail Glukhikh
02b6f34067
[FIR2IR] Add extension receiver parameter to delegated members
2020-08-31 14:31:57 +03:00
Simon Ogorodnik
97b10b5ab3
[FIR2IR] Hack-in setting of extension function type annotation
2020-08-18 21:53:55 +03:00
Jinseong Jeon
5db7957230
FIR2IR: use type arguments from fully expanded type
2020-08-04 14:44:38 +03:00
Jinseong Jeon
bff36e0199
FIR2IR: convert annotations on FirTypeRef
2020-07-30 11:25:36 +03:00
Georgy Bronnikov
4ca98041cd
IR: update test data
2020-07-30 11:24:08 +03:00
Dmitriy Novozhilov
236dfe60f1
[FIR] Correctly build scopes for resolve of different parts of constructors
...
#KT-40409 Fixed
2020-07-20 14:38:17 +03:00
Jinseong Jeon
1a861b2df9
FIR2IR: don't create synthetic class for enum entry w/o members
2020-07-15 13:36:30 +03:00
Juan Chen
2ea3579281
[FIR] add support for generic cases of delegation by implementation
...
Add type parameters for generic delegated members and type
substitution when implementing instantiated super interfaces.
2020-07-15 13:36:29 +03:00
Mikhail Glukhikh
7a2ea49399
FirTypeIntersectionScope: introduce "intersection" fake overrides
2020-07-15 13:36:28 +03:00
Mikhail Glukhikh
1bbed6c4ed
[FIR2IR] Use FIR-specific methods to search for overridden functions
2020-07-15 13:36:28 +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
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
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
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
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
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
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
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
Mikhail Glukhikh
457fb09e3a
[FIR] Use tower to resolve delegated constructors, set dispatch receiver
2020-05-12 16:57:07 +03:00
Jinseong Jeon
eac9af521e
[FIR2IR] differentiate external Java stub origin from external stub
2020-05-08 17:45:39 +03:00
Dmitry Petrov
1d10776db4
Minor: update FIR2IR testData
2020-05-01 13:14:21 +03:00
Mads Ager
db17184cfd
[JVM_IR] Avoid some boxing when comparing boxed primitives to primitives.
2020-05-01 13:14:20 +03:00
Jinseong Jeon
9a561f4a7c
FIR2IR: generate synthetic members for inline class
2020-04-30 13:09:53 +03:00
Jinseong Jeon
0890b8bad3
FIR2IR: set superQualifierSymbol for property access
2020-04-30 12:26:47 +03:00
Jinseong Jeon
a084c5bf7d
FIR2IR: populate overriddenSymbols for overriding properties
2020-04-30 12:25:48 +03:00
Jinseong Jeon
ef09850df8
FIR2IR: set superQualifierSymbol for super call
2020-04-27 11:50:26 +03:00
Jinseong Jeon
57fe01c375
FIR2IR: populate overriddenSymbols for overriding functions
...
#KT-38416 Fixed
2020-04-27 11:50:24 +03:00
Mikhail Glukhikh
fe02c2bab3
FIR: return Unit from empty lambda
2020-04-20 17:05:34 +03:00
Jinseong Jeon
9f1ecadd65
IR: more consolidation of synthetic member generation for data class.
2020-04-17 12:38:38 +03:00
Dmitriy Novozhilov
7f02d57d88
[FIR] Correctly detect super type in delegated constructor call
2020-04-17 12:37:29 +03:00
Jinseong Jeon
08b91da6db
FIR: fix body generation for data class's copy method
2020-04-14 11:51:30 +03:00
simon.ogorodnik
356e42196c
[FIR2IR] Fix inner class constructor receiver parameter type
2020-04-13 20:26:19 +03:00
Jinseong Jeon
c370b86141
IR: consolidate generation of synthetic members for data class
2020-04-13 17:30:05 +03:00
Juan Chen
e954aea4cc
[FIR2IR] Support argument reordering of constructor calls
2020-04-13 17:09:04 +03:00
Mikhail Glukhikh
00fedbf6b3
[FIR2IR] Distinguish 'parent' & 'thisReceiver' for fake overrides
2020-04-09 15:22:56 +03:00
Mikhail Glukhikh
4543367c37
[FIR] Add type parameter mapping for substituted properties
2020-04-09 15:22:56 +03:00
Mikhail Glukhikh
932b03beb2
[FIR2IR] Don't generate fake overrides for another package privates
2020-04-09 15:22:55 +03:00
Mikhail Glukhikh
5c758af0a6
[FIR] Use ScopeSession from resolve transformer in FIR2IR
2020-04-09 15:22:55 +03:00
Mikhail Glukhikh
a0978a50e8
[FIR2IR] Correct 'this' conversion when it points to non-closest class
2020-03-30 16:57:52 +03:00
Denis Zharkov
cdd7e41891
FIR: Support proper implicit return type computation for local classes
2020-03-25 14:53:34 +03:00
Jinseong Jeon
cdf5a2a5a1
FIR: set dispatch receiver parameter for inner class's constructor.
2020-03-25 12:40:09 +03:00