Skip to content

Commit d641cb3

Browse files
committed
Helpers::dump() throws exception for closures
1 parent 843396e commit d641cb3

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/PhpGenerator/Helpers.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ private static function _dump(& $var, $level = 0)
9393
$var = serialize($var);
9494
return 'unserialize(' . self::_dump($var, $level) . ')';
9595

96+
} elseif ($var instanceof \Closure) {
97+
throw new Nette\InvalidArgumentException('Cannot dump closure.');
98+
9699
} elseif (is_object($var)) {
97100
$arr = (array) $var;
98101
$space = str_repeat("\t", $level);

tests/PhpGenerator/Helpers.dump().phpt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,7 @@ class Test3 implements Serializable
8383

8484
Assert::same('unserialize(\'C:5:"Test3":0:{}\')', Helpers::dump(new Test3));
8585
Assert::equal(new Test3, eval('return ' . Helpers::dump(new Test3) . ';'));
86+
87+
Assert::exception(function () {
88+
Helpers::dump(function () {});
89+
}, 'Nette\InvalidArgumentException', 'Cannot dump closure.');

0 commit comments

Comments
 (0)