Mikhail Zarechenskiy
6c9394f0b2
[NI] Use original implicit receiver for DSL violation check
...
There is an inconsistency between old and new inference for storing
receivers of resolved calls. In new inference, for captured types,
receiver will be changed and to preserve behavior of the old inference,
we use original one during important checks.
This is more a workaround than a solution and should be revisited.
#KT-31356 Fixed
#KT-29948 Fixed
#KT-31360 Fixed
2019-05-08 12:19:48 +03:00
Mikhail Zarechenskiy
c283e15425
[NI] Preserve annotations during type substitution
...
#KT-31346 Fixed
2019-05-08 11:26:20 +03:00
Mikhail Zarechenskiy
931bbd8cec
[NI] Support ad-hoc implicit integer coercion for Kotlin/Native
2019-05-06 16:59:30 +03:00
Mikhail Zarechenskiy
871925ba31
Fix compilation after rebase
2019-05-06 11:36:32 +03:00
Dmitriy Novozhilov
03c34691af
[NI] Expand TYPE_INFERENCE_ERRORS with diagnostics from NI
2019-05-06 11:36:25 +03:00
Dmitriy Novozhilov
ad1b8a6fb1
[NI] Add substitution of lambda return type in diagnostics
2019-05-06 11:36:18 +03:00
Dmitriy Novozhilov
8f22d43d01
Typo: fix function name in kotlinToResolvedCallTransformer
2019-05-06 11:36:15 +03:00
Dmitriy Novozhilov
d18c55a412
[NI] Fix reporting type mismatch on lambda parameters
2019-05-06 11:36:13 +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
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
Dmitriy Novozhilov
421fda6e92
[NI] Fix reporting smartcasts on arguments of binary expression
2019-05-06 11:36:01 +03:00
Simon Ogorodnik
aabc9fa10f
Abstract PostponedResolvedAtom & buildCurrentSubstitutor
2019-04-29 16:51:37 +03:00
Simon Ogorodnik
2ea7fb8801
Cleanup ConstraintStorage.buildResultingSubstitutor
2019-04-29 16:51:36 +03:00
Simon Ogorodnik
9306f3840f
Abstract buildResultingSubstitutor & ResultTypeResolver from KotlinType
2019-04-29 16:51:35 +03:00
Simon Ogorodnik
8e595f015e
Initial OverloadingConflictResolver abstraction from KotlinTypes
2019-04-29 16:51:34 +03:00
Leonid Startsev
6bec6e6905
Add synthetic constructors to class member scope, so they won't fly 'in the air' in the backends
...
This is required mainly for Native compiler since it wont't work correctly on descriptors that are not present in the class.
2019-04-26 15:04:53 +03:00
Mikhail Zarechenskiy
5b33e54f77
[NI] Provide diagnostics for candidates in "allCandidates" mode
...
This helps for completion as it use diagnostics to clip extra
candidates
2019-04-26 11:40:17 +03:00
Mikhail Zarechenskiy
f00c946ff7
Fix projection compilation against bootstrap compiler
...
This is needed after 5d95a1ac
2019-04-25 16:19:38 +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
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
Dmitry Gridin
37c856290f
Fix minor compile warnings
2019-04-25 19:47:39 +07:00
nikita.movshin
65244b4bea
Update copyright.
...
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00
Mikhail Zarechenskiy
673b54554c
[NI] Also complete arguments for ambiguity calls
...
This is needed for IDE-tests and cases when integer literals are used
in such ambiguity calls
2019-04-22 00:23:15 +03:00
Dmitriy Novozhilov
bfb13803d5
[NI] Fix reporting of overload resolution ambiguity
2019-04-19 14:46:22 +03:00
Dmitriy Novozhilov
f9cc3d9be3
[NI] Fix determining type equality in replacing of extension receiver
2019-04-19 14:46:22 +03:00
Dmitriy Novozhilov
0739d13038
[NI] Record scope in trace for calls with enabled NI
2019-04-19 14:46:22 +03:00
Dmitriy Novozhilov
c86b8da982
[NI] Don't report overload ambiguity for error candidates
2019-04-19 14:46:22 +03:00
Dmitriy Novozhilov
94c4a68344
[NI] Fix determination of ArgumentMatchStatus
...
#KT-31081 Fixed
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
Dmitry Gridin
3bed360c98
Fix "Should be replaced with Kotlin function" warnings
2019-04-18 15:28:52 +07:00
Mikhail Zarechenskiy
fe8bf98bce
Fix project compilation against bootstrap compiler
...
Follow-up of 705a8a22 , there were several usages of SAM conversions
for Kotlin functions
2019-04-17 23:11:05 +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
Dmitriy Novozhilov
18f9272f56
[NI] Fix reporting smartcast diagnostics for intersection types
...
#KT-30826 Fixed
2019-04-12 17:36:59 +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
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
Dmitriy Novozhilov
aa96a05469
[NI] Fix initial data flow info for analyzing lambdas
...
#KT-30734 Fixed
2019-04-05 12:52:29 +03:00
Simon Ogorodnik
3998e842f1
Abstract NewInference & related from KotlinType
...
Cleanup TypeConstructors & KotlinTypes in VariableFixationFinder
Cleanup TypeConstructors & KotlinTypes in TypeVariableDirectionCalculator
Cleanup KotlinTypes in TypeCheckerContext for ConstraintSystem
Cleanup KotlinTypes in NewCommonSuperTypeCalculator
Cleanup KotlinTypes in TypeApproximator
Cleanup type substitution
Cleanup NewTypeVariable
Cleanup StubType
Cleanup TypeCheckerContext creation, extract common supertype context
Provide TypeSystemInferenceExtensionContext via dependency injection
2019-04-01 22:08:04 +03:00
Ilya Chernikov
075a902ceb
Revert createClassLikeInfo method signature change, depreceate it ...
...
instead and make alternative method for refactored usages.
Should fix compatibility with the Spek framework plugin.
2019-04-01 17:37:33 +02:00
Mikhail Zarechenskiy
017f9aea35
[NI] Builder-inference: fix unresolved reference for variable calls
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
Dmitriy Novozhilov
4a1b9dcc3c
[NI] fix approximation of not denotable types in lambda's function descriptors
2019-03-29 11:54:37 +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