summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
Commit message (Collapse)AuthorAgeFilesLines
* Apply tidy formattingNikita Popov2020-02-031-1/+1
| | | | Mostly reindent PHP scripts to spaces.
* Merge branch 'PHP-7.3' into PHP-7.4Nikita Popov2020-01-171-0/+2
|\ | | | | | | | | * PHP-7.3: Fixed bug #79115
| * Fixed bug #79115Nikita Popov2020-01-171-0/+2
| |
* | Fixed bug #78895 (Reflection detects abstract non-static class as abstract ↵Dmitry Stogov2019-12-091-1/+2
| | | | | | | | static. IS_IMPLICIT_ABSTRACT is not longer used)
* | Fixed bug #78774Nikita Popov2019-11-041-1/+13
| | | | | | | | | | | | | | | | | | | | The string held by the zend_type may be released if the property type gets resolved to a CE. I initially wanted to fix this by storing a zend_type* instead (so the property type resolution propagates to the ReflectionType), but decided against this in light of upcoming union types support, where we also need to represent parts of the union, and will not have a single zend_type* we can reference.
* | Merge branch 'PHP-7.3' into PHP-7.4Joe Watkins2019-10-211-1/+1
|\ \ | |/ | | | | | | * PHP-7.3: Fix bug #78697: inaccurate error message
| * Merge branch 'PHP-7.2' into PHP-7.3Joe Watkins2019-10-211-1/+1
| |\ | | | | | | | | | | | | * PHP-7.2: Fix bug #78697: inaccurate error message
| | * Fix bug #78697: inaccurate error messageFabien Villepinte2019-10-211-1/+1
| | |
* | | Fix number of required arguments in arginfoNikita Popov2019-10-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pack() only requires one argument * stream_context_set_option() only requires two arguments * ReflectionMethod::getClosure() accepts no args for static methods * DOMDocument::createProcessingInstruction() only requires one arg * DOMImplementation::createDocument() only requires two arguments * DOMDocument::importNode() only requires one arg * mysql_get_client_version() doesn't accept any args, despite what the docs say...
* | | Fixed bug #78410Nikita Popov2019-08-131-4/+5
| | |
* | | Special-case rc=1 self-referential arrays in ReflectionReferenceNikita Popov2019-07-221-2/+11
| | | | | | | | | | | | | | | New fix for bug #78263. This is special-cased elsewhere in the engine, so we need to mirror it here.
* | | Revert "Add ReflectionReference::getRefcount()"Nikita Popov2019-07-221-26/+1
| | | | | | | | | | | | This reverts commit 428cfdd1810b17f0064b7691276f0eb92dc963b6.
* | | Deprecate Reflection export() methodsNikita Popov2019-07-221-11/+10
| | | | | | | | | | | | And remove the Reflector::export() interface method.
* | | Evaluate constant in class scopeDmitry Stogov2019-07-221-1/+1
| | |
* | | Don't call Reflection::export() internallyNikita Popov2019-07-111-52/+32
| | | | | | | | | | | | | | | | | | export() methods were implemented in a roundabout way, where they would call Reflection::export(), which would then call __toString(). Cut out the middleman by directly calling __toString().
* | | Add ReflectionReference::getRefcount()Nikita Popov2019-07-081-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | And don't return null for rc=1 references. Leave it to the user to decide whether or not they want to consider these as references or not. Fixes bug #78263.
* | | Cheaper checks for exceptions thrown from __toString()Dmitry Stogov2019-06-061-4/+4
| | |
* | | Deprecate ReflectionType::__toString()Nikita Popov2019-06-051-4/+1
| | | | | | | | | | | | | | | | | | | | | We weren't able to do this in 7.1 because the deprecation notice may be converted to an exception and __toString() can't throw, which means that it ultimately become a fatal error. This issue is resolved now, so we can mark the method as deprecated.
* | | Allow exceptions in __toString()Nikita Popov2019-06-051-31/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC: https://wiki.php.net/rfc/tostring_exceptions And convert some object to string conversion related recoverable fatal errors into Error exceptions. Improve exception safety of internal code performing string conversions.
* | | Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macrosDmitry Stogov2019-05-281-9/+14
| | |
* | | Add RETURN_EMPTY_ARRAY() / RETVAL_EMPTY_ARRAY()Nikita Popov2019-05-141-13/+8
| | | | | | | | | | | | The usual wrappers around ZVAL_EMPTY_ARRAY()...
* | | Merge branch 'PHP-7.3' into PHP-7.4Nikita Popov2019-05-091-16/+18
|\ \ \ | |/ /
| * | Merge branch 'PHP-7.2' into PHP-7.3Nikita Popov2019-05-091-20/+20
| |\ \ | | |/
| | * Fixed bug #75186Nikita Popov2019-05-091-21/+20
| | |
* | | Fixed bug #77951Nikita Popov2019-05-091-1/+2
| | | | | | | | | | | | | | | Treat singleton references as non-references in ReflectionReference and return null for them.
* | | Use fast zpp for ReflectionClass constructorNikita Popov2019-05-081-6/+6
| | | | | | | | | | | | | | | At this point zpp overhead makes up a significant part of this function.
* | | Optimize $name/$class property population in reflectionNikita Popov2019-05-081-102/+64
| | | | | | | | | | | | | | | Instead of going through write_property, directly assign to the respective property slot.
* | | Merge branch 'PHP-7.3' into PHP-7.4Nikita Popov2019-04-151-0/+8
|\ \ \ | |/ /
| * | Merge branch 'PHP-7.2' into PHP-7.3Nikita Popov2019-04-151-0/+8
| |\ \ | | |/
| | * Fixed bug #77882Nikita Popov2019-04-151-0/+8
| | |
* | | Merge branch 'PHP-7.3' into PHP-7.4Nikita Popov2019-03-221-4/+14
|\ \ \ | |/ /
| * | Merge branch 'PHP-7.2' into PHP-7.3Nikita Popov2019-03-221-4/+14
| |\ \ | | |/
| | * Fixed bug #77772Nikita Popov2019-03-221-14/+12
| | |
| | * Trim trailing whitespace in source code filesPeter Kokot2018-10-131-5/+5
| | |
* | | Don't return inside _DO_THROW macroNikita Popov2019-02-281-14/+18
| | | | | | | | | | | | | | | Returning inside _DO_THROW() is kind of pointless if we are going to comment most uses with "this is gonna return".
* | | Fix #77673 ReflectionClass::getDefaultProperties returns spooky arrayJoe Watkins2019-02-271-1/+1
| | |
* | | Fix typos in code comments [skip ci]Tyson Andre2019-02-181-1/+1
| | |
* | | Remove bogus ctor checks in get_class_methods() + reflectionNikita Popov2019-02-141-22/+12
| | | | | | | | | | | | | | | | | | Contrary to the comments, these only hide constructors (old or new style) if they a) are inherited b) come from a trait and c) are aliased -- which doesn't make any sense at all.
* | | Fixed bug #77613 (method visibility change) (reverted ZEND_ACC_CTOR and ↵Dmitry Stogov2019-02-141-5/+5
| | | | | | | | | | | | ZEND_ACC_DTOR flags removal)
* | | Implement ReflectionReferenceNikita Popov2019-02-131-1/+123
| | | | | | | | | | | | RFC: https://wiki.php.net/rfc/reference_reflection
* | | Remove local variablesPeter Kokot2019-02-031-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly used by Vim and Emacs editors yet with recent changes the once working definitions don't work anymore in Vim without custom plugins or additional configuration. Neither are these settings synced across the PHP code base. A simpler and better approach is EditorConfig and fixing code using some code style fixing tools in the future instead. This patch also removes the so called modelines for Vim. Modelines allow Vim editor specifically to set some editor configuration such as syntax highlighting, indentation style and tab width to be set in the first line or the last 5 lines per file basis. Since the php test files have syntax highlighting already set in most editors properly and EditorConfig takes care of the indentation settings, this patch removes these as well for the Vim 6.0 and newer versions. With the removal of local variables for certain editors such as Emacs and Vim, the footer is also probably not needed anymore when creating extensions using ext_skel.php script. Additionally, Vim modelines for setting php syntax and some editor settings has been removed from some *.phpt files. All these are mostly not relevant for phpt files neither work properly in the middle of the file.
* | | Remove yearly range from copyright noticeZeev Suraski2019-01-301-1/+1
| | |
* | | Revert removal of private __clone() methodsNikita Popov2019-01-141-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I thought these were redundant, because we already NULL out the clone_obj object handler. However, it turns out that reflection is using private __clone() to determine clonability (isCloneable) for the case where we only have a class, rather than an object. As such, removing these methods would be a BC break. This reverts commit e7131a4e9fa0acf8fc1e486b49851e71859ef5b8. This reverts commit 55bd88ce0d1bf461546d5d0b40920491d566ed48.
* | | Implement typed propertiesNikita Popov2019-01-111-6/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwei9@hotmail.com> Co-authored-by: Joe Watkins <krakjoe@php.net> Co-authored-by: Dmitry Stogov <dmitry@zend.com>
* | | Fix some sign-related issues in comparisonsjvoisin2019-01-091-1/+1
| | |
* | | Remove unnecessary uses of object_and_properties_initNikita Popov2019-01-071-1/+1
| | | | | | | | | | | | Use object_init_ex instead if the properties are NULL.
* | | Remove redundant __clone() methods from ReflectionNikita Popov2018-11-261-16/+0
| | | | | | | | | | | | | | | | | | Reflection classes already use NULLed clone_obj to signal that they cannot be cloned, so it's not necessary to additionally declare a throwing __clone() method.
* | | Use ZEND_THIS macro to hide implementation details in extensions code.Dmitry Stogov2018-11-151-35/+35
| | |
* | | Replace getThis() by EX(This), when additional check is not necessary.Dmitry Stogov2018-11-141-35/+35
| | |
* | | Immutable clases and op_arrays.Dmitry Stogov2018-10-171-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit cd0c36c3f943849e5b97a8dbe2dd029fbeab3df9 Merge: 4740dabb84 ad6738e886 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 14:43:38 2018 +0300 Merge branch 'master' into immutable * master: Remove the "auto" encoding Fixed bug #77025 Add vtbls for EUC-TW encoding commit 4740dabb843c6d4f7f866b4a2456073c9eaf4c77 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 14:12:28 2018 +0300 Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_ptr fields in immutable classes. commit ad7a78b253be970db70c2251e66f9297d8e7f829 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:46:30 2018 +0300 Added comment commit 0276ea51875bab37be01a4dc5e5a047c5698c571 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:42:43 2018 +0300 Added type cast commit c63fc5d5f19c58498108d1698055b2b442227eb3 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:36:51 2018 +0300 Moved static class members initialization into the proper place. commit b945548e9306b1826c881918858b5e5aa3eb3002 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:21:03 2018 +0300 Removed redundand assertion commit d5a41088401814c829847db212488f8aae39bcd2 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:19:13 2018 +0300 Removed duplicate code commit 8dadca8864e66de70a24bdf1181bcf7dd8fb27d7 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 11:05:43 2018 +0300 Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_OFFSET2PTR() and ZEND_MAP_PTR_PTR2OFFSET() macros. commit 9ef07c88bd76801e2d4fbfeab3ebfd6e6a67ac5f Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 10:48:29 2018 +0300 typo commit a06f0f3d3aba53e766046221ee44fb9720389ecc Merge: 94099586ec 3412345ffe Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Oct 17 10:47:07 2018 +0300 Merge branch 'master' into immutable * master: Remove unused variable makefile_am_files Classify object handlers are required/optional Add support for getting SKIP_TAGSTART and SKIP_WHITE options Remove some obsolete config_vars.mk occurrences Remove bsd_converted from .gitignore Remove configuration parser and scanners ignores Remove obsolete buildconf.stamp from .gitignore [ci skip] Add magicdata.patch exception to .gitignore Remove outdated ext/spl/examples items from .gitignore Remove unused test.inc in ext/iconv/tests commit 94099586ec599117581ca01c15b1f6c5f749e23a Author: Dmitry Stogov <dmitry@zend.com> Date: Mon Oct 15 23:34:01 2018 +0300 Immutable clases and op_arrays