Page MenuHomePhabricator

D13991.id33811.diff
No OneTemporary

D13991.id33811.diff

diff --git a/src/lint/linter/ArcanistPyLintLinter.php b/src/lint/linter/ArcanistPyLintLinter.php
--- a/src/lint/linter/ArcanistPyLintLinter.php
+++ b/src/lint/linter/ArcanistPyLintLinter.php
@@ -130,10 +130,15 @@
continue;
}
+ // NOTE: PyLint sometimes returns -1 as the character offset for a
+ // message. If it does, treat it as 0. See T9257.
+ $char = (int)$matches[1];
+ $char = max(0, $char);
+
$message = id(new ArcanistLintMessage())
->setPath($path)
->setLine($matches[0])
- ->setChar($matches[1])
+ ->setChar($char)
->setCode($matches[2])
->setSeverity($this->getLintMessageSeverity($matches[2]))
->setName(ucwords(str_replace('-', ' ', $matches[3])))
diff --git a/src/lint/linter/__tests__/pylint/negativechar.lint-test b/src/lint/linter/__tests__/pylint/negativechar.lint-test
new file mode 100644
--- /dev/null
+++ b/src/lint/linter/__tests__/pylint/negativechar.lint-test
@@ -0,0 +1,6 @@
+"""Docstring"""
+
+"""
+Useless string """
+~~~~~~~~~~
+warning:4:0 See T9257.

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 4:17 PM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7715681
Default Alt Text
D13991.id33811.diff (1 KB)

Event Timeline