From 8623c27498b696e5acfff0ec7d20f03b29035c76 Mon Sep 17 00:00:00 2001 From: sinkuu Date: Wed, 9 Jul 2014 18:27:19 +0900 Subject: [PATCH] Fix BackwardsRangeCheck fails on noninteger slice --- analysis/range.d | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/analysis/range.d b/analysis/range.d index 3f37fae..0722329 100644 --- a/analysis/range.d +++ b/analysis/range.d @@ -74,18 +74,23 @@ class BackwardsRangeCheck : BaseAnalyzer override void visit(const PrimaryExpression primary) { + import std.conv; + if (state == State.ignore || !isNumberLiteral(primary.primary.type)) return; if (state == State.left) { line = primary.primary.line; this.column = primary.primary.column; - left = parseNumber(primary.primary.text); + + try left = parseNumber(primary.primary.text); + catch (ConvException e) return; hasLeft = true; } else { - right = parseNumber(primary.primary.text); + try right = parseNumber(primary.primary.text); + catch (ConvException e) return; hasRight = true; } }