Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/Forms/Container.php
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,7 +36,7 @@ class Container extends Nette\ComponentModel\Container implements \ArrayAccess
public array $onValidate = [];
protected ?ControlGroup $currentGroup = null;

/** @var array<string, callable(static): mixed> */
/** @var array<string, callable(static, never, never, never, never, never, never, never, never, never): mixed> */
private static array $extMethods = [];
private ?bool $validated = false;
private ?string $mappedType = null;
Expand DownExpand Up@@ -626,14 +626,15 @@ public function addContainer(string|int $name): self
public function __call(string $name, array $args)
{
if (isset(self::$extMethods[$name])) {
/** @var never[] $args */
return (self::$extMethods[$name])($this, ...$args);
}

Nette\Utils\ObjectHelpers::strictCall(static::class, $name);
}


/** @param callable(static): mixed $callback */
/** @param callable(static, never, never, never, never, never, never, never, never, never): mixed $callback */
public static function extensionMethod(string $name, callable $callback): void
{
if (str_contains($name, '::')) { // back compatibility
Expand Down
5 changes: 3 additions & 2 deletions src/Forms/Controls/BaseControl.php
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,7 +50,7 @@ abstract class BaseControl extends Nette\ComponentModel\Component implements Con
/** @var bool|bool[] */
protected bool|array $disabled = false;

/** @var array<string, array<class-string, callable(static): mixed>> */
/** @var array<string, array<class-string, callable(static, never, never, never, never, never, never, never, never, never): mixed>> */
private static array $extMethods = [];
private string|Stringable|null $caption;

Expand DownExpand Up@@ -566,6 +566,7 @@ public function __call(string $name, array $args)
$class = static::class;
do {
if (isset(self::$extMethods[$name][$class])) {
/** @var never[] $args */
return (self::$extMethods[$name][$class])($this, ...$args);
}

Expand All@@ -576,7 +577,7 @@ public function __call(string $name, array $args)
}


/** @param callable(static): mixed $callback */
/** @param callable(static, never, never, never, never, never, never, never, never, never): mixed $callback */
public static function extensionMethod(string $name, callable $callback): void
{
if (str_contains($name, '::')) { // back compatibility
Expand Down
Loading