@@ -29,6 +29,8 @@ public function enterNode(Node $node): void
2929 {
3030 $ this ->handleClassNode ($ node );
3131
32+ $ this ->handleAnonClassNode ($ node );
33+
3234 $ this ->handleEnumNode ($ node );
3335
3436 $ this ->handleStaticClassConstantNode ($ node );
@@ -95,7 +97,11 @@ private function handleClassNode(Node $node): void
9597 return ;
9698 }
9799
98- if (!$ node ->isAnonymous () && null !== $ node ->namespacedName ) {
100+ if ($ node ->isAnonymous ()) {
101+ return ;
102+ }
103+
104+ if (null !== $ node ->namespacedName ) {
99105 $ this ->classDescriptionBuilder ->setClassName ($ node ->namespacedName ->toCodeString ());
100106 }
101107
@@ -104,21 +110,36 @@ private function handleClassNode(Node $node): void
104110 ->addInterface ($ interface ->toString (), $ interface ->getLine ());
105111 }
106112
107- if (! $ node -> isAnonymous () && null !== $ node ->extends ) {
113+ if (null !== $ node ->extends ) {
108114 $ this ->classDescriptionBuilder
109115 ->addExtends ($ node ->extends ->toString (), $ node ->getLine ());
110116 }
111117
112- if (!$ node ->isAnonymous ()) {
113- $ this ->classDescriptionBuilder ->setFinal ($ node ->isFinal ());
118+ $ this ->classDescriptionBuilder ->setFinal ($ node ->isFinal ());
119+
120+ $ this ->classDescriptionBuilder ->setReadonly ($ node ->isReadonly ());
121+
122+ $ this ->classDescriptionBuilder ->setAbstract ($ node ->isAbstract ());
123+ }
124+
125+ private function handleAnonClassNode (Node $ node ): void
126+ {
127+ if (!($ node instanceof Node \Stmt \Class_)) {
128+ return ;
114129 }
115130
116131 if (!$ node ->isAnonymous ()) {
117- $ this -> classDescriptionBuilder -> setReadonly ( $ node -> isReadonly ()) ;
132+ return ;
118133 }
119134
120- if (!$ node ->isAnonymous ()) {
121- $ this ->classDescriptionBuilder ->setAbstract ($ node ->isAbstract ());
135+ foreach ($ node ->implements as $ interface ) {
136+ $ this ->classDescriptionBuilder
137+ ->addDependency (new ClassDependency ($ interface ->toString (), $ interface ->getLine ()));
138+ }
139+
140+ if (null !== $ node ->extends ) {
141+ $ this ->classDescriptionBuilder
142+ ->addDependency (new ClassDependency ($ node ->extends ->toString (), $ node ->getLine ()));
122143 }
123144 }
124145
0 commit comments