From e1746d5c9cc991cbcd59efb2ed5154508516fc06 Mon Sep 17 00:00:00 2001 From: Hug0-Drelon Date: Tue, 3 Feb 2026 13:36:49 +0100 Subject: [PATCH 1/2] Use given trinary value directly for raw attribute guessed type. --- src/GuessTypeFromSwitcherAttributes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GuessTypeFromSwitcherAttributes.php b/src/GuessTypeFromSwitcherAttributes.php index b9be5f0..25411ba 100644 --- a/src/GuessTypeFromSwitcherAttributes.php +++ b/src/GuessTypeFromSwitcherAttributes.php @@ -38,7 +38,7 @@ private function guessType(Arg $args, Scope $scope) : Type foreach($types as $type) { $rawKey = new ConstantStringType('raw'); if ($type->hasOffsetValueType($rawKey)->yes()) { - $isRaw = $type->getOffsetValueType($rawKey)->toBoolean()->isTrue() ? TrinaryLogic::createYes() : TrinaryLogic::createNo(); + $isRaw = $type->getOffsetValueType($rawKey)->toBoolean()->isTrue(); } } } From 69a96fd6a9ba53557a144f20312b82a65fbdd104 Mon Sep 17 00:00:00 2001 From: Hug0-Drelon Date: Tue, 3 Feb 2026 13:36:58 +0100 Subject: [PATCH 2/2] Better tests. --- tests/data/pll_the_languages.php | 6 +++++- tests/data/the_languages.php | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/tests/data/pll_the_languages.php b/tests/data/pll_the_languages.php index c729197..1876615 100644 --- a/tests/data/pll_the_languages.php +++ b/tests/data/pll_the_languages.php @@ -40,8 +40,12 @@ // With unknown variable merged. $args = array_merge( [ 'raw' => 1 ], $options ); -assertType('array', pll_the_languages($args)); +assertType('array|string', pll_the_languages($args)); // With raw attribute set to true outside. $array['raw'] = 1; assertType('array', pll_the_languages($array)); + +// With raw attribute set to false outside. +$array['raw'] = false; +assertType('string', pll_the_languages($array)); diff --git a/tests/data/the_languages.php b/tests/data/the_languages.php index 244a8cf..5fde6af 100644 --- a/tests/data/the_languages.php +++ b/tests/data/the_languages.php @@ -41,10 +41,26 @@ // Unknown attributes. assertType('array|string', $switcher->the_languages($link, $array)); -// With unknown variable merged. +// With raw attribute set to true and merged into an array. $args = array_merge( $array, [ 'raw' => 1 ] ); assertType('array', $switcher->the_languages($link, $args)); +// With raw attribute set to true and merged with an array. +$args = array_merge( [ 'raw' => true ], $array ); +assertType('array|string', $switcher->the_languages($link, $args)); + // With raw attribute set to true outside. $array['raw'] = 1; assertType('array', $switcher->the_languages($link, $array)); + +// With raw attribute set to false outside. +$array['raw'] = false; +assertType('string', $switcher->the_languages($link, $array)); + +// With raw attribute set to false and merged in an array. +$args = array_merge( $array, [ 'raw' => false ] ); +assertType('string', $switcher->the_languages($link, $array)); + +// With raw attribute set to false and merged with an array. +$args = array_merge( [ 'raw' => false ], $array ); +assertType('string', $switcher->the_languages($link, $array));