Skip to content

Huge performance improvements for taint analysis #806

Huge performance improvements for taint analysis

Huge performance improvements for taint analysis #806

Triggered via pull request February 26, 2025 20:35
Status Failure
Total duration 3m 47s
Artifacts

macos-scan.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

10 errors
LessSpecificImplementedReturnType: examples/plugins/TaintActiveRecords.php#L30
examples/plugins/TaintActiveRecords.php:30:16: LessSpecificImplementedReturnType: The inherited return type 'int<0, max>' for Psalm\Plugin\EventHandler\AddTaintsInterface::addTaints is more specific than the implemented return type for Psalm\Example\Plugin\TaintActiveRecords::addtaints 'int' (see https://psalm.dev/166)
PropertyTypeCoercion: src/Psalm/Internal/Analyzer/CommentAnalyzer.php#L246
src/Psalm/Internal/Analyzer/CommentAnalyzer.php:246:17: PropertyTypeCoercion: $var_comment->removed_taints expects 'int<0, max>', parent type 'int' provided (see https://psalm.dev/198)
PropertyTypeCoercion: src/Psalm/Internal/Analyzer/Statements/Expression/ArrayAnalyzer.php#L489
src/Psalm/Internal/Analyzer/Statements/Expression/ArrayAnalyzer.php:489:49: PropertyTypeCoercion: $taint_source->taints expects 'int<0, max>', parent type 'int' provided (see https://psalm.dev/198)
PropertyTypeCoercion: src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/InstancePropertyAssignmentAnalyzer.php#L512
src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/InstancePropertyAssignmentAnalyzer.php:512:45: PropertyTypeCoercion: $taint_source->taints expects 'int<0, max>', parent type 'int' provided (see https://psalm.dev/198)
PropertyTypeCoercion: src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/InstancePropertyAssignmentAnalyzer.php#L614
src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/InstancePropertyAssignmentAnalyzer.php:614:37: PropertyTypeCoercion: $taint_source->taints expects 'int<0, max>', parent type 'int' provided (see https://psalm.dev/198)
ArgumentTypeCoercion: src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php#L454
src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php:454:13: ArgumentTypeCoercion: Argument 11 of Psalm\Internal\Analyzer\Statements\Expression\AssignmentAnalyzer::analyzeAssignment expects int<0, max>, but parent type int-mask-of<class-constant(Psalm\Type\TaintKind::*)> provided (see https://psalm.dev/193)
ArgumentTypeCoercion: src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php#L505
src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php:505:17: ArgumentTypeCoercion: Argument 8 of Psalm\Internal\Analyzer\Statements\Expression\AssignmentAnalyzer::analyzeAssignValueDataFlow expects int<0, max>, but parent type int-mask-of<class-constant(Psalm\Type\TaintKind::*)> provided (see https://psalm.dev/193)
ReferenceConstraintViolation: src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php#L615
src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php:615:14: ReferenceConstraintViolation: Variable $removed_taints is limited to values of type int-mask-of<class-constant(Psalm\Type\TaintKind::*)> because it is passed by reference, int<0, max> type found. Use @param-out to specify a different output type (see https://psalm.dev/086)
ReferenceConstraintViolation: src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php#L618
src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php:618:13: ReferenceConstraintViolation: Variable $removed_taints is limited to values of type int-mask-of<class-constant(Psalm\Type\TaintKind::*)> because it is passed by reference, int<0, max> type found. Use @param-out to specify a different output type (see https://psalm.dev/086)
ReferenceConstraintViolation: src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php#L647
src/Psalm/Internal/Analyzer/Statements/Expression/AssignmentAnalyzer.php:647:13: ReferenceConstraintViolation: Variable $removed_taints is limited to values of type int-mask-of<class-constant(Psalm\Type\TaintKind::*)> because it is passed by reference, int<0, max> type found. Use @param-out to specify a different output type (see https://psalm.dev/086)