Skip to content

Commit 350687d

Browse files
committed
Handle different line endings from baseline.
1 parent ef9a06c commit 350687d

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

src/Psalm/ErrorBaseline.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public static function read(FileProvider $fileProvider, string $baselineFile): a
118118

119119
foreach ($codeSamples as $codeSample) {
120120
$files[$fileName][$issueType]['o'] += 1;
121-
$files[$fileName][$issueType]['s'][] = trim($codeSample->textContent);
121+
$files[$fileName][$issueType]['s'][] = str_replace("\r\n", "\n", trim($codeSample->textContent));
122122
}
123123

124124
// TODO: Remove in Psalm 6

src/Psalm/Internal/LanguageServer/LanguageServer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,7 @@ function (IssueData $issue_data): Diagnostic {
782782
if ($issue_baseline[$file][$type]['o'] === count($issue_baseline[$file][$type]['s'])) {
783783
/** @psalm-suppress MixedArrayAccess, MixedAssignment */
784784
$position = array_search(
785-
trim($issue_data->selected_text),
785+
str_replace("\r\n", "\n", trim($issue_data->selected_text)),
786786
$issue_baseline[$file][$type]['s'],
787787
true,
788788
);

src/Psalm/IssueBuffer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ public static function finish(
592592
if (isset($issue_baseline[$file][$type]) && $issue_baseline[$file][$type]['o'] > 0) {
593593
if ($issue_baseline[$file][$type]['o'] === count($issue_baseline[$file][$type]['s'])) {
594594
$position = array_search(
595-
trim($issue_data->selected_text),
595+
str_replace("\r\n", "\n", trim($issue_data->selected_text)),
596596
$issue_baseline[$file][$type]['s'],
597597
true,
598598
);

tests/IssueBufferTest.php

+20
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,31 @@ public function testFinishDoesNotCorruptInternalState(): void
7979
0,
8080
),
8181
],
82+
'/path/four.php' => [
83+
new IssueData(
84+
"error",
85+
0,
86+
0,
87+
"MissingPropertyType",
88+
'Message',
89+
"four.php",
90+
"/path/four.php",
91+
"snippet-4-multiline\r\nwith-carriage-return\r",
92+
"snippet-4-multiline\r\nwith-carriage-return\r",
93+
0,
94+
0,
95+
0,
96+
0,
97+
0,
98+
0,
99+
),
100+
],
82101
]);
83102
$baseline = [
84103
'one.php' => ['MissingPropertyType' => ['o' => 1, 's' => ['snippet-1']] ],
85104
'two.php' => ['MissingPropertyType' => ['o' => 1, 's' => ['snippet-2']] ],
86105
'three.php' => ['MissingPropertyType' => ['o' => 1, 's' => ['snippet-3-has-carriage-return']] ],
106+
'four.php' => ['MissingPropertyType' => ['o' => 1, 's' => ["snippet-4-multiline\nwith-carriage-return"]] ],
87107
];
88108

89109
$analyzer = $this->createMock(Analyzer::class);

0 commit comments

Comments
 (0)