Merge pull request #410 from TysonAndre/fix-notices

Fix php 8.4 notices about implicitly nullable parameters
This commit is contained in:
Rob Lourens 2024-09-28 04:58:12 -07:00 коммит произвёл GitHub
Родитель 4fd2db98d6 45291ee33a
Коммит 457738cbec
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
6 изменённых файлов: 11 добавлений и 11 удалений

Просмотреть файл

@ -151,7 +151,7 @@ abstract class Node implements \JsonSerializable {
* @param callable|null $shouldDescendIntoChildrenFn
* @return \Generator|Node[]|Token[]
*/
public function getDescendantNodesAndTokens(callable $shouldDescendIntoChildrenFn = null) {
public function getDescendantNodesAndTokens(?callable $shouldDescendIntoChildrenFn = null) {
// TODO - write unit tests to prove invariants
// (concatenating all descendant Tokens should produce document, concatenating all Nodes should produce document)
foreach ($this->getChildNodesAndTokens() as $child) {
@ -176,7 +176,7 @@ abstract class Node implements \JsonSerializable {
* @param callable|null $shouldDescendIntoChildrenFn
* @return void
*/
public function walkDescendantNodesAndTokens(callable $callback, callable $shouldDescendIntoChildrenFn = null) {
public function walkDescendantNodesAndTokens(callable $callback, ?callable $shouldDescendIntoChildrenFn = null) {
// TODO - write unit tests to prove invariants
// (concatenating all descendant Tokens should produce document, concatenating all Nodes should produce document)
foreach (static::CHILD_NAMES as $name) {
@ -209,7 +209,7 @@ abstract class Node implements \JsonSerializable {
* @param callable|null $shouldDescendIntoChildrenFn
* @return \Generator|Node[]
*/
public function getDescendantNodes(callable $shouldDescendIntoChildrenFn = null) {
public function getDescendantNodes(?callable $shouldDescendIntoChildrenFn = null) {
foreach ($this->getChildNodes() as $child) {
yield $child;
if ($shouldDescendIntoChildrenFn === null || $shouldDescendIntoChildrenFn($child)) {
@ -223,7 +223,7 @@ abstract class Node implements \JsonSerializable {
* @param callable|null $shouldDescendIntoChildrenFn
* @return \Generator|Token[]
*/
public function getDescendantTokens(callable $shouldDescendIntoChildrenFn = null) {
public function getDescendantTokens(?callable $shouldDescendIntoChildrenFn = null) {
foreach ($this->getChildNodesAndTokens() as $child) {
if ($child instanceof Node) {
if ($shouldDescendIntoChildrenFn == null || $shouldDescendIntoChildrenFn($child)) {

Просмотреть файл

@ -175,7 +175,7 @@ class Parser {
* @param string $fileContents
* @return SourceFileNode
*/
public function parseSourceFile(string $fileContents, string $uri = null) : SourceFileNode {
public function parseSourceFile(string $fileContents, ?string $uri = null) : SourceFileNode {
$this->lexer = $this->makeLexer($fileContents);
$this->reset();
@ -1417,7 +1417,7 @@ class Parser {
case TokenKind::DollarOpenBraceToken:
case TokenKind::OpenBraceDollarToken:
$expression->children[] = $this->eat(TokenKind::DollarOpenBraceToken, TokenKind::OpenBraceDollarToken);
/**
/**
* @phpstan-ignore-next-line "Strict comparison using
* === between 403|404 and 408 will always evaluate to
* false" is wrong because those tokens were eaten above

Просмотреть файл

@ -42,7 +42,7 @@ class Token implements \JsonSerializable {
* @param string|null $document
* @return bool|null|string
*/
public function getText(string $document = null) {
public function getText(?string $document = null) {
if ($document === null) {
return null;
}

Просмотреть файл

@ -17,7 +17,7 @@ class LexicalGrammarTest extends TestCase {
private $expectedTokensFile;
private $tokens;
const FILE_PATTERN = __DIR__ . "/cases/lexical/*";
public function run(TestResult $result = null) : TestResult {
public function run(?TestResult $result = null) : TestResult {
if (!isset($GLOBALS["GIT_CHECKOUT_LEXER"])) {
$GLOBALS["GIT_CHECKOUT_LEXER"] = true;
exec("git -C " . dirname(self::FILE_PATTERN) . " checkout *.php.tokens");

Просмотреть файл

@ -19,7 +19,7 @@ class ParserGrammarTest extends TestCase {
private $expectedDiagnosticsFile;
private $tokens;
private $diagnostics;
public function run(TestResult $result = null) : TestResult {
public function run(?TestResult $result = null) : TestResult {
if (!isset($GLOBALS["GIT_CHECKOUT_PARSER"])) {
$GLOBALS["GIT_CHECKOUT_PARSER"] = true;
exec("git -C " . dirname(self::FILE_PATTERN) . " checkout *.php.tree *.php.diag");

Просмотреть файл

@ -7,8 +7,8 @@
//$testCases = array('C:\src\php-investigations\tolerant-php-parser\tests\..\php-langspec\tests\traits\traits.phpt');
$sep = DIRECTORY_SEPARATOR;
$testCases = glob(__DIR__ . "${sep}..${sep}php-langspec${sep}tests${sep}**${sep}*.phpt");
$outTestCaseDir = __DIR__ . "${sep}cases${sep}php-langspec${sep}";
$testCases = glob(__DIR__ . "{$sep}..{$sep}php-langspec{$sep}tests{$sep}**{$sep}*.phpt");
$outTestCaseDir = __DIR__ . "{$sep}cases{$sep}php-langspec{$sep}";
mkdir($outTestCaseDir);
file_put_contents($outTestCaseDir . "README.md", "Auto-generated from php/php-langspec tests");