catch (\Exception
$e) { throw new NotInstantiableTypeException($class,
$e);
} } } if (null ===
$cloneable) { if (($proto instanceof \Reflector ||
$proto instanceof \ReflectionGenerator ||
$proto instanceof \ReflectionType ||
$proto instanceof \IteratorIterator ||
$proto instanceof \RecursiveIteratorIterator
) && (!
$proto instanceof \Serializable && !
method_exists($proto, '__wakeup'
) && !
method_exists($class, '__unserialize'
))) { throw new NotInstantiableTypeException($class);
} $cloneable =
$reflector->
isCloneable() && !
$reflector->
hasMethod('__clone'
);
} self::
$cloneable[$class] =
$cloneable;
self::
$instantiableWithoutConstructor[$class] =
$instantiableWithoutConstructor;
self::
$prototypes[$class] =
$proto;
if ($proto instanceof \Throwable
) { static $setTrace;
if (null ===
$setTrace) { $setTrace =
[