diff --git a/src/GuessTypeFromSwitcherAttributes.php b/src/GuessTypeFromSwitcherAttributes.php index 1375d9e..b9be5f0 100644 --- a/src/GuessTypeFromSwitcherAttributes.php +++ b/src/GuessTypeFromSwitcherAttributes.php @@ -34,9 +34,11 @@ private function guessType(Arg $args, Scope $scope) : Type if ($argsType instanceof IntersectionType && $argsType->isIterable()) { // Let's look into each types to see if it contains 'raw' key. - foreach($argsType->getTypes() as $type) { - if ($type->hasOffsetValueType(new ConstantStringType('raw'))->yes()) { - $isRaw = $type->getOffsetValueType(new ConstantStringType('raw'))->getValue() ? TrinaryLogic::createYes() : TrinaryLogic::createNo(); + $types = $argsType->getTypes(); + foreach($types as $type) { + $rawKey = new ConstantStringType('raw'); + if ($type->hasOffsetValueType($rawKey)->yes()) { + $isRaw = $type->getOffsetValueType($rawKey)->toBoolean()->isTrue() ? TrinaryLogic::createYes() : TrinaryLogic::createNo(); } } } diff --git a/tests/data/get_languages_list.php b/tests/data/get_languages_list.php index 112454b..a7afe50 100644 --- a/tests/data/get_languages_list.php +++ b/tests/data/get_languages_list.php @@ -30,7 +30,7 @@ assertType('array', $model->get_languages_list($array)); // With array_merge() result passed as parameter. -assertType('array', $model->get_languages_list(array_merge($array, ['fields' => 'slug']))); +assertType('array', $model->get_languages_list(array_merge($array, ['fields' => 'slug']))); // With 'fields' key set on top of variable containing unknown data. $array['fields'] = 'slug'; diff --git a/tests/data/pll_the_languages.php b/tests/data/pll_the_languages.php index b3bc3aa..c729197 100644 --- a/tests/data/pll_the_languages.php +++ b/tests/data/pll_the_languages.php @@ -40,7 +40,7 @@ // With unknown variable merged. $args = array_merge( [ 'raw' => 1 ], $options ); -assertType('array|string', pll_the_languages($args)); +assertType('array', pll_the_languages($args)); // With raw attribute set to true outside. $array['raw'] = 1; diff --git a/tests/data/the_languages.php b/tests/data/the_languages.php index b5ab698..244a8cf 100644 --- a/tests/data/the_languages.php +++ b/tests/data/the_languages.php @@ -43,7 +43,7 @@ // With unknown variable merged. $args = array_merge( $array, [ 'raw' => 1 ] ); -assertType('array|string', $switcher->the_languages($link, $args)); +assertType('array', $switcher->the_languages($link, $args)); // With raw attribute set to true outside. $array['raw'] = 1;