@@ -54,6 +54,34 @@ public function __construct(
54
54
bool $ isFinal
55
55
)
56
56
{
57
+ $ name = strtolower ($ classMethod ->name ->name );
58
+ if (
59
+ $ name === '__construct '
60
+ || $ name === '__destruct '
61
+ || $ name === '__unset '
62
+ || $ name === '__wakeup '
63
+ || $ name === '__clone '
64
+ ) {
65
+ $ realReturnTypePresent = true ;
66
+ $ realReturnType = new VoidType ();
67
+ }
68
+ if ($ name === '__tostring ' ) {
69
+ $ realReturnTypePresent = true ;
70
+ $ realReturnType = new StringType ();
71
+ }
72
+ if ($ name === '__isset ' ) {
73
+ $ realReturnTypePresent = true ;
74
+ $ realReturnType = new BooleanType ();
75
+ }
76
+ if ($ name === '__sleep ' ) {
77
+ $ realReturnTypePresent = true ;
78
+ $ realReturnType = new ArrayType (new IntegerType (), new StringType ());
79
+ }
80
+ if ($ name === '__set_state ' ) {
81
+ $ realReturnTypePresent = true ;
82
+ $ realReturnType = new ObjectWithoutClassType ();
83
+ }
84
+
57
85
parent ::__construct (
58
86
$ classMethod ,
59
87
$ templateTypeMap ,
@@ -108,34 +136,6 @@ public function isPublic(): bool
108
136
return $ this ->getClassMethod ()->isPublic ();
109
137
}
110
138
111
- protected function getReturnType (): Type
112
- {
113
- $ name = strtolower ($ this ->getName ());
114
- if (
115
- $ name === '__construct '
116
- || $ name === '__destruct '
117
- || $ name === '__unset '
118
- || $ name === '__wakeup '
119
- || $ name === '__clone '
120
- ) {
121
- return new VoidType ();
122
- }
123
- if ($ name === '__tostring ' ) {
124
- return new StringType ();
125
- }
126
- if ($ name === '__isset ' ) {
127
- return new BooleanType ();
128
- }
129
- if ($ name === '__sleep ' ) {
130
- return new ArrayType (new IntegerType (), new StringType ());
131
- }
132
- if ($ name === '__set_state ' ) {
133
- return new ObjectWithoutClassType ();
134
- }
135
-
136
- return parent ::getReturnType ();
137
- }
138
-
139
139
public function getDocComment (): ?string
140
140
{
141
141
return null ;
0 commit comments