annotate vendor/nikic/php-parser/test/code/formatPreservation/insertionOfNullable.test @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 5fb285c0d0e3
children
rev   line source
Chris@13 1 Insertion of a nullable node
Chris@13 2 -----
Chris@13 3 <?php
Chris@13 4
Chris@13 5 // TODO: The result spacing isn't always optimal. We may want to skip whitespace in some cases.
Chris@13 6
Chris@13 7 function
Chris@13 8 foo(
Chris@13 9 $x,
Chris@13 10 &$y
Chris@13 11 )
Chris@13 12 {}
Chris@13 13
Chris@13 14 $foo
Chris@13 15 [
Chris@13 16 ];
Chris@13 17
Chris@13 18 [
Chris@13 19 $value
Chris@13 20 ];
Chris@13 21
Chris@13 22 function
Chris@13 23 ()
Chris@13 24 {};
Chris@13 25
Chris@13 26 $x
Chris@13 27 ?
Chris@13 28 :
Chris@13 29 $y;
Chris@13 30
Chris@13 31 yield
Chris@13 32 $v ;
Chris@13 33 yield ;
Chris@13 34
Chris@13 35 break
Chris@13 36 ;
Chris@13 37 continue
Chris@13 38 ;
Chris@13 39 return
Chris@13 40 ;
Chris@13 41
Chris@13 42 class
Chris@13 43 X
Chris@13 44 {
Chris@13 45 public
Chris@13 46 function y()
Chris@13 47 {}
Chris@13 48
Chris@13 49 private
Chris@13 50 $x
Chris@13 51 ;
Chris@13 52 }
Chris@13 53
Chris@13 54 foreach (
Chris@13 55 $x
Chris@13 56 as
Chris@13 57 $y
Chris@13 58 ) {}
Chris@13 59
Chris@13 60 static
Chris@13 61 $var
Chris@13 62 ;
Chris@13 63
Chris@13 64 try {
Chris@13 65 } catch (X
Chris@13 66 $y) {
Chris@13 67 }
Chris@13 68
Chris@13 69 if ($cond) { // Foo
Chris@13 70 } elseif ($cond2) { // Bar
Chris@13 71 }
Chris@13 72 -----
Chris@13 73 $stmts[0]->returnType = new Node\Name('Foo');
Chris@13 74 $stmts[0]->params[0]->type = new Node\Identifier('int');
Chris@13 75 $stmts[0]->params[1]->type = new Node\Identifier('array');
Chris@13 76 $stmts[0]->params[1]->default = new Expr\ConstFetch(new Node\Name('null'));
Chris@13 77 $stmts[1]->expr->dim = new Expr\Variable('a');
Chris@13 78 $stmts[2]->expr->items[0]->key = new Scalar\String_('X');
Chris@13 79 $stmts[3]->expr->returnType = new Node\Name('Bar');
Chris@13 80 $stmts[4]->expr->if = new Expr\Variable('z');
Chris@13 81 $stmts[5]->expr->key = new Expr\Variable('k');
Chris@13 82 $stmts[6]->expr->value = new Expr\Variable('v');
Chris@13 83 $stmts[7]->num = new Scalar\LNumber(2);
Chris@13 84 $stmts[8]->num = new Scalar\LNumber(2);
Chris@13 85 $stmts[9]->expr = new Expr\Variable('x');
Chris@13 86 $stmts[10]->extends = new Node\Name\FullyQualified('Bar');
Chris@13 87 $stmts[10]->stmts[0]->returnType = new Node\Name('Y');
Chris@13 88 $stmts[10]->stmts[1]->props[0]->default = new Scalar\DNumber(42.0);
Chris@13 89 $stmts[11]->keyVar = new Expr\Variable('z');
Chris@13 90 $stmts[12]->vars[0]->default = new Scalar\String_('abc');
Chris@13 91 $stmts[13]->finally = new Stmt\Finally_([]);
Chris@13 92 $stmts[14]->else = new Stmt\Else_([]);
Chris@13 93 -----
Chris@13 94 <?php
Chris@13 95
Chris@13 96 // TODO: The result spacing isn't always optimal. We may want to skip whitespace in some cases.
Chris@13 97
Chris@13 98 function
Chris@13 99 foo(
Chris@13 100 int $x,
Chris@13 101 array &$y = null
Chris@13 102 ) : Foo
Chris@13 103 {}
Chris@13 104
Chris@13 105 $foo
Chris@13 106 [$a
Chris@13 107 ];
Chris@13 108
Chris@13 109 [
Chris@13 110 'X' => $value
Chris@13 111 ];
Chris@13 112
Chris@13 113 function
Chris@13 114 () : Bar
Chris@13 115 {};
Chris@13 116
Chris@13 117 $x
Chris@13 118 ? $z
Chris@13 119 :
Chris@13 120 $y;
Chris@13 121
Chris@13 122 yield
Chris@13 123 $k => $v ;
Chris@13 124 yield $v ;
Chris@13 125
Chris@13 126 break 2
Chris@13 127 ;
Chris@13 128 continue 2
Chris@13 129 ;
Chris@13 130 return $x
Chris@13 131 ;
Chris@13 132
Chris@13 133 class
Chris@13 134 X extends \Bar
Chris@13 135 {
Chris@13 136 public
Chris@13 137 function y() : Y
Chris@13 138 {}
Chris@13 139
Chris@13 140 private
Chris@13 141 $x = 42.0
Chris@13 142 ;
Chris@13 143 }
Chris@13 144
Chris@13 145 foreach (
Chris@13 146 $x
Chris@13 147 as
Chris@13 148 $z => $y
Chris@13 149 ) {}
Chris@13 150
Chris@13 151 static
Chris@13 152 $var = 'abc'
Chris@13 153 ;
Chris@13 154
Chris@13 155 try {
Chris@13 156 } catch (X
Chris@13 157 $y) {
Chris@13 158 } finally {
Chris@13 159 }
Chris@13 160
Chris@13 161 if ($cond) { // Foo
Chris@13 162 } elseif ($cond2) { // Bar
Chris@13 163 } else {
Chris@13 164 }
Chris@13 165 -----
Chris@13 166 <?php
Chris@13 167
Chris@13 168 namespace
Chris@13 169 { echo 42; }
Chris@13 170 -----
Chris@13 171 $stmts[0]->name = new Node\Name('Foo');
Chris@13 172 -----
Chris@13 173 <?php
Chris@13 174
Chris@13 175 namespace Foo
Chris@13 176 { echo 42; }