Commit Graph

3217 Commits

Author SHA1 Message Date
Mikhail Zarechenskiy 8871c8b4fd Migrate diagnostic tests to 1.4 2019-12-26 15:08:51 +03:00
Denis Zharkov 7898922066 NI: Fix type mismatch caused by smartcast
^KT-25434 Fixed
2019-12-26 12:35:35 +03:00
Denis Zharkov ae4397fbfb Fix bare typed smartcasts in NI
Star projections should be replaced with star projections
not for their expansions

See the test
2019-12-26 12:35:34 +03:00
Denis Zharkov 0b385cc532 NI: Approximate captured-for-star-projections to *
^KT-35602 Fixed
2019-12-26 12:35:32 +03:00
Dmitriy Novozhilov e83941a98e [NI] Don't resolve delegates twice
#KT-31219 Fixed
#KT-31679 Fixed
#KT-32249 Fixed
2019-12-26 10:54:06 +03:00
Dmitriy Novozhilov 0c01499d98 [NI] Improve completing calls with multiple postponed arguments
#KT-27999 Fixed
#KT-30244 Fixed
#KT-31102 Fixed
2019-12-26 10:53:03 +03:00
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
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 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
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