From ad5772759334171b53f521642feae4941317aa28 Mon Sep 17 00:00:00 2001 From: Barney Laurance Date: Fri, 2 Dec 2022 00:27:51 +0000 Subject: [PATCH] Sort issue by position in codebase in ByIssueLevelAndTypeReport if level & type equal PHP sorting only became stable in 8.0. For previous versions we would still like duplicate issues to be sorted into a logical order. --- src/Psalm/Report/ByIssueLevelAndTypeReport.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Psalm/Report/ByIssueLevelAndTypeReport.php b/src/Psalm/Report/ByIssueLevelAndTypeReport.php index 90fc5b08d74..6863d487fe2 100644 --- a/src/Psalm/Report/ByIssueLevelAndTypeReport.php +++ b/src/Psalm/Report/ByIssueLevelAndTypeReport.php @@ -180,8 +180,8 @@ private function sortIssuesByLevelAndType(): void { usort($this->issues_data, function (IssueData $left, IssueData $right): int { // negative error levels go to the top, followed by large positive levels, with level 1 at the bottom. - return [$left->error_level > 0, -$left->error_level, $left->type] <=> - [$right->error_level > 0, -$right->error_level, $right->type]; + return [$left->error_level > 0, -$left->error_level, $left->type, $left->file_path, $left->file_name, $left->line_from] <=> + [$right->error_level > 0, -$right->error_level, $right->type, $right->file_path, $right->file_name, $right->line_from]; }); } }