Commit Graph

10656 Commits

Author SHA1 Message Date
Mark Punzalan afb34d3193 Analysis API: Implement KtCallResolver.collectAllCandidates for FE 1.0. 2022-02-17 19:51:35 +01:00
Ilmir Usmanov 9060168542 Support generic underlying type of inline class
Use upper bound in JVM representation.
 #KT-32162
2022-02-15 08:11:08 +01:00
Victor Petukhov 78f4b9f1cd [FE 1.0] Fix mistakes in error messages for resolution ambiguity with stub types
^KT-51022 Fixed
2022-02-14 15:43:47 +03:00
Victor Petukhov a54c9edaad [FE 1.0] Report progressions resolve changing warning while calling Java methods which pass Collection
^KT-51062 Fixed
2022-02-14 15:43:43 +03:00
Dmitry Savvinov ea466353fb Dont store type refinement mode in analysis flags
Instead, check the refiner from the DI-container or refiner from
capability of a module descriptor.

The reason is because in the IDE there might be multiple
ResolutionFacades (-> multiple DI-containers -> multiple module
descriptors) for one and the same IDE module, with different refinement
settings.
However, due to how the code is written, it's hard to have
different LanguageVersionSettings for one and the same module.

After this commit the refinement settings are determined by the
moduleDescriptor capabilities, which is much easier to tweak

See usage of that change in Kotlin IDE Plugin (commit is linked to the
YT issue)

^KTIJ-20775
2022-02-14 13:08:50 +03:00
Dmitriy Novozhilov 0eb526a8b4 [FE 1.0] Report warning about conflict in inherited members from deserialized dependencies
^KT-51194
^KT-51223 Fixed
2022-02-09 19:35:56 +03:00
Alexander Udalov 7dfe1793c8 Remove obsolete code used to load module annotations
`CliModuleAnnotationsResolver.getAnnotationsOnContainingModule` took
0.5% of total compilation time on IntelliJ.

 #KT-48233
2022-02-01 08:42:40 +01:00
Mikhail Glukhikh c2f43dd98e Revert OPT_IN_MARKER_ON_OVERRIDE limitation #KT-48890 Fixed 2022-01-28 13:40:35 +00:00
Mikhail Glukhikh d3f6ba99cb Add links to related issues to some deprecation warnings 2022-01-28 13:40:34 +00:00
Victor Petukhov 1a23cd8c45 [FE 1.0] Don't try to report specialized resolution ambiguity error for builder inference if the corresponding substitutor is empty
^KT-50989 Fixed
2022-01-27 15:30:16 +03:00
Mikhail Glukhikh c255da815f Change some names in source code from useExperimental to optIn 2022-01-27 11:48:21 +00:00
Anastasia.Shadrina a86b4d767e [FE] KT-50878 Prohibit using contextual declarations without -Xcontext-receivers 2022-01-21 17:21:59 +03:00
Pavel Kirpichenkov b4c854429f [MPP] Permit const actual properties for non-const expects
It's safe as not having const is more restrictive, therefore can be
allowed in common. Otherwise, it's not possible to declare an expect
declaration for a platform property with `const` modifier in common

KT-18856
2022-01-19 13:22:47 +03:00
Pavel Kirpichenkov 8ad06ef725 Minor: reformat 2022-01-19 13:22:47 +03:00
Denis.Zharkov b2543b7a26 Fix false negative UPPER_BOUND_VIOLATED with typealiases in supertypes
^KT-50797 Fixed
^KT-50798 Open
2022-01-19 09:52:16 +03:00
Dmitriy Novozhilov bc3157162d [FE 1.0] Clarify some diagnostic messages 2022-01-18 12:47:55 +03:00
Dmitriy Novozhilov 534d84e3e5 [FE 1.0] Add links to committee YT tickets into diagnostic messages
^KT-39883 Fixed
^KT-44705 Fixed
^KT-44866 Fixed
^KT-47902 Fixed
^KT-49110 Fixed
2022-01-18 12:47:54 +03:00
Victor Petukhov 72a78eb423 Replace errors with warnings for type checker recursion on delegates
^KT-49477 Fixed
2022-01-17 21:27:14 +03:00
Victor Petukhov a4a2f71fca Introduce deprecation cycle for reporting errors on some illegal equality calls inside a builder inference call
^KT-43493 Fixed
2022-01-17 19:44:16 +03:00
Victor Petukhov 060af85a93 Extract checks on equality expressions into a separate checker
^KT-43493 Fixed
2022-01-17 19:44:16 +03:00
Mikhail Glukhikh 1274e2b90a Deprecate ExtensionFunctionType on a non-function types
Related to KT-43527
2022-01-14 22:20:44 +03:00
Mikhail Glukhikh d0fa3eb1d3 Forbid ExtensionFunctionType on functional types without parameters
#KT-43527 Fixed
2022-01-14 22:20:24 +03:00
Mikhail Glukhikh a4f74f60d9 Fix apostrophes in error messages #KT-50183 Fixed 2022-01-14 22:20:23 +03:00
Mikhail Glukhikh 0f2f6334c2 Fix error message for SUPERTYPE_IS_SUSPEND_FUNCTION_TYPE
#KT-48907 Fixed
2022-01-14 22:20:22 +03:00
Mikhail Glukhikh 1402bb2d45 Fix error message about unsupported annotations on type parameters
#KT-48908 Fixed
2022-01-14 22:20:22 +03:00
Mikhail Glukhikh 230f210a2a Fix error message for CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT
#KT-50182 Fixed
2022-01-14 22:20:22 +03:00
Mikhail Glukhikh 37c0cad827 Minor code cleanup: resolveSupertypesByMembers 2022-01-14 22:20:21 +03:00
Mikhail Glukhikh fdf336042b Provide migration of Any functions via super in abstract case
Related to KT-38078
2022-01-14 22:20:21 +03:00
Mikhail Glukhikh 390fa682b9 Forbid calls of Any functions via super if they are overridden as abstract
#KT-38078 Fixed
2022-01-14 22:20:21 +03:00
Mikhail Glukhikh b689bbf5c7 Forbid usages of super if in fact it accesses an abstract member
#KT-49017 Fixed
2022-01-14 22:20:21 +03:00
Stanislav Erokhin cd957ae774 Return some API and mark them as IDEAPluginsCompatibilityAPI 2022-01-14 16:13:27 +01:00
Evgeniy.Zhelenskiy e97ca2ada4 [Psi2Ir, Fir2Ir] Generate toString, hashCode, equals methods for MF VC 2022-01-14 13:51:57 +00:00
Evgeniy.Zhelenskiy c7edc353d3 [FIX, Frontend] Fix recursive check for multi-field value classes 2022-01-14 13:51:57 +00:00
Evgeniy.Zhelenskiy 7595f798e1 [JVM] Introduce MF Value Classes to frontend 2022-01-14 13:51:55 +00:00
Dmitriy Novozhilov bb6c6dc45d [FE 1.0] Fix reporting of UNINITIALIZED_ENUM_ENTRY on qualified enums
^KT-41124
^KT-50758 Fixed
2022-01-14 14:26:54 +03:00
Dmitriy Novozhilov 50f6825775 [FE 1.0] Cleanup code of ControlFlowProcessor
- Always pass not nullable language version settings
- Fix warnings and style
- Remove redundant pseudocode utils
2022-01-14 14:26:53 +03:00
Dmitriy Novozhilov e9ac24dc33 [FE 1.0] Report errors on cycles in annotation parameter types
^KT-47932
^KT-50753 Fixed
2022-01-14 14:26:52 +03:00
Dmitriy Novozhilov 139a800ff7 [FE 1.0] Prohibit array literals inside nested objects of annotation classes
^KT-39041
^KT-50749 Fixed
2022-01-14 14:26:51 +03:00
Dmitriy Novozhilov c1575edca4 [FE 1.0] Drop ArrayLiteralsInAnnotations feature
This feature was introduced in 1.2, so now it's stable part of language
  and we can drop support of disabling it
2022-01-14 14:26:50 +03:00
Dmitriy Novozhilov ff7eb79bb1 [FE 1.0] Prohibit call of constructor of functional supertype
^KT-46344
^KT-50730 Fixed
2022-01-14 14:26:50 +03:00
Dmitriy Novozhilov ecc890efe8 [FE 1.0] Fix reporting of uninitialized parameter in default values of parameters
^KT-25694
^KT-50723 Fixed
2022-01-14 14:26:49 +03:00
Stanislav Erokhin 1326ca674e Introduced IDEAPluginsCompatibilityAPI and returned some API
Please read the description of IDEAPluginsCompatibilityAPI.
Also, you may notice, that Deprecation annotation was removed.
That is because with level ERROR it isn't possible to opt-in
to such API in the legit cases. And with level WARNING it won't be
reported because We have diagnostic with level ERROR about OptIn marker.
Sadly, there is no way to add ReplaceWith to the OptIn marker
2022-01-13 18:03:07 +01:00
Denis.Zharkov 964cf937c3 Fix IllegalStateException in case of recursive T & Any upper bound
^KT-50542 Fixed
2022-01-13 12:54:47 +03:00
Dmitriy Novozhilov b2b5f4a63a [FE 1.0] Don't report deprecation diagnostics about enum on it's own entries
^KT-37975 Fixed
2022-01-12 19:11:28 +03:00
Victor Petukhov 455b3143e7 [FE 1.0] Introduce builder inference stub types checker which may report more precise and clear errors due to resolution ambiguity
^KT-49828 Fixed
2022-01-11 18:34:47 +03:00
Victor Petukhov dcc42d66c3 [FE 1.0] Fix formatting in StubTypesBasedInferenceSession 2022-01-11 18:34:46 +03:00
Victor Petukhov 4dc9b291e5 [FE 1.0] Store builder inference session in the corresponding lambda argument 2022-01-11 18:34:46 +03:00
Victor Petukhov 74f294d849 [FE 1.0] Store constraint system in call resolution result instead of constraint storage 2022-01-11 18:34:45 +03:00
Victor Petukhov cedd98148c [FE 1.0] Rename the remaining coroutine inference stuff into builder inference 2022-01-11 18:34:45 +03:00
Victor Petukhov 27ed4a7dc2 [FE 1.0] Rename DelegatedPropertyInferenceSession to DelegateInferenceSession 2022-01-11 18:34:44 +03:00