September 2019 (version 1.29.0)

1.29.0 Update


Welcome to the new DeepScan updates!

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:

Analysis Improvements

  • Support analyzing "multiple return values" through array or object literal
  • Improve the analysis precision of object literals containing spread operators
  • Better treatment of async function return value. This enables finding more CONSTANT_CONDITION alarms related to missing await as follows:
    async getValueByName(envVarName, appId) {
        console.log(`The App ${ appId } is getting the environmental variable value ${ envVarName }.`);
        // CONSTANT_CONDITION alarm is detected because 'await' is missing at 'this.isReadable()' function call
        if (this.isReadable(envVarName, appId)) {
            return process.env[envVarName];
        throw new Error(`The environmental variable "${ envVarName }" is not readable.`);
    async isReadable(envVarName, appId) {
        console.log(`The App ${ appId } is checking if the environmental variable is readable ${ envVarName }.`);
        return this.allowed.includes(envVarName.toUpperCase());

Improved Rules

Instead of linking at the page level for the issues, now we provide a URL link to an individual issue.

In the Issues view, you can navigate to the view of a single issue by clicking the icon.

Issue Link

Using this URL, you can link to our specific issue directly such as from your email or JIRA ticket!

Issue Link: Copy the URL

ESLint Integration

Like also the July release, now we support the merge options of DeepScan and ESLint issues for the Enterprise tools.

So you can merge identical issues according to your preferences (preferring either DeepScan, ESLint, or both) in the following tools:

Merge option for IntelliJ


  • Forbid transitions from the GitHub Marketplace's plan to DeepScan's one

Bug Fixes

  • Skipping CONSTANT_CONDITION alarms on defensive type checks is not working when the condition is negated like !Array.isArray()