Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / psy / psysh / src / Util / Mirror.php
index 97eb68057a23a6cf33d193eff98a08f7fb40b4e4..09c0b5b9aff7241cb3ebd91bafa81d87e3c8c6aa 100644 (file)
@@ -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 @@ class Mirror
      */
     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 @@ class Mirror
         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)) {
@@ -60,10 +65,10 @@ class Mirror
         } elseif ($filter & self::STATIC_PROPERTY && $class->hasProperty($member) && $class->getProperty($member)->isStatic()) {
             return $class->getProperty($member);
         } else {
-            throw new RuntimeException(sprintf(
+            throw new RuntimeException(\sprintf(
                 'Unknown member %s on class %s',
                 $member,
-                is_object($value) ? get_class($value) : $value
+                \is_object($value) ? \get_class($value) : $value
             ));
         }
     }
@@ -79,13 +84,13 @@ class Mirror
      */
     private static function getClass($value)
     {
-        if (is_object($value)) {
+        if (\is_object($value)) {
             return new \ReflectionObject($value);
         }
 
-        if (!is_string($value)) {
+        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);
         }