Ilya Chernikov
9da536c202
[minor] "fix" fir testdata for KT-30245 test, todo: fix problems in fir accordingly
2020-01-09 08:08:45 +01:00
Ilya Chernikov
caa677e6d2
[NI] Convert extension lambda to the non-extension one, if needed
...
#KT-30245 fixed
2020-01-09 08:08:45 +01:00
Simon Ogorodnik
1715f1a864
[FIR] Refactoring: create use-site scopes via scope provider
2019-12-30 12:52:58 +03:00
Pavel Kirpichenkov
2d21b82501
[NI] Remove hack for special functions
...
Treating special functions for `if`, `when`, `try`, `?:` as not accepting `Nothing` result type is incorrect.
Making so leads to cases with uninferred `Nothing` result type for inner calls and lost data flow info.
2019-12-27 18:40:42 +03:00
Mikhail Zarechenskiy
95dd322bf0
Update FIR diagnostics test
2019-12-27 14:11:47 +03:00
simon.ogorodnik
5e426fdc71
[FIR] Optimization & checking fix: remove usage of dispatchReceiverValue
2019-12-27 13:45:59 +03:00
Denis Zharkov
caf02806d5
NI: Fix resolution ambiguity for references returned from lambda
...
^KT-32267 Fixed
2019-12-27 11:36:19 +03:00
Mikhail Glukhikh
a54ef3e427
FIR invoke resolve: remove redundant candidates
2019-12-27 09:57:36 +03:00
Mikhail Glukhikh
0c88ecdc56
FIR resolve: introduce builtInExtensionFunctionReceiverValue
...
This commit allows us to distinguish extension lambda receivers
from simple extension receivers thus fixing some resolve problems.
2019-12-27 09:57:36 +03:00
Mikhail Glukhikh
de50f8aef3
FIR resolve: add partial support of extension lambda calls
...
Here we introduce ONLY_IMPLICIT_RECEIVER tower level
to support extension lambda calls on local variables,
and soften extension receiver checks to make such extensions visible & applicable.
Also here we try to map arguments twice for functional types
2019-12-27 09:57:36 +03:00
Mikhail Glukhikh
a8a50fa657
Fix raw FIR building with parenthesized expression as selector
2019-12-27 09:57:34 +03:00
Dmitriy Novozhilov
04e567dbf9
[NI] Don't replace context dependency for blocks with expected type
...
#KT-35702 Fixed
2019-12-26 20:31:06 +03:00
Dmitriy Novozhilov
5dfe100ae5
Allow use reference to reified type parameters in contracts since 1.4
2019-12-26 17:43:28 +03:00
Dmitriy Novozhilov
9c1b68f839
Prohibit using references to this from outer scope in contract declarations
2019-12-26 17:43:28 +03:00
Dmitriy Novozhilov
f083edfac2
Allow contracts on final non-override members since 1.4
2019-12-26 17:43:27 +03:00
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
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