diff --git a/src/parser/class.js b/src/parser/class.js index 9823dc5ad..648c49920 100644 --- a/src/parser/class.js +++ b/src/parser/class.js @@ -160,7 +160,7 @@ module.exports = function(api, tokens, EOF) { /** * Reads a constant declaration * - * constant_declaration ::= T_STRING '=' scalar + * constant_declaration ::= T_STRING '=' expr * */ ,read_constant_declaration: function() { @@ -169,7 +169,7 @@ module.exports = function(api, tokens, EOF) { .next() .expect('=') .next() - .read_scalar() + .read_expr() ; return [name, value]; } diff --git a/test/parser/class.parser b/test/parser/class.parser index 539b26c5d..dad10a5ee 100644 --- a/test/parser/class.parser +++ b/test/parser/class.parser @@ -5,6 +5,12 @@ interface a1 extends i1, i2 { public function a1(); protected function a1(); } +--PASS-- +class a { + const e=5; + const f=6; + const A=(self::e | self::f); +} --FAIL-- class a1 { echo 123;