Skip to content

Commit edb55af

Browse files
authored
Fix: Incorrect return type for InputBag::all()
1 parent c21cb2f commit edb55af

File tree

2 files changed

+4
-11
lines changed

2 files changed

+4
-11
lines changed

src/Type/Symfony/InputBagDynamicReturnTypeExtension.php

+2-9
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,11 @@ private function getAllTypeFromMethodCall(
7070
MethodCall $methodCall
7171
): Type
7272
{
73-
$types = [
74-
new BooleanType(),
75-
new FloatType(),
76-
new IntegerType(),
77-
new StringType(),
78-
];
79-
$oneParameterType = new UnionType($types);
8073
if (isset($methodCall->getArgs()[0])) {
81-
return new ArrayType(new MixedType(), $oneParameterType);
74+
return new ArrayType(new MixedType(), new MixedType(true));
8275
}
8376

84-
return new ArrayType(new StringType(), new UnionType([new ArrayType(new MixedType(), $oneParameterType), new BooleanType(), new FloatType(), new IntegerType(), new StringType()]));
77+
return new ArrayType(new StringType(), new UnionType([new ArrayType(new MixedType(), new MixedType(true)), new BooleanType(), new FloatType(), new IntegerType(), new StringType()]));
8578
}
8679

8780
}

tests/Type/Symfony/data/input_bag.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
assertType('bool|float|int|string|null', $bag->get('foo', null));
99
assertType('bool|float|int|string', $bag->get('foo', ''));
1010
assertType('bool|float|int|string', $bag->get('foo', 'baz'));
11-
assertType('array<string, array<bool|float|int|string>|bool|float|int|string>', $bag->all());
12-
assertType('array<bool|float|int|string>', $bag->all('bar'));
11+
assertType('array<string, array|bool|float|int|string>', $bag->all());
12+
assertType('array', $bag->all('bar'));

0 commit comments

Comments
 (0)