[ ' [ '$worked' => 'bool', ], ], 'doWhileUndefinedVar' => [ ' [ ' [ 'a = rand(0, 1) ? new A : null; } } function takesA(A $a): void {} $a = new A(); do { takesA($a); $a = $a->a; } while ($a);', 'assertions' => [ '$a' => 'null', ], ], 'doWhileWithMethodCall' => [ 'getParent(); } while ($a);', 'assertions' => [ '$a' => 'null', ], ], 'doWhileFirstGood' => [ ' 0; } while (!$done);', ], 'doWhileWithIfException' => [ 'parent === null) { throw new \Exception("bad"); } $a = $a->parent; } while (rand(0,1)); } }', ], 'doWhileWithIfExceptionOutside' => [ 'parent === null) { throw new \Exception("bad"); } do { $a = $a->parent; } while ($a->parent && rand(0, 1)); } }', ], 'doWhileDefinedVar' => [ ' [ ' [ 'getParent(); } while ($a !== false);', ], 'doWithContinue' => [ ' [ '