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(); } } } 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));