File tree Expand file tree Collapse file tree 2 files changed +21
-17
lines changed
src/Psalm/Internal/Codebase Expand file tree Collapse file tree 2 files changed +21
-17
lines changed Original file line number Diff line number Diff line change 11<?xml version =" 1.0" encoding =" UTF-8" ?>
2- <files psalm-version =" 6.x-dev@2b0ff73c8bed091af231a0a80ac109126c92083a " >
2+ <files psalm-version =" 6.x-dev@bbd217fc98c0daa0a13aea2a7f119d03ba3fc9a0 " >
33 <file src =" examples/TemplateChecker.php" >
44 <PossiblyUndefinedIntArrayOffset >
55 <code ><![CDATA[ $comment_block->tags['variablesfrom'][0]]]> </code >
16121612 <code ><![CDATA[ $path->escaped_taints]]> </code >
16131613 <code ><![CDATA[ $path->unescaped_taints]]> </code >
16141614 <code ><![CDATA[ $source->specialization_key]]> </code >
1615- <code ><![CDATA[ end($source-> path_types)]]> </code >
1615+ <code ><![CDATA[ end($path_types)]]> </code >
16161616 </RiskyTruthyFalsyComparison >
1617+ <UnnecessaryVarAnnotation >
1618+ <code ><![CDATA[ DataFlowNode]]> </code >
1619+ </UnnecessaryVarAnnotation >
16171620 </file >
16181621 <file src =" src/Psalm/Internal/Composer.php" >
16191622 <RiskyTruthyFalsyComparison >
Original file line number Diff line number Diff line change 3838use function array_intersect ;
3939use function array_merge ;
4040use function array_unique ;
41+ use function array_unshift ;
4142use function count ;
4243use function end ;
4344use function implode ;
@@ -183,23 +184,23 @@ public function getSuccessorPath(DataFlowNode $sink): string
183184 */
184185 public function getIssueTrace (DataFlowNode $ source ): array
185186 {
186- $ previous_source = $ source ->previous ;
187-
188- $ node = [
189- 'location ' => $ source ->code_location ,
190- 'label ' => $ source ->label ,
191- 'entry_path_type ' => end ($ source ->path_types ) ?: '' ,
192- ];
193-
194- if ($ previous_source ) {
187+ $ out = [];
188+ do {
189+ /** @var DataFlowNode $source */
190+ $ previous_source = $ source ->previous ;
195191 if ($ previous_source === $ source ) {
196- return [] ;
192+ break ;
197193 }
198-
199- return [...$ this ->getIssueTrace ($ previous_source ), $ node ];
200- }
201-
202- return [$ node ];
194+ $ path_types = $ source ->path_types ;
195+ array_unshift ($ out , [
196+ 'location ' => $ source ->code_location ,
197+ 'label ' => $ source ->label ,
198+ 'entry_path_type ' => end ($ path_types ) ?: '' ,
199+ ]);
200+ $ source = $ previous_source ;
201+ } while ($ previous_source );
202+
203+ return $ out ;
203204 }
204205
205206 public function connectSinksAndSources (): void
You can’t perform that action at this time.
0 commit comments