Skip to content

Commit

Permalink
Meta: ensure arrays with meaning-less keys are typed as lists
Browse files Browse the repository at this point in the history
  • Loading branch information
mabar committed Feb 16, 2025
1 parent b7c20be commit 30311a3
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 20 deletions.
18 changes: 9 additions & 9 deletions src/Meta/Compile/NodeCompileMeta.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@
abstract class NodeCompileMeta
{

/** @var array<int, CallbackCompileMeta> */
/** @var list<CallbackCompileMeta> */
private array $callbacks;

/** @var array<int, DocMeta> */
/** @var list<DocMeta> */
private array $docs;

/** @var array<int, ModifierCompileMeta> */
/** @var list<ModifierCompileMeta> */
private array $modifiers;

/**
* @param array<int, CallbackCompileMeta> $callbacks
* @param array<int, DocMeta> $docs
* @param array<int, ModifierCompileMeta> $modifiers
* @param list<CallbackCompileMeta> $callbacks
* @param list<DocMeta> $docs
* @param list<ModifierCompileMeta> $modifiers
*/
public function __construct(array $callbacks, array $docs, array $modifiers)
{
Expand All @@ -33,23 +33,23 @@ public function __construct(array $callbacks, array $docs, array $modifiers)
}

/**
* @return array<int, CallbackCompileMeta>
* @return list<CallbackCompileMeta>
*/
public function getCallbacks(): array
{
return $this->callbacks;
}

/**
* @return array<int, DocMeta>
* @return list<DocMeta>
*/
public function getDocs(): array
{
return $this->docs;
}

/**
* @return array<int, ModifierCompileMeta>
* @return list<ModifierCompileMeta>
*/
public function getModifiers(): array
{
Expand Down
6 changes: 3 additions & 3 deletions src/Meta/MetaResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ private function throwFieldMetaOutsideOfMappedObject(
/**
* @param ReflectionClass<MappedObject>|ReflectionProperty $reflector
* @param ReflectionClass<MappedObject> $classReflector
* @return array<class-string<Callback<Args>>, array<int, CallbackRuntimeMeta<Args>>>
* @return array<class-string<Callback<Args>>, list<CallbackRuntimeMeta<Args>>>
*/
private function resolveCallbacksMeta(
NodeCompileMeta $meta,
Expand All @@ -306,15 +306,15 @@ private function resolveCallbacksMeta(
): array
{
$array = [];
foreach ($meta->getCallbacks() as $key => $callback) {
foreach ($meta->getCallbacks() as $callback) {
$callbackMeta = $this->resolveCallbackMeta(
$callback,
$context,
$reflector,
$classReflector,
);

$array[$callbackMeta->type][$key] = $callbackMeta;
$array[$callbackMeta->type][] = $callbackMeta;
}

return $array;
Expand Down
6 changes: 3 additions & 3 deletions src/Meta/Runtime/NodeRuntimeMeta.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
abstract class NodeRuntimeMeta
{

/** @var array<class-string<Callback<Args>>, array<int, CallbackRuntimeMeta<Args>>> */
/** @var array<class-string<Callback<Args>>, list<CallbackRuntimeMeta<Args>>> */
public array $callbacks;

/** @var array<string, DocMeta> */
public array $docs;

/**
* @template T_ARGS of Args
* @param array<class-string<Callback<T_ARGS>>, array<int, CallbackRuntimeMeta<T_ARGS>>> $callbacks
* @param array<class-string<Callback<T_ARGS>>, list<CallbackRuntimeMeta<T_ARGS>>> $callbacks
* @param array<string, DocMeta> $docs
*/
public function __construct(array $callbacks, array $docs)
Expand All @@ -32,7 +32,7 @@ public function __construct(array $callbacks, array $docs)
}

/**
* @return array<int, CallbackRuntimeMeta<Args>>
* @return list<CallbackRuntimeMeta<Args>>
*/
public function getCallbacksByType(string $type): array
{
Expand Down
5 changes: 1 addition & 4 deletions src/Meta/Source/DefaultMetaSourceManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,14 @@
final class DefaultMetaSourceManager implements MetaSourceManager
{

/** @var array<MetaSource> */
/** @var list<MetaSource> */
private array $sources;

public function addSource(MetaSource $source): void
{
$this->sources[] = $source;
}

/**
* @return array<MetaSource>
*/
public function getAll(): array
{
return $this->sources;
Expand Down
2 changes: 1 addition & 1 deletion src/Meta/Source/MetaSourceManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ interface MetaSourceManager
{

/**
* @return array<MetaSource>
* @return list<MetaSource>
*/
public function getAll(): array;

Expand Down

0 comments on commit 30311a3

Please sign in to comment.