File tree Expand file tree Collapse file tree 3 files changed +17
-15
lines changed
tests/pattern_matching/is Expand file tree Collapse file tree 3 files changed +17
-15
lines changed Original file line number Diff line number Diff line change @@ -8,13 +8,13 @@ interface B {}
88interface C {}
99class Foo implements A, B {}
1010
11- var_dump (1 is ( int& 1 ) );
12- var_dump (2 is ( int& (1 |2 ) ));
13- var_dump (3 is ( float& 1 ) );
14- var_dump (4 is ( int& float) );
15- var_dump ([] is ([]& [...]) );
16- var_dump ('foo ' is ( string& 'bar ' ) );
17- var_dump (new Foo () is ( A&B) );
11+ var_dump (1 is int & 1 );
12+ var_dump (2 is int & (1 |2 ));
13+ var_dump (3 is float & 1 );
14+ var_dump (4 is int & float);
15+ var_dump([] is [] & [...]);
16+ var_dump ('foo ' is string & 'bar ' );
17+ var_dump(new Foo () is A&B);
1818var_dump(new Foo () is (A&C));
1919
2020?>
Original file line number Diff line number Diff line change @@ -3,13 +3,14 @@ Or pattern
33--FILE--
44<?php
55
6- var_dump (1 is ( 1 |2 |3 ) );
7- var_dump (2 is ( 1 |2 |3 ) );
8- var_dump (3 is ( 1 |2 |3 ) );
9- var_dump (4 is ( 1 |2 |3 ) );
10- var_dump (null is ( 1 |2 |3 ) );
11- var_dump ([] is ( 1 |2 |3 ) );
6+ var_dump (1 is 1 |2 |3 );
7+ var_dump (2 is 1 |2 |3 );
8+ var_dump (3 is 1 |2 |3 );
9+ var_dump (4 is 1 |2 |3 );
10+ var_dump (null is 1 |2 |3 );
11+ var_dump ([] is 1 |2 |3 );
1212var_dump ('hello world ' is (1 |2 |3 ));
13+ var_dump ('hello world ' is 1 |2 |3 === false );
1314
1415?>
1516--EXPECT--
@@ -20,3 +21,4 @@ bool(false)
2021bool(false)
2122bool(false)
2223bool(false)
24+ bool(true)
Original file line number Diff line number Diff line change @@ -52,6 +52,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
5252%destructor { if ($$) zend_string_release_ex ($$, 0 ); } <str>
5353
5454%precedence T_THROW
55+ %precedence T_IS
5556%precedence PREC_ARROW_FUNCTION
5657%precedence T_INCLUDE T_INCLUDE_ONCE T_REQUIRE T_REQUIRE_ONCE
5758%left T_LOGICAL_OR
@@ -80,7 +81,6 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
8081%precedence ' ~' T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST ' @'
8182%right T_POW
8283%precedence T_CLONE
83- %precedence T_IS
8484
8585/* Resolve danging else conflict */
8686%precedence T_NOELSE
@@ -1276,7 +1276,7 @@ expr:
12761276 | attributes T_STATIC inline_function
12771277 { $$ = zend_ast_with_attributes($3 , $1 ); ((zend_ast_decl *) $$ )->flags |= ZEND_ACC_STATIC; }
12781278 | match { $$ = $1 ; }
1279- | expr T_IS atomic_pattern { $$ = zend_ast_create(ZEND_AST_IS, $1 , $3 ); }
1279+ | expr T_IS pattern { $$ = zend_ast_create(ZEND_AST_IS, $1 , $3 ); }
12801280;
12811281
12821282pattern :
You can’t perform that action at this time.
0 commit comments