EA-89119 (assert: BaseInspectionVisitor.registerErrorAtOffset)
authorBas Leijdekkers <basleijdekkers@gmail.com>
Wed, 28 Sep 2016 18:13:19 +0000 (20:13 +0200)
committerBas Leijdekkers <basleijdekkers@gmail.com>
Wed, 28 Sep 2016 18:14:34 +0000 (20:14 +0200)
plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/SuspiciousLiteralUnderscoreInspection.java
plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/suspicious_literal_underscore/SuspiciousLiteralUnderscore.java

index ce00828c0a627f2fbb92cff45f805e54a7da0cd0..28f390c8e8ead680d5177baac0f4c56af285ff13 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -95,6 +95,10 @@ public class SuspiciousLiteralUnderscoreInspection extends BaseInspection {
           return;
         }
       }
+      if (digit == 0) {
+        // literal ends with underscore (which does not compile)
+        return;
+      }
       if (dot ? digit > 3 : digit != 3) {
         registerErrorAtOffset(expression, length - digit, digit);
       }
index 55201d2a1b98a6ca348ddc5ffafb2b6d551842d9..757da7defc5031de94593c71a435e0eb2be23755 100644 (file)
@@ -8,6 +8,7 @@ class SuspiciousLiteralUnderscore {{
   int i = 1_000_<warning descr="Group in number literal with underscores does not have length 3">00</warning>;
   int j = 1_000_<warning descr="Group in number literal with underscores does not have length 3">0000</warning>;
   long k = 1_000_000L;
+  int l = <error descr="Illegal underscore">100_</error>;
   double g = 12_<warning descr="Group in number literal with underscores does not have length 3">34</warning>d;
   double h = 1.123_<warning descr="Group in number literal with underscores does not have length 3">4567</warning>e3;