Insertion of a nullable node ----- returnType = new Node\Name('Foo'); $stmts[0]->params[0]->type = new Node\Identifier('int'); $stmts[0]->params[1]->type = new Node\Identifier('array'); $stmts[0]->params[1]->default = new Expr\ConstFetch(new Node\Name('null')); $stmts[1]->expr->dim = new Expr\Variable('a'); $stmts[2]->expr->items[0]->key = new Scalar\String_('X'); $stmts[3]->expr->returnType = new Node\Name('Bar'); $stmts[4]->expr->if = new Expr\Variable('z'); $stmts[5]->expr->key = new Expr\Variable('k'); $stmts[6]->expr->value = new Expr\Variable('v'); $stmts[7]->num = new Scalar\LNumber(2); $stmts[8]->num = new Scalar\LNumber(2); $stmts[9]->expr = new Expr\Variable('x'); $stmts[10]->extends = new Node\Name\FullyQualified('Bar'); $stmts[10]->stmts[0]->returnType = new Node\Name('Y'); $stmts[10]->stmts[1]->props[0]->default = new Scalar\DNumber(42.0); $stmts[11]->keyVar = new Expr\Variable('z'); $stmts[12]->vars[0]->default = new Scalar\String_('abc'); $stmts[13]->finally = new Stmt\Finally_([]); $stmts[14]->else = new Stmt\Else_([]); ----- $value ]; function () : Bar {}; $x ? $z : $y; yield $k => $v ; yield $v ; break 2 ; continue 2 ; return $x ; class X extends \Bar { public function y() : Y {} private $x = 42.0 ; } foreach ( $x as $z => $y ) {} static $var = 'abc' ; try { } catch (X $y) { } finally { } if ($cond) { // Foo } elseif ($cond2) { // Bar } else { } ----- name = new Node\Name('Foo'); -----