Victor Petukhov
73dec25eb1
NI: intersect DFI types before capturing
...
^KT-37887 Fixed
2020-05-14 19:54:59 +03:00
simon.ogorodnik
86683e94fc
[FIR] Fix cfg crash with multiple postponed arguments
2020-05-13 19:20:02 +03:00
Alexander Udalov
ea413cefb4
Remove TypeOfChecker for JVM frontend
...
This is needed to support typeOf with non-reified type parameters.
#KT-30279
2020-05-13 10:04:26 +02:00
Mikhail Glukhikh
41f241f608
FIR CFG: merge DFA + CFA edge in Simple edge
2020-05-13 10:37:08 +03:00
Mikhail Glukhikh
32cfee50e0
FIR CFG: remove duplicating lambda enter -> exit connection
2020-05-13 10:37:08 +03:00
Jinseong Jeon
30e5748fec
FIR: set proper visibility of property accessors.
2020-05-12 19:47:37 +03:00
Mikhail Glukhikh
22e7264460
[FIR] Use all implicit receivers for del. constructors, not just one
2020-05-12 16:57:08 +03:00
Mikhail Glukhikh
535b4434a8
[FIR TEST] Add extra test for inner classes inside hierarchy
2020-05-12 16:57:08 +03:00
Mikhail Glukhikh
3aca40538b
[FIR TEST] Fix error in exposedSupertype test
2020-05-12 16:57:07 +03:00
Mikhail Glukhikh
457fb09e3a
[FIR] Use tower to resolve delegated constructors, set dispatch receiver
2020-05-12 16:57:07 +03:00
Victor Petukhov
11d05c1abd
NI: propagate isNullabilityConstraint flag into constraint injector and inherit it
...
^KT-37510 Fixed
2020-05-12 16:15:07 +03:00
Pavel Kirpichenkov
003ba1c8f5
[NI] CST: add preemptive recursion detection
...
For single super type constructor create star projection argument when types for that argument are equal to the original types.
Captured star projections are replaced with their corresponding supertypes during this check.
Skip check for `in` parameters, for which recursive cst calculation does not happen.
Adjust constant in fallback recursion condition.
^KT-38544 Fixed
2020-05-12 11:13:43 +03:00
Victor Petukhov
585e98a835
NI: support inferring lambda receiver type by explicit receiver of anonymous function (which is another postponed argument)
2020-05-09 12:34:06 +03:00
Ilya Chernikov
7e3dfb245b
Avoid skipping lambda argument processing in case of explicit type param
...
#KT-38691 fixed
2020-05-07 18:39:57 +02:00
Mikhail Glukhikh
38fc4d0f1f
FIR: set & use dispatch receiver for q. access with super reference
2020-05-07 12:02:57 +03:00
Jinseong Jeon
7b01cf7b04
FIR: handle labeled super reference properly
2020-05-07 12:02:56 +03:00
Victor Petukhov
260683c20e
NI: Improve postponed arguments analysis
...
Introduce seven stages:
1) Analyze postponed arguments with fixed parameter types
2) Collect parameter types from constraints and lambda parameters' declaration
3) Fix not postponed variables for parameter types of all postponed arguments
4) Create atoms with revised expected types if needed
5) Analyze the first ready postponed argument and rerun stages if it has been analyzed
6) Force fixation remaining type variables: fix if possible or report not enough information
7) Force analysis remaining not analyzed postponed arguments and rerun stages if there are
^KT-37952 Fixed
^KT-32156 Fixed
^KT-37249 Fixed
^KT-37341 Fixed
2020-05-07 11:42:00 +03:00
Mikhail Glukhikh
9eee089740
FIR: regenerate diagnostic tests
2020-05-06 13:09:26 +03:00
Likholetov Mikhail
aa706d322d
[FIR] Support several annotation class diagnostics
2020-05-06 10:32:01 +03:00
rapturemain
02aa11a0a0
[FIR] Support for EXPOSED_TYPE_PARAMETER_BOUND
2020-04-30 12:08:43 +03:00
Mikhail Glukhikh
07e9b9517a
[FIR] Extract interface FirEffectiveVisibility
2020-04-29 17:25:12 +03:00
Mikhail Zarechenskiy
1a26d2e157
Fix exception during resolution of incorrect fun interface
...
#KT-37541 Fixed
2020-04-29 14:15:25 +03:00
Alexander Udalov
b77e5a21ec
Report error if fun interface method has JVM name getFunctionDelegate
...
This is needed so that it wouldn't clash with the corresponding member
from the kotlin/jvm/internal/FunctionAdapter interface, which all fun
interface wrappers will implement to get proper equals/hashCode. The
workaround is to rename the fun interface method.
#KT-33455
2020-04-29 12:15:50 +02:00
Ilya Chernikov
45ac81c585
Do not check type depth for constrains generated on subtyping
...
#KT-38143 fixed
2020-04-29 11:12:21 +02:00
Denis Zharkov
c6ae423816
Add tests for KT-35468
...
^KT-35468 Fixed
2020-04-29 09:17:54 +03:00
Alexander Podkhalyuzin
6372c01e49
Added missing specificity comparator to FIR
...
This is required to correctly resolve overloading in cases when we
need to find most specific alternative in Java between int and Integer.
2020-04-28 17:34:42 +03:00
Mikhail Glukhikh
b0b198119d
FIR resolve completion: transform receivers for variable accesses
2020-04-28 16:32:06 +03:00
Mikhail Glukhikh
10cda4b54f
[FIR] Minor: regenerate diagnostic tests
2020-04-27 19:42:47 +03:00
rapturemain
49593d308c
[FIR] Add EXPOSED_SUPER_(CLASS/INTERFACE) checker
2020-04-27 13:00:49 +03:00
Nick
96238cbe1f
[FIR] Support diagnostic QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE
2020-04-24 16:48:28 +03:00
Mikhail Glukhikh
57b4a54766
[FIR] Calculate effective visibility inside anonymous object properly
...
#KT-38432 Fixed
2020-04-23 13:57:27 +03:00
Ilya Kirillov
1a90866ce1
FIR: handle member scope for anonymous objects
...
#KT-37120 fixed
2020-04-23 10:38:41 +03:00
Ilya Kirillov
fdfb544730
FIR: use Kotlin String constructors instead of java.lang ones
...
#KT-38437 fixed
2020-04-23 10:37:41 +03:00
Mikhail Zarechenskiy
cb975bde7c
Add test for questionable chained fun -> suspend conversion
2020-04-22 16:10:45 +03:00
Mikhail Zarechenskiy
ac642cf175
Support suspend conversion in callable reference adaptation
...
#KT-15917 In Progress
2020-04-22 16:10:45 +03:00
Mikhail Zarechenskiy
537a59d6ca
Introduce basic suspend conversion in FE
...
#KT-15917 In Progress
2020-04-22 16:10:44 +03:00
Denis Zharkov
7aa9b81604
FIR: Add analysis-tests/ReadMe.md
2020-04-21 10:16:45 +03:00
Denis Zharkov
706ccb2cf9
FIR: Adjust testData for spec tests: invoke on nullable receiver
...
It's a design problem, see related issue
^KT-30415
2020-04-21 10:16:34 +03:00
Denis Zharkov
477e8bbcd4
FIR: Add test case for qualifier-based call resolution
2020-04-21 09:52:52 +03:00
Denis Zharkov
6fdbc38cf1
FIR: Fix label/receiver for lambda within infix calls
...
While this fix only changes label name, it's important for proper
lambda resolution because receiver is set for a lambda
only in presence of a label
This commit fixes a lot of checkType calls in diagnostic tests
2020-04-21 09:52:52 +03:00
Denis Zharkov
65e444a39c
FIR: Properly support local functions in DEBUG_INFO_CALL
2020-04-21 09:48:03 +03:00
Denis Zharkov
fa3b3e7a9a
FIR: Fix false positive INAPPLICABLE_INFIX_MODIFIER
2020-04-21 09:48:03 +03:00
Denis Zharkov
27b860682b
FIR: Support DEBUG_INFO_EXPRESSION_TYPE
2020-04-21 09:48:03 +03:00
Denis Zharkov
7612f37c85
FIR: Prohibit calling singletons' constructors
2020-04-21 09:48:03 +03:00
Denis Zharkov
b62400124a
FIR: Support DEBUG_INFO_CALL calls in tests
2020-04-21 09:48:03 +03:00
Nick
c4b7ac994b
[FIR] Support diagnostic ABSTRACT_SUPER_CALL
2020-04-20 18:33:40 +03:00
rapturemain
8960829c01
[FIR] Cast error on the element name instead of the whole body
2020-04-20 17:27:16 +03:00
rapturemain
6d63de01ac
[FIR] Fix effective visibility calculation & relevant test data
2020-04-20 17:25:26 +03:00
rapturemain
d811f6f4a6
[FIR] Support for EXPOSED_PARAMETER_TYPE
2020-04-20 17:25:25 +03:00
rapturemain
2e8f73adba
[FIR] Change errors location from Errors.java to FirErrors.kt
2020-04-20 17:25:25 +03:00