From e8ad93aea6f76881d2dd321cfcd76b7b0240db53 Mon Sep 17 00:00:00 2001 From: Rick Giles Date: Fri, 30 May 2003 10:37:35 +0000 Subject: [PATCH] corrected false MagicNumberCheck errors for interfaces (bug 745941) MagicNumberCheck now checks array initializers. (request 745949) --- docs/releasenotes.html | 7 +++++++ .../tools/checkstyle/checks/MagicNumberCheck.java | 11 ++++++++++- .../tools/checkstyle/InputMagicNumber.java | 13 +++++++++++++ .../checkstyle/checks/MagicNumberCheckTest.java | 3 +++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/releasenotes.html b/docs/releasenotes.html index 5559936f2..e126d022f 100644 --- a/docs/releasenotes.html +++ b/docs/releasenotes.html @@ -61,6 +61,10 @@
  • Added check for trailing comma in array initialization. (module ArrayTrailingComma, request 696301)
  • + +
  • MagicNumberCheck now checks array initializers. (request + 745949)
  • +

    @@ -75,6 +79,9 @@

  • Typo in HideUtilityClassConstructor description (bug 743973)
  • +
  • False MagicNumberCheck errors for interfaces (bug + 745941)
  • + diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheck.java index daa6f2672..3ac6b6fbb 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheck.java @@ -20,6 +20,7 @@ package com.puppycrawl.tools.checkstyle.checks; import com.puppycrawl.tools.checkstyle.api.Check; import com.puppycrawl.tools.checkstyle.api.DetailAST; +import com.puppycrawl.tools.checkstyle.api.ScopeUtils; import com.puppycrawl.tools.checkstyle.api.TokenTypes; import java.util.Arrays; @@ -141,6 +142,9 @@ public class MagicNumberCheck extends Check */ private boolean isConstantDefinition(DetailAST aAST) { + if (ScopeUtils.inInterfaceBlock(aAST)) { + return true; + } DetailAST parent = aAST.getParent(); //expression? @@ -148,8 +152,13 @@ public class MagicNumberCheck extends Check return false; } - //assignment? + //array init? parent = parent.getParent(); + if ((parent != null) && (parent.getType() == TokenTypes.ARRAY_INIT)) { + parent = parent.getParent(); + } + + //assignment? if ((parent == null) || (parent.getType() != TokenTypes.ASSIGN)) { return false; } diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/InputMagicNumber.java b/src/testinputs/com/puppycrawl/tools/checkstyle/InputMagicNumber.java index 0ce64834f..3e20b6896 100644 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/InputMagicNumber.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/InputMagicNumber.java @@ -72,3 +72,16 @@ public class InputMagicNumber { long longHexVar17 = 0X11l; } } + +interface Blah +{ + int LOW = 5; + int HIGH = 78; +} + +class ArrayMagicTest +{ + private static final int[] NONMAGIC = {3}; + private int[] magic = {3}; +} + diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheckTest.java index 01f952c57..8c3f39ab7 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheckTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/MagicNumberCheckTest.java @@ -32,6 +32,7 @@ public class MagicNumberCheckTest "69:24: '0X011' is a magic number.", "71:29: '0x10L' is a magic number.", "72:29: '0X11l' is a magic number.", + "85:28: '3' is a magic number.", }; verify(checkConfig, getPath("InputMagicNumber.java"), expected); } @@ -110,6 +111,7 @@ public class MagicNumberCheckTest "70:28: '0x0L' is a magic number.", "71:29: '0x10L' is a magic number.", "72:29: '0X11l' is a magic number.", + "85:28: '3' is a magic number.", }; verify(checkConfig, getPath("InputMagicNumber.java"), expected); } @@ -139,6 +141,7 @@ public class MagicNumberCheckTest "69:24: '0X011' is a magic number.", "71:29: '0x10L' is a magic number.", "72:29: '0X11l' is a magic number.", + "85:28: '3' is a magic number.", }; verify(checkConfig, getPath("InputMagicNumber.java"), expected); }