Skip to content

Commit ef203f5

Browse files
authored
Support static & return-typed arrow functions (#1362)
* Support static arrow functions * Support arrow function return types
1 parent e8904f0 commit ef203f5

3 files changed

Lines changed: 13 additions & 0 deletions

File tree

src/printer.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1721,8 +1721,12 @@ function printNode(path, options, print) {
17211721
return printFunction(path, options, print);
17221722
case "arrowfunc":
17231723
return concat([
1724+
node.isStatic ? "static " : "",
17241725
"fn",
17251726
printArgumentsList(path, options, print),
1727+
node.type
1728+
? concat([": ", node.nullable ? "?" : "", path.call(print, "type")])
1729+
: "",
17261730
" => ",
17271731
path.call(print, "body"),
17281732
]);

tests/arrowfunc/__snapshots__/jsfmt.spec.js.snap

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ $var = fn() => "something";
1111
$var = fn($arg) => "something";
1212
$var = fn(&$arg) => "something";
1313
$var = fn($arg, $arg, $arg) => "something";
14+
$var = fn($arg, $arg, $arg): string => "something";
15+
$var = fn($arg, $arg, $arg): ?string => "something";
16+
$var = static fn($arg, $arg, $arg) => "something";
1417
// $var = fn(): ?string => "something";
1518
1619
call(fn($arg) => $arg);
@@ -21,6 +24,9 @@ $var = fn() => "something";
2124
$var = fn($arg) => "something";
2225
$var = fn(&$arg) => "something";
2326
$var = fn($arg, $arg, $arg) => "something";
27+
$var = fn($arg, $arg, $arg): string => "something";
28+
$var = fn($arg, $arg, $arg): ?string => "something";
29+
$var = static fn($arg, $arg, $arg) => "something";
2430
// $var = fn(): ?string => "something";
2531
2632
call(fn($arg) => $arg);

tests/arrowfunc/arrowfunc.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
$var = fn($arg) => "something";
44
$var = fn(&$arg) => "something";
55
$var = fn($arg, $arg, $arg) => "something";
6+
$var = fn($arg, $arg, $arg): string => "something";
7+
$var = fn($arg, $arg, $arg): ?string => "something";
8+
$var = static fn($arg, $arg, $arg) => "something";
69
// $var = fn(): ?string => "something";
710

811
call(fn($arg) => $arg);

0 commit comments

Comments
 (0)