/var/www/vhosts/ihelp.ro/httpdocs/vendor/psy/psysh/src/CodeCleaner
NameSizeModeActions
AbstractClassPass.php23670644editdlrm
AssignThisVariablePass.php11140644editdlrm
CalledClassPass.php27360644editdlrm
CallTimePassByReferencePass.php16070644editdlrm
CodeCleanerPass.php4150644editdlrm
EmptyArrayDimFetchPass.php20250644editdlrm
ExitPass.php8590644editdlrm
FinalClassPass.php17810644editdlrm
FunctionContextPass.php15630644editdlrm
FunctionReturnInWriteContextPass.php27350644editdlrm
ImplicitReturnPass.php42370644editdlrm
InstanceOfPass.php19570644editdlrm
IssetPass.php14010644editdlrm
LabelContextPass.php26380644editdlrm
LeavePsyshAlonePass.php9920644editdlrm
ListPass.php33410644editdlrm
LoopContextPass.php36940644editdlrm
MagicConstantsPass.php10680644editdlrm
NamespaceAwarePass.php19600644editdlrm
NamespacePass.php24850644editdlrm
NoReturnValue.php8280644editdlrm
PassableByReferencePass.php42020644editdlrm
RequirePass.php46650644editdlrm
ReturnTypePass.php38080644editdlrm
StrictTypesPass.php27340644editdlrm
UseStatementPass.php45130644editdlrm
ValidClassNamePass.php100900644editdlrm
ValidConstructorPass.php40230644editdlrm
ValidFunctionNamePass.php24190644editdlrm
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php (4237B)
addImplicitReturn($nodes); } /** * @param array $nodes * * @return array */ private function addImplicitReturn(array $nodes): array { // If nodes is empty, it can't have a return value. if (empty($nodes)) { return [new Return_(NoReturnValue::create())]; } $last = \end($nodes); // Special case a few types of statements to add an implicit return // value (even though they technically don't have any return value) // because showing a return value in these instances is useful and not // very surprising. if ($last instanceof If_) { $last->stmts = $this->addImplicitReturn($last->stmts); foreach ($last->elseifs as $elseif) { $elseif->stmts = $this->addImplicitReturn($elseif->stmts); } if ($last->else) { $last->else->stmts = $this->addImplicitReturn($last->else->stmts); } } elseif ($last instanceof Switch_) { foreach ($last->cases as $case) { // only add an implicit return to cases which end in break $caseLast = \end($case->stmts); if ($caseLast instanceof Break_) { $case->stmts = $this->addImplicitReturn(\array_slice($case->stmts, 0, -1)); $case->stmts[] = $caseLast; } } } elseif ($last instanceof Expr && !($last instanceof Exit_)) { // @codeCoverageIgnoreStart $nodes[\count($nodes) - 1] = new Return_($last, [ 'startLine' => $last->getLine(), 'endLine' => $last->getLine(), ]); // @codeCoverageIgnoreEnd } elseif ($last instanceof Expression && !($last->expr instanceof Exit_)) { // For PHP Parser 4.x $nodes[\count($nodes) - 1] = new Return_($last->expr, [ 'startLine' => $last->getLine(), 'endLine' => $last->getLine(), ]); } elseif ($last instanceof Namespace_) { $last->stmts = $this->addImplicitReturn($last->stmts); } // Return a "no return value" for all non-expression statements, so that // PsySH can suppress the `null` that `eval()` returns otherwise. // // Note that statements special cased above (if/elseif/else, switch) // _might_ implicitly return a value before this catch-all return is // reached. // // We're not adding a fallback return after namespace statements, // because code outside namespace statements doesn't really work, and // there's already an implicit return in the namespace statement anyway. if (self::isNonExpressionStmt($last)) { $nodes[] = new Return_(NoReturnValue::create()); } return $nodes; } /** * Check whether a given node is a non-expression statement. * * As of PHP Parser 4.x, Expressions are now instances of Stmt as well, so * we'll exclude them here. * * @param Node $node */ private static function isNonExpressionStmt(Node $node): bool { return $node instanceof Stmt && !$node instanceof Expression && !$node instanceof Return_ && !$node instanceof Namespace_; } }