44
55namespace Smeghead \PhpClassDiagram \Php ;
66
7+ use PhpParser \Node ;
78use PhpParser \Node \Name \FullyQualified ;
89use PhpParser \Node \Stmt \{
910 Namespace_ ,
2122
2223final class PhpClass
2324{
24- /** @var string[] directory parts */
25+ /** @var list< string> directory parts */
2526 private array $ dirs ;
2627 private ClassLike $ syntax ;
27- /** @var \PhpParser\ Node[] */
28+ /** @var list< Node> */
2829 private array $ full ;
2930
3031 /**
31- * @param \PhpParser\ Node[] $full
32+ * @param list< Node> $full
3233 */
3334 public function __construct (string $ filename , ClassLike $ syntax , array $ full )
3435 {
3536 $ relativePath = dirname ($ filename );
3637 if ($ relativePath === '. ' ) {
3738 $ dirs = [];
3839 } else {
39- $ dirs = preg_split ('/[ \\\\\/]/ ' , $ relativePath );
40+ /** @var list<string> $dirs */
41+ $ dirs = (array )preg_split ('/[ \\\\\/]/ ' , $ relativePath );
4042 }
4143 $ this ->dirs = $ dirs ;
4244 $ this ->syntax = $ syntax ;
@@ -124,7 +126,7 @@ public function getUses(): array
124126 }
125127
126128 /**
127- * @param \PhpParser\ Node[] $stmts Stmts
129+ * @param list< Node> $stmts Stmts
128130 * @param PhpType[] $uses
129131 * @return PhpType[]
130132 */
@@ -180,7 +182,7 @@ public function getExtends(): array
180182 $ extends [] = new PhpType (
181183 array_slice ($ extend ->parts , 0 , count ($ extend ->parts ) - 1 ),
182184 '' ,
183- end ($ extend ->parts )
185+ ( string ) end ($ extend ->parts )
184186 );
185187 }
186188 }
@@ -191,7 +193,7 @@ public function getExtends(): array
191193 $ extends [] = new PhpType (
192194 array_slice ($ implement ->parts , 0 , count ($ implement ->parts ) - 1 ),
193195 '' ,
194- end ($ implement ->parts )
196+ ( string ) end ($ implement ->parts )
195197 );
196198 }
197199 }
@@ -218,16 +220,21 @@ public function getEnumCases(): array
218220
219221 public function getDescription (): string
220222 {
221- $ doc = new PhpDocComment ($ this ->syntax );
222- return $ doc ->getDescription ();
223+ return ( new PhpDocComment ($ this ->syntax ))
224+ ->getDescription ();
223225 }
224226
225227 /**
226- * @return PhpType[] using types.
228+ * @return list< PhpType>
227229 */
228230 public function getUsingTypes (): array
229231 {
230232 $ finder = new FindUsePhpTypes ($ this ->syntax );
231- return array_map (fn (FullyQualified $ x ) => new PhpType (array_slice ($ x ->parts , 0 , count ($ x ->parts ) - 1 ), '' , end ($ x ->parts )), $ finder ->collectTypes ());
233+ return array_map (
234+ fn (FullyQualified $ x ) => new PhpType (
235+ array_slice ($ x ->parts , 0 , count ($ x ->parts ) - 1 ), '' , (string )end ($ x ->parts )
236+ ),
237+ $ finder ->collectTypes ()
238+ );
232239 }
233240}
0 commit comments