Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php declare(strict_types=1); namespace Psalm\Plugin; use PhpParser; use Psalm\Context..

Decoded Output download

<?php

declare(strict_types=1);

namespace Psalm\Plugin;

use PhpParser;
use Psalm\Context;
use Psalm\Internal\Analyzer\Statements\ExpressionAnalyzer;
use Psalm\Internal\Analyzer\StatementsAnalyzer;
use Psalm\Type;
use Psalm\Type\Union;

final class ArgTypeInferer
{
    private Context $context;
    private StatementsAnalyzer $statements_analyzer;

    /**
     * @internal
     */
    public function __construct(Context $context, StatementsAnalyzer $statements_analyzer)
    {
        $this->context = $context;
        $this->statements_analyzer = $statements_analyzer;
    }

    /**
     * @return false|Union
     */
    public function infer(PhpParser\Node\Arg $arg)
    {
        $already_inferred_type = $this->statements_analyzer->node_data->getType($arg->value);

        if ($already_inferred_type) {
            return $already_inferred_type;
        }

        if (ExpressionAnalyzer::analyze($this->statements_analyzer, $arg->value, $this->context) === false) {
            return false;
        }

        return $this->statements_analyzer->node_data->getType($arg->value) ?? Type::getMixed();
    }
}
 ?>

Did this file decode correctly?

Original Code

<?php

declare(strict_types=1);

namespace Psalm\Plugin;

use PhpParser;
use Psalm\Context;
use Psalm\Internal\Analyzer\Statements\ExpressionAnalyzer;
use Psalm\Internal\Analyzer\StatementsAnalyzer;
use Psalm\Type;
use Psalm\Type\Union;

final class ArgTypeInferer
{
    private Context $context;
    private StatementsAnalyzer $statements_analyzer;

    /**
     * @internal
     */
    public function __construct(Context $context, StatementsAnalyzer $statements_analyzer)
    {
        $this->context = $context;
        $this->statements_analyzer = $statements_analyzer;
    }

    /**
     * @return false|Union
     */
    public function infer(PhpParser\Node\Arg $arg)
    {
        $already_inferred_type = $this->statements_analyzer->node_data->getType($arg->value);

        if ($already_inferred_type) {
            return $already_inferred_type;
        }

        if (ExpressionAnalyzer::analyze($this->statements_analyzer, $arg->value, $this->context) === false) {
            return false;
        }

        return $this->statements_analyzer->node_data->getType($arg->value) ?? Type::getMixed();
    }
}

Function Calls

None

Variables

None

Stats

MD5 19d9fc9cf0b98a74c677a77fe35e8b71
Eval Count 0
Decode Time 132 ms