Commit graph

1175 commits

Author SHA1 Message Date
Stefan Marr
0bb85e4b91 Fixed Bug #60717 (Order of traits in use statement can cause a fatal error)
# Compatibility is now correctly checked in both directions.
# Introduced helper method for the test.
2012-03-04 18:26:11 +00:00
Xinchen Hui
046e3e3889 MFH: Fixed bug #60573 (type hinting with "self" keyword causes weird errors) 2012-03-02 03:32:12 +00:00
Dmitry Stogov
3299a2673c Fixed Bug #60809 (TRAITS - PHPDoc Comment Style Bug)
Fixed some other traits related bugs (uninitialized variable, return => continue)
Removed some trait related redundant code and variables
2012-01-20 12:30:57 +00:00
Dmitry Stogov
f9e6af5ef1 Fixed Bug #60809 (TRAITS - PHPDoc Comment Style Bug)
Fixed some other traits related bugs (uninitialized variable, return => continue)
Removed some trait related redundant code and variables
2012-01-20 12:30:57 +00:00
Dmitry Stogov
b515bfbdfb Improved traits implementation. Now to support __CLASS__ constant in traits 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. 2012-01-17 08:09:13 +00:00
Dmitry Stogov
032d140fd6 Improved traits implementation. Now to support __CLASS__ constant in traits 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. 2012-01-17 08:09:13 +00:00
Xinchen Hui
d74a258f24 Fixed Bug #60573 (type hinting with "self" keyword causes weird errors) 2012-01-16 09:53:45 +00:00
Felipe Pena
e4ca0ed09f - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Dmitry Stogov
a68e858d69 Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax) 2011-12-28 09:59:39 +00:00
Dmitry Stogov
c058385112 Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax) 2011-12-28 09:59:39 +00:00
Xinchen Hui
84ce790437 Fix #60613 (Segmentation fault with $cls->{expr}() syntax)
#now the behavior is like 5.3, a COMPILER_ERROR will be triggered
2011-12-28 06:46:12 +00:00
Xinchen Hui
113c0a8cc7 Fix #60613 (Segmentation fault with $cls->{expr}() syntax)
#now the behavior is like 5.3, a COMPILER_ERROR will be triggered
2011-12-28 06:46:12 +00:00
Xinchen Hui
20e2db2ce3 Fix bug #60611 (Segmentation fault with Cls::{expr}() syntax) 2011-12-27 08:38:18 +00:00
Xinchen Hui
2f4875bf92 Fix bug #60611 (Segmentation fault with Cls::{expr}() syntax) 2011-12-27 08:38:18 +00:00
Xinchen Hui
c1d5a5d7ef Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.
2011-12-19 16:48:18 +00:00
Xinchen Hui
2f62602c03 Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.
2011-12-19 16:48:18 +00:00
Xinchen Hui
f3900513ca Codes standard & Remove useless empty lines 2011-12-19 10:05:48 +00:00
Xinchen Hui
1a4a527c37 Codes standard & Remove useless empty lines 2011-12-19 10:05:48 +00:00
Stefan Marr
525dd55eed Fixed inconsistent and broken handling of private properties in traits.
# 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.
2011-12-17 14:26:39 +00:00
Stefan Marr
3dc9f0abe6 Fixed inconsistent and broken handling of private properties in traits.
# 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.
2011-12-17 14:26:39 +00:00
Pierrick Charron
489b86ff56 Coding standard 2011-12-06 06:44:22 +00:00
Pierrick Charron
3f2bcb7723 Coding standard 2011-12-06 06:44:22 +00:00
Xinchen Hui
d18a61aefb Fix typo 2011-12-05 12:33:56 +00:00
Xinchen Hui
5927617335 Fix typo 2011-12-05 12:33:56 +00:00
Dmitry Stogov
1d6c98a136 Fixed bug #60444 (Segmentation fault with include & class extending) 2011-12-05 09:20:12 +00:00
Dmitry Stogov
30328dcbab Fixed bug #60444 (Segmentation fault with include & class extending) 2011-12-05 09:20:12 +00:00
Stefan Marr
db0888dfc1 Fixed Bug #60369 Crash with static property in trait 2011-11-23 21:24:34 +00:00
Stefan Marr
35d38e4772 Fixed Bug #60369 Crash with static property in trait 2011-11-23 21:24:34 +00:00
Felipe Pena
31ef559712 - Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes) 2011-11-19 13:36:03 +00:00
Felipe Pena
14b5e775b0 - Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes) 2011-11-19 13:36:03 +00:00
Felipe Pena
bc810a443d - Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes) 2011-11-19 13:36:03 +00:00
Felipe Pena
420fbb8274 - CS 2011-11-18 13:56:41 +00:00
Felipe Pena
cc8573e7a5 - CS 2011-11-18 13:56:41 +00:00
Stefan Marr
e150100f36 Fixes Bug #54441 (Handling of changing modifiers on a trait alias)
# this now results also in a compilation error, since it would open the door for inconsistencies, and violates the DRY principle.
2011-11-18 13:49:07 +00:00
Stefan Marr
76772dc20d Fixes Bug #54441 (Handling of changing modifiers on a trait alias)
# this now results also in a compilation error, since it would open the door for inconsistencies, and violates the DRY principle.
2011-11-18 13:49:07 +00:00
Felipe Pena
2ba9ff7fac - Fix build 2011-11-17 21:07:52 +00:00
Felipe Pena
c5ec9dd650 - Fix build 2011-11-17 21:07:52 +00:00
Stefan Marr
5ef2c32822 Fixed Bug #60165 (Aliasing unexisting trait should throw/trigger the 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.
2011-11-17 21:04:15 +00:00
Stefan Marr
c5ba229617 Fixed Bug #60165 (Aliasing unexisting trait should throw/trigger the 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.
2011-11-17 21:04:15 +00:00
Felipe Pena
7735ef1c2d - Fixed bug #60099 (__halt_compiler() works in braced namespaces) 2011-11-16 17:41:40 +00:00
Felipe Pena
caa863dc42 - Fixed bug #60099 (__halt_compiler() works in braced namespaces) 2011-11-16 17:41:40 +00:00
Felipe Pena
3c7a573a2c - Fixed bug #60099 (__halt_compiler() works in braced namespaces) 2011-11-16 17:41:40 +00:00
Stefan Marr
5745f95372 Fixed inconsistent whitespace.
# Belongs to svn rev. 318793.
2011-11-05 02:05:28 +00:00
Stefan Marr
b632cd196e Fixed inconsistent whitespace.
# Belongs to svn rev. 318793.
2011-11-05 02:05:28 +00:00
Stefan Marr
7334dfd7eb Fixed Bug #60217 (Requiring the same method from different traits)
- also added test to check for inconsistent abstract method definitions, they need to be compatible
2011-11-05 01:46:40 +00:00
Stefan Marr
12cf1b7978 Fixed Bug #60217 (Requiring the same method from different traits)
- also added test to check for inconsistent abstract method definitions, they need to be compatible
2011-11-05 01:46:40 +00:00
Antony Dovgal
fadba4d1c4 use jmp_addr only when it's initialized 2011-11-03 08:39:12 +00:00
Antony Dovgal
36103d1236 use jmp_addr only when it's initialized 2011-11-03 08:39:12 +00:00