Mikhail Zarechenskiy
bbec3bf001
Fix exception on star import from typealias
...
#KT-30983 Fixed
2019-05-26 21:32:07 +03:00
Mikhail Zarechenskiy
cc29ca02f8
[NI] Don't loose inference session during property resolve
...
#KT-31620 Fixed
2019-05-26 21:31:54 +03:00
Mikhail Glukhikh
f4fdc66a34
Introduce experimental FIR compiler #KT-31265 Fixed
...
This commit also includes several FIR2IR fixes which helps FIR compiler
to produce normal results
2019-05-23 14:02:06 +03:00
Dmitriy Novozhilov
95544b0970
Add wrappers on KotlinType in EffectSystem
...
Also that commit removes usages of builtins inside
effect system and starts refactoring of functor
composition via composition instead of inheritance.
There are some changes in testdata related to inference of recursive
functions with implicit return types.
After this commit they all are marked as unresolved. It happens because
those functions have DeferredType as return type, and computing this
type produces recursive exception, which provides “typechecker
recursive problem” diagnostic.
Before this commit, function call was completed successfully, because
call completer didn’t computed that type, and computation of DeferredType
were triggered only in `DataFlowAnalyzer.checkType`.
Now, effect system tries to compute that type while wrapping KotlinTypes
into ESTypes, and effect system itself is triggered in in call completer,
so, call completion doesn’t finish and function call is marked as unresolved.
#KT-31364
2019-05-23 12:23:22 +03:00
Dmitriy Novozhilov
fb77e1f0bd
[NI] Fix recursion in contract declaration analysis.
...
#KT-30410 Fixed
2019-05-23 12:22:42 +03:00
Dmitriy Novozhilov
b4c8c79931
[NI] Add check for non-null argument type in arguments check
...
#KT-31461 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
Ilmir Usmanov
266976ac1e
Fix Java interop of inline suspend functions with suspend parameters
...
In 1.3.31 I fixed Java interop for inline function with coroutines
(TL;DR: when we need a state machine, generate two methods: one with
normal name, and the other one with $$forInline suffix, for the inliner
to use, just like inline suspend functions), however, I forgot a case
with inline suspend function with inline suspend function parameter.
In this case, the compiler a generated two functions, as needed, but,
neither of them had a state-machine. This change adds the state-machine
for the method with normal name. Note, that suspend inline functions
with crossinline parameter, which are also supported by the change,
did not cause incorrect behaviour, since until now they were generated
as synthetic.
#KT-31354 Fixed
2019-05-21 17:50:25 +03:00
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