diff vendor/psy/psysh/src/Util/Mirror.php @ 16:c2387f117808

Routine composer update
author Chris Cannam
date Tue, 10 Jul 2018 15:07:59 +0100
parents 5fb285c0d0e3
children 129ea1e6d783
line wrap: on
line diff
--- a/vendor/psy/psysh/src/Util/Mirror.php	Thu Apr 26 11:26:54 2018 +0100
+++ b/vendor/psy/psysh/src/Util/Mirror.php	Tue Jul 10 15:07:59 2018 +0100
@@ -12,7 +12,8 @@
 namespace Psy\Util;
 
 use Psy\Exception\RuntimeException;
-use Psy\Reflection\ReflectionConstant;
+use Psy\Reflection\ReflectionClassConstant;
+use Psy\Reflection\ReflectionConstant_;
 
 /**
  * A utility class for getting Reflectors.
@@ -43,8 +44,12 @@
      */
     public static function get($value, $member = null, $filter = 15)
     {
-        if ($member === null && is_string($value) && function_exists($value)) {
-            return new \ReflectionFunction($value);
+        if ($member === null && is_string($value)) {
+            if (function_exists($value)) {
+                return new \ReflectionFunction($value);
+            } elseif (defined($value) || ReflectionConstant_::isMagicConstant($value)) {
+                return new ReflectionConstant_($value);
+            }
         }
 
         $class = self::getClass($value);
@@ -52,7 +57,7 @@
         if ($member === null) {
             return $class;
         } elseif ($filter & self::CONSTANT && $class->hasConstant($member)) {
-            return new ReflectionConstant($class, $member);
+            return ReflectionClassConstant::create($value, $member);
         } elseif ($filter & self::METHOD && $class->hasMethod($member)) {
             return $class->getMethod($member);
         } elseif ($filter & self::PROPERTY && $class->hasProperty($member)) {
@@ -85,7 +90,7 @@
 
         if (!is_string($value)) {
             throw new \InvalidArgumentException('Mirror expects an object or class');
-        } elseif (!class_exists($value) && !interface_exists($value) && !(function_exists('trait_exists') && trait_exists($value))) {
+        } elseif (!class_exists($value) && !interface_exists($value) && !trait_exists($value)) {
             throw new \InvalidArgumentException('Unknown class or function: ' . $value);
         }