From 68eafcac06a7350bf9434e6aac70e2ccd8b2854e Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 22 Jul 2025 14:33:39 +0200 Subject: [PATCH] [Console] Fix JSON description for negatable input flags --- .../Console/Descriptor/JsonDescriptor.php | 2 +- .../Tests/Descriptor/JsonDescriptorTest.php | 9 ++++----- .../Console/Tests/Fixtures/application_2.json | 16 ++++++++-------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php b/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php index 956303709645f..9a8e696cd4135 100644 --- a/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php +++ b/src/Symfony/Component/Console/Descriptor/JsonDescriptor.php @@ -108,7 +108,7 @@ private function getInputOptionData(InputOption $option, bool $negated = false): 'is_value_required' => false, 'is_multiple' => false, 'description' => 'Negate the "--'.$option->getName().'" option', - 'default' => false, + 'default' => null === $option->getDefault() ? null : !$option->getDefault(), ] : [ 'name' => '--'.$option->getName(), 'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '', diff --git a/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php b/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php index 399bd8f2368db..914ed35970c7c 100644 --- a/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php +++ b/src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php @@ -36,10 +36,9 @@ private function normalizeOutputRecursively($output) return array_map($this->normalizeOutputRecursively(...), $output); } - if (null === $output) { - return null; - } - - return parent::normalizeOutput($output); + return match ($output) { + null, true, false => $output, + default => parent::normalizeOutput($output), + }; } } diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_2.json b/src/Symfony/Component/Console/Tests/Fixtures/application_2.json index b3eb10bda3d63..33a90e356ad46 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_2.json +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_2.json @@ -85,7 +85,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null }, "shell": { "name": "--shell", @@ -206,7 +206,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null }, "debug": { "name": "--debug", @@ -318,7 +318,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null } } } @@ -421,7 +421,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null }, "short": { "name": "--short", @@ -509,7 +509,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null } } } @@ -605,7 +605,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null } } } @@ -682,7 +682,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null } } } @@ -761,7 +761,7 @@ "is_value_required": false, "is_multiple": false, "description": "Do not ask any interactive question", - "default": false + "default": null } } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy