Dmitriy Novozhilov
b323298b0e
[NI] Remove deep types in commosn super type for recursive types
...
#KT-30411 Fixed
2019-05-23 12:22:42 +03:00
victor.petukhov
d4515031de
Report warning about implicitly inferred nothing only for return position
...
^KT-31535 Fixed
2019-05-22 15:45:59 +03:00
Dmitriy Novozhilov
07394bd6d3
[NI] Add test for KT-30300 with complex constraint system problem
2019-05-15 13:42:36 +03:00
Mikhail Zarechenskiy
ac0a1d984f
[NI] Don't return resulting call if return type has uninferred types
2019-04-25 16:19:38 +03:00
Mikhail Zarechenskiy
1e3db9ee7c
[NI] Update test data for diagnostic tests
2019-04-25 16:19:37 +03:00
Mikhail Zarechenskiy
ff0993153c
[NI] Improvements for "not enough information" diagnostic
...
#KT-30590 Fixed
2019-04-25 16:19:36 +03:00
Mikhail Zarechenskiy
09cc2ae27f
[NI] Initial support of "not enough information" diagnostic
...
#KT-30590 In Progress
2019-04-25 16:19:36 +03:00
Mikhail Zarechenskiy
d40313a8d7
[NI] Allow capturing type projections with type variables
...
#KT-25302 Fixed
2019-04-25 16:19:35 +03:00
Mikhail Zarechenskiy
abd1c3df26
[NI] Fix diagnostic reporting and unveil problem wrt captured types
2019-04-25 16:19:32 +03:00
Dmitriy Novozhilov
bfb13803d5
[NI] Fix reporting of overload resolution ambiguity
2019-04-19 14:46:22 +03:00
Dmitriy Novozhilov
e70bdb51c5
[NI] Automatically squash equal diagnostics in OI and NI in testdata
2019-04-19 10:53:19 +03:00
Mikhail Zarechenskiy
bcc8802014
[NI] Avoid constraints from expected type for effectively empty system
...
Expression will be checked against expected type later.
Theoretically, this is not very good, but it aligns with the old
inference, plus it helps avoiding multiple type mismatch diagnostics.
2019-04-17 12:55:12 +03:00
Mikhail Zarechenskiy
20a7f387bf
[NI] Resolve callable reference eagerly if there is only one candidate
...
#KT-30737 Fixed
2019-04-05 13:15:57 +03:00
Mikhail Zarechenskiy
3eda7c462b
[NI] Add Nothing constraint if it was inferred from a call
2019-03-25 12:17:28 +03:00
Mikhail Zarechenskiy
ca894a6a71
[NI] Don't complete nested call if there's no constraints at all
2019-03-25 12:17:28 +03:00
Dmitriy Novozhilov
9825984bc5
[NI] Update test data for diagnostic tests
2019-03-25 12:17:27 +03:00
victor.petukhov
70c35f4186
Introduce warning about implicitly inferred Nothing as a type parameter
...
^KT-20849 Fixed
2019-03-15 19:28:38 +03:00
Dmitriy Novozhilov
b07aed7a00
[NI] Fix determination of completion mode. #KT-30406 Fixed
2019-03-15 10:39:50 +03:00
Dmitriy Novozhilov
1c92c22dee
[NI] Add support ExpectedTypeFromCast to new inference. #KT-30405 Fixed
2019-03-15 10:39:29 +03:00
Dmitriy Novozhilov
cbf1d773f7
NI. Coerce return type of lambda function descriptor to Unit. #KT-30242 Fixed
2019-03-07 14:36:09 +03:00
Mikhail Zarechenskiy
93e79afab4
[NI] Preserve nullability of resulting type from CST if it's possible
...
Consider common supertype of `S` and `Nothing`, where `S` has nullable
upper bound or it's flexible. Before the fix, result was `S?`, which
is correct but too conservative. Now, we'll preserve nullability of
resulting type if it's already nullable.
This happened because we were failing to find path of not-nullable
types from `Nothing` to `S`, which should obviously exists by
semantics of Nothing
2019-03-04 11:29:39 +03:00
Mikhail Zarechenskiy
9b3e17f0d7
[NI] Avoid building controversial systems by clipping extra constraints
...
#KT-23854 Fixed
2019-03-04 11:29:38 +03:00
Mikhail Zarechenskiy
43cf6623f9
[NI] Added test for controversial common system
...
See KT-23854
2019-03-04 11:29:38 +03:00
Dmitriy Novozhilov
d58ee133a2
Fix type constraints of empty lambda (KT-28654 fix)
2019-02-21 12:04:23 +03:00
Dmitriy Novozhilov
10b7baf69a
Add test for KT-28654
2019-02-21 12:04:23 +03:00
Dmitriy Novozhilov
f186c83b15
KT-25383 fix
2019-02-21 12:04:23 +03:00
Dmitriy Novozhilov
c5c43d89d3
Fix testdata of #KT-28598
2019-02-07 13:27:05 +03:00
Dmitriy Novozhilov
cf25cab773
Add test for #KT-28598
2019-02-07 12:12:34 +03:00
Mikhail Zarechenskiy
6705803d83
[NI] Fix coercion to Unit for lambdas with empty labeled return
2019-01-30 14:56:31 +03:00
Mikhail Zarechenskiy
147d7844bc
[NI] Dont' add trivial constraints with Nothing from incorporation
...
#KT-24490 Fixed
#KT-26816 Fixed
2019-01-30 13:48:33 +03:00
Mikhail Zarechenskiy
662e2287cc
[NI] Discriminate resulting type Nothing(?) at fixation stage
2019-01-30 13:48:28 +03:00
Mikhail Zarechenskiy
0b0e335cdd
[NI] Discriminate constraints with Nothing(?) lower bounds
2019-01-30 13:44:48 +03:00
Dmitriy Novozhilov
42b333f6fd
Update some testdata according to new inference behaviour
2019-01-24 10:53:58 +03:00
Marcin Moskala
686cfa6fd2
Fix common misspellings
2018-12-21 16:13:42 +03:00
Mikhail Zarechenskiy
7a9fb3ca26
[NI] Fix coercion to Unit for explicitly specified type argument
...
#KT-25424 Fixed
2018-11-22 18:10:39 +03:00
Mikhail Zarechenskiy
a97867ccb8
Add test for obsolete issue
...
#KT-23531 Obsolete
2018-11-12 14:12:59 +03:00
Mikhail Glukhikh
f3555daa60
Report UNUSED_PARAMETER on main parameter in 1.3+ #KT-26999 Fixed
2018-10-25 19:10:39 +03:00
Nikolay Krasko
07e305e5f4
Update dictionary: +infos, -kompiler
2018-09-25 15:52:21 +03:00
Ilmir Usmanov
9df411481c
Do not coerce function literals to suspend.
...
The design is to use `suspend fun` instead of coercion, just as suspend
lambdas.
However, this syntax is not supported in the parser. But this is not a
problem, since the coercion lead to internal compiler error.
As a workaround everybody uses suspend lambdas.
#KT-24860: Fixed
2018-08-30 14:50:33 +03:00
Stanislav Erokhin
f3e0470dcd
Allow generic type parameter to have mixed constraints for @InlineOnly functions
...
#KT-19323 Fixed
2018-08-21 12:17:25 +03:00
Dmitry Petrov
df6d4f358a
KT-22274 report warning on labels that can't be referenced
...
Labels are meaningful only if they can be referenced by 'break',
'continue', or 'return' expressions.
2018-07-25 12:08:20 +03:00
Dmitry Petrov
5767f84c0e
Restrict retention for annotations with target EXPRESSION
...
#KT-13762 Fixed
2018-07-18 14:21:03 +03:00
Mikhail Zarechenskiy
2be08f4d60
[NI] Fix exception, recorded type for function statement can be null
...
See `checkStatementType`, we return `null` to reduce count of errors.
Also, note that named function which is used as last statement in lambda
doesn't coerce to Unit, this is a separate bug and will be addressed later,
see #KT-25383
#EA-121026 Fixed
2018-07-10 17:41:17 +03:00
Mikhail Zarechenskiy
9891f562cc
[NI] Make subtyping algorithm more robust to error types
...
During subtyping/incorporation we transform types (e.g. changing nullability,
form of the type) and, basically, we're doing this to some FIXPOINT.
It's important that we use `KotlinType.hashCode()` to compare types, but
for error types hashCode is a hashCode of its supertype and, for example,
`makeNullableAsSpecified` method recreate type every time. So, we continue
to generate new constraints and we'll never stop incorporation algorithm
2018-06-07 15:45:53 +03:00
Mikhail Zarechenskiy
04c13aeae8
[NI] Fix exception on capturing type with inner typealiased typed
2018-06-05 14:05:50 +03:00
Stanislav Erokhin
18b65e7bcf
[NI] Update test data
2018-06-04 12:21:47 +03:00
Mikhail Zarechenskiy
4ed5e2f35e
[NI] Improve inference for lambdas that return lambdas
2018-03-26 14:59:52 +03:00
Mikhail Zarechenskiy
530dd01ca6
Fix unboxing values of inline class type from type parameters
2018-02-20 11:45:49 +03:00
Mikhail Zarechenskiy
694f5690f9
[NI] Improve diagnostic about unresolved receiver for many candidates
2018-02-14 14:58:05 +03:00
Mikhail Zarechenskiy
3afd4a2f4a
[NI] Record all diagnostics from subcalls resolution results
2018-02-14 14:58:04 +03:00