/
var
/
www
/
flurhymez
/
vendor
/
psy
/
psysh
/
src
/
CodeCleaner
/
/var/www/flurhymez/vendor/psy/psysh/src/CodeCleaner
mkdir
upload
Name
Size
Mode
Actions
AbstractClassPass.php
2202
0644
edit
dl
rm
AssignThisVariablePass.php
1035
0644
edit
dl
rm
CalledClassPass.php
2387
0644
edit
dl
rm
CallTimePassByReferencePass.php
1392
0644
edit
dl
rm
CodeCleanerPass.php
415
0644
edit
dl
rm
EmptyArrayDimFetchPass.php
1283
0644
edit
dl
rm
ExitPass.php
773
0644
edit
dl
rm
FinalClassPass.php
1667
0644
edit
dl
rm
FunctionContextPass.php
1340
0644
edit
dl
rm
FunctionReturnInWriteContextPass.php
2501
0644
edit
dl
rm
ImplicitReturnPass.php
4240
0644
edit
dl
rm
InstanceOfPass.php
1878
0644
edit
dl
rm
IssetPass.php
1322
0644
edit
dl
rm
LabelContextPass.php
2357
0644
edit
dl
rm
LeavePsyshAlonePass.php
913
0644
edit
dl
rm
ListPass.php
3283
0644
edit
dl
rm
LoopContextPass.php
3480
0644
edit
dl
rm
MagicConstantsPass.php
1068
0644
edit
dl
rm
NamespaceAwarePass.php
1853
0644
edit
dl
rm
NamespacePass.php
2416
0644
edit
dl
rm
NoReturnValue.php
870
0644
edit
dl
rm
PassableByReferencePass.php
4117
0644
edit
dl
rm
RequirePass.php
4565
0644
edit
dl
rm
ReturnTypePass.php
3465
0644
edit
dl
rm
StrictTypesPass.php
2706
0644
edit
dl
rm
UseStatementPass.php
4336
0644
edit
dl
rm
ValidClassNamePass.php
12433
0644
edit
dl
rm
ValidConstantPass.php
3203
0644
edit
dl
rm
ValidConstructorPass.php
3886
0644
edit
dl
rm
ValidFunctionNamePass.php
3238
0644
edit
dl
rm
Edit:
/var/www/flurhymez/vendor/psy/psysh/src/CodeCleaner/ListPass.php
(3283B)
<?php /* * This file is part of Psy Shell. * * (c) 2012-2020 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Psy\CodeCleaner; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\List_; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\Variable; use Psy\Exception\ParseErrorException; /** * Validate that the list assignment. */ class ListPass extends CodeCleanerPass { private $atLeastPhp71; public function __construct() { $this->atLeastPhp71 = \version_compare(\PHP_VERSION, '7.1', '>='); } /** * Validate use of list assignment. * * @throws ParseErrorException if the user used empty with anything but a variable * * @param Node $node */ public function enterNode(Node $node) { if (!$node instanceof Assign) { return; } if (!$node->var instanceof Array_ && !$node->var instanceof List_) { return; } if (!$this->atLeastPhp71 && $node->var instanceof Array_) { $msg = "syntax error, unexpected '='"; throw new ParseErrorException($msg, $node->expr->getLine()); } // Polyfill for PHP-Parser 2.x $items = isset($node->var->items) ? $node->var->items : $node->var->vars; if ($items === [] || $items === [null]) { throw new ParseErrorException('Cannot use empty list', $node->var->getLine()); } $itemFound = false; foreach ($items as $item) { if ($item === null) { continue; } $itemFound = true; // List_->$vars in PHP-Parser 2.x is Variable instead of ArrayItem. if (!$this->atLeastPhp71 && $item instanceof ArrayItem && $item->key !== null) { $msg = 'Syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting \',\' or \')\''; throw new ParseErrorException($msg, $item->key->getLine()); } if (!self::isValidArrayItem($item)) { $msg = 'Assignments can only happen to writable values'; throw new ParseErrorException($msg, $item->getLine()); } } if (!$itemFound) { throw new ParseErrorException('Cannot use empty list'); } } /** * Validate whether a given item in an array is valid for short assignment. * * @param Expr $item * * @return bool */ private static function isValidArrayItem(Expr $item) { $value = ($item instanceof ArrayItem) ? $item->value : $item; while ($value instanceof ArrayDimFetch || $value instanceof PropertyFetch) { $value = $value->var; } // We just kind of give up if it's a method call. We can't tell if it's // valid via static analysis. return $value instanceof Variable || $value instanceof MethodCall || $value instanceof FuncCall; } }
Save
cmd:
run