public function visitExtensionType(ExtensionType $type)
    {
        $this->typeCheck->visitExtensionType(func_get_args());

        $extension = $this->extensionLoader->load($type->className()->string());
        $closure = $extension->generateTypeCheck($this, $type);

        $call = new Call($closure);
        $call->add($this->valueExpression());

        return $call;
    }
public function visitExtensionType(ExtensionType $type)
    {
        $this->typeCheck->visitExtensionType(func_get_args());

        $extension = $this->extensionLoader->load($type->className()->string());
        $closure = $extension->generateTypeCheck($this, $type);

        $call = new Call($closure);
        $call->add($this->valueExpression());

        return $call;
    }
@param ExtensionType $type

@return Call