Victor Petukhov
4309f53e11
NI: don't filter flexible types during CST calculation and force return as result the first of such types
...
^KT-35658 Fixed
2019-12-25 18:00:23 +03:00
Dmitriy Novozhilov
51424ec598
[NI] Add constraint K <: T from constraint K <: CapturedType(in T)
...
#KT-33263 Fixed
2019-12-25 16:19:19 +03:00
Dmitriy Novozhilov
04d4366f2a
[NI] Update testdata broken in NI
2019-12-25 16:19:18 +03:00
Pavel Kirpichenkov
7ee71450bc
[NI] Discriminate Nothing? result type from nullability constraints
...
Nullability constraints should not be chosen when proper
argument constraints for variables in contravariant position present.
^KT-32106 Fixed
^KT-33166 Fixed
2019-12-25 14:59:06 +03:00
Pavel Kirpichenkov
a1ad680edb
[NI] Disallow full completion based on lower Nothing constraint
2019-12-25 14:59:06 +03:00
Pavel Kirpichenkov
384bd858e9
[NI] Support fixation to subtype in completion mode calculator
...
Allow full compltion mode for return type depending on type parameters in
contravariant position only if they have proper equality constraint.
2019-12-25 14:59:05 +03:00
Pavel Kirpichenkov
e69e45e2a6
[NI] Remove direcion calculator from variable fixation
...
Force constraint system completer to always fix variable with unknown position.
This makes inferred type for in parameters less specific, but OI infers to
subtype in such cases, so NI won't infer to less specific types than before.
2019-12-25 14:59:05 +03:00
Pavel Kirpichenkov
e9941f8c12
[NI] Implement algorithm for completion mode selection
...
Current selection of completion mode for call is not always correct in case of full mode,
and sometimes too conservative in case of partial mode. Updated algorithm checks constraints
wrt position of type variables in return type and in other related constraints.
Full completion happens if proper constraint requirements are satisfied for variables.
2019-12-25 14:59:05 +03:00
Pavel Kirpichenkov
a9391c8dfb
[NI] Remove Nothing result type restriction in most cases
...
Make Nothing as result type not suitable only for if, when, try and ?: special functions.
2019-12-25 14:59:05 +03:00
Mikhail Zarechenskiy
ae1630f376
[NI] Don't discriminate Nothing-type from resulting ones
...
^KT-32106 Fixed
2019-12-25 14:59:04 +03:00
Mikhail Zarechenskiy
e078282767
Fix ambiguity between Java and Kotlin SAM candidates
...
Because of incorrect flag we generated synthetic SAM candidates and got ambiguity when feature `SamConversionPerArgument` was enabled (Gradle case) because candidates for Java were duplicated
#KT-35579 Fixed
2019-12-23 12:22:20 +03:00
Mikhail Glukhikh
99e02665b5
Add forgotten FIR test data for old FE test
2019-12-23 12:11:07 +03:00
Mikhail Glukhikh
81ac46d35d
Fix FIR test data for old FE test
2019-12-23 12:02:54 +03:00
Mikhail Zarechenskiy
3840294f44
Add tests for obsolete issues
...
#KT-11979 Obsolete
#KT-12898 Obsolete
#KT-30657 Obsolete
#KT-28446 Obsolete
2019-12-20 12:06:20 +03:00
Dmitriy Novozhilov
e730965bc5
[NI] Approximate intersection type in type argument to star if it's necessary
...
#KT-32196 Fixed
2019-12-20 11:33:06 +03:00
Dmitriy Novozhilov
e466fd5196
[NI] Infer type variable to Nothing if all upper constraints are from upper bounds
...
#KT-32196 Fixed
2019-12-20 11:17:47 +03:00
Dmitriy Novozhilov
7fed7a840b
[NI] Update some testdata broken in NI
2019-12-20 11:17:47 +03:00
Victor Petukhov
c89def9e06
[minor] Update test data for 1.4
2019-12-19 19:31:32 +03:00
Ilya Chernikov
ae0efa77e3
[minor] updating fir testdata
2019-12-19 16:28:45 +01:00
Mikhail Glukhikh
99489321f1
[FIR] Add forgotten test data for old FE test
2019-12-19 17:16:14 +03:00
Mikhail Glukhikh
fe8d68ecc7
Use different transformers per module in FIR diagnostics tests
...
Before this commit, we used same transformers for all modules,
which provoked using same ScopeSession for all modules.
Now we re-create transformers for any new module.
This fixes some problems with incorrect caching in ScopeSession.
NB: this provokes ambiguities in some old FE tests,
mostly they're correct (same as old FE).
2019-12-19 17:16:14 +03:00
Mikhail Glukhikh
99643e1b2d
FIR: do not run full tower resolve on integer literal type
2019-12-19 16:03:17 +03:00
Pavel Kirpichenkov
ac47c0cf3c
[minor] Update test data for 1.4
2019-12-19 15:18:19 +03:00
Ilya Chernikov
8322398133
[minor] Fix testdata for compiler 1.4
2019-12-19 12:32:14 +01:00
Ilya Chernikov
45e881f03f
[NI] Fix inference if inner system has only by "uninteresting" constraint
...
#KT-32250 fixed
2019-12-19 11:20:10 +01:00
Ilya Chernikov
3e537cfcb4
[minor] [NI] Additional test for loosing type annotations on extension functions
...
taken from KT-34820
2019-12-19 11:20:07 +01:00
Denis Zharkov
e8131d6e30
Choose Java field during overload resolution with a pure Kotlin property
...
^KT-31244 Fixed
2019-12-19 10:53:31 +03:00
Dmitriy Novozhilov
aa8578b675
Allow null operators for result and using Result as return type with enabled InlineClasses
2019-12-19 10:22:45 +03:00
Dmitriy Novozhilov
ee36fb903f
Allow use expression of array type as named argument for vararg
2019-12-19 10:22:44 +03:00
Denis Zharkov
c486fa6189
NI: Report incompatible receiver of callable reference
...
^KT-35535 Fixed
2019-12-18 19:33:55 +03:00
Denis Zharkov
dd56c3d918
NI: Fix property references overload ambiguity
...
^KT-35213 Fixed
2019-12-18 19:33:55 +03:00
Pavel Kirpichenkov
ebb9f09656
[NI] Fix issues with star projection uncapturing
...
Prevent stack overflow during uncapturing of star projection
for parameter with recursive upper bound.
Uncapture star projections for flexible type parameters with
respect to flexible upper bound.
^KT-35210 Fixed
2019-12-18 16:19:33 +03:00
Pavel Kirpichenkov
86dc0925b1
[NI] Preserve constraint position for OnlyInputType during incorporation
...
Variable with complex dependency on other variable loses its
original constraint position when variable it depends on is fixed.
To prevent that, original input position is saved in incorporation
position.
2019-12-18 16:19:33 +03:00
Pavel Kirpichenkov
2fc79856a2
[NI] Fix OnlyInputTypes for captured types
...
Uncapture projections recursively for cases when captured type is not
top-level type or first level type argument
2019-12-18 16:19:32 +03:00
Mikhail Glukhikh
c6db5abb14
FIR call resolve: make earlier qualifier resolver reset
2019-12-17 17:28:09 +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
Mikhail Glukhikh
9f1f743d55
FIR: fix test data after Make 'statics visible from nested classes'
2019-12-17 12:24:14 +03:00
Mikhail Glukhikh
637e6f5acc
FIR: add forgotten test data for old FE test
2019-12-16 11:10:19 +03:00
Mikhail Glukhikh
fea224749b
FIR: introduce symbolProvider.getNestedClassifierScope to choose lazy/non-lazy
...
For some reason this breaks two old FE based tests with member type aliases.
It's not very interesting because member aliases aren't supported.
2019-12-16 10:50:52 +03:00
Mikhail Glukhikh
249f72585d
Fix test data in FIR old FE diagnostics test
...
Probably broken by 13 Dec commits of Denis Zharkov
2019-12-16 10:27:05 +03:00
Victor Petukhov
419d414681
NI: Update FIR test data after 07269661b4
2019-12-14 17:52:57 +03:00
victor.petukhov
25fdbdfecb
NI: Update FIR test data
2019-12-13 11:49:32 +03:00
Victor Petukhov
1534e2b76d
NI: Actualize FIR test after 2d5a05466d
2019-12-13 00:17:37 +03:00
Victor Petukhov
07269661b4
NI: Allow to resolve to functions with SAM conversion and passing array without spread as vararg (with warning)
...
^KT-35224 Fixed
2019-12-12 23:46:16 +03:00
victor.petukhov
71cb65c064
NI: Add flexible Nothing to trivial constraints to filter it
2019-12-12 18:45:11 +03:00
victor.petukhov
2d5a05466d
NI: Fix some unwanted exclusions constraints with remained corresponding optimization
2019-12-12 18:45:07 +03:00
Dmitriy Novozhilov
2536fa0cd5
[FIR-TEST] Add new testdata generated after changes in previous commit
2019-12-12 16:11:46 +03:00
Pavel Kirpichenkov
d9ef7d0c8a
[NI] Update / mute diagnostics
...
Update diagnostics for new inference.
'Not enough information for parameter' should not be reported for
fake calls and functions with error return type, muted in tests.
2019-12-11 17:53:43 +03:00
victor.petukhov
a92f58b1ac
Revert "NI: Prefer nullable lower bound to flexible one when substitution of type variable is performed ^KT-32435 Fixed"
...
This reverts commit 09c2b92b
2019-12-11 15:32:46 +03:00
Victor Petukhov
09c2b92b1d
NI: Prefer nullable lower bound to flexible one when substitution of type variable is performed
...
^KT-32435 Fixed
2019-12-11 12:15:02 +03:00