felipe Thu, 06 May 2010 19:20:12 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=299090
Log: - Added check for 'static' on trait visibility modifier Changed paths: U php/php-src/trunk/Zend/zend_compile.c Modified: php/php-src/trunk/Zend/zend_compile.c =================================================================== --- php/php-src/trunk/Zend/zend_compile.c 2010-05-06 18:28:45 UTC (rev 299089) +++ php/php-src/trunk/Zend/zend_compile.c 2010-05-06 19:20:12 UTC (rev 299090) @@ -3308,8 +3308,7 @@ if (zend_hash_quick_find(&ce->function_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void **)&class_fn) == FAILURE || class_fn->common.scope != ce) { - zend_error(E_WARNING, "Trait method %s has not been applied, because there are collisions with other trait methods on %s", - fn->common.function_name, ce->name); + zend_error(E_WARNING, "Trait method %s has not been applied, because there are collisions with other trait methods on %s", fn->common.function_name, ce->name); } zend_function_dtor(fn); @@ -3318,8 +3317,7 @@ } else { /* Add it to result function table */ if (zend_hash_quick_add(resulting_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h, fn, sizeof(zend_function), NULL)==FAILURE) { - zend_error(E_ERROR, "Trait method %s has not been applied, because failure occured during updating resulting trait method table.", - fn->common.function_name); + zend_error(E_ERROR, "Trait method %s has not been applied, because failure occured during updating resulting trait method table", fn->common.function_name); } } @@ -3476,7 +3474,7 @@ } if (zend_hash_quick_update(&ce->function_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h, fn, sizeof(zend_function), NULL)==FAILURE) { - zend_error(E_ERROR, "Trait method %s has not been applied, because failure occured during updating class method table.", hash_key->arKey); + zend_error(E_ERROR, "Trait method %s has not been applied, because failure occured during updating class method table", hash_key->arKey); } _ADD_MAGIC_METHOD(ce, hash_key->arKey, hash_key->nKeyLength, fn); @@ -3835,6 +3833,11 @@ trait_alias->trait_method = (zend_trait_method_reference*)method_reference->u.op.ptr; trait_alias->modifiers = Z_LVAL(modifiers->u.constant); + + if (Z_LVAL(modifiers->u.constant) == ZEND_ACC_STATIC) { + zend_error(E_COMPILE_ERROR, "Cannot use 'static' as method modifier"); + return; + } if (alias) { trait_alias->alias = Z_STRVAL(alias->u.constant);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php