Mikhail Zarechenskiy
1fecd15355
[NI] Fix exception on capturing stub type from coroutine-inference
...
#KT-30853 Fixed
2019-05-06 18:05:02 +03:00
Mikhail Zarechenskiy
931bbd8cec
[NI] Support ad-hoc implicit integer coercion for Kotlin/Native
2019-05-06 16:59:30 +03:00
Dmitriy Novozhilov
e46f552a8d
[NI] Update testdata in diagnostic tests
2019-05-06 11:36:20 +03:00
Dmitriy Novozhilov
f7091dd1e9
[NI] Uncapture captured types in diagnostics
2019-05-06 11:36:11 +03:00
Dmitriy Novozhilov
e6deaf3315
[NI] Fix reporting UNSAFE_IMPLICIT_INVOKE_CALL diagnostic
2019-05-06 11:36:09 +03:00
Dmitriy Novozhilov
251a02f71d
[NI] Fix recording type of lambda in trace
2019-05-06 11:36:08 +03:00
Dmitriy Novozhilov
233dd3ffba
[IDEA] Approximate IntegerLiteralType on IDEA side
2019-05-06 11:36:06 +03:00
Dmitriy Novozhilov
f2bbae6a63
[NI] Fix resolving callable references with typealias in ths
...
#KT-31199 Fixed
2019-05-06 11:36:04 +03:00
Dmitriy Novozhilov
65380f4eb4
[NI] Remove captured type approximation in type arguments of resolved call
2019-05-06 11:36:02 +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
Dmitriy Novozhilov
c1b586f921
[NI] Complex test for "not enough" information diagnostic
2019-04-25 16:19:35 +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
Alexander Udalov
d5fd160fd3
JS: minor, do not use '==' on descriptors from built-ins
...
Use KotlinBuiltIns.isString instead of equality with
KotlinBuiltIns.string, which is more portable across different module
configurations. Also use isSubtypeOf instead of
DescriptorUtils.isSubclass and thus get rid of an extra error on an
unresolved class in nativeAnnotationCheckers.kt
2019-04-25 14:42:42 +02: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
Dmitriy Novozhilov
642f8ecaf8
[NI] remove redundant replacing receiver in lambda function descriptor
...
#KT-30927 Fixed
#KT-31057 Fixed
2019-04-19 10:53:19 +03:00
Mikhail Zarechenskiy
2fe900d915
[NI] Resolve lambda against input types from expected type
...
This is needed to report more precise diagnostics and fix IDE-tests
#KT-31059 Fixed
2019-04-19 09:08:31 +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
e6e0b83184
[NI] Fix IDE-tests where integer types were used in unresolved calls
...
For example, test like CallExpression#testCallWithJavaClassReceiver
#KT-31060 Fixed
2019-04-17 01:40:56 +03:00
Mikhail Zarechenskiy
705a8a2234
[NI] Disable SAM-conversions for Kotlin functions by default
...
#KT-30661 Fixed
2019-04-17 01:40:54 +03:00
Dmitriy Novozhilov
18f9272f56
[NI] Fix reporting smartcast diagnostics for intersection types
...
#KT-30826 Fixed
2019-04-12 17:36:59 +03:00
Mikhail Zarechenskiy
bdab7a88f6
[NI] Add test for obsolete issue
...
#KT-28658 Obsolete
2019-04-12 15:22:39 +03:00
Dmitriy Novozhilov
a92cf19641
Revert "[NI] Fix reporting smartcast diagnostics for intersection types"
...
This reverts commit 033d7262
That commit breaks bootstraping
2019-04-11 18:49:02 +03:00
Dmitriy Novozhilov
033d7262a2
[NI] Fix reporting smartcast diagnostics for intersection types
...
#KT-30826 Fixed
2019-04-11 18:10:59 +03:00
Alexander Udalov
d257285c86
Load Java enums as final classes
...
In case Java enum has an abstract member, it has the ACC_ABSTRACT flag
set in the bytecode. However, we should still load it with final
modality to be consistent with Kotlin enums which are always considered
final
#KT-23426 Fixed
2019-04-10 14:39:16 +03:00
Dmitriy Novozhilov
d8cbeb8d15
Add regression test for SPREAD_OF_NULLABLE diagnostic
...
#KT-30808 Fixed
2019-04-05 14:17:34 +03:00
Mikhail Zarechenskiy
ff2ce316e1
[NI] Resolve callable reference eagerly at the end of resolution parts
...
This way we'll resolve less callable references later as we'll have
more constraints to clip wrong candidates for callable references
2019-04-05 13:16:58 +03:00
Mikhail Zarechenskiy
c3bc6ef2fa
[NI] Make callable references more robust to overloads of outer call
...
#KT-30676 Fixed
2019-04-05 13:16:54 +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
Dmitriy Novozhilov
aa96a05469
[NI] Fix initial data flow info for analyzing lambdas
...
#KT-30734 Fixed
2019-04-05 12:52:29 +03:00
Mikhail Zarechenskiy
c458393e2f
[NI] Do not avoid trivial constraints if they aren't from upper bounds
...
Since we skipped trivial constraint with `Any?` from parameter type of
function `equals`, the compiler thought that there is no proper
constraints (upper bounds do not matter here) and marked resolved
call as a failed one, then diagnostic about missing equals was added
Also, tune `TrivialConstraintTypeInferenceOracle` for `Any?`-like
constraints
#KT-30724 Fixed
2019-04-02 12:21:14 +03:00
Mikhail Zarechenskiy
a4cbec64b7
[NI] Remove failing codegen tests and add similar diagnostic one
...
These tests were added for suspend-conversions, it worked only
with new inference, but implementation was incorrect and had other
bugs, which were fixed in 1ac25259 .
Support of suspend-conversions will be addressed later with a different
implementation (#KT-30703)
2019-04-01 01:36:15 +03:00
Mikhail Zarechenskiy
1ac25259e8
[NI] Support callable references to suspend functions
...
#KT-30658 Fixed
2019-03-29 12:32:01 +03:00
Mikhail Zarechenskiy
017f9aea35
[NI] Builder-inference: fix unresolved reference for variable calls
2019-03-29 12:32:01 +03:00
Mikhail Zarechenskiy
d6db1a1b35
[NI] Relax requirement for stub types in builder-inference
...
For functions with implicit return type annotations will be replaced
anyway in order to initialize return type, so this restriction in
`StubType` was too strong
#KT-30656 Fixed
2019-03-29 12:32:01 +03:00
Mikhail Zarechenskiy
b10d19dc78
[NI] Align builder inference with the old inference
...
#KT-29184 Fixed
2019-03-29 12:32:00 +03:00
Mikhail Zarechenskiy
1eb70ea19e
[NI] Update test data related to builder-inference
2019-03-29 12:32:00 +03:00
Mikhail Zarechenskiy
b033b9180b
[NI] Avoid builder-inference algorithm if types specified explicitly
...
#KT-30620 Fixed
2019-03-29 12:31:59 +03:00
Dmitriy Novozhilov
1ac3542036
[NI] Decrease priority of Integer Literal Types in type checking
...
#KT-30446
2019-03-29 11:55:30 +03:00
Mikhail Zarechenskiy
a50cc99b01
[NI] Discriminate integer literal types as they are less specific
...
Plus simplify code in `ResultTypeResolver` a bit
2019-03-26 22:32:14 +03:00
Victor Petukhov
568506e5c1
Exclude warning "Remove final upper bound" for functions with override modifier
...
^KT-25105 Fixed
2019-03-25 22:14:26 +03:00
Dmitriy Novozhilov
ca0e66bafc
[NI] Refactor compiler representation of integer literals types
...
Add `IntegerLiteralTypeConstructor` that holds types, that can take
integer literal with given value. It has two supertypes
(`Number` and `Comparable<IntegerLiteralType>`) and have
special rules for subtyping, `intersect` and `commonSuperType`
functions with primitive number:
Example (assuming that ILT holds Int type):
* ILT <: Int
* Int :> ILT
* ILT intersect Int = Int
* commonSuperType(ILT, Int) = Int
#KT-30293 Fixed
#KT-30446 Fixed
2019-03-25 18:55:36 +03:00
Dmitriy Novozhilov
d3e98bc434
[NI] Update test data for diagnostic tests
2019-03-25 12:38:37 +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