| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
run-tests.php enforces error_reporting=E_ALL (including E_STRICT),
setting this explicitly in not necessary. Conversely, after the
removal of some E_STRICT errors, explicitly excluding it is no
longer necessary in some places.
|
|\ |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Also fix a single instance of CRLF in ibase_query.c.
|
|\ |
|
| | |
|
|/ |
|
|
|
|
| |
trait causes fatal error)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements a reduced variant of #1226 with just the following
change:
-Fatal error: Uncaught exception 'EngineException' with message 'Call to private method foo::bar() from context ''' in %s:%d
+Fatal error: Uncaught EngineException: Call to private method foo::bar() from context '' in %s:%d
The '' wrapper around messages is very weird if the exception
message itself contains ''. Futhermore having the message wrapped
in '' doesn't work for the "and defined" suffix of
TypeExceptions.
|
|
|
|
|
|
|
|
|
| |
TypeException stays as-is for now because it uses messages that are
incompatible with the way exception messages are displayed.
closure_038.phpt and a few others now show that we're generating
too many exceptions for compound operations on undefined properties
-- this needs to be fixed in a followup.
|
|
|
|
|
|
|
| |
Per RFC https://wiki.php.net/rfc/reclassify_e_strict
While reviewing this, found that there are still three E_STRICTs
left in libraries - need to discuss those.
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* PHP-5.6:
Updated NEWS
Updated NEWS
Fixed Bug #65576 (Constructor from trait conflicts with inherited constructor)
Conflicts:
Zend/zend_compile.c
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
| |
As we discussed with stefan, we think previous of allowing use with
classes is a bug, should be forbided, anyway, the error message should
be improved.
|
| |
|
| |
|
| |
|
|
|
|
| |
crash during execution)
|
| |
|
| |
|
|
|
|
|
|
| |
# Compatibility is now correctly checked in both directions.
# Introduced helper method for the test.
|
|
|
|
|
|
| |
Fixed some other traits related bugs (uninitialized variable, return => continue)
Removed some trait related redundant code and variables
|
|
|
|
| |
php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.
|
|
|
|
|
|
|
|
|
| |
# The handling of private properties in classes is now consistent with private properties in traits.
# Perviously, privates could cause strict warnings, are were not properly merged into the class when
# the parent class had a private property of the same name. Now, we introduce it without notice,
# since it is a new and independent property, just like in normal classes.
# This problem was diagnosed while working on Bug #60536.
|
| |
|
|
|
|
|
| |
# this now results also in a compilation error, since it would open the door for inconsistencies, and violates the DRY principle.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
exception/error)
- aliases that are not actually matching anything are treated as errors now. This
will make sure that all methods that are expected to be in a class are actually
there, or in case a trait changed for instance, that the code breaks already
on composition
- Precedence declarations are also checked to ensure that the method
which is supposed to take precedence actually exists, however,
the other traits mentioned in the declaration are not regarded.
We are more lenient here, since this avoids unnecessary fragility.
- fixed another seamingly unrelated test which broke in the progress
but wasn't clear before either.
|
|
|
|
|
| |
- also added test to check for inconsistent abstract method definitions, they need to be compatible
|
|
|
|
|
|
|
|
|
|
| |
via traits.)
# Moved the freeing of overriden functions to a point after the check.
# The new check comes after the normal inheritance check to give the first check
# the opportunity to abort with a more detailed error.
# Also fixed a small type in an unrelated test.
|
|
|
|
| |
and implemented by another.
|
|
|
|
| |
properly checked.)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# The handling of legacy constructors defined by traits was corrected.
# They are now properly registered and used on instantiation.
# The situation for conflicting legacy and __construct constructors is
# mostly identical. If they are defined in the class, they override conflicts
# and do not collide. However, in case different styles are mixed, between
# class and trait definition, we assume a programmer's mistake and report
# a collision.
#
# BTW: +1 for all the fixed tests! `make test` is fun again.
|
|
|
|
|
| |
And fix tests related.
|
|
|
|
|
| |
# also used the Z_STRVAL where it seemed appropriate
|
|
|
|
|
|
|
| |
parent class and required by using an abstract method in the trait.
# The method got unconditionally deleted from the class, since it was assumed that we override it, but we did not in case of abstract methods coming from a trait. Thus, dont delete when we try to merge in an abstract method.
|
|
|
|
| |
the abstract method of a trait is satisfied.
|
|
|
|
|
|
| |
# Dmitry you might want to review this patch, since I split up zend_add_literal
# and added a version for post-pass_two() usage.
|
|
|
|
| |
name [TRAITS] [DOC]
|
|
|
|
|
|
|
| |
# __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits.
# Since traits are not types, there are not many valid use cases, and trying
# to use __TRAIT__ to make traits more like classes is discouraged.
|