Commit Graph

142 Commits

Author SHA1 Message Date
Mikhail Glukhikh 4167a69e30 K2: generate implicit dispatch receivers for static members called
#KT-55371 Fixed
#KT-55372 Fixed
2023-01-26 15:27:57 +00:00
Kirill Rakhman a7edf5b83e FIR: Throw if source is null in DiagnosticReporter.reportOn ^KT-55284 Fixed 2023-01-11 08:30:36 +00:00
Ilya Kirillov 79fe4100aa [FIR] extract exception handing into a service to have additional implementation for the ide 2023-01-03 10:23:50 +00:00
Alexander Udalov 3c4b5529af Update year to 2023 in COPYRIGHT_HEADER.txt
This commit is the result of changing the year to 2023 in
COPYRIGHT_HEADER.txt and running all `generate*` tasks in
`generators/build.gradle.kts`.
2023-01-02 22:52:15 +01:00
Yan Zhulanow d652dc620c [FE] Preserve legacy contract description calls in bodies
^KT-55231 Fixed
^KTIJ-21012 Fixed
2022-12-26 11:46:58 +00:00
Anna Kozlova 15b1e429d7 [compiler] introduce dedicated Fir declaration for dangling modifier lists (KTIJ-23008)
ensure fir annotations are included in FirDanglingModifierList and resolved,
dedicated DanglingTopLevelModifierListStructureElement exists for top
level lists only, class level lists are processed by containing structure
element
2022-12-21 20:58:46 +00:00
Mikhail Glukhikh af96c735bb K2: use PUBLICATION mode for lazy members in KtSourceElement
This commit removes performance problems during these members access
2022-12-17 21:44:58 +00:00
Ilya Kirillov 7a89ca495c [LL FIR] do not execute resolve under a non-cancellable session
The sessions are invalidated on the PCE
2022-12-06 21:20:41 +00:00
Nikolay Lunyak 2e9f9f987b [FIR] KT-44698: Print file:line:offset on K2 crash
^KT-44698 Fixed
2022-11-29 22:35:51 +00:00
Dmitrii Gridin 22cfea5058 [FIR] introduce KtFakeSourceElementKind.ReceiverFromType
^KT-54417
2022-11-17 09:50:13 +00:00
Anna Kozlova 3590c4ea35 [Analysis API FIR] support generated temp properties
KTIJ-23492 (array index expression), KTIJ-23138 (inc/dec desugaring)
2022-11-11 17:39:53 +01:00
Mikhail Glukhikh d00af1c932 FE: drop DiagnosticReporter.context.report & rename reportAndCommit 2022-10-17 12:46:24 +00:00
Mikhail Glukhikh 1826d9b332 K2: add & fix tests for JVM BE diagnostics 2022-10-17 12:46:24 +00:00
Xin Wang 69a4de0461 K2 JVM: Take JVM declarations conflicting error back
Since SimpleDiagnosticsCollectorWithSuppress have been replaced by
PendingDiagnosticsCollectorWithSuppress after commit 9add6f3d55,
diagnostics need to be committed now.

#KT-54366 Fixed
2022-10-17 12:46:23 +00:00
Dmitriy Novozhilov c0ad67c4f9 [FIR] Generate java declarations for record components of java records
^KT-53964 Fixed
2022-10-03 15:48:17 +03:00
Dmitriy Novozhilov 6ef3d1e573 [FE] Add helper methods for reporting diagnostics with DiagnosticContext context receiver 2022-09-07 07:57:36 +00:00
Simon Ogorodnik 513af2dfbc FIR. Refactor smart-cast representation in FIR tree
Make smart-casts non-transparent expression without delegation
to underlying FirQualifiedAccessExpression, as children delegation in
fir tree has unclear semantics
Remove two different kinds of tree nodes for smart-casts
2022-08-15 21:46:11 +00:00
Dmitry Gridin 4ceb170917 regenerate tests 2022-08-05 14:12:41 +02:00
Mikhail Glukhikh bc396b9765 K2: don't report RETURN_TYPE_MISMATCH on last statement returns
#KT-53198 Fixed
2022-07-22 16:39:51 +00:00
Mikhail Glukhikh 07f16ef378 K2 LL API: implement automatic diagnostic suppression 2022-07-22 11:35:27 +00:00
Mikhail Glukhikh 9add6f3d55 K2: add more accurate & more automatic control of diagnostic suppression
#KT-51363 Fixed
2022-07-22 11:35:26 +00:00
Dmitriy Novozhilov f587c02d38 [FE] Move ServiceLoaderLite to :compiler:frontend.common
This is needed to be able to use this class inside FIR part of IDE plugin
2022-06-29 12:00:00 +00:00
Ivan Kochurkin b573532d8c Introduce COMPONENT_FUNCTION_NAME_PREFIX constant 2022-06-17 23:26:15 +00:00
Nikolay Lunyak 858999c1a1 [FIR] Preserve information about prefix/postfix-ness
This information is needed for dynamics
2022-06-02 13:47:31 +00:00
Ilya Chernikov 03cbfea737 FIR LT: Introduce source file abstraction, carry it from parsing to IR
along with source lines mapping, allows to "emulate" usage of the
PSI files which allows to extract source file and line mapping info
on every stage from source element.
It makes sense to use this mapping for the error reporting too.
2022-03-30 08:34:30 +00:00
Ilya Chernikov ae10346d75 Refactor FIR diagnostics: cleanup and extract position finder
for reusing the latter in the inliner for LT-based sources
2022-03-30 08:34:13 +00:00
Mikhail Glukhikh 4178c8156a Fix NPE in KtSourceElement.elementType #KT-44152 Fixed 2022-03-10 09:01:58 +00:00
Dmitriy Novozhilov 52b72a7dac [FIR] Implement Int -> Long conversions for literals and operators over them
^KT-38895
^KT-50996 Fixed
^KT-51000 Fixed
^KT-51003 Fixed
^KT-51018 Fixed
2022-02-07 13:36:36 +03:00
Vyacheslav Gerasimov f7a9065b75 Build: Use intellij maven repo instead of downloaded IDEA
#KTI-82
2021-12-16 21:48:23 +03:00
Ilya Chernikov c1c94778ce Detect and report inner classes capturing script instance 2021-12-14 13:39:22 +03:00
Ivan Kochurkin 800d594a4f [FIR] Check adding default error messages for all diagnostics ^KT-49973 fixed
Also, check for duplicates
2021-12-09 12:31:23 +00:00
Dmitriy Novozhilov 7bcd3c7948 [FIR] Add FirExtensionRegistrarAdapter to fix extension points in FE 1.0 IDE plugin
FirExtensionRegistrar is FIR specific extension which requires FIR
  classes to work, which are missing in dependencies of FE 1.0 IDE plugin.
  To fix this issue FirExtensionRegistrarAdapter is introduced. This
  class is a base class for FirExtensionRegistrar and it does not have
  any FIR specific classes in it's API, so it can be safely registered
  in IDE
2021-12-06 17:19:34 +03:00
Victor Petukhov 5c3835ab39 [FE 1.0] Don't use identifier in WhenMissingCase.kt if it wasn't provided
^KT-49702 Fixed
2021-11-22 10:44:06 +03:00
Tianyu Geng f217bb94de Use more consistent names for inheritors of BooleanIsMissing 2021-11-04 23:04:35 +01:00
Ilya Chernikov 5bdda9c7f8 Implement suppression cache based on IR tree, use it in reporter 2021-10-27 22:17:42 +02:00
Ilya Chernikov bfe31c97ac Add support for ASTs without parents to suppress cache 2021-10-27 22:17:42 +02:00
Ilya Chernikov 7ef806b2ed Extract AbstractKotlinSuppressCache to frontend.common 2021-10-27 22:17:42 +02:00
Ilya Chernikov 70366dc7a6 Refactor diagnostic & result reporters...
to better reflect actual roles
2021-10-27 22:17:41 +02:00
Ilya Chernikov ea1edc2bd9 Add equality to diagnostic context, simplifying deduplication 2021-10-27 22:17:41 +02:00
Ilya Chernikov fc176e9845 Refactor IR reporting and infrastructure 2021-10-27 22:17:41 +02:00
Ilya Chernikov da2d3f29da Add multiple renderer sources support to new diagnostics infrastructure 2021-10-27 22:17:41 +02:00
Ilya Chernikov 1ce4075112 Prepare CLI reporting infrastructure for non-PSI diagnostics 2021-10-27 22:17:40 +02:00
Ilya Chernikov 5446168770 Add path to FirFile to pass it to the DiagnosticContext 2021-10-27 22:17:40 +02:00
Ilya Chernikov 1e056a7aa8 Report IR errors via new diagnostic infrastructure 2021-10-27 22:17:40 +02:00
Ilya Chernikov 21ea92cd4a Extract mutable diagnostic context to separate interface 2021-10-27 22:17:40 +02:00
Ilya Chernikov 9e60c70db7 Add abstract source element and switch diagnostics to it 2021-10-27 22:17:40 +02:00
Ilya Chernikov 524e40708d Move report helpers to frontend.common 2021-10-27 22:17:40 +02:00
Ilya Chernikov e9f59e8d1d Move common diagnostics infrastructure to frontend.common 2021-10-27 22:17:39 +02:00
Ilya Chernikov a65beb2dc5 Move Fir*SourceElement to frontend.common, rename to Kt* (complete) 2021-10-27 21:44:11 +02:00
Ilya Chernikov c50c8ad270 Move FirSourceElement to frontend.common (only move to save history) 2021-10-27 21:43:15 +02:00