\[~ann.campbell.2]I understand the 1st phrase as "Everything goes fine if you multiply /divide int and assign them to float/long" whereas you explain afterward that there are issues.
The 2nd phrase of the 1st § should be : You can assign this result to a long, double or float with automatic type conversion however if the result of int division is...
Just to be sure [~ann.campbell.2] and [~nicolas.peru], Findbugs rule ICAST_INT_2_LONG_AS_INSTANT, also checks method calls. Ex:
----
new Date(seconds * 1000) //non compliant if seconds is an int value (because the Date constructor accepts a long value and so we might get an unexpected behavior
Right now, the way it is worded, this rule doesn't address long integers. Assigning a ``++long++`` expression to a ``++float++`` or ``++double++`` has pretty much the same issues as ``++int++``.
Current implementation of Java scanner doesn't flag something like:
We greatly appreciate such feedback, but this isn't the proper venue. Please raise this on the https://groups.google.com/forum/?pli=1#!forum/sonarqube[SonarQube Google Group], which is monitored by the plugin developers. And when you do, make sure to mention which language you're talking about.