From 3f46f5253f1a16314e3b9dc5ba824b88fbd7d840 Mon Sep 17 00:00:00 2001 From: ryaneberly Date: Sat, 1 Jul 2017 13:08:33 -0400 Subject: [PATCH] fix #326 --- src/main/java/com/cflint/BugInfo.java | 8 ++++- .../com/cflint/tests/LiteralChecker/.cflintrc | 7 ++++ .../LiteralChecker/literal_checker_326.cfm | 10 ++++++ .../literal_checker_326.expected.txt | 33 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/com/cflint/tests/LiteralChecker/.cflintrc create mode 100644 src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.cfm create mode 100644 src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.expected.txt diff --git a/src/main/java/com/cflint/BugInfo.java b/src/main/java/com/cflint/BugInfo.java index 3c7fe01e8..7485673e8 100644 --- a/src/main/java/com/cflint/BugInfo.java +++ b/src/main/java/com/cflint/BugInfo.java @@ -155,7 +155,13 @@ public BugInfo build(final CFExpression expression, final Element elem) { elemColumn = elem.getSource().getColumn(elem.getBegin()); } bugInfo.setLine(elemLine + Math.max(expression == null ? 0 : expression.getLine() - 1, 0)); - bugInfo.setColumn(elemColumn + Math.max(expression == null ? 0 : expression.getColumn() - 1, 0)); + if(expression == null || expression.getColumn() < 1){ + bugInfo.setColumn(elemColumn); + }else if (expression.getLine()>1){ + bugInfo.setColumn(expression.getColumn()); + }else{ + bugInfo.setColumn(elemColumn + expression.getColumn() - 1); + } doMessageText(elem); return bugInfo; } diff --git a/src/test/resources/com/cflint/tests/LiteralChecker/.cflintrc b/src/test/resources/com/cflint/tests/LiteralChecker/.cflintrc new file mode 100644 index 000000000..491c0d993 --- /dev/null +++ b/src/test/resources/com/cflint/tests/LiteralChecker/.cflintrc @@ -0,0 +1,7 @@ +{ + "includes" : [ + {"code" : "LOCAL_LITERAL_VALUE_USED_TOO_OFTEN"} + ,{"code" : "GLOBAL_LITERAL_VALUE_USED_TOO_OFTEN"} + ], + "inheritParent" : false +} \ No newline at end of file diff --git a/src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.cfm b/src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.cfm new file mode 100644 index 000000000..ee44a3563 --- /dev/null +++ b/src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.cfm @@ -0,0 +1,10 @@ + + + + + + + Test + \ No newline at end of file diff --git a/src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.expected.txt b/src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.expected.txt new file mode 100644 index 000000000..80f670245 --- /dev/null +++ b/src/test/resources/com/cflint/tests/LiteralChecker/literal_checker_326.expected.txt @@ -0,0 +1,33 @@ +[ { + "severity" : "WARNING", + "id" : "GLOBAL_LITERAL_VALUE_USED_TOO_OFTEN", + "message" : "GLOBAL_LITERAL_VALUE_USED_TOO_OFTEN", + "category" : "CFLINT", + "abbrev" : "GL", + "locations" : [ { + "file" : "src\\test\\resources\\com\\cflint\\tests\\LiteralChecker\\literal_checker_326.cfm", + "fileName" : "literal_checker_326.cfm", + "function" : "", + "column" : "130", + "line" : "7", + "message" : "Literal 3 occurs several times in one or more files. Consider giving it a name and not hard coding values.", + "variable" : "3", + "expression" : "3" + } ] +}, { + "severity" : "WARNING", + "id" : "GLOBAL_LITERAL_VALUE_USED_TOO_OFTEN", + "message" : "GLOBAL_LITERAL_VALUE_USED_TOO_OFTEN", + "category" : "CFLINT", + "abbrev" : "GL", + "locations" : [ { + "file" : "src\\test\\resources\\com\\cflint\\tests\\LiteralChecker\\literal_checker_326.cfm", + "fileName" : "literal_checker_326.cfm", + "function" : "", + "column" : "135", + "line" : "7", + "message" : "Literal , occurs several times in one or more files. Consider giving it a name and not hard coding values.", + "variable" : ",", + "expression" : "','" + } ] +} ] \ No newline at end of file