Skip to content

Commit df58224

Browse files
bug #61201 [Console] Fix JSON description for negatable input flags (nicolas-grekas)
This PR was merged into the 6.4 branch. Discussion ---------- [Console] Fix JSON description for negatable input flags | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | - | License | MIT Related to #44176 Commits ------- 68eafca [Console] Fix JSON description for negatable input flags
2 parents 4af9890 + 68eafca commit df58224

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

src/Symfony/Component/Console/Descriptor/JsonDescriptor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ private function getInputOptionData(InputOption $option, bool $negated = false):
108108
'is_value_required' => false,
109109
'is_multiple' => false,
110110
'description' => 'Negate the "--'.$option->getName().'" option',
111-
'default' => false,
111+
'default' => null === $option->getDefault() ? null : !$option->getDefault(),
112112
] : [
113113
'name' => '--'.$option->getName(),
114114
'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '',

src/Symfony/Component/Console/Tests/Descriptor/JsonDescriptorTest.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,9 @@ private function normalizeOutputRecursively($output)
3636
return array_map($this->normalizeOutputRecursively(...), $output);
3737
}
3838

39-
if (null === $output) {
40-
return null;
41-
}
42-
43-
return parent::normalizeOutput($output);
39+
return match ($output) {
40+
null, true, false => $output,
41+
default => parent::normalizeOutput($output),
42+
};
4443
}
4544
}

src/Symfony/Component/Console/Tests/Fixtures/application_2.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
"is_value_required": false,
8686
"is_multiple": false,
8787
"description": "Do not ask any interactive question",
88-
"default": false
88+
"default": null
8989
},
9090
"shell": {
9191
"name": "--shell",
@@ -206,7 +206,7 @@
206206
"is_value_required": false,
207207
"is_multiple": false,
208208
"description": "Do not ask any interactive question",
209-
"default": false
209+
"default": null
210210
},
211211
"debug": {
212212
"name": "--debug",
@@ -318,7 +318,7 @@
318318
"is_value_required": false,
319319
"is_multiple": false,
320320
"description": "Do not ask any interactive question",
321-
"default": false
321+
"default": null
322322
}
323323
}
324324
}
@@ -421,7 +421,7 @@
421421
"is_value_required": false,
422422
"is_multiple": false,
423423
"description": "Do not ask any interactive question",
424-
"default": false
424+
"default": null
425425
},
426426
"short": {
427427
"name": "--short",
@@ -509,7 +509,7 @@
509509
"is_value_required": false,
510510
"is_multiple": false,
511511
"description": "Do not ask any interactive question",
512-
"default": false
512+
"default": null
513513
}
514514
}
515515
}
@@ -605,7 +605,7 @@
605605
"is_value_required": false,
606606
"is_multiple": false,
607607
"description": "Do not ask any interactive question",
608-
"default": false
608+
"default": null
609609
}
610610
}
611611
}
@@ -682,7 +682,7 @@
682682
"is_value_required": false,
683683
"is_multiple": false,
684684
"description": "Do not ask any interactive question",
685-
"default": false
685+
"default": null
686686
}
687687
}
688688
}
@@ -761,7 +761,7 @@
761761
"is_value_required": false,
762762
"is_multiple": false,
763763
"description": "Do not ask any interactive question",
764-
"default": false
764+
"default": null
765765
}
766766
}
767767
}

0 commit comments

Comments
 (0)