Ivan Kylchik
85e822e283
[FIR] Support smartcast after reference equality check
...
#KT-39000 Fixed
2020-07-16 12:43:55 +03:00
Mikhail Zarechenskiy
100a6f70ca
Relax rules about inferring to Nothing for special calls
...
#KT-37388 Fixed
#KT-38427 Fixed
#KT-39953 Fixed
#KT-38899 Fixed
2020-07-16 09:56:46 +03:00
Roman Artemev
cd9f59325e
[KLIB] Fix deserialization of anonymous classes
...
In case of initializing property or function with anonymous object the
object is being exposed outside its field/function's scope and
accessible on previous level. In this case in `declarations only` mode
we have unbound symbols. Fix is to force body/initializer loading in
such cases.
Make sure it is deserialized in `declarations'only` mode too.
- Fix KT-40216
- Add test
2020-07-15 18:23:29 +03:00
Victor Petukhov
b0c96a61ec
Don't try to infer postponed variables on lambdas without BuilderInference annotation
...
^KT-39618 Fixed
2020-07-15 16:19:43 +03:00
Jinseong Jeon
30b91b128a
FIR: adjust type of integer operator call as property initializer
2020-07-15 13:56:40 +03:00
Jinseong Jeon
5c4f978073
FIR: transform arrayOf call with empty arguments
2020-07-15 13:36:30 +03:00
Jinseong Jeon
db9d42c153
IrConstTransformer: handle vararg with spread elements properly
2020-07-15 13:36:30 +03:00
Jinseong Jeon
5600eefea5
FIR: add support for varargs in annotation calls
2020-07-15 13:36:30 +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
c46fac3464
FirTypeIntersectionScope: support inherited default parameters
2020-07-15 13:36:28 +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
Zalim Bashorov
340512e27a
[KJS] Throw exception on recursive types provided to typeOf and provide proper support later within KT-40173
...
#KT-38140 fixed
2020-07-14 14:14:13 +03:00
Zalim Bashorov
ca37c6bfe6
[KJS FE] Allow using typeOf with non-reified type parameters
...
#KT-38771 fixed
2020-07-14 14:14:11 +03:00
Mikhail Zarechenskiy
bb23556ead
Don't perform Unit-conversion for functional types with type variables
...
#KT-40269 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy
09b44b3189
Fix rewrite at slice exception for callable references inside flatMap
...
#KT-40254 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy
8158ba2be3
Add tests for obsolete issues
...
#KT-32183 Obsolete
#KT-31474 Obsolete
#KT-31853 Obsolete
2020-07-14 11:23:57 +03:00
Nick
67e58ff152
[FIR] Fix redundant calls to firEffectiveVisibility()
2020-07-13 16:30:47 +03:00
Kristoffer Andersen
8d79a6ae03
[JVM IR] Copy inline class constructor annotations
2020-07-13 11:50:34 +03:00
Mikhail Zarechenskiy
678b76cab1
Fix presence of Deprecated hidden annotation for reference arguments
...
#KT-40234 Fixed
2020-07-13 11:23:28 +03:00
Steven Schäfer
097e0fb46c
JVM IR: Mangle delegated properties with inline class type (KT-40125)
2020-07-10 17:06:44 +02:00
Victor Petukhov
cdb122c698
Add skipped ignore directive in test for b08c7eff3841ed33703adb328315a21a5085fea5
2020-07-10 14:52:51 +03:00
Mikhail Zarechenskiy
0c8b847ae6
Introduce compiler key to disable compatibility resolution mechanism
...
Enable it if one was using new inferene before 1.4
#KT-40128 Fixed
#KT-40112 Fixed
#KT-40113 Fixed
2020-07-10 14:23:45 +03:00
Anton Bannykh
abc6ecaa1c
[JS IR BE] support SAM conversions in DCE-driven mode
2020-07-10 11:30:42 +03:00
Victor Petukhov
514ac7dc8f
NI: introduce simple calls storage (which aren't gone through type inference) in coroutine inference session to further substitute postponed variable
...
^KT-40151 Fixed
2020-07-10 11:11:48 +03:00
Mikhail Glukhikh
fbbf4e06ba
[FIR] Support imported callable from object properly #KT-35730 Fixed
2020-07-10 10:25:39 +03:00
Mikhail Glukhikh
6b964cb61d
[FIR2IR] Drop explicit receiver double-conversion for objects
2020-07-10 08:56:58 +03:00
Ivan Kylchik
dcae6f1415
[FIR] Support when exhaustiveness for java enum
...
The problem appear because for java enum its entries was represented by
FirJavaField. To fix this FirEnumEntry was used
#KT-39621 Fixed
2020-07-09 23:49:54 +03:00
Jinseong Jeon
3afc37438e
FIR: handle getClassCall with integer literals
2020-07-08 18:23:27 +03:00
Mikhail Zarechenskiy
2bb9838a80
Add test for obsolete issue
...
The problem was fixed in d51bb2c053
#KT-37692 Obsolete
2020-07-08 15:30:20 +03:00
Dmitriy Novozhilov
a5bfa3ae63
[FIR-TEST] Update broken testdata
2020-07-08 12:13:33 +03:00
Dmitriy Novozhilov
58af8d68a1
[FIR] Check for isFun flag in SAM resolution
2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov
a3a79e4295
[FIR] Update testdata due to incorrect SAM detection
2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov
29849b1330
[FIR] Resolve rhs of += in dependent context
2020-07-08 12:13:31 +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
50b2ea7053
FIR: avoid cast exception in Candidate.prepareExpectedType
2020-07-07 16:55:53 +03:00
Nick
a5f34a880c
[FIR] Fix computeTypeArguments() & add diagnostic for type args
2020-07-07 15:52:17 +03:00
Victor Petukhov
c588bc604d
NI: do substitution stub types during updating trace for lambda (these stub types can appear from the builder inference as postponed variables)
...
^KT-40060 Fixed
2020-07-07 11:17:06 +03:00
Victor Petukhov
eec3a4720c
NI: don't collect members if a receiver type is StubType to avoid creating error candidates instead of not crating them at all
...
^KT-37717 Fixed
2020-07-07 11:17:06 +03:00
Ivan Kylchik
574aa0affe
[FIR] Fix synthetic property is not var due to Nullable on parameter
...
Synthetic property is var when it have setter. The latter is set up
in property when its parameter type is equal to getter return type. In
case of using @Nullable, parameter type of setter is not equal to
return type of getter, because the latter is flexible type. So to fix
this verification should occur using not null types
#KT-39076 Fixed
2020-07-06 17:52:37 +03:00
Pavel Punegov
48c5f48af0
Ignore test in Native, see #KT-38859
2020-07-06 17:33:12 +03:00
Dmitriy Novozhilov
a0f8ada285
[FIR-TEST] Unmute failing diagnostic tests
2020-07-06 12:11:57 +03:00
Dmitry Petrov
b75de60afb
Minor: mute failing test
2020-07-06 10:47:10 +03:00
Mikhail Zarechenskiy
d8f701ee61
Add test for obsolete issue
...
#KT-39588 Obsolete
2020-07-05 18:17:44 +03:00
Mikhail Zarechenskiy
0ee7306d9c
Fix coercion to Unit when variable already have other constraints
...
Don't add `Unit` if variable has an upper constraint T <: A.
It's impossible to coerce variable T to Unit as constraint system will
be always contradictory: T := Unit => Unit should be subtype of A
#KT-39900 Fixed
2020-07-03 17:54:14 +03:00
Dmitry Petrov
761e47264a
JVM_IR: fix property reference generation for inline class primary val
2020-07-03 17:51:30 +03:00
Dmitriy Novozhilov
8311c1f0e2
[FIR] Fix projection of Comparable supertype for ILT
...
#KT-39048 Fixed
2020-07-03 17:09:28 +03:00
Jinseong Jeon
44d0af8597
FIR2IR: handle 'this' as reference to outer object
2020-07-03 12:53:57 +03:00
Mikhail Zarechenskiy
d51bb2c053
Add compatibility resolve when variable has "bad" intersection type
...
#KT-39468 Fixed
2020-07-03 12:18:28 +03:00