1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
--TEST--
The class ast\Node\Decl no longer exists
--FILE--
<?php
require __DIR__ . '/../util.php';
$code = <<<'PHP'
<?php
/** A */
class A {
/** B */
const B = 0;
/** c */
public $c;
/** d */
function d() {}
}
/** E */
const E = 0;
/** f */
function f() {}
/** g */
function() {};
PHP;
$ast = ast\parse_code($code, $version=70);
var_dump(array_map('get_class', $ast->children));
echo ast_dump($ast) . "\n";
$ast = ast\parse_code($code, $version=50);
echo ast_dump($ast) . "\n";
?>
--EXPECTF--
array(4) {
[0]=>
string(8) "ast\Node"
[1]=>
string(8) "ast\Node"
[2]=>
string(8) "ast\Node"
[3]=>
string(8) "ast\Node"
}
AST_STMT_LIST
0: AST_CLASS
name: "A"
docComment: "/** A */"
extends: null
implements: null
stmts: AST_STMT_LIST
0: AST_CLASS_CONST_DECL
flags: MODIFIER_PUBLIC (%d)
0: AST_CONST_ELEM
name: "B"
value: 0
docComment: "/** B */"
1: AST_PROP_GROUP
flags: MODIFIER_PUBLIC (%d)
type: null
props: AST_PROP_DECL
0: AST_PROP_ELEM
name: "c"
default: null
docComment: "/** c */"
2: AST_METHOD
flags: MODIFIER_PUBLIC (%d)
name: "d"
docComment: "/** d */"
params: AST_PARAM_LIST
stmts: AST_STMT_LIST
returnType: null
__declId: 0
__declId: 1
1: AST_CONST_DECL
0: AST_CONST_ELEM
name: "E"
value: 0
docComment: "/** E */"
2: AST_FUNC_DECL
name: "f"
docComment: "/** f */"
params: AST_PARAM_LIST
stmts: AST_STMT_LIST
returnType: null
__declId: 2
3: AST_CLOSURE
name: "{closure}"
docComment: "/** g */"
params: AST_PARAM_LIST
uses: null
stmts: AST_STMT_LIST
returnType: null
__declId: 3
Deprecated: ast\parse_code(): Version 50 is deprecated in %sdecl_normalization.php on line 29
AST_STMT_LIST
0: AST_CLASS
name: "A"
docComment: "/** A */"
extends: null
implements: null
stmts: AST_STMT_LIST
0: AST_CLASS_CONST_DECL
flags: MODIFIER_PUBLIC (%d)
0: AST_CONST_ELEM
name: "B"
value: 0
docComment: "/** B */"
1: AST_PROP_DECL
flags: MODIFIER_PUBLIC (%d)
0: AST_PROP_ELEM
name: "c"
default: null
docComment: "/** c */"
2: AST_METHOD
flags: MODIFIER_PUBLIC (%d)
name: "d"
docComment: "/** d */"
params: AST_PARAM_LIST
uses: null
stmts: AST_STMT_LIST
returnType: null
__declId: 0
__declId: 1
1: AST_CONST_DECL
0: AST_CONST_ELEM
name: "E"
value: 0
docComment: "/** E */"
2: AST_FUNC_DECL
name: "f"
docComment: "/** f */"
params: AST_PARAM_LIST
uses: null
stmts: AST_STMT_LIST
returnType: null
__declId: 2
3: AST_CLOSURE
name: "{closure}"
docComment: "/** g */"
params: AST_PARAM_LIST
uses: null
stmts: AST_STMT_LIST
returnType: null
__declId: 3
|