Skip to content

Commit 7a7778d

Browse files
committed
Removes arrow in multi-line short closures
1 parent 86ea9e8 commit 7a7778d

File tree

9 files changed

+32
-32
lines changed

9 files changed

+32
-32
lines changed

Zend/tests/arrow_functions/001.phpt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,26 @@ Basic arrow function functionality check
44
<?php
55

66
// No return value
7-
$foo = fn() => {};
7+
$foo = fn() {};
88
var_dump($foo());
99

1010
// Return value
1111
$foo = fn() => 1;
1212
var_dump($foo());
1313

14-
$foo = fn() => { return 2; };
14+
$foo = fn() { return 2; };
1515
var_dump($foo());
1616

1717
$foo = fn($x) => $x;
1818
var_dump($foo(3));
1919

20-
$foo = fn($x) => { return $x; };
20+
$foo = fn($x) { return $x; };
2121
var_dump($foo(4));
2222

2323
$foo = fn($x, $y) => $x + $y;
2424
var_dump($foo(4, 1));
2525

26-
$foo = fn($x, $y) => { return $x + $y; };
26+
$foo = fn($x, $y) { return $x + $y; };
2727
var_dump($foo(5, 1));
2828

2929
// Closing over $var
@@ -32,14 +32,14 @@ $foo = fn() => $var;
3232
var_dump($foo());
3333

3434
$var = 8;
35-
$foo = fn() => { return $var; };
35+
$foo = fn() { return $var; };
3636
var_dump($foo());
3737

3838
// Not closing over $var, it's a parameter
3939
$foo = fn($var) => $var;
4040
var_dump($foo(9));
4141

42-
$foo = fn($var) => { return $var; };
42+
$foo = fn($var) { return $var; };
4343
var_dump($foo(10));
4444

4545
// Close over $var by-value, not by-reference
@@ -50,7 +50,7 @@ var_dump($foo());
5050
var_dump($var);
5151

5252
$var = 13;
53-
$foo = fn() => { return ++$var; };
53+
$foo = fn() { return ++$var; };
5454
var_dump($var);
5555
var_dump($foo());
5656
var_dump($var);
@@ -63,10 +63,10 @@ $var = 15;
6363
var_dump((fn() => function() use($var) { return $var; })()());
6464

6565
$var = 16;
66-
var_dump((fn() => { return fn() => { return $var; }; })()());
66+
var_dump((fn() { return fn() { return $var; }; })()());
6767

6868
// Nested arrow functions with null return value
69-
var_dump((fn() => { return fn() => {}; })()());
69+
var_dump((fn() { return fn() {}; })()());
7070

7171
?>
7272
--EXPECT--

Zend/tests/arrow_functions/002.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ $b = 1;
88
var_dump((fn() => $b + $c)());
99

1010
$d = 2;
11-
var_dump((fn() => { return $d + $e; } )());
11+
var_dump((fn() { return $d + $e; } )());
1212

1313
?>
1414
--EXPECTF--

Zend/tests/arrow_functions/003.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ var_dump($fn());
1010

1111
$b = 2;
1212
$var = "b";
13-
$fn = fn() => { return $$var; };
13+
$fn = fn() { return $$var; };
1414
var_dump($fn());
1515

1616
${5} = 3;
1717
$fn = fn() => ${5};
1818
var_dump($fn());
1919

2020
${6} = 4;
21-
$fn = fn() => { return ${6}; };
21+
$fn = fn() { return ${6}; };
2222
var_dump($fn());
2323

2424
?>

Zend/tests/arrow_functions/004.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ $fn = fn() => $GLOBALS['a'];
99
var_dump($fn());
1010

1111
$a = 456;
12-
$fn = fn() => { return $GLOBALS['a']; };
12+
$fn = fn() { return $GLOBALS['a']; };
1313
var_dump($fn());
1414

1515
?>

Zend/tests/arrow_functions/005.phpt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,46 +10,46 @@ class Test {
1010
$r = new ReflectionFunction($fn);
1111
var_dump($r->getClosureThis());
1212

13-
$fn = fn() => {};
13+
$fn = fn() {};
1414
$r = new ReflectionFunction($fn);
1515
var_dump($r->getClosureThis());
1616

1717
$fn = fn() => $this;
1818
var_dump($fn());
1919

20-
$fn = fn() => { return $this; };
20+
$fn = fn() { return $this; };
2121
var_dump($fn());
2222

2323
$fn = fn() => Test::method2();
2424
$fn();
2525

26-
$fn = fn() => { return Test::method2(); };
26+
$fn = fn() { return Test::method2(); };
2727
$fn();
2828

2929
$fn = fn() => call_user_func('Test::method2');
3030
$fn();
3131

32-
$fn = fn() => { return call_user_func('Test::method2'); };
32+
$fn = fn() { return call_user_func('Test::method2'); };
3333
$fn();
3434

3535
$thisName = "this";
3636
$fn = fn() => $$thisName;
3737
var_dump($fn());
3838

39-
$fn = fn() => { return $$thisName; };
39+
$fn = fn() { return $$thisName; };
4040
var_dump($fn());
4141

4242
$fn = fn() => self::class;
4343
var_dump($fn());
4444

45-
$fn = fn() => { return self::class; };
45+
$fn = fn() { return self::class; };
4646
var_dump($fn());
4747

4848
// static can be used to unbind $this
4949
$fn = static fn() => isset($this);
5050
var_dump($fn());
5151

52-
$fn = static fn() => { return isset($this); };
52+
$fn = static fn() { return isset($this); };
5353
var_dump($fn());
5454
}
5555

Zend/tests/arrow_functions/006.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ $ref =& $id($var);
1010
$ref++;
1111
var_dump($var);
1212

13-
$id = fn&(&$x) => { return $x; };
13+
$id = fn&(&$x) { return $x; };
1414
$ref =& $id($var);
1515
$ref++;
1616
var_dump($var);
@@ -26,7 +26,7 @@ try {
2626
}
2727

2828
$var = 11;
29-
$int_fn = fn(int $x): int => { return $x; };
29+
$int_fn = fn(int $x): int { return $x; };
3030
var_dump($int_fn($var));
3131
try {
3232
$int_fn("foo");
@@ -42,7 +42,7 @@ try {
4242
echo $e->getMessage(), "\n";
4343
}
4444

45-
$varargs = fn(?int... $args): array => { return $args; };
45+
$varargs = fn(?int... $args): array { return $args; };
4646
var_dump($varargs(40, null, 50));
4747
try {
4848
$varargs(60, "foo");

Zend/tests/arrow_functions/007.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ assert.exception=0
88

99
// TODO We're missing parentheses for the direct call
1010
assert((fn() => false)());
11-
assert((fn() => { return false; })());
11+
assert((fn() { return false; })());
1212

1313
assert((fn&(int... $args): ?bool => $args[0])(false));
14-
assert((fn&(int... $args): ?bool => { return $args[0]; })(false));
14+
assert((fn&(int... $args): ?bool { return $args[0]; })(false));
1515

1616
?>
1717
--EXPECTF--

Zend/tests/arrow_functions/008.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ foreach ($fn() as $val) {
1010
var_dump($val);
1111
}
1212

13-
$fn = fn() => { return yield 2; };
13+
$fn = fn() { return yield 2; };
1414
foreach ($fn() as $val) {
1515
var_dump($val);
1616
}
@@ -20,7 +20,7 @@ foreach ($fn() as $val) {
2020
var_dump($val);
2121
}
2222

23-
$fn = fn() => { yield from [5, 6]; };
23+
$fn = fn() { yield from [5, 6]; };
2424
foreach ($fn() as $val) {
2525
var_dump($val);
2626
}
@@ -30,7 +30,7 @@ foreach ($fn()() as $val) {
3030
var_dump($val);
3131
}
3232

33-
$fn = fn() => fn() => { yield 8; };
33+
$fn = fn() => fn() { yield 8; };
3434
foreach ($fn()() as $val) {
3535
var_dump($val);
3636
}

Zend/zend_language_parser.y

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,11 +1178,11 @@ inline_function:
11781178
((zend_ast_decl *) $$)->lex_pos = $10;
11791179
CG(extra_fn_flags) = $9; }
11801180
| fn returns_ref backup_doc_comment '(' parameter_list ')' return_type
1181-
T_DOUBLE_ARROW backup_fn_flags '{' inner_statement_list '}' backup_fn_flags
1182-
{ $$ = zend_ast_create_decl(ZEND_AST_ARROW_FUNC, $2 | $13, $1, $3,
1181+
backup_fn_flags '{' inner_statement_list '}' backup_fn_flags
1182+
{ $$ = zend_ast_create_decl(ZEND_AST_ARROW_FUNC, $2 | $12, $1, $3,
11831183
zend_string_init("{closure}", sizeof("{closure}") - 1, 0), $5, NULL,
1184-
$11, $7, NULL);
1185-
CG(extra_fn_flags) = $9; }
1184+
$10, $7, NULL);
1185+
CG(extra_fn_flags) = $8; }
11861186
;
11871187

11881188
fn:

0 commit comments

Comments
 (0)