File Manager Lite
Dir:
/home/u540325668/domains/mkjsindia.org/public_html/vendor/psy/psysh/src/CodeCleaner
Upload
[..]
AbstractClassPass.php (2.14 KB)
Edit
Rename
Del
CallTimePassByReferencePass.php (1.36 KB)
Edit
Rename
Del
CodeCleanerPass.php (415 B)
Edit
Rename
Del
ExitPass.php (748 B)
Edit
Rename
Del
FinalClassPass.php (1.62 KB)
Edit
Rename
Del
FunctionContextPass.php (1.31 KB)
Edit
Rename
Del
FunctionReturnInWriteContextPass.php (2.97 KB)
Edit
Rename
Del
ImplicitReturnPass.php (4.14 KB)
Edit
Rename
Del
InstanceOfPass.php (1.3 KB)
Edit
Rename
Del
LeavePsyshAlonePass.php (913 B)
Edit
Rename
Del
LegacyEmptyPass.php (1.68 KB)
Edit
Rename
Del
ListPass.php (3.21 KB)
Edit
Rename
Del
LoopContextPass.php (3.39 KB)
Edit
Rename
Del
MagicConstantsPass.php (1.04 KB)
Edit
Rename
Del
NamespaceAwarePass.php (1.81 KB)
Edit
Rename
Del
NamespacePass.php (2.36 KB)
Edit
Rename
Del
NoReturnValue.php (889 B)
Edit
Rename
Del
PassableByReferencePass.php (3.76 KB)
Edit
Rename
Del
RequirePass.php (3 KB)
Edit
Rename
Del
StrictTypesPass.php (2.65 KB)
Edit
Rename
Del
UseStatementPass.php (4.08 KB)
Edit
Rename
Del
ValidClassNamePass.php (12.08 KB)
Edit
Rename
Del
ValidConstantPass.php (3.13 KB)
Edit
Rename
Del
ValidConstructorPass.php (3.79 KB)
Edit
Rename
Del
ValidFunctionNamePass.php (3.16 KB)
Edit
Rename
Del
Edit: AbstractClassPass.php
<?php /* * This file is part of Psy Shell. * * (c) 2012-2018 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\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use Psy\Exception\FatalErrorException; /** * The abstract class pass handles abstract classes and methods, complaining if there are too few or too many of either. */ class AbstractClassPass extends CodeCleanerPass { private $class; private $abstractMethods; /** * @throws RuntimeException if the node is an abstract function with a body * * @param Node $node */ public function enterNode(Node $node) { if ($node instanceof Class_) { $this->class = $node; $this->abstractMethods = []; } elseif ($node instanceof ClassMethod) { if ($node->isAbstract()) { $name = \sprintf('%s::%s', $this->class->name, $node->name); $this->abstractMethods[] = $name; if ($node->stmts !== null) { $msg = \sprintf('Abstract function %s cannot contain body', $name); throw new FatalErrorException($msg, 0, E_ERROR, null, $node->getLine()); } } } } /** * @throws RuntimeException if the node is a non-abstract class with abstract methods * * @param Node $node */ public function leaveNode(Node $node) { if ($node instanceof Class_) { $count = \count($this->abstractMethods); if ($count > 0 && !$node->isAbstract()) { $msg = \sprintf( 'Class %s contains %d abstract method%s must therefore be declared abstract or implement the remaining methods (%s)', $node->name, $count, ($count === 1) ? '' : 's', \implode(', ', $this->abstractMethods) ); throw new FatalErrorException($msg, 0, E_ERROR, null, $node->getLine()); } } } }
Simpan