CLion 2016.3 EAP: DFA fixes, rapid filtering in git log and more

Hi,

New EAP build, 163.5219.6, is available for download.

Data Flow Analysis

Data Flow Analysis is a powerful tool that allows CLion to understand your code better and warn you about such problems as always true/false conditions, unreachable code, endless loops, infinite recursion and more. This EAP brings some fixes for DFA checks in CLion:

  • Correctly detect variable read by cin as changed (CPP-2377).
  • When variable is passed by reference to another function, it might be changed there. DFA in CLion was not able to correctly identify this possibility and thus was providing false positives (CPP-7638, CPP-7659). The problem is fixed now. Note, there are several cases that are still under development, find them in our tracker.
  • We’ve also disabled equality checks in DFA for float/double values to avoid false positives.

__builtin_unreachable, that is used to indicate that a specific point in the program cannot be reached, caused incorrect warnings in CLion, like for example false “Control reaches end of non-void function” in this case:
builtin_unreachable
Starting from this EAP CLion supports it in a correct way, so no false warnings are shown.

Project Model

If you have lots of files generated automatically (typical use case is autogenerated automoc files), previously you could be annoyed by CLion adding them automatically to the project files. It’s not the case since this build.

To provide our users with better experience when working in a team, we’ve reworked the way CLion stores information in .iml files, that are special module files created by CLion. Please, make sure you’ve updated your stable CLion version to 2016.1.4 or 2016.2.2, which contains forward-compatibility fixes, so that you are able to open your projects in CLion 2016.3 EAP and current stable CLion versions at once.

Finally, there is also a fix for case-only target rename in CMake (CPP-883).

VCS improvements

With this build the performance of text, author and path filters in Git log increased dramatically! What happens there now is an index that is built for all commits on first-time project opening and later updated on a log refresh. This allows the IDE to speed up significantly when filtering:
git_log_filter

Another small but important feature introduced in this build is an ability to add remote repositories to local Git repository (IDEA-87099).

User Interface

In case you are on mac and already got a fresh macOS Sierra, you’ll be glad to learn that this build includes a fix for an extremely sensitive scrolling with a trackpad.

Full release notes are available by the link as usual.

Download the build or get a patch update in case you are using previous CLion EAP, build 163.4830.5.


Download CLion 2016.3 EAP

Your CLion Team

JetBrains
The Drive to Develop

This entry was posted in Early Access Preview and tagged , , . Bookmark the permalink.

9 Responses to CLion 2016.3 EAP: DFA fixes, rapid filtering in git log and more

  1. Olof says:

    Feature suggestion. Whenever you introduce a new setting for a major version, highlight it in some way. And/Or allow you to either enter “new” or “2016.3” to see which options are new.

    I think that would encourage users to take advantage of new features, which I think would be a good thing for CLion.

  2. Olof says:

    Yeah, I meant like when you open the settings.

    Not sure how it could be implemented such that it wouldn’t confuse new users.

  3. Mikhail says:

    Somehow git internal ssh client stopped working with this update.
    20:12:26.887: [FOOBAR] git -c core.quotepath=false fetch origin –progress –prune
    java.io.IOException: There was a problem while connecting to FOOBAR:7999
    at com.trilead.ssh2.Connection.connect(Connection.java:791)
    at com.trilead.ssh2.Connection.connect(Connection.java:577)
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171)
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
    Caused by: java.io.IOException: Malformed server identification string. There was no line starting with ‘SSH-‘ amongst the first 50 lines.
    at com.trilead.ssh2.transport.ClientServerHello.(ClientServerHello.java:77)
    at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.java:456)
    at com.trilead.ssh2.Connection.connect(Connection.java:731)
    … 3 more
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights
    and the repository exists.

    After I switched to Native SSH it worked fine.

Leave a Reply

Your email address will not be published. Required fields are marked *