@@ 96-100 (lines=5) @@ | ||
93 | } |
|
94 | ||
95 | // Check iterable |
|
96 | if ($superTypeName === BuiltInTypes::ITERABLE) { |
|
97 | return $subTypeName === BuiltInTypes::ARRAY |
|
98 | || $subTypeName === \Traversable::class |
|
99 | || \is_subclass_of($subTypeName, \Traversable::class); |
|
100 | } |
|
101 | ||
102 | // Check callable |
|
103 | if ($superTypeName === BuiltInTypes::CALLABLE) { |
|
@@ 103-107 (lines=5) @@ | ||
100 | } |
|
101 | ||
102 | // Check callable |
|
103 | if ($superTypeName === BuiltInTypes::CALLABLE) { |
|
104 | return $subTypeName === \Closure::class |
|
105 | || \method_exists($subTypeName, '__invoke') |
|
106 | || \is_subclass_of($subTypeName, \Closure::class); |
|
107 | } |
|
108 | ||
109 | // If the super type is built-in, check whether casting rules can succeed |
|
110 | if (isset(self::$builtInTypes[$superTypeName])) { |