2.3.2.7 release notes
2.3.2.7
- Issue 2587 - Added Redundant suppression code inspection support for Apex annotation- and comment-based inspection suppressions. Suppressions found for scopes that never raise the suppressed inspections are now flagged as warnings with quick fixes to remove the the associated inspection IDs. When no further inspection IDs are suppressed, remove the containing annotation or comment. Note that this does not currently support annotation-based suppressions of PMD-based rule violations due to limitations in both the IDE's Redundant suppression code inspection (issue raised here) and PMD itself (issue raised here). Details are available in the pinned comment of the linked issue for those who might be curious.
- Issue 2608 - Implemented a few additional optimizations for transitive dependencies and dependents calculations, but this is not a true fix for the performance problems described in the linked issue. In reality, the calculation logic is working as designed, though perhaps not completely as expected. Again, I'd recommend reading the pinned comment in the linked issue for details and thoughts.
- Issue 2621 - Fixed an issue that could occur when parsing an Apex debug log with huge invokable names, specifically full request bodies for callouts. Now such large names are truncated to the first 1K characters before being processed further.
- Issue 2625 - Fixed an issue where the
new
keyword was not properly being offered as a code completion immediately following thethrow
keyword. - Implemented several fixes and improvements to the Apex Unused Declaration code inspection:
- The inspection now properly reports declarations as unused when all remaining usages are fully-contained within the declaration itself.
- Fixed an issue where an override of a concrete method could be incorrectly reported as unused by the inspection.
- Unused formal parameters of overridden concrete base methods are no longer reported by the inspection as they might be used in derived implementations.
- Fixed an issue where Apex classes weren't being properly processed by the inspection.
- Unused SObject instance declarations in Apex
switch
statements on SObject types are no longer reported by the inspection. Previously the minimal way to suppress those when appropriate was to suppress the inspection for the entireswitch
statement. I considered making this an inspection configuration option, but my guess is that when this is the case, it's almost certainly intentional, and the declaration cannot be removed without removing the entirewhen
branch from theswitch
statement. The resulting behavior is consistent with ignored unusedException
declarations intry/catch
statements. - When removing an unused local variable declaration with an initializer expression that can exist as a valid standalone statement with potential side-effects, the user is prompted as to whether to remove the entire local variable declaration including its initializer expression or just the declaration itself, retaining the initializer expression and its intended side-effects.
- Implemented a workaround for an
IndexNotReadyException
when showing Apex code coverage for Changed and Dependents following Apex unit test execution. Now if such an error is caught, the Changed filter is automatically used instead. Note that this exception only seems to be raised in 2024.2 (potentially 2024.2.0.2), and I have reported indexing during odd/unexpected times to JetBrains as a potential recent regression. - Fixed an issue with Apex extract variable/constant refactorings where the most succinct type name might not be used for the extracted declaration.
- Fixed a few issues with Apex documentation resolution, specifically for synthetic constructors.
- Fixed an issue with code intentions for the RegExp language injected into Apex string literals.
- Fixed a few issues with JSON copy-to-clipboard of Tooling API SOQL query results.
- Added formatting to a few additional notifications and message dialogs.
- Added more missing
ConnectApi
namespace field types. - Other related fixes and improvements.