Code Duplication    Length = 5-5 lines in 3 locations

src/Psalm/Internal/Codebase/Reflection.php 2 locations

@@ 314-318 (lines=5) @@
311
312
        $storage->required_param_count = 0;
313
314
        foreach ($storage->params as $i => $param) {
315
            if (!$param->is_optional && !$param->is_variadic) {
316
                $storage->required_param_count = $i + 1;
317
            }
318
        }
319
    }
320
321
    /**
@@ 399-403 (lines=5) @@
396
397
            $storage->required_param_count = 0;
398
399
            foreach ($storage->params as $i => $param) {
400
                if (!$param->is_optional && !$param->is_variadic) {
401
                    $storage->required_param_count = $i + 1;
402
                }
403
            }
404
405
            $storage->cased_name = $reflection_function->getName();
406
        } catch (\ReflectionException $e) {

src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArrayFunctionArgumentsAnalyzer.php 1 location

@@ 626-630 (lines=5) @@
623
624
                            assert($callmap_callable->params !== null);
625
626
                            foreach ($callmap_callable->params as $i => $param) {
627
                                if (!$param->is_optional && !$param->is_variadic) {
628
                                    $required_param_count = $i + 1;
629
                                }
630
                            }
631
632
                            if ($required_param_count <= $max_closure_param_count) {
633
                                $passing_callmap_callables[] = $callmap_callable;