Phan\Analysis\DuplicateFunctionAnalyzer::analyzeDuplicateFunction PHP Метод

analyzeDuplicateFunction() публичный статический Метод

Check to see if the given Clazz is a duplicate
public static analyzeDuplicateFunction ( CodeBase $code_base, Phan\Language\Element\FunctionInterface $method ) : null
$code_base Phan\CodeBase
$method Phan\Language\Element\FunctionInterface
Результат null
    public static function analyzeDuplicateFunction(CodeBase $code_base, FunctionInterface $method)
    {
        $fqsen = $method->getFQSEN();
        if (!$fqsen->isAlternate()) {
            return;
        }
        $original_fqsen = $fqsen->getCanonicalFQSEN();
        if ($original_fqsen instanceof FullyQualifiedFunctionName) {
            if (!$code_base->hasFunctionWithFQSEN($original_fqsen)) {
                return;
            }
            $original_method = $code_base->getFunctionByFQSEN($original_fqsen);
        } else {
            if (!$code_base->hasMethodWithFQSEN($original_fqsen)) {
                return;
            }
            $original_method = $code_base->getMethodByFQSEN($original_fqsen);
        }
        $method_name = $method->getName();
        if (!$method->hasSuppressIssue(Issue::RedefineFunction)) {
            if ($original_method->isInternal()) {
                Issue::maybeEmit($code_base, $method->getContext(), Issue::RedefineFunctionInternal, $method->getFileRef()->getLineNumberStart(), $method_name, $method->getFileRef()->getFile(), $method->getFileRef()->getLineNumberStart());
            } else {
                Issue::maybeEmit($code_base, $method->getContext(), Issue::RedefineFunction, $method->getFileRef()->getLineNumberStart(), $method_name, $method->getFileRef()->getFile(), $method->getFileRef()->getLineNumberStart(), $original_method->getFileRef()->getFile(), $original_method->getFileRef()->getLineNumberStart());
            }
        }
    }

Usage Example

Пример #1
0
 /**
  * Take a pass over all functions verifying various
  * states.
  *
  * @return null
  */
 public static function analyzeFunctions(CodeBase $code_base)
 {
     $function_count = count($code_base->getFunctionAndMethodSet());
     $i = 0;
     foreach ($code_base->getFunctionAndMethodSet() as $function_or_method) {
         CLI::progress('method', ++$i / $function_count);
         if ($function_or_method->isInternal()) {
             continue;
         }
         DuplicateFunctionAnalyzer::analyzeDuplicateFunction($code_base, $function_or_method);
         ParameterTypesAnalyzer::analyzeParameterTypes($code_base, $function_or_method);
     }
 }
All Usage Examples Of Phan\Analysis\DuplicateFunctionAnalyzer::analyzeDuplicateFunction
DuplicateFunctionAnalyzer