--- /dev/null
+Insertion of a nullable node
+-----
+<?php
+
+// TODO: The result spacing isn't always optimal. We may want to skip whitespace in some cases.
+
+function
+foo(
+$x,
+&$y
+)
+{}
+
+$foo
+[
+];
+
+[
+ $value
+];
+
+function
+()
+{};
+
+$x
+?
+:
+$y;
+
+yield
+$v ;
+yield ;
+
+break
+;
+continue
+;
+return
+;
+
+class
+X
+{
+ public
+ function y()
+ {}
+
+ private
+ $x
+ ;
+}
+
+foreach (
+ $x
+ as
+ $y
+) {}
+
+static
+$var
+;
+
+try {
+} catch (X
+$y) {
+}
+
+if ($cond) { // Foo
+} elseif ($cond2) { // Bar
+}
+-----
+$stmts[0]->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_([]);
+-----
+<?php
+
+// TODO: The result spacing isn't always optimal. We may want to skip whitespace in some cases.
+
+function
+foo(
+int $x,
+array &$y = null
+) : Foo
+{}
+
+$foo
+[$a
+];
+
+[
+ 'X' => $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 {
+}
+-----
+<?php
+
+namespace
+{ echo 42; }
+-----
+$stmts[0]->name = new Node\Name('Foo');
+-----
+<?php
+
+namespace Foo
+{ echo 42; }
\ No newline at end of file