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
Alexander Udalov
ed86757817
Rework how built-in types are loaded in compiler for JVM
...
In TopDownAnalyzerFacadeForJVM, we now always use the "load built-ins
from module dependencies" behavior that was previously only enabled with
the dedicated CLI argument -Xload-builtins-from-dependencies. However,
sometimes we compile code without kotlin-stdlib in the classpath, and we
don't want everything to crash because some standard type like
kotlin.Unit hasn't been found.
To mitigate this, we add another module at the end of the dependencies
list, namely a "fallback built-ins" module. This module loads all
built-in declarations from the compiler's class loader, as was done by
default previously. This prevents the compiler from crashing if any
built-in declaration is not found, but compiling the code against
built-ins found in the compiler is still discouraged, so we report an
error if anything is resolved to a declaration from this module, via a
new checker MissingBuiltInDeclarationChecker.
Also introduce a new CLI argument -Xsuppress-missing-builtins-error
specifically to suppress this error and to allow compiling code against
compiler's own built-ins.
#KT-19227 Fixed
#KT-28198 Fixed
2019-03-22 14:59:03 +01:00
Georgy Bronnikov
fae003866b
Use CLI compiler arguments directly in PhaseConfig creation
2019-03-21 23:32:25 +03:00
Ting-Yuan Huang
7e4d33be24
ConstantExpressionEvaluator: make evaluate*naryAndCheck public
2019-03-20 21:02:55 +01:00
pyos
330c4648cb
Implement property references in JVM_IR
2019-03-19 12:00:29 +01:00
Dmitriy Novozhilov
d01b6ef900
Revert "[NI] Support @OnlyInputTypes annotation. #KT-29307 fixed"
...
This reverts commit 90628112
With that annotation there is complex bug that breaks build of Kotlin compiler
2019-03-18 18:53:38 +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
1c92c22dee
[NI] Add support ExpectedTypeFromCast to new inference. #KT-30405 Fixed
2019-03-15 10:39:29 +03:00
Dmitriy Novozhilov
9062811231
[NI] Support @OnlyInputTypes annotation. #KT-29307 fixed
...
Also KT-26698 fixed in new inference
2019-03-15 10:39:11 +03:00
Alexander Udalov
76aff56b04
Remove unneded parameter of ResolverForProjectImpl
2019-03-11 18:31:59 +01:00
Alexander Udalov
0ccf7345e3
Move JsAnalyzerFacade from ide-common to js.frontend
...
To be used in diagnostic tests now, and as a replacement for
TopDownAnalyzerFacadeForJS in the future
2019-03-11 18:31:59 +01:00
Dmitriy Novozhilov
b681e4bda3
NI. Fix call commonSuperType for 0 types (bug introduced in cbf1d773)
2019-03-07 17:50:30 +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
Dmitriy Novozhilov
77c98bef4d
Fix recursion in contract declaration analysis. KT-26386 Fixed
...
Issue fixed only in old inference
2019-03-07 14:35:18 +03:00
Dmitriy Novozhilov
d0462859bf
Minor. Fix reporting diagnostic in contract with callable reference
2019-03-07 14:35:13 +03:00
Mikhail Zarechenskiy
88ee0bf6af
Swap arguments for diagnostic message about incompatible enums
...
This commit is restoring previous behavior changed in c4b69b65 and
fixing `DiagnosticMessageTestGenerated.testIncompatibleEnums` test
2019-03-06 10:44:45 +03:00