Commit Graph
326 Commits
Author SHA1 Message Date
Nikita Popov f70fb05138 Don't mark ReflectionType::__toString() as deprecated for now 2016-09-28 19:21:53 +02:00
Nikita Popov bf907b9961 Revert ReflectionType::__toString() behavior + deprecate 2016-09-28 19:21:51 +02:00
Davey Shafik 12ee17d5e0 Implement \ArgumentCountError exception 2016-08-30 19:35:56 -07:00
Levi Morrison f4e68a3968 Revert "Do not prepend ? on nullables in ReflectionType::__toString()"
This reverts commit 8855a2ce76.
2016-08-23 09:43:31 -06:00
Nikita Popov 906456c410 call_user_func(_array): Don't abort on reference warning
Change zend_call_function() to not abort the call if a non-reference
is passed to a reference argument. The usual warning will still be
thrown, but the call will proceed as usual.
2016-08-23 10:29:15 +03:00
Aaron Piotrowski 8855a2ce76 Do not prepend ? on nullables in ReflectionType::__toString()
Better BC with 7.0.
2016-08-21 00:12:47 -05:00
Aaron Piotrowski c9ee0cb202 Revert "Append \ to class name returned from ReflectionType::__toString()"
This reverts commit 20fdd47921.
2016-08-20 23:26:01 -05:00
Aaron Piotrowski 20fdd47921 Append \ to class name returned from ReflectionType::__toString() 2016-08-16 11:28:33 -05:00
Aaron Piotrowski 622d2f41d1 ReflectionType improvements
Added ReflectionNamedType and updated ReflectionType::__toString()
2016-08-11 12:19:33 +02:00
Christoph M. Becker f706897f33 Implement #38992: invoke() and invokeArgs() static method calls should match
We don't want ReflectionMethod::invoke() to simply ignore its first argument,
if the method to invoke is a static method. Instead we match its ZPP with
that of ReflectionMethod::invokeArgs(). Furthermore, we apply the DRY
principle by factoring out the code to a common helper function to prevent
inadvertent future divergence of the implementations of both methods.

As can be seen from the necessity to adapt some test cases, this causes a
BC break for some pathological cases. Therefore we apply this patch to PHP
7.1 only, which is still in beta phase.
2016-08-08 01:43:03 +02:00
Xinchen Hui a3a797dbd5 Fixed bug #72661 (ReflectionType::__toString crashes with iterable) 2016-07-24 11:01:19 +08:00
Nikita Popov 981b94e0cf Merge branch 'PHP-7.0' 2016-07-13 21:52:40 +02:00
Nikita Popov 57c9983619 Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	ext/reflection/php_reflection.c
2016-07-13 21:48:05 +02:00
nikita2206 eb190b4e91 fix: bug72222 for PHP-5.6 reflection export of array consts 2016-07-13 21:39:55 +02:00
Dmitry Stogov ff363e2e7c Implemented RFC: Replace "Missing argument" warning with "Too few arguments" exception
Squashed commit of the following:

commit 8b45fa2acb8cd92542a39e1e4720fe1f4fabc26c
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Jun 16 01:52:50 2016 +0300

    Separate slow path of ZEND_RECV into a cold function.

commit 9e18895ee59c64c93a96b1ba3061355c4663e962
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed Jun 15 23:26:28 2016 +0300

    Required argument can't be IS_UNDEF anymore.

commit 662db66e3943d4455c65e4f987bb54abf724ecb2
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue May 31 17:14:50 2016 +0300

    Replace "Missing argument" warning by "Too few arguments" exception.
2016-06-16 02:32:02 +03:00
Dmitry Stogov a9512af810 Implemented RFC: Fix inconsistent behavior of $this variable
Squashed commit of the following:

commit bdd3b6895c3ce3eacfcf7d4bf4feb8dfa61801fd
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Jun 16 00:19:42 2016 +0300

    Fixed GOTO VM

commit 2f1d7c8b89ce821086d357cf65f629f040a85c03
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed Jun 15 21:01:57 2016 +0300

    Removed unused variable

commit cf749c42b0b1919f70b1e7d6dcbfff76899506af
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed Jun 15 19:06:16 2016 +0300

    Protection from $this reassign through mb_parse_str()

commit 59a9a6c83c66b666971e57f1173b33a422166efd
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed Jun 15 18:14:50 2016 +0300

    Added type inference rule for FETCH_THIS opcode

commit 73f8d14a856f14a461430b3c7534ab2ce870cbf6
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed Jun 15 18:11:18 2016 +0300

    Restored PHP-7 behavior of isset($this->foo).
    It throws exception if not in object context.
    Removed useless opcode handlers.

commit fa0881381e8ae97e022ae5d1ec0851c952f33c82
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue May 31 12:25:47 2016 +0300

    Changed "Notice: Undefined variable: this" into "Exception: Using $this when not in object context".

commit e32cc528c0f2c97963d8ec83eff0269f1f45af18
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue May 24 02:02:43 2016 +0300

    Throw exception on attempt to re-assign $this through extract() and parse_str().

commit 41f1531b52113ec8a4c208aa6b9ef50f1386bb3f
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon May 23 22:18:36 2016 +0300

    Fixed inconsistent $this behavior
2016-06-16 02:30:23 +03:00
Joe Watkins 3684d41172 fix #72209 (ReflectionProperty::getValue() doesn't fail if object doesn't match type) 2016-05-14 06:28:11 +01:00
Nikita Popov 20560da118 Merge branch 'PHP-7.0'
Conflicts:
	ext/reflection/php_reflection.c
2016-05-10 12:17:54 +02:00
Nikita Popov a1ed4ab3ca Fixed bug #72174
Also fixes a memory leak if ::getValue() is used with __get().
2016-05-10 12:13:10 +02:00
Nikita Popov 4b0f9586db Add missing update_constants in ReflectionClassConstant
Also fix indentation of __toString().
2016-05-02 11:43:01 +02:00
Nikita Popov d9f0c8429d Merge branch 'PHP-7.0' 2016-03-11 22:28:50 +01:00
Grigorii Sokolik ccc5150f15 Fix bug #71767 2016-03-11 22:27:48 +01:00
marcosptf 625345f58c Update ReflectionClass_isArray.phpt 2016-02-05 13:50:06 -02:00
marcosptf 2c7341ca16 test to function ReflectionParameter::isArray
was created a new test uncovered yet!
:-)
2016-02-05 12:21:10 -02:00
Andrea Faulds 1b36037689 Test for void 2016-01-28 18:07:45 +00:00
Andrea Faulds 8412de9da5 Support void return type in reflection 2016-01-28 18:01:48 +00:00
Dmitry Stogov a75c195000 Implemented the RFC Support Class Constant Visibility.
Squashed commit of the following:

commit f11ca0e7a57793fa0e3e7f6d451720e6c42bb0b9
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Dec 8 12:38:42 2015 +0300

    Fixed test expectation

commit 211f873f542504d0a0f72b6b5cb23908a1c99a2d
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Dec 8 12:28:38 2015 +0300

    Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags

commit 51deab84b2cdbf9cdb1a838cf33b2ee45c61748b
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon Dec 7 11:18:55 2015 +0300

    Fixed issues found by Nikita

commit 544dbd5b47e40d38a8ccb96bc5583e9cb7fdd723
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Sat Dec 5 02:41:05 2015 +0300

    Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility
    @reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.
2015-12-08 12:40:42 +03:00
Xinchen Hui 3ae3341533 Fixed bug #71018 (ReflectionProperty::setValue() behavior changed) 2015-12-04 11:52:08 +08:00
Xinchen Hui b0f472b3b2 Fixed test 2015-11-27 11:42:30 +08:00
Xinchen Hui 6cb6c04499 Fixed bug #70982 (setStaticPropertyValue behaviors inconsistently with 5.6) 2015-11-27 11:32:38 +08:00
Xinchen Hui e637ead6ed Merge branch 'PHP-5.6' into PHP-7.0 2015-11-24 13:45:32 +08:00
Xinchen Hui e6b46dc2ff Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number of parameters) 2015-11-24 13:45:16 +08:00
Xinchen Hui 8c51578c81 Merge branch 'PHP-5.6' into PHP-7.0 2015-11-23 18:48:51 +08:00
Xinchen Hui b9845e5006 Add bug #70957 and #70958 releated test in refection 2015-11-23 18:48:21 +08:00
James Titcumb bb55ac6279 Fixed typo in reflection phpt 2015-11-07 22:58:56 -08:00
Xinchen Hui 534856c98a Move the tests to proper place 2015-10-14 10:26:02 +08:00
Márcio Almada ddb6d7801e Fix bug #70650 2015-10-07 16:25:59 +02:00
marcosptf 519016096f Add test for ReflectionMethod::getPrototype_basic() 2015-09-02 00:28:46 +02:00
Bob Weinand 5ece3ec71c Fix bogus traces with ReflectionGenerator::getTrace() 2015-08-20 23:24:28 +02:00
Nikita Popov 3c33854e7c Don't leak generator cycle in ReflectionGenerator test
This is tracked by bug #69989.
2015-07-03 19:33:28 +02:00
Anatol Belski 269acaa363 Merge branch 'pull-request/1284'
* pull-request/1284:
  Rename interface macros
  Fix typo in UPGRADING
  Move definition of Throwable to zend_exceptions.h/c
  Check for zend_ce_throwable instead
  Fix some missed tests
  Add Throwable tests
  Fix previous exception type check
  Updated UPGRADING with RFC link
  Changed AssertionException to AssertionError
  Update exception error messages
  Throwable method signatures.
  Update exception names in tests after formatting changes.
  Merge exception formatting changes.
  Make zend_get_exception_base static.
  Fix a few missed tests.
  Fix handler double copy.
  Updated tests to reflect exception class changes.
  Remodel exceptions based on Throwable interface
2015-06-17 21:55:03 +02:00
Dmitry Stogov ae88a243e4 Rmoved opcache.load_comments. 2015-06-15 14:01:26 +03:00
Aaron Piotrowski 482985ca38 Changed AssertionException to AssertionError 2015-06-14 23:52:39 -05:00
Aaron Piotrowski 110e0a5a2c Merge branch 'master' into throwable-interface
# Conflicts:
#	Zend/zend_language_scanner.c
#	Zend/zend_language_scanner.l
#	ext/simplexml/tests/SimpleXMLElement_xpath.phpt
2015-06-14 18:53:11 -05:00
Matteo Beccati ec281fef48 Reflection support for type hints and return types 2015-06-08 08:46:30 +02:00
Sara Golemon cf8898fbd5 Merge remote-tracking branch 'pollita/reflection.typehint'
Conflicts:
	ext/reflection/php_reflection.c
	ext/reflection/tests/ReflectionExtension_getClasses_basic.phpt
2015-06-08 08:33:32 +02:00
Aaron Piotrowski e97d5fab35 Update exception names in tests after formatting changes. 2015-05-17 17:31:43 -05:00
Aaron Piotrowski fb7206e452 Merge branch 'master' into throwable-interface 2015-05-17 16:15:35 -05:00
Nikita Popov 440481fb3e Display TypeExceptions like normal exceptions
We currently don't show the argument at which the error actually
occured in the trace - should probably either add it or don't
display args on incomplete frames altogether, otherwise this'll
probably be confusing.
2015-05-17 19:54:12 +02:00
Nikita Popov 3ae995f03c Tweak uncaught exception message display
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.
2015-05-17 18:47:06 +02:00