From 2ff499f55a8ca2c0af71d0a27b16f862bf6aeb2b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 8 Oct 2025 11:15:33 +0200 Subject: [PATCH 1/3] add ContaintsStmts interface to mark stmt classes with nested stmts inside --- lib/PhpParser/Node/ContainsStmts.php | 11 +++++++++++ lib/PhpParser/Node/Expr/Closure.php | 2 +- lib/PhpParser/Node/Stmt/Block.php | 3 ++- lib/PhpParser/Node/Stmt/Case_.php | 2 +- lib/PhpParser/Node/Stmt/Catch_.php | 2 +- lib/PhpParser/Node/Stmt/Do_.php | 2 +- lib/PhpParser/Node/Stmt/ElseIf_.php | 2 +- lib/PhpParser/Node/Stmt/Else_.php | 2 +- lib/PhpParser/Node/Stmt/Finally_.php | 2 +- lib/PhpParser/Node/Stmt/For_.php | 2 +- lib/PhpParser/Node/Stmt/Foreach_.php | 2 +- lib/PhpParser/Node/Stmt/Function_.php | 2 +- lib/PhpParser/Node/Stmt/If_.php | 2 +- lib/PhpParser/Node/Stmt/Namespace_.php | 2 +- lib/PhpParser/Node/Stmt/TryCatch.php | 2 +- lib/PhpParser/Node/Stmt/While_.php | 2 +- 16 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 lib/PhpParser/Node/ContainsStmts.php diff --git a/lib/PhpParser/Node/ContainsStmts.php b/lib/PhpParser/Node/ContainsStmts.php new file mode 100644 index 0000000000..8e553f56b4 --- /dev/null +++ b/lib/PhpParser/Node/ContainsStmts.php @@ -0,0 +1,11 @@ + Date: Wed, 22 Oct 2025 11:57:38 +0200 Subject: [PATCH 2/3] add @property to ContaintsStmts, to allow working with public property --- lib/PhpParser/Node/ContainsStmts.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/PhpParser/Node/ContainsStmts.php b/lib/PhpParser/Node/ContainsStmts.php index 8e553f56b4..937b24592c 100644 --- a/lib/PhpParser/Node/ContainsStmts.php +++ b/lib/PhpParser/Node/ContainsStmts.php @@ -5,7 +5,7 @@ namespace PhpParser\Node; /** - * @property-read Stmt[] $stmts + * @property Stmt[]|null $stmts */ interface ContainsStmts extends \PhpParser\Node { } From a2c1f503e9b6858cd5b406f49272511245607f3b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 27 Oct 2025 00:48:42 +0100 Subject: [PATCH 3/3] add to class method as well --- lib/PhpParser/Node/Stmt/ClassMethod.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/PhpParser/Node/Stmt/ClassMethod.php b/lib/PhpParser/Node/Stmt/ClassMethod.php index 59c0519ea6..40bc966335 100644 --- a/lib/PhpParser/Node/Stmt/ClassMethod.php +++ b/lib/PhpParser/Node/Stmt/ClassMethod.php @@ -6,7 +6,7 @@ use PhpParser\Node; use PhpParser\Node\FunctionLike; -class ClassMethod extends Node\Stmt implements FunctionLike { +class ClassMethod extends Node\Stmt implements FunctionLike, Node\ContainsStmts { /** @var int Flags */ public int $flags; /** @var bool Whether to return by reference */