Re: com php-src: Add tests for constant expression arrays Adding one failing (!) test for now about circular constant references embedded in a
constant AST, must be fixed before PHP 5.6 release.: Zend/tests/constant_expressions_arrays.phpt
Zend/tests/constant_expressions_self_referencing_array.phpt
| From: | Ferenc Kovacs | Date: | Mon, 14 Jul 2014 08:09:04 +0000 |
| Subject: | Re: com php-src: Add tests for constant expression arrays Adding one failing (!) test for now about circular constant references embedded in a constant AST, must be fixed before PHP 5.6 release.: Zend/tests/constant_expressions_arrays.phpt Zend/tests/constant_expressions_self_referencing_array.phpt |
||
| References: | 1 2 3 4 5 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-79454@lists.php.net to get a copy of this message | ||
On Wed, Jul 2, 2014 at 5:27 PM, Bob Weinand <bobwei9@hotmail.com> wrote:
> Am 2.7.2014 um 17:09 schrieb Ferenc Kovacs <tyra3l@gmail.com>:
> > On Wed, Jul 2, 2014 at 4:59 PM, Bob Weinand <bobwei9@hotmail.com> wrote:
> > Am 2.7.2014 um 16:55 schrieb Nikita Popov <nikita.ppv@gmail.com>:
> > > On Wed, Jul 2, 2014 at 12:33 PM, Bob Weinand <bwoebi@php.net> wrote:
> > > Commit: 09d1a8aaab15eef182dd71cf6aa506f54dc70ea7
> > > Author: Bob Weinand <bobwei9@hotmail.com> Wed, 2 Jul 2014
> 12:31:50 +0200
> > > Parents: 05cc46a96b44c4b0ead2909864c9b683103c5946
> > > Branches: PHP-5.6
> > >
> > > Link:
>
> http://git.php.net/?p=php-src.git;a=commitdiff;h=09d1a8aaab15eef182dd71cf6aa506f54dc70ea7
> > >
> > > Log:
> > > Add tests for constant expression arrays
> > > Adding one failing (!) test for now about circular constant references
> embedded in a constant AST, must be fixed before PHP 5.6 release.
> > >
> > > Changed paths:
> > > A Zend/tests/constant_expressions_arrays.phpt
> > > A Zend/tests/constant_expressions_self_referencing_array.phpt
> > >
> > >
> > > Diff:
> > > diff --git a/Zend/tests/constant_expressions_arrays.phpt
> b/Zend/tests/constant_expressions_arrays.phpt
> > > new file mode 100644
> > > index 0000000..f1f0251
> > > --- /dev/null
> > > +++ b/Zend/tests/constant_expressions_arrays.phpt
> > > @@ -0,0 +1,35 @@
> > > +---TEST---
> > > +Constant expressions with arrays
> > > +---FILE---
> > > +<?php
> > > +const a = [1,2,[3,[4]]];
> > > +const b = a[0];
> > > +const c = a[2][0];
> > > +const d = a[2];
> > > +const e = ["string" => [1]]["string"][0];
> > > +
> > > +var_dump(b, c, e);
> > > +
> > > +function test ($a = d[1][0]) {
> > > + var_dump($a);
> > > +}
> > > +
> > > +test();
> > > +
> > > +class foo {
> > > + const bar = [1][0];
> > > +}
> > > +
> > > +var_dump(foo::bar);
> > > +
> > > +var_dump(a); // Eventually allow that later with array dereferencing
> of constants
> > > +
> > > +?>
> > > +---EXPECTF---
> > > +int(1)
> > > +int(3)
> > > +int(1)
> > > +int(4)
> > > +int(1)
> > > +
> > > +Fatal error: Arrays are not allowed in constants at run-time in %s on
> line %d
> > > diff --git
> a/Zend/tests/constant_expressions_self_referencing_array.phpt
> b/Zend/tests/constant_expressions_self_referencing_array.phpt
> > > new file mode 100644
> > > index 0000000..7fc477d
> > > --- /dev/null
> > > +++ b/Zend/tests/constant_expressions_self_referencing_array.phpt
> > > @@ -0,0 +1,13 @@
> > > +---TEST---
> > > +Self-referencing constant expression (part of a constant AST)
> > > +---FILE---
> > > +<?php
> > > +class A {
> > > + const FOO = [self::BAR];
> > > + const BAR = [self::FOO];
> > > +}
> > > +var_dump(A::FOO);
> > > +?>
> > > +---EXPECTF---
> > > +Fatal error: Cannot declare self-referencing constant 'self::FOO' in
> %s on line %d
> > > +
> > >
> > > Could you please mark the failing test as XFAIL?
> > >
> > > Nikita
> >
> > I intentionally marked that as FAIL to be sure that it won't be overseen
> upon PHP 5.6 release and remain unfixed.
> > Or why has it to be XFAIL?
> >
> > Bob
> >
> > the problem with that is that it will make it harder to spot when a new
> test failure is introduced.
> > the current practice is to open a bugreport and add an XFAIL for
> to-be-fixed issues.
> > if you want to make sure that we won't release 5.6.0 without fixing
> this, I can add it to the https://wiki.php.net/todo/php56 todo
> list.
> > (Albeit I also keep an eye on open bugreports for 5.6.0, so probably we
> wouldn't miss it anyways)
> >
> > --
> > Ferenc Kovács
> > @Tyr43l - http://tyrael.hu
>
> Okay, changed to XFAIL; I'd just like to see it fixed for 5.6.0.
>
> Bob
Bob, are you working on resolving this or is there something we can help
you with?
ps: I think it would make sense to have an open bugreport for this (usually
this is how we track the XFAILs).
--
Ferenc Kovács
@Tyr43l - http://tyrael.hu