We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 2e5bfcf commit 5dea1ccCopy full SHA for 5dea1cc
tests/PHPStan/Analyser/nsrt/array-replace.php
@@ -69,6 +69,22 @@ public function arrayReplaceUnionTypeArrayShapes($array1, $array2): void
69
assertType("array<int, array{bar: '2'}|array{bar: '3'}|array{foo: '1'}|array{foo: '2'}>", array_replace($array2, $array1));
70
}
71
72
+ /**
73
+ * @param array{foo: '1', bar: '2'} $array1
74
+ * @param array<string, int> $array2
75
+ * @param array<int, string> $array3
76
+ */
77
+ public function arrayReplaceArrayShapeAndGeneralArray($array1, $array2, $array3): void
78
+ {
79
+ assertType("array<string, int>", array_replace($array1, $array2));
80
+ assertType("array<string, int>", array_replace($array2, $array1));
81
+
82
+ assertType("array<int|string, int|string>", array_replace($array1, $array3));
83
+ assertType("array<int|string, int|string>", array_replace($array3, $array1));
84
85
+ assertType("array<int|string, int|string>", array_replace($array2, $array3));
86
+ }
87
88
/**
89
* @param array{0: 1, 1: 2} $array1
90
* @param array{1: 3, 2: 4} $array2
0 commit comments