February 2020 (version 1.34.0)
1.34.0 Update
Welcome to the new DeepScan updates!
Breaking Changes
Require login to view files in public projects due to an authorization deprecation from GitHub.
Please kindly go ahead with the highlights for the latest release.
Release Summary
This version includes a number of updates that we hope you've found some of them helpful.
The key highlights are:
- New rules - Rules about a global regular expression match and React element!
- Analysis improvements - More precise analysis for the
Promise
andGenerator
objects. - Enhanced ESLint support - More ESLint plugins are supported.
New Rules
We keep enhancing our rules. Check out the newly introduced rules!
- BAD_TEST_WITH_GLOBAL_REGEXP - Use the
test()
method of a regular expression with the global flag with a caution (Thanks to @GHengeveld) - REACT_BAD_CHILD_GENERATOR - Do not set a generator object as a child of React element
Improved Rules
- Add inter-module detection to MISSING_AWAIT
- Detect REACT_BAD_API_RETURN_VALUE alarms for more incorrect object types
- Detect REACT_MISMATCHED_TYPE_OF_PROP alarms for missing required props and incorrectly typed
defaultProps
Analysis Improvements
- Recognize the resolved value type of
Promise
type annotation - Analyze
Generator
andAsyncGenerator
objects more precisely - Analyze React
this.setState()
return value asundefined
- Improve the precision of recognizing React
PropType
declarations when object spreads are used
ESLint Integration
We have added more ESLint plugins which are missing in the analysis.
For details about ESLint analysis, see the Using ESLint.
Miscellaneous
- Require login to view files in public projects due to an authorization deprecation from GitHub. To read files from GitHub, DeepScan now uses a user's token rather than its own token.
- In the project settings, support a filter on rule name to Rules for easier rule selection
- In the Files view, trim trailing whitespaces of a search input
- Show an error message explicitly when showing files over 1 MB
- Show the branch name in the analysis result email
- Update rule examples up-to-date
- Instead of UNUSED_REQUIRE, detect UNUSED_VAR_ASSIGN alarm when the
require()
result is overwritten by another assignment
Bug Fixes
- Notification for new analysis results does not work properly
- In the ESLint analysis, sometimes an error message is truncated
- In the code fragment of the Issues view, a newline character is appended for an alarm at the last line
- A false alarm for REACT_MISMATCHED_TYPE_OF_PROP may occur when a JSX spread attribute is used
- An AMBIGUOUS_BRANCH_BODY alarm is missed when
for
loop has a variable declaration - An async generator function is incorrectly treated as an async function
Thank You
Thank you to the following folks who help to make DeepScan better!
- @GHengeveld kindly motivated us to develop this new BAD_TEST_WITH_GLOBAL_REGEXP rule by this mention