Skip to content

Commit a44080a

Browse files
authored
Fix prefixing of function return typehints (#163)
Return typehints are now properly resolved and prefixed when necessary.
1 parent f944445 commit a44080a

File tree

5 files changed

+369
-41
lines changed

5 files changed

+369
-41
lines changed

specs/func-declaration/global.php

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,36 @@ class Y {}
112112
use ArrayIterator;
113113
114114
function foo(
115-
Foo $arg0,
116-
\Foo $arg1,
117-
Foo\Bar $arg2,
118-
\Foo\Bar $arg3,
119-
ArrayIterator $arg4,
120-
\ArrayIterator $arg5,
121-
X\Y $arg6,
122-
\X\Y $arg7
115+
string $arg0,
116+
?string $arg1,
117+
?string $arg2 = null,
118+
119+
Foo $arg3,
120+
?Foo $arg4,
121+
Foo $arg5 = null,
122+
123+
\Foo $arg6,
124+
?\Foo $arg7,
125+
\Foo $arg8 = null,
126+
127+
Foo\Bar $arg9,
128+
?Foo\Bar $arg10,
129+
Foo\Bar $arg11 = null,
130+
131+
\Foo\Bar $arg7,
132+
?\Foo\Bar $arg12,
133+
\Foo\Bar $arg13 = null,
134+
135+
ArrayIterator $arg14,
136+
?ArrayIterator $arg15,
137+
?ArrayIterator $arg16 = null,
138+
139+
\ArrayIterator $arg17,
140+
?\ArrayIterator $arg18,
141+
\ArrayIterator $arg19 = null,
142+
143+
X\Y $arg20,
144+
\X\Y $arg21
123145
) {}
124146
}
125147
@@ -146,7 +168,7 @@ class_alias('Humbug\\X\\Y', 'X\\Y', \false);
146168
147169
use Humbug\Foo;
148170
use ArrayIterator;
149-
function foo(\Humbug\Foo $arg0, \Humbug\Foo $arg1, \Humbug\Foo\Bar $arg2, \Humbug\Foo\Bar $arg3, \ArrayIterator $arg4, \ArrayIterator $arg5, \Humbug\X\Y $arg6, \Humbug\X\Y $arg7)
171+
function foo(string $arg0, ?string $arg1, ?string $arg2 = null, \Humbug\Foo $arg3, ?\Humbug\Foo $arg4, \Humbug\Foo $arg5 = null, \Humbug\Foo $arg6, ?\Humbug\Foo $arg7, \Humbug\Foo $arg8 = null, \Humbug\Foo\Bar $arg9, ?\Humbug\Foo\Bar $arg10, \Humbug\Foo\Bar $arg11 = null, \Humbug\Foo\Bar $arg7, ?\Humbug\Foo\Bar $arg12, \Humbug\Foo\Bar $arg13 = null, \ArrayIterator $arg14, ?\ArrayIterator $arg15, ?\ArrayIterator $arg16 = null, \ArrayIterator $arg17, ?\ArrayIterator $arg18, \ArrayIterator $arg19 = null, \Humbug\X\Y $arg20, \Humbug\X\Y $arg21)
150172
{
151173
}
152174

@@ -182,7 +204,6 @@ class Y {}
182204
use ArrayIterator;
183205
184206
function foo(): void {}
185-
function foo(): null {}
186207
187208
function foo(): bool {}
188209
function foo(): ?bool {}
@@ -246,9 +267,6 @@ class_alias('Humbug\\X\\Y', 'X\\Y', \false);
246267
function foo() : void
247268
{
248269
}
249-
function foo() : null
250-
{
251-
}
252270
function foo() : bool
253271
{
254272
}
@@ -291,40 +309,40 @@ function foo() : callable
291309
function foo() : ?callable
292310
{
293311
}
294-
function foo() : Foo
312+
function foo() : \Humbug\Foo
295313
{
296314
}
297-
function foo() : \Foo
315+
function foo() : \Humbug\Foo
298316
{
299317
}
300-
function foo() : ?Foo
318+
function foo() : ?\Humbug\Foo
301319
{
302320
}
303-
function foo() : ?\Foo
321+
function foo() : ?\Humbug\Foo
304322
{
305323
}
306-
function foo() : ArrayIterator
324+
function foo() : \ArrayIterator
307325
{
308326
}
309327
function foo() : \ArrayIterator
310328
{
311329
}
312-
function foo() : ?ArrayIterator
330+
function foo() : ?\ArrayIterator
313331
{
314332
}
315333
function foo() : ?\ArrayIterator
316334
{
317335
}
318-
function foo() : X\Y
336+
function foo() : \Humbug\X\Y
319337
{
320338
}
321-
function foo() : \X\Y
339+
function foo() : \Humbug\X\Y
322340
{
323341
}
324-
function foo() : ?X\Y
342+
function foo() : ?\Humbug\X\Y
325343
{
326344
}
327-
function foo() : ?\X\Y
345+
function foo() : ?\Humbug\X\Y
328346
{
329347
}
330348

0 commit comments

Comments
 (0)