mirror of
https://github.com/pestphp/pest.git
synced 2026-09-05 14:23:34 +02:00
fix: keep TableExtractor table names as strings (#1794)
PHP coerces numeric-string array keys to ints, so collecting table names in $tables[$name] and returning array_keys() can yield ints. That breaks the declared list<string> and throws a TypeError in Recorder::linkTable(string). Standard SQL like substring(x FROM 1 FOR 10) is enough to trigger it, since the numeric operand matches the FROM pattern. Closes #1793 Co-authored-by: Danny de Wit <d.dewit@fenceweb.com>
This commit is contained in:
@@ -56,7 +56,7 @@ final class TableExtractor
|
||||
$tables[strtolower($name)] = true;
|
||||
}
|
||||
|
||||
$out = array_keys($tables);
|
||||
$out = array_map(strval(...), array_keys($tables));
|
||||
sort($out);
|
||||
|
||||
return $out;
|
||||
@@ -112,7 +112,7 @@ final class TableExtractor
|
||||
}
|
||||
}
|
||||
|
||||
$out = array_keys($tables);
|
||||
$out = array_map(strval(...), array_keys($tables));
|
||||
sort($out);
|
||||
|
||||
return $out;
|
||||
|
||||
Reference in New Issue
Block a user