@@ -147,20 +147,30 @@ private function isShapeUsedInput(StructureShape $shape): bool
147147 private function namedConstructor (StructureShape $ shape , ClassBuilder $ classBuilder ): void
148148 {
149149 if (empty ($ shape ->getMembers ())) {
150- $ classBuilder ->addMethod ('create ' )
150+ $ createMethod = $ classBuilder ->addMethod ('create ' )
151151 ->setStatic (true )
152152 ->setReturnType ('self ' )
153- ->setBody ('return $input instanceof self ? $input : new self(); ' )
154- ->addParameter ('input ' );
153+ ->setBody ('return $input instanceof self ? $input : new self(); ' );
154+ $ createMethod ->addParameter ('input ' );
155+ [$ doc , $ memberClassNames ] = $ this ->typeGenerator ->generateDocblock ($ shape , $ this ->generated [$ shape ->getName ()], true , false , true );
156+ $ createMethod ->addComment ($ doc );
157+ foreach ($ memberClassNames as $ memberClassName ) {
158+ $ classBuilder ->addUse ($ memberClassName ->getFqdn ());
159+ }
155160
156161 return ;
157162 }
158163
159- $ classBuilder ->addMethod ('create ' )
164+ $ createMethod = $ classBuilder ->addMethod ('create ' )
160165 ->setStatic (true )
161166 ->setReturnType ('self ' )
162- ->setBody ('return $input instanceof self ? $input : new self($input); ' )
163- ->addParameter ('input ' );
167+ ->setBody ('return $input instanceof self ? $input : new self($input); ' );
168+ $ createMethod ->addParameter ('input ' );
169+ [$ doc , $ memberClassNames ] = $ this ->typeGenerator ->generateDocblock ($ shape , $ this ->generated [$ shape ->getName ()], true , false , true );
170+ $ createMethod ->addComment ($ doc );
171+ foreach ($ memberClassNames as $ memberClassName ) {
172+ $ classBuilder ->addUse ($ memberClassName ->getFqdn ());
173+ }
164174
165175 // We need a constructor
166176 $ constructor = $ classBuilder ->addMethod ('__construct ' );
0 commit comments