@@ -17,11 +17,9 @@ final class Parser
1717 /**
1818 * Parses the given raw binary message into a Message object
1919 *
20- * @param string $data
2120 * @throws InvalidArgumentException
22- * @return Message
2321 */
24- public function parseMessage ($ data )
22+ public function parseMessage (string $ data ): Message
2523 {
2624 $ message = $ this ->parse ($ data , 0 );
2725 if ($ message === null ) {
@@ -32,11 +30,9 @@ public function parseMessage($data)
3230 }
3331
3432 /**
35- * @param string $data
36- * @param int $consumed
3733 * @return ?Message
3834 */
39- private function parse ($ data , $ consumed )
35+ private function parse (string $ data , int $ consumed )
4036 {
4137 if (!isset ($ data [12 - 1 ])) {
4238 return null ;
@@ -99,11 +95,9 @@ private function parse($data, $consumed)
9995 }
10096
10197 /**
102- * @param string $data
103- * @param int $consumed
104- * @return array
98+ * @return array{Query, int}|array{null, null}
10599 */
106- private function parseQuestion ($ data , $ consumed )
100+ private function parseQuestion (string $ data , int $ consumed ): array
107101 {
108102 list ($ labels , $ consumed ) = $ this ->readLabels ($ data , $ consumed );
109103
@@ -125,11 +119,9 @@ private function parseQuestion($data, $consumed)
125119 }
126120
127121 /**
128- * @param string $data
129- * @param int $consumed
130- * @return array An array with a parsed Record on success or array with null if data is invalid/incomplete
122+ * @return array{Record, int}|array{null, null} An array with a parsed Record on success or array with null if data is invalid/incomplete
131123 */
132- private function parseRecord ($ data , $ consumed )
124+ private function parseRecord (string $ data , int $ consumed ): array
133125 {
134126 list ($ name , $ consumed ) = $ this ->readDomain ($ data , $ consumed );
135127
@@ -278,7 +270,10 @@ private function parseRecord($data, $consumed)
278270 ];
279271 }
280272
281- private function readDomain ($ data , $ consumed )
273+ /**
274+ * @return array{string, int}|array{null, null}
275+ */
276+ private function readDomain (string $ data , int $ consumed ): array
282277 {
283278 list ($ labels , $ consumed ) = $ this ->readLabels ($ data , $ consumed );
284279
@@ -302,12 +297,10 @@ function ($label) {
302297 }
303298
304299 /**
305- * @param string $data
306- * @param int $consumed
307- * @param int $compressionDepth maximum depth for compressed labels to avoid unreasonable recursion
308- * @return array
300+ * @param int $compressionDepth maximum depth for compressed labels to avoid unreasonable recursion
301+ * @return array{array<string>, int}|array{null, null}
309302 */
310- private function readLabels ($ data , $ consumed , $ compressionDepth = 127 )
303+ private function readLabels (string $ data , int $ consumed , int $ compressionDepth = 127 ): array
311304 {
312305 $ labels = [];
313306
0 commit comments