Commit Graph

10812 Commits

Author SHA1 Message Date
Mikhail Glukhikh c699896b0f Revert "[FE 1.0] Resolve collection literals through the new type inference infra"
This reverts commit a542de715a.
2022-09-13 09:09:00 +00:00
Mikhail Glukhikh 707bfbed19 Revert "[FE 1.0] Resolve equal calls through the new type inference infra"
This reverts commit a74c221729.
2022-09-13 09:09:00 +00:00
Mikhail Glukhikh a9b8f6715b Revert "[FE 1.0] Resolve setters through the new type inference infra"
This reverts commit 6e191147b9.
2022-09-13 09:09:00 +00:00
Mikhail Glukhikh 8be08d903b Revert "K1: don't report UNRESOLVED_WITH_TARGET on hidden setters"
This reverts commit e20efc1398.
2022-09-13 09:08:59 +00:00
Mikhail Glukhikh f4e6c1c9c5 Revert "K1: cleanup new inference constructor resolve in CallResolverUtil"
This reverts commit ec055eb418.
2022-09-13 09:08:59 +00:00
Mikhail Glukhikh 41abe7b8f7 Revert "K1: unify code around resolveCallWithGivenDescriptors"
This reverts commit 0bd06b4095.
2022-09-13 09:08:59 +00:00
Mikhail Glukhikh 60cee9f1b7 Revert "[FE 1.0] Get rid of old inference stuff from CallResolver"
This reverts commit bd665dc5d9.
2022-09-13 09:08:59 +00:00
Mikhail Glukhikh 569d6d28b7 Revert "[FE 1.0] Get rid of the old builder inference support"
This reverts commit 1c91e3a606.
2022-09-13 09:08:58 +00:00
Mikhail Glukhikh 087bda52e6 Revert "[FE 1.0] Get rid of the old inference call completer"
This reverts commit 2c7a442cbd.
2022-09-13 09:08:58 +00:00
Mikhail Glukhikh ee58de0680 Revert "[FE 1.0] Get rid of deprecated interceptCandidates in CallResolutionInterceptorExtension"
This reverts commit afaf20aea3.
2022-09-13 09:08:58 +00:00
Mikhail Glukhikh 2ac25cfa8e Revert "[FE 1.0] Get rid of CandidateResolver"
This reverts commit 4ea08a59db.
2022-09-13 09:08:58 +00:00
Mikhail Glukhikh f35ced3666 Revert "[FE 1.0] Get rid of GenericCandidateResolver"
This reverts commit 941a33a184.
2022-09-13 09:08:57 +00:00
Mikhail Glukhikh 2d17864fcb Revert "[FE 1.0] Get rid of OldResolutionCandidate and its usages"
This reverts commit d89fa8dea9.
2022-09-13 09:08:57 +00:00
Mikhail Glukhikh b12dffa593 Revert "[FE 1.0] Get rid of NewResolutionOldInference"
This reverts commit 34a05105ef.
2022-09-13 09:08:57 +00:00
Mikhail Glukhikh 3a60e2cde5 K1: add link to the issue (KT-48162) for deprecation message 2022-09-12 17:45:34 +02:00
Pavel Mikhailovskii fe5a6fd511 Disallow non-local break/continue in crossinline lambdas 2022-09-12 13:26:19 +00:00
Mikhail Glukhikh c1b0405c4e [FE 1.0] Use the old type intersection for type parameter bounds
This is a partial revert of commit bc1c2ada
We have to use old type intersector for emptiness check because
KT-53656 were found. We return to old type intersector usage also
for type parameter bounds to prevent other possible problems.
2022-09-06 17:57:02 +00:00
Mikhail Glukhikh 3bdd52b64a [FE 1.0] Return to the old type intersection emptiness check
This reverts commit 8227c4b603.
#KT-53656 Fixed
2022-09-06 17:57:01 +00:00
Pavel Kirpichenkov 24dcad0d9c [MPP] Use module's type checker for upper bound checks
The default type checker doesn't have a correct type refinement setup.
This can cause false positives in subtyping of upper bounds in edge
cases with expect type arguments.

See the tests in the intellij repo.

KTIJ-22295
2022-09-01 09:51:11 +00:00
Denis.Zharkov 3d7969ec8f Revert "KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing"
This reverts commit 2053363def.

^KT-35811 Open
2022-08-30 11:21:50 +00:00
Denis.Zharkov 211d662708 Revert "KT-8263: Conditional operators are not parsed correctly"
This reverts commit ec8da2033c.

For the reason for the revert see KT-53719

^KT-8263 Open
^KT-53719 Fixed
2022-08-30 11:21:50 +00:00
Simon Ogorodnik 154e53c701 K1: add diagnostic BUILDER_INFERENCE_STUB_RECEIVER
It's reported on receivers in extension function calls with stub type,
as such calls can shadow members of finalized stub types causing
change of resolve when corresponding type argument specified explicitly

It works by checking extension receiver during call resolution parts run
That way we can easily detect if we found an extension applicable to
stub receiver and report call diagnostic for it

KT-53739
2022-08-30 10:19:26 +00:00
Simon Ogorodnik 105358dcf6 K1: add diagnostic BUILDER_INFERENCE_MULTI_LAMBDA_RESTRICTION
Let's call builder lambdas (BL) a lambda that has non-fixed input type
projection at the moment of lambda arguments analysis, such lambdas
is a subject to be analyzed with builder inference
Due to bug in constraint system joining algorithm, currently system
of two or more such lambdas may lead to unsound type inference

Diagnostic added here should be reported in case when there are two
BL that shares a common constraint system, while not annotated with
@BuilderInference, as a protection against aforementioned bug

It's reported by ConstraintSystemCompleter when such situation has
occurred during builder inference phase, it is the same place that
decides wherever lambdas is subject to builder inference or not

KT-53740
2022-08-30 10:19:25 +00:00
Dmitriy Novozhilov 6573533b95 [FE 1.0] Make all components of ExpressionTypingComponents public
There is no much sense to have them package-private, since all setters
  for them are public. Also those services can be used in assign alterer
  extension
2022-08-19 07:44:08 +00:00
Dmitriy Novozhilov f843883985 [FE 1.0] Introduce AssignResolutionAltererExtension
This extension can be used to override resolution of assign statements
  with custom logic

WARNING: there is no compatibility guarantees for this extension
2022-08-19 07:44:08 +00:00
Iven Krall ec8da2033c KT-8263: Conditional operators are not parsed correctly 2022-08-16 10:00:54 +00:00
Iven Krall 2053363def KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing 2022-08-16 10:00:53 +00:00
Mikhail Glukhikh 7333589663 K1/K2: add Enum.entries unconditionally and filter them out in tower
Before this commit, we added Enum.entries only in case when
LanguageFeature.EnumEntries was ON (with an exception in K1/Java case).
In this commit we add Enum.entries unconditionally, and in case
the language feature is OFF we filter them out during tower resolve.
2022-08-12 09:35:27 +00:00
Mikhail Glukhikh 3a2d69225c K1: add support for Enum.entries in Java scopes 2022-08-12 09:35:25 +00:00
Mikhail Glukhikh 12e8b1d844 K1: add support for Enum.entries synthetic property (see KT-48872)
#KT-53270 Fixed
2022-08-12 09:35:24 +00:00
Mikhail Glukhikh cb1123cccd OptInUsageChecker: restore public API isOptInAllowed method 2022-08-11 14:05:10 +00:00
Mikhail Glukhikh 80a9f22052 Add applicability checks & tests for SubclassOptInRequired 2022-08-11 14:05:09 +00:00
Mikhail Glukhikh 76aaecbdf0 Add/fix extra cases for #KT-41886 Fixed 2022-08-11 14:05:08 +00:00
Mikhail Glukhikh c67c5cad27 K1: report errors related to SubClassOptInRequired annotation
Related to KT-41886
2022-08-11 14:05:07 +00:00
Mikhail Glukhikh 84291181af K1: drop redundant OptIn check for expanded type 2022-08-11 14:05:07 +00:00
Pavel Mikhailovskii 8ba80b4b7b KT-1436 Allow break/continue in inlined lambdas 2022-08-11 10:38:23 +00:00
Denis.Zharkov 11a26e540e Revert "KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing"
This reverts commit a2077f9063.
2022-08-04 17:50:00 +02:00
Denis.Zharkov 2ae2a7e442 Revert "KT-8263: Conditional operators are not parsed correctly"
This reverts commit 85800b4f9f.
2022-08-04 17:49:42 +02:00
Iven Krall 85800b4f9f KT-8263: Conditional operators are not parsed correctly 2022-08-04 11:24:09 +00:00
Iven Krall a2077f9063 KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing 2022-08-04 11:24:08 +00:00
Sergej Jaskiewicz 9dc7fe24f6 [psi2ir] Emit source info for annotation parameters
We need this in the JS IR backend for annotations like
@JsFun and @JsPolyfill
2022-08-03 16:45:55 +00:00
Mikhail Glukhikh 3cb4b8ddda Fix KotlinTypeCheckerTest in accordance with NI intersections 2022-08-02 10:29:41 +00:00
Victor Petukhov 34a05105ef [FE 1.0] Get rid of NewResolutionOldInference 2022-08-02 10:29:39 +00:00
Victor Petukhov d89fa8dea9 [FE 1.0] Get rid of OldResolutionCandidate and its usages 2022-08-02 10:29:39 +00:00
Victor Petukhov 8500ee08a8 [FE 1.0] Remove CONSTRAINT_SYSTEM_FOR_OVERLOAD_RESOLUTION analysis flag
The constraint system for the old type inference is going to be removed.
Also, `CONSTRAINT_SYSTEM_FOR_OVERLOAD_RESOLUTION` isn't used in the production
2022-08-02 10:29:38 +00:00
Victor Petukhov 8227c4b603 [FE 1.0] Use the new type intersection emptiness check
Also introduced compatibility mode to preserve compatibility for is/as/equality checks

^KT-29316 Related
2022-08-02 10:29:37 +00:00
Victor Petukhov bc1c2adae1 [FE 1.0] Use the new type intersection to intersect types 2022-08-02 10:29:36 +00:00
Victor Petukhov 941a33a184 [FE 1.0] Get rid of GenericCandidateResolver 2022-08-02 10:29:35 +00:00
Victor Petukhov 4ea08a59db [FE 1.0] Get rid of CandidateResolver 2022-08-02 10:29:35 +00:00
Victor Petukhov afaf20aea3 [FE 1.0] Get rid of deprecated interceptCandidates in CallResolutionInterceptorExtension 2022-08-02 10:29:34 +00:00