Dmitry Savvinov
699eb47834
Never suggest fake overrides as results of expects-matching
...
See KT-48291 for example.
The rationale behind the change is that in "findExpectForActual" we want
to find a candidate to be a counterpart for the current (actual)
declaration. Fake overrides can not be a sensible counterpart in that
regard (you can't, nor you should, provide actual for expect which is
FAKE_OVERRIDE)
^KT-48291 Fixed
2021-09-08 16:22:54 +03:00
Dmitry Savvinov
d6cb96aa24
Wire proper KotlinTypeRefiner into ClassicTypeSystemCotextForCS
...
^KT-48589 Fixed
2021-09-06 12:06:26 +03:00
Denis.Zharkov
019001ca20
Optimize memory footprint related to empty/single element collections
...
^KT-47926 Related
2021-08-30 16:51:55 +03:00
Dmitriy Novozhilov
7e6e0a3dd6
Remove all type system-specific inheritors of TypeCheckerState
2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov
e07512a847
Delegate refineType and prepareType in TypeCheckerState to special services
...
This is needed to add ability to create type system independent TypeCheckerState
2021-08-26 10:08:51 +03:00
Dmitriy Novozhilov
8b5548df49
Rename AbstractTypeCheckerContext to TypeCheckerState
2021-08-26 10:08:51 +03:00
Victor Petukhov
a1519b7b4e
Be able to infer a type variable based on several builder inference lambdas
...
^KT-48329 Fixed
2021-08-20 01:28:12 +03:00
Victor Petukhov
bf1e68a53f
Resolve calls using the builder inference despite the presence of the annotation if there are uninferred type variables
...
^KT-48194 Fixed
2021-08-20 01:28:11 +03:00
Victor Petukhov
55811c8851
Don't use builder inference if possible
...
The builder inference is running only if there are still uninferred type variables
^KT-48193 Fixed
2021-08-20 01:28:10 +03:00
Victor Petukhov
3df5667a4b
Split variables fixation and reporting "not enough type infromation" in the type system completer into two parts
2021-08-20 01:28:06 +03:00
Victor Petukhov
261a04b587
Rename "coroutine( inference) *" stuff into "builder inference *"
2021-08-20 01:28:05 +03:00
Victor Petukhov
7567597be6
Java nullability checker: take type arguments' types from resolution atom if possible, instead of from resolved call directly
...
^KT-47833 Fixed
2021-08-04 17:36:51 +03:00
Pavel Kirpichenkov
19467861c9
[MPP] Fix false positive expect-actual mismatch
...
Use type refiner to correctly expand actual type alias - expect
class chains, produced by the commonizer. In a case when type
refiner doesn't exist for module create a one-shot thread local
instance. This might happen with modules without source code
in project (coming from build system model).
^KT-46691 Fixed
2021-07-28 18:57:08 +03:00
Dmitriy Novozhilov
f3116cb64a
Fix NON_EXHAUSTIVE_WHEN_STATEMENT warnings in project code
2021-07-20 13:33:46 +03:00
Dmitriy Novozhilov
6e83820f97
Move ExpectActualCompatibility to :compiler:resolution.common
2021-07-20 10:33:33 +03:00
Victor Petukhov
6a1ec92d39
Introduce specific error for calls which could be resolved only with unrestricted builder inference
...
^KT-47747 Fixed
2021-07-16 19:32:36 +03:00
Victor Petukhov
357fda2efa
Initialize builder inference lambda anyway, even a call is inapplicable
...
^KT-47744 Fixed
2021-07-16 19:32:35 +03:00
Victor Petukhov
c2cf2f36cd
Implement inferring materialized self types through a default type in ResultTypeResolver
2021-07-09 19:21:04 +03:00
Victor Petukhov
3787099a38
Put the type inference on calls with self types under the compiler flag
2021-07-09 19:20:56 +03:00
Victor Petukhov
51c5a54e31
Support type inference for self type materialization calls
2021-07-09 19:20:54 +03:00
Mikhail Zarechenskiy
44cf4be1e5
Inference for some kind of self types
2021-07-09 19:20:52 +03:00
Victor Petukhov
c3a5a7754d
Use proper applicability for constraint warnings
...
^KT-47316 Fixed
2021-07-09 14:07:01 +03:00
Tianyu Geng
ce767046eb
FIR checkers: report SMARTCAST_IMPOSSIBLE
2021-06-10 16:01:13 +03:00
Victor Petukhov
124a14c8df
Use separate constraint position during call substitution as part of inferring postponed type variables
...
^KT-47052 Fixed
^KT-47082 Fixed
2021-06-03 12:37:17 +03:00
Dmitriy Novozhilov
796f8e6bce
Revert "FIR checkers: report SMARTCAST_IMPOSSIBLE"
...
This reverts commit 84334b08
2021-06-03 09:48:50 +03:00
Tianyu Geng
84334b087c
FIR checkers: report SMARTCAST_IMPOSSIBLE
2021-06-02 13:19:12 +03:00
Alexander Udalov
bcf47ddc94
Move optional annotation utilities to module 'resolution'
...
To avoid depending on a heavy module 'frontend' in parts of the compiler
where checking for optional annotations is needed, such as in
'ir.serialization.common'.
2021-06-01 20:28:22 +02:00
Victor Petukhov
9fd1cbd2e7
Inject stub type variables of a different builder inference call properly
2021-05-28 15:36:19 +03:00
Victor Petukhov
afbda75581
Set member scope for builder inference stub types equivalent to Any
2021-05-28 15:36:18 +03:00
Victor Petukhov
6356b9d501
Put removing builder inference restrictions under the compiler flag
2021-05-28 15:36:17 +03:00
Victor Petukhov
5a11450d77
Split stub types into stub type for subtyping and for builder inference and use them in the proper way
2021-05-28 15:36:17 +03:00
Victor Petukhov
ac7b459f2a
Do subtyping with stub types properly
...
1) Return stub type if we are calculating super type between two same stub types
2) Return nullable Any if those stub types are different
2021-05-28 15:36:15 +03:00
Victor Petukhov
5d0461c722
Remove restrictions for builder inference internal calls
2021-05-28 15:36:14 +03:00
Denis.Zharkov
dac5c31993
Minor. Simplify ConstraintSystemUtilContext::createArgumentConstraintPosition
2021-05-20 17:24:23 +03:00
Victor Petukhov
21dada4d2d
[Jspecify] Use enhancement of type with enhancement if possible during substitution
2021-05-18 17:52:10 +03:00
Victor Petukhov
12f6146bdf
[Jspecify] Substitute enhancement of type instead of type itself directly
2021-05-18 17:52:09 +03:00
Victor Petukhov
2479655708
[Jspecify] Do preserving flexibility when adding equality constraints by taking into account type with enhancement
2021-05-18 17:52:07 +03:00
Dmitriy Novozhilov
d114913cd2
Replace usages of addToStdlib.firstNotNullResult with firstNotNullOfOrNull
2021-05-14 14:30:19 +03:00
Victor Petukhov
7c62e9aecd
Introduce warnings reporting by missed constraints because of incorrect optimization in the constraints processor
2021-04-30 15:46:04 +03:00
Tianyu Geng
6a03f31e50
FIR: add UnsafeCall resolution diagnostics
...
Previously unsafe call is reported as part of InapplicableWrongReceiver.
This makes it difficult for the downstream checkers to report different
diagnostics.
2021-04-19 15:11:13 +03:00
Dmitriy Novozhilov
b530427bb2
Fix substitution of generic types in contracts
...
#KT-41078 Fixed
2021-04-16 17:23:24 +03:00
Victor Petukhov
73a2838555
Do substitution captured type's super types as well
...
^KT-45982 Fixed
2021-04-12 14:00:40 +03:00
Denis.Zharkov
e74a0c7ef7
Pass languageVersionSettings to AbstractTypeApproximator
2021-04-09 13:06:35 +03:00
Abduqodiri Qurbonzoda
19116e5623
Migrate compiler and others from sumBy to sumOf
2021-04-08 03:48:02 +03:00
Victor Petukhov
bbf5c4412e
Do subtyping between self types with captured type in special way
2021-03-29 16:30:58 +03:00
Victor Petukhov
999d1f982e
Introduce hierarchy of inference sessions
2021-03-24 15:57:47 +03:00
Victor Petukhov
a2b1aa753b
Substitute captured types with type variables properly
...
^KT-44687 Fixed
2021-03-19 16:16:09 +03:00
Dmitriy Novozhilov
74118930b4
[FE] Don't fail with exception if ESVisitor tries to visit ESLambda
...
#KT-45243 Fixed
2021-03-11 00:58:24 +03:00
Pavel Kirpichenkov
c68a4bdc0f
[MPP] Consider expect-actual inline/value classes interchangeable
...
^KT-44926 Fixed
2021-03-01 19:25:31 +03:00
Simon Ogorodnik
3909e3c54c
Decouple TypeCheckerContext and TypeSystemContext
2021-02-15 18:28:58 +03:00