From d2b5d9108b358a84a46fb4dcdd08e076e3c90e7c Mon Sep 17 00:00:00 2001 From: epriestley Date: Sun, 13 Feb 2011 16:43:32 -0800 Subject: [PATCH] Provide coverage for the xhpast $a->b->c parsing bug exposed by tautolinting the codebase. Summary: Test Plan: Reviewers: CC: --- src/lint/linter/license/ArcanistLicenseLinter.php | 2 +- src/lint/linter/xhpast/ArcanistXHPASTLinter.php | 2 ++ .../xhpast/__tests__/data/tautological-expressions.lint-test | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lint/linter/license/ArcanistLicenseLinter.php b/src/lint/linter/license/ArcanistLicenseLinter.php index 15303c55..35ea12ca 100644 --- a/src/lint/linter/license/ArcanistLicenseLinter.php +++ b/src/lint/linter/license/ArcanistLicenseLinter.php @@ -62,7 +62,7 @@ abstract class ArcanistLicenseLinter extends ArcanistLinter { foreach ($patterns as $pattern) { if (preg_match($pattern, $data, $matches)) { $expect = rtrim(implode('', array_slice($matches, 1)))."\n".$license; - if (rtrim($matches[0]) != rtrim($expect)) { + if (trim($matches[0]) != trim($expect)) { $this->raiseLintAtOffset( 0, self::LINT_NO_LICENSE_HEADER, diff --git a/src/lint/linter/xhpast/ArcanistXHPASTLinter.php b/src/lint/linter/xhpast/ArcanistXHPASTLinter.php index e9351731..fe23fffa 100644 --- a/src/lint/linter/xhpast/ArcanistXHPASTLinter.php +++ b/src/lint/linter/xhpast/ArcanistXHPASTLinter.php @@ -153,6 +153,8 @@ class ArcanistXHPASTLinter extends ArcanistLinter { '<' => true, '==' => true, '===' => true, + '!=' => true, + '!==' => true, '>=' => true, '>' => true, ); diff --git a/src/lint/linter/xhpast/__tests__/data/tautological-expressions.lint-test b/src/lint/linter/xhpast/__tests__/data/tautological-expressions.lint-test index 74ea7bcd..4f8c3db2 100644 --- a/src/lint/linter/xhpast/__tests__/data/tautological-expressions.lint-test +++ b/src/lint/linter/xhpast/__tests__/data/tautological-expressions.lint-test @@ -12,6 +12,9 @@ if ($y[2] - $y[2]) { if ($x == $y) { } +// See xhpast 0.54 -> 0.55. +return $a->sub->value < $b->sub->value; + ~~~~~~~~~~ error:3:5 error:6:5