June 2020 (version 1.38.0)
1.38.0 Update
Welcome to the new DeepScan updates! We hope that you are doing well in the current public health crisis.
Please kindly go ahead with the highlights for the latest release.
New Rules
Check out the newly introduced rules!
- ITERATE_NON_ITERABLE - Do not use a non-iterable value where iterables are needed
- REACT_BAD_CONTEXT_CONSUMER_CHILD - Do not use an improper child node of a React context consumer
- REACT_INVALID_DOM_NESTING - Check for an React DOM element which is improperly nested
Analysis Improvements
- Detect BAD_REMOVE_EVENT_LISTENER alarm when the undefined return value of
addEventListener()
is used to remove the listener - Provide a fix suggestion for UNUSED_VAR_ASSIGN alarms caused by possibly swapped assignments
- Recognize the
props
argument of ReactsetState()
and Reduxconnect()
callbacks
Deliberate Alarm Filtering
By our internal benchmarks with open source projects, we have deliberately filtered some alarms.
- Filter-out AWAIT_NON_PROMISE alarms on constant expressions at test code because it is often intended
- Filter-out CONSTANT_CONDITION alarms on the compatibility checks for
Symbol()
- Filter-out NO_EFFECT_CALL alarms on
JSON.stringify()
at test code because a cyclic object check could be intended
Miscellaneous
- Always analyze the result of dynamic import operator as a
Promise
object - Do not detect BAD_CONDITIONAL_OPERATOR alarm when the condition is a binary operation with a numeric or string right operand
- Do not detect UNDEFINED_IMPORT alarm for built-in
Object
prototype methods - Increase the impact of CONSTANT_CONDITION alarm when the condition evaluates to a boolean-valued function because it is likely that a function call is missing
- Increase the impact of UNUSED_EXPR alarm on the relation operators like
<
- Recognize UNUSED_EXPR alarms on compound expressions as ESLint
no-unused-expressions
Bug Fixes
- A false alarm for CONSTANT_CONDITION may occur when object properties are updated at callee functions
- A false alarm for REACT_BAD_EVENT_HANDLER_RETURN_FALSE may occur when the handler function is used for other purposes
- A false alarm for VUE_MISMATCHED_TYPE_OF_OPTION may occur for the
mixins
property when thevue-class-component
decorator is used - Analyzer may abnormally terminate when a destructuring argument is annotated as
void
type - Analyzer may abnormally terminate when a directory named
...
exists - Analyzer may abnormally terminate when a regular expression ends with an incomplete named backreference
- REFERENCE_BEFORE_LEXICAL_DECL alarms are not detected for variables declared inside a loop