TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
839 B
27 lines
839 B
<?php
|
|
/**
|
|
* This file is part of Swoole-Compiler(AOT).
|
|
*
|
|
* @link https://www.swoole.com/
|
|
* @contact service@swoole.com
|
|
*/
|
|
|
|
namespace PhpAot\Php;
|
|
|
|
use PhpParser\NodeAbstract;
|
|
|
|
trait MagicMethodDetector
|
|
{
|
|
public function checkRequiredArgNum(string $name, MethodDef $methodDef, NodeAbstract $v): void
|
|
{
|
|
if ($name == '__call' or $name == '__callStatic' or $name == '__set') {
|
|
if (count($methodDef->functionDef->argInfoList) != 2) {
|
|
$this->fatalError($v, 'Method ' . $this->class . "::{$name}() must take exactly 2 arguments");
|
|
}
|
|
} elseif ($name == '__get') {
|
|
if (count($methodDef->functionDef->argInfoList) != 1) {
|
|
$this->fatalError($v, 'Method ' . $this->class . "::{$name}() must take exactly 1 argument");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|