Bug #69557 [Nab]: Unexpected error message using "use" operator before the "namespace" keyword
| From: | stas@php.net | Date: | Fri, 01 May 2015 06:51:01 +0000 |
| Subject: | Bug #69557 [Nab]: Unexpected error message using "use" operator before the "namespace" keyword | ||
| References: | 1 | Groups: | php.standards |
| Request: | Send a blank email to standards-+get-756@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=69557&edit=1
ID: 69557
Updated by: stas@php.net
Reported by: me at paulofreitas dot me
Summary: Unexpected error message using "use" operator before
the "namespace" keyword
Status: Not a bug
Type: Bug
Package: PHP Language Specification
Operating System: N/A
PHP Version: 5.6.8
Block user comment: N
Private report: N
New Comment:
This is not a bug in PHP language specification. This also doesn't seem to be a bug in general,
as use declarations do not produce any code and as such do not really matter for namespace
declaration. If you want to discuss it more, you are welcome to raise the topic on the internals
list.
Previous Comments:
------------------------------------------------------------------------
[2015-05-01 06:33:06] me at paulofreitas dot me
Citing "How to Report a Bug" page...
"Don't report an error message you don't understand as a bug. There are a lot of
places you can ask for help in understanding what is going on before you can claim that an error
message you do not understand is a bug."
That's not the case.
"(Now, once you've understood the error message, and have a good suggestion for a way to
make the error message more clear, you might consider reporting it as a feature request.)"
Neither that.
It's clearly an unexpected and undocumented behavior per namespaces docs:
"Namespaces are declared using the namespace keyword. A file containing a namespace must
declare the namespace at the top of the file before any other code - with one exception: the declare
keyword."
(from http://php.net/manual/en/language.namespaces.definition.php)
------------------------------------------------------------------------
[2015-05-01 06:09:44] stas@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
------------------------------------------------------------------------
[2015-05-01 04:49:39] me at paulofreitas dot me
Description:
------------
As stated, if you try to use the "use" operator to import something before declaring the
file namespace, you'll get an unexpected error message which doesn't actually explain the
real issue.
Test script:
---------------
To reproduce the bug: http://3v4l.org/Qc9UO
Expected result: http://3v4l.org/XOGsn (you get the idea...)
Expected result:
----------------
Fatal error: Namespace declaration statement has to be the very first statement in the script in
test.php on line 5
Actual result:
--------------
Fatal error: Class 'Foo\Bar' not found in test.php on line 7
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=69557&edit=1