* * @internal * * TODO symfony/console:6.1 drop when PHP 8.1 / symfony 6.1+ can be required */ class InputArgument extends BaseInputArgument { /** @var list|\Closure(CompletionInput,CompletionSuggestions):list */ private $suggestedValues; /** * @param string $name The argument name * @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL * @param string $description A description text * @param string|bool|int|float|string[]|null $default The default value (for self::OPTIONAL mode only) * @param list|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @throws InvalidArgumentException When argument mode is not valid */ public function __construct( string $name, ?int $mode = null, string $description = '', $default = null, $suggestedValues = [], ) { parent::__construct($name, $mode, $description, $default); $this->suggestedValues = $suggestedValues; } /** * Adds suggestions to $suggestions for the current completion input. * * @see Command::complete() */ public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void { $values = $this->suggestedValues; if ($values instanceof \Closure && !\is_array($values = $values($input, $suggestions))) { // @phpstan-ignore function.impossibleType throw new LogicException(sprintf('Closure for option "%s" must return an array. Got "%s".', $this->getName(), get_debug_type($values))); } if ([] !== $values) { $suggestions->suggestValues($values); } } }__halt_compiler();----SIGNATURE:----AG+ZCAMyG5BNJjLkKkl7cOGzA1IKFa9A1ce0cVMZRzJ3vg0XttNO9ag9OQCkfkhOQxysbsGTYQiMUrBvzYIu8r5CrMGVuYIo2Lx3s/SzXsMxu/Ws0LLGI95XPFIRE0L7Ev0tmJ2gL8D5QKKqM4HKzcxeOUmzSNclXoIQM39Y0zu08OvuBqSXVixcdYVc0GLPIzdZUGRLykG4D1AGcgASIiV0ohqfS9jmIuiRiq9f0tB+eEFJPiChsSbEMdOSlAcSpYYs2AHYXvEv1r9egi574YS3I7gWgyU52WVUYF7qaJ5PF5zTNS2k3CKjggmVoHqOFrhoCXWLsMe5YmOU53nGVaCzFlpidkv3+PdKne20HssciJa46VObPmGPsKSDKR+0fUj29gCdkrwqqw+7XHnd7Blr+WqBEv9a36+ZS/jFdUqFH7jGw6OGIV6amiblehP1xbE3YcwG2q5FIcE0dU+FYlI88SwIk3wLPE7uPfUxgRNiSCwSVZb0w5gJ8MircoXdH9vYw8w8vZOK2mHkVo9N4kFOIl++ZFaFaF8p5BYBOmAf2aHLPKeNwy1Bx7QJOFB/56FOpd5lE4LJxZ70dQCVM8tMxVNL4BAN6Nh/AmvRuGmeodPuAOS0LAuKtWohtzXxxlAThIS5KRJrjaXuc7Jzn/igTHZl84dEaJDsQDifX78=----ATTACHMENT:----NzI5OTUzNDY1OTI1OTI5MiA5MzE5NTA0NDU5MzM2NDAyIDQ2MTIzOTYwOTQ4MDMxMw==