Commit Graph

346 Commits

Author SHA1 Message Date
Mikhail Glukhikh d9d582b226 FIR tower resolve: add level with implicit extension receiver 2019-05-28 10:20:33 +03:00
Mikhail Glukhikh 45b0f5a0ca Add FIR resolve test (call extension from extension) 2019-05-28 10:20:32 +03:00
Mikhail Glukhikh bc336650ff More top-level FIR resolve tests (map, with) 2019-05-28 10:20:31 +03:00
Simon Ogorodnik 94dca1d467 Suspend resolution sequence on first inapplicability report 2019-05-28 10:20:29 +03:00
Mikhail Glukhikh cb76ea5d14 FIR resolve: do not launch overload conflict resolve for erroneous 2019-05-28 10:20:28 +03:00
Mikhail Glukhikh 4d145db9f7 FIR resolve (by semoro): support correct type inference for generic args
This commit includes additional test and fixes e.g.
resolve of listOf() + listOf()
2019-05-28 10:19:12 +03:00
Simon Ogorodnik d3f00280e9 Disable data class copy function body in raw FIR
After this commit we require 'copy' body generation in FIR2IR converter
2019-05-28 10:18:00 +03:00
Simon Ogorodnik a849cc7da4 Store type for already resolved FIR references properly 2019-05-28 10:17:59 +03:00
Simon Ogorodnik 58873b2d7b FIR resolve: set setter value-parameter type properly 2019-05-28 10:17:57 +03:00
Simon Ogorodnik 38d3438101 [FIR] Support withNullability for captured type 2019-05-28 10:17:56 +03:00
Mikhail Glukhikh 05e4539019 Set resolved type for lambdas properly during FIR resolve
Partially done by semoro
2019-05-28 10:17:31 +03:00
Mikhail Glukhikh 963ed44ce1 FIR: fix exception in ConeKotlinType.returnType 2019-05-28 10:17:25 +03:00
Mikhail Glukhikh 6589fbbfbb Raw FIR: set val setter to null instead of default one 2019-05-28 10:17:22 +03:00
Mikhail Glukhikh 0aaf8c7689 Fix FIR Java enhancement of java.util.Map & similar supertypes 2019-05-28 10:17:21 +03:00
Simon Ogorodnik cef108a5ae FIR: implement qualifier resolver 2019-05-28 10:17:05 +03:00
Mikhail Zarechenskiy c30e045b1b [NI] Don't consider Any!-constraint from upper bounds as more specific
#KT-31624 Fixed
2019-05-27 17:32:25 +03:00
Mikhail Zarechenskiy 95710f4087 [NI] Avoid forcing resolve for array access expression
#KT-31606 Fixed
 #EA-126523 Fixed
2019-05-27 17:32:24 +03:00
Mikhail Zarechenskiy fe5976d7f4 [NI] Don't apply SAM-conversion for type that is subtype of function
Plus, don't get synthetic candidates as all candidates are creating
 by conversion

 #KT-31503 Fixed
2019-05-27 17:32:23 +03:00
Mikhail Zarechenskiy 8910859fd1 [NI] Implement various optimizations for incorporation algorithm
Mostly, these optimisations are picked from the old inference.
 Also, remove exponential complexity for flexible types in approximation,
 note that more correct fix for this would be to introduce new types
 that corresponds just to platform types to avoid nullability problems,
 but due to complexity it will be done later

 #KT-31415 Fixed
2019-05-26 21:32:46 +03:00
Mikhail Zarechenskiy bbec3bf001 Fix exception on star import from typealias
#KT-30983 Fixed
2019-05-26 21:32:07 +03:00
Mikhail Zarechenskiy b84b890250 Add tests to preserve current behavior for upcoming changes
##KT-30983 In Progress
2019-05-26 21:32:03 +03:00
Mikhail Zarechenskiy 5173d5e359 [NI] More accurate handle of capture types from subtyping
#KT-31520 Fixed
2019-05-26 21:31:59 +03:00
Mikhail Glukhikh 68da1a97d1 Add fib test to FIR resolve tests 2019-05-23 14:02:11 +03:00
Mikhail Glukhikh 2bf80ff64e FIR: support copy functions in data classes 2019-05-23 14:02:10 +03:00
Simon Ogorodnik 672c172c99 [FIR] Make result type after safe-call nullable (for nullable receiver) 2019-05-23 14:02:10 +03:00
Simon Ogorodnik f7b6fec70c [FIR] Transform explicit receiver of QAE properly 2019-05-23 14:02:10 +03:00
Simon Ogorodnik 27a1ec3817 [FIR] Allow nullable receiver type in case of safe-calls 2019-05-23 14:02:10 +03:00
Simon Ogorodnik 6c313895df [FIR] Do not enhance java fields to firProperty 2019-05-23 14:02:09 +03:00
Simon Ogorodnik 397aaa189e [FIR] Allow type-variables in general subtyping with cone context 2019-05-23 14:02:09 +03:00
Simon Ogorodnik 20ba15a429 [FIR] Typing for annotation calls 2019-05-23 14:02:09 +03:00
Simon Ogorodnik aa96837758 [FIR] Introduce unchecked not-null cast as internal operation for !!, ?: 2019-05-23 14:02:08 +03:00
Simon Ogorodnik b469eb293b [FIR] Typing for try-catch 2019-05-23 14:02:08 +03:00
Simon Ogorodnik 9398addb9d Fix cycle avoidance in FIR implicit type resolve
This commit fixes the following case:
transformer visiting it twice before reporting cycle
fun foo() = foo()
2019-05-23 14:02:07 +03:00
Mikhail Glukhikh 90009f002c Add FIR test for 'Exception' constructor resolve ambiguity (type alias) 2019-05-23 14:02:07 +03:00
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 Glukhikh d517276a06 Apply "unnamed boolean literal" to idea & J2K + other style fixes 2019-05-13 12:33:46 +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 2f835ed66f Specify type arguments to fix compilation against bootstrap compiler 2019-05-06 14:00:19 +03:00
Dmitriy Novozhilov e6deaf3315 [NI] Fix reporting UNSAFE_IMPLICIT_INVOKE_CALL diagnostic 2019-05-06 11:36:09 +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
Simon Ogorodnik 8a2b41c8cb Fix proguard 2019-04-30 19:28:17 +03:00
Simon Ogorodnik 3e51cbc9dc FIR: move test to stdlib group thus fixing it 2019-04-30 18:45:56 +03:00
Simon Ogorodnik 5b929b88e1 [FIR] Allow nullability mismatch in resolve 2019-04-30 18:45:56 +03:00
Simon Ogorodnik 2111e56d2e FIR: introduce workaround to avoid type-aliases in ConeClassType 2019-04-30 18:45:56 +03:00
Simon Ogorodnik c06d521e78 FIR: support star projection in CreateFreshTypeVariableSubstitutorStage
This commit fixes a small pack of tests failing at this point
2019-04-30 18:45:56 +03:00
Simon Ogorodnik 4bcba000fd FIR: pass name resolver to annotation deserializer separately 2019-04-30 18:45:56 +03:00
Mikhail Glukhikh f2ff103ed7 Fir2Ir converter: fix KNPE during use-site scope building for local 2019-04-30 18:45:55 +03:00
Mikhail Glukhikh 8cb16cc06a FIR provider: support getClassUseSiteMemberScope for type aliases 2019-04-30 18:45:55 +03:00