@appthreat/atom 1.8.1 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/package.json +1 -1
  2. package/phpastgen.js +7 -1
  3. package/plugins/autoload.php +1 -1
  4. package/plugins/bin/atom +1 -1
  5. package/plugins/bin/atom.bat +1 -1
  6. package/plugins/composer/autoload_classmap.php +18 -18
  7. package/plugins/composer/autoload_real.php +4 -4
  8. package/plugins/composer/autoload_static.php +22 -22
  9. package/plugins/composer/installed.json +10 -12
  10. package/plugins/composer/installed.php +9 -9
  11. package/plugins/lib/io.appthreat.atom-1.8.2-classpath.jar +0 -0
  12. package/plugins/lib/{io.appthreat.atom-1.8.1.jar → io.appthreat.atom-1.8.2.jar} +0 -0
  13. package/plugins/lib/{io.appthreat.c2cpg_3-1.1.3.jar → io.appthreat.c2cpg_3-1.1.4.jar} +0 -0
  14. package/plugins/lib/{io.appthreat.dataflowengineoss_3-1.1.3.jar → io.appthreat.dataflowengineoss_3-1.1.4.jar} +0 -0
  15. package/plugins/lib/{io.appthreat.javasrc2cpg_3-1.1.3.jar → io.appthreat.javasrc2cpg_3-1.1.4.jar} +0 -0
  16. package/plugins/lib/{io.appthreat.jimple2cpg_3-1.1.3.jar → io.appthreat.jimple2cpg_3-1.1.4.jar} +0 -0
  17. package/plugins/lib/{io.appthreat.jssrc2cpg_3-1.1.3.jar → io.appthreat.jssrc2cpg_3-1.1.4.jar} +0 -0
  18. package/plugins/lib/{io.appthreat.php2atom_3-1.1.3.jar → io.appthreat.php2atom_3-1.1.4.jar} +0 -0
  19. package/plugins/lib/{io.appthreat.pysrc2cpg_3-1.1.3.jar → io.appthreat.pysrc2cpg_3-1.1.4.jar} +0 -0
  20. package/plugins/lib/{io.appthreat.semanticcpg_3-1.1.3.jar → io.appthreat.semanticcpg_3-1.1.4.jar} +0 -0
  21. package/plugins/lib/{io.appthreat.x2cpg_3-1.1.3.jar → io.appthreat.x2cpg_3-1.1.4.jar} +0 -0
  22. package/plugins/nikic/php-parser/README.md +12 -20
  23. package/plugins/nikic/php-parser/bin/php-parse +10 -11
  24. package/plugins/nikic/php-parser/composer.json +4 -6
  25. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +15 -17
  26. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +30 -35
  27. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +4 -11
  28. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +7 -9
  29. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +27 -26
  30. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +7 -7
  31. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +7 -7
  32. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +10 -11
  33. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +15 -16
  34. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +5 -5
  35. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +35 -16
  36. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +19 -19
  37. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +5 -6
  38. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +28 -25
  39. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +11 -16
  40. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +8 -8
  41. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +3 -2
  42. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +69 -45
  43. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +19 -17
  44. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +2 -1
  45. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +67 -35
  46. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +3 -3
  47. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +10 -15
  48. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +33 -24
  49. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +9 -6
  50. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +3 -2
  51. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +3 -2
  52. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +7 -11
  53. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +22 -36
  54. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +13 -20
  55. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +70 -55
  56. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +10 -15
  57. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +93 -68
  58. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +18 -11
  59. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +47 -0
  60. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +15 -10
  61. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +11 -12
  62. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +76 -0
  63. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +23 -0
  64. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +25 -19
  65. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +10 -6
  66. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +29 -22
  67. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +105 -0
  68. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +3 -3
  69. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +15 -10
  70. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +5 -6
  71. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +5 -10
  72. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +513 -69
  73. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +24 -23
  74. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +15 -13
  75. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +10 -9
  76. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +7 -5
  77. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +2 -1
  78. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +10 -9
  79. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +11 -10
  80. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +39 -1
  81. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +11 -11
  82. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +28 -33
  83. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +10 -9
  84. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +3 -2
  85. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +3 -2
  86. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +3 -2
  87. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +3 -2
  88. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +3 -2
  89. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +3 -2
  90. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +3 -2
  91. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +3 -2
  92. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +3 -2
  93. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +3 -2
  94. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +3 -2
  95. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +3 -2
  96. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +3 -2
  97. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +8 -7
  98. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +10 -9
  99. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +5 -4
  100. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +5 -4
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +5 -4
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +5 -4
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +5 -4
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +5 -4
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +5 -4
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +5 -4
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +5 -4
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +5 -4
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +5 -4
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +5 -4
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +5 -4
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +5 -4
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +5 -4
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +5 -4
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +5 -4
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +5 -4
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +5 -4
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +5 -4
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +5 -4
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +5 -4
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +5 -4
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +5 -4
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +5 -4
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +5 -4
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +5 -4
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +11 -8
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +8 -7
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +8 -7
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +7 -3
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +3 -2
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +3 -2
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +6 -5
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +3 -2
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +3 -2
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +3 -2
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +3 -2
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +6 -5
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +10 -10
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +8 -7
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +26 -33
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +32 -1
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +8 -7
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +8 -7
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +6 -5
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +8 -7
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +8 -7
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +11 -10
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +11 -10
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +14 -13
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +11 -11
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +8 -7
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +8 -12
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +7 -8
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +12 -12
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +11 -10
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +12 -12
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +10 -10
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +8 -7
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +8 -7
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +7 -6
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +8 -7
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +8 -7
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +10 -10
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +9 -9
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +13 -12
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +11 -11
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +13 -12
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +7 -6
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +8 -7
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +8 -7
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +7 -6
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +8 -7
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +11 -10
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +2 -1
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +8 -5
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +13 -13
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +9 -6
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +9 -8
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +9 -8
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +9 -8
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +56 -71
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +10 -11
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +22 -46
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +75 -1
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +29 -1
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +28 -1
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +78 -1
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +5 -4
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +5 -4
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +5 -4
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +5 -4
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +5 -4
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +5 -4
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +5 -4
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +5 -4
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +5 -4
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +26 -30
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +2 -1
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +9 -8
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +11 -10
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +12 -11
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +32 -24
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +13 -13
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +54 -47
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +89 -46
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +8 -7
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +9 -8
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +32 -1
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +12 -12
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +10 -9
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +8 -7
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +10 -9
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +8 -7
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +12 -11
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +13 -17
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +8 -7
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +8 -7
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +15 -19
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +17 -20
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +24 -28
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +8 -7
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +8 -7
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +14 -16
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +8 -7
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +15 -18
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +8 -7
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +10 -13
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +8 -7
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +12 -11
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +5 -4
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +37 -28
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +32 -1
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +9 -8
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +35 -1
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +8 -8
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +10 -9
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +30 -0
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +9 -8
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +13 -12
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +10 -9
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +4 -3
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +8 -10
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +12 -11
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +8 -7
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +50 -1
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +16 -16
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +10 -9
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +2 -1
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +8 -7
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +3 -2
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +2 -2
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +29 -24
  253. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +20 -20
  254. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +84 -168
  255. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +19 -28
  256. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +84 -71
  257. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +7 -4
  258. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +2 -1
  259. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +5 -4
  260. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +7 -6
  261. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +28 -30
  262. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +3 -2
  263. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +11 -8
  264. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +7 -59
  265. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +2 -1
  266. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +55 -0
  267. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +2682 -0
  268. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +1522 -1323
  269. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +148 -0
  270. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +3 -9
  271. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +252 -433
  272. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +49 -15
  273. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +335 -386
  274. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +438 -517
  275. package/plugins/lib/io.appthreat.atom-1.8.1-classpath.jar +0 -0
  276. package/plugins/nikic/php-parser/.php-cs-fixer.dist.php +0 -31
  277. package/plugins/nikic/php-parser/Makefile +0 -10
  278. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +0 -237
  279. package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +0 -69
  280. package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +0 -43
  281. package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +0 -36
  282. package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +0 -37
  283. package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +0 -32
  284. package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +0 -37
  285. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +0 -78
  286. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +0 -82
  287. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +0 -34
  288. package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +0 -39
  289. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +0 -29
  290. package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +0 -55
  291. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +0 -82
  292. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +0 -2717
  293. package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +0 -164
  294. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +0 -51
  295. package/plugins/nikic/php-parser/lib/PhpParser/Token.php +0 -18
  296. package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +0 -56
  297. package/plugins/nikic/php-parser/phpstan-baseline.neon +0 -236
  298. package/plugins/nikic/php-parser/phpstan.neon.dist +0 -8
@@ -2,14 +2,14 @@
2
2
 
3
3
  namespace PhpParser;
4
4
 
5
- abstract class NodeAbstract implements Node, \JsonSerializable {
6
- /** @var array<string, mixed> Attributes */
7
- protected array $attributes;
5
+ abstract class NodeAbstract implements Node, \JsonSerializable
6
+ {
7
+ protected $attributes;
8
8
 
9
9
  /**
10
10
  * Creates a Node.
11
11
  *
12
- * @param array<string, mixed> $attributes Array of attributes
12
+ * @param array $attributes Array of attributes
13
13
  */
14
14
  public function __construct(array $attributes = []) {
15
15
  $this->attributes = $attributes;
@@ -20,7 +20,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
20
20
  *
21
21
  * @return int Start line (or -1 if not available)
22
22
  */
23
- public function getLine(): int {
23
+ public function getLine() : int {
24
24
  return $this->attributes['startLine'] ?? -1;
25
25
  }
26
26
 
@@ -31,7 +31,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
31
31
  *
32
32
  * @return int Start line (or -1 if not available)
33
33
  */
34
- public function getStartLine(): int {
34
+ public function getStartLine() : int {
35
35
  return $this->attributes['startLine'] ?? -1;
36
36
  }
37
37
 
@@ -42,7 +42,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
42
42
  *
43
43
  * @return int End line (or -1 if not available)
44
44
  */
45
- public function getEndLine(): int {
45
+ public function getEndLine() : int {
46
46
  return $this->attributes['endLine'] ?? -1;
47
47
  }
48
48
 
@@ -55,7 +55,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
55
55
  *
56
56
  * @return int Token start position (or -1 if not available)
57
57
  */
58
- public function getStartTokenPos(): int {
58
+ public function getStartTokenPos() : int {
59
59
  return $this->attributes['startTokenPos'] ?? -1;
60
60
  }
61
61
 
@@ -68,7 +68,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
68
68
  *
69
69
  * @return int Token end position (or -1 if not available)
70
70
  */
71
- public function getEndTokenPos(): int {
71
+ public function getEndTokenPos() : int {
72
72
  return $this->attributes['endTokenPos'] ?? -1;
73
73
  }
74
74
 
@@ -79,7 +79,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
79
79
  *
80
80
  * @return int File start position (or -1 if not available)
81
81
  */
82
- public function getStartFilePos(): int {
82
+ public function getStartFilePos() : int {
83
83
  return $this->attributes['startFilePos'] ?? -1;
84
84
  }
85
85
 
@@ -90,7 +90,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
90
90
  *
91
91
  * @return int File end position (or -1 if not available)
92
92
  */
93
- public function getEndFilePos(): int {
93
+ public function getEndFilePos() : int {
94
94
  return $this->attributes['endFilePos'] ?? -1;
95
95
  }
96
96
 
@@ -101,7 +101,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
101
101
  *
102
102
  * @return Comment[]
103
103
  */
104
- public function getComments(): array {
104
+ public function getComments() : array {
105
105
  return $this->attributes['comments'] ?? [];
106
106
  }
107
107
 
@@ -110,7 +110,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
110
110
  *
111
111
  * @return null|Comment\Doc Doc comment object or null
112
112
  */
113
- public function getDocComment(): ?Comment\Doc {
113
+ public function getDocComment() {
114
114
  $comments = $this->getComments();
115
115
  for ($i = count($comments) - 1; $i >= 0; $i--) {
116
116
  $comment = $comments[$i];
@@ -129,7 +129,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
129
129
  *
130
130
  * @param Comment\Doc $docComment Doc comment to set
131
131
  */
132
- public function setDocComment(Comment\Doc $docComment): void {
132
+ public function setDocComment(Comment\Doc $docComment) {
133
133
  $comments = $this->getComments();
134
134
  for ($i = count($comments) - 1; $i >= 0; $i--) {
135
135
  if ($comments[$i] instanceof Comment\Doc) {
@@ -145,11 +145,11 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
145
145
  $this->setAttribute('comments', $comments);
146
146
  }
147
147
 
148
- public function setAttribute(string $key, $value): void {
148
+ public function setAttribute(string $key, $value) {
149
149
  $this->attributes[$key] = $value;
150
150
  }
151
151
 
152
- public function hasAttribute(string $key): bool {
152
+ public function hasAttribute(string $key) : bool {
153
153
  return array_key_exists($key, $this->attributes);
154
154
  }
155
155
 
@@ -161,18 +161,18 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
161
161
  return $default;
162
162
  }
163
163
 
164
- public function getAttributes(): array {
164
+ public function getAttributes() : array {
165
165
  return $this->attributes;
166
166
  }
167
167
 
168
- public function setAttributes(array $attributes): void {
168
+ public function setAttributes(array $attributes) {
169
169
  $this->attributes = $attributes;
170
170
  }
171
171
 
172
172
  /**
173
- * @return array<string, mixed>
173
+ * @return array
174
174
  */
175
- public function jsonSerialize(): array {
175
+ public function jsonSerialize() : array {
176
176
  return ['nodeType' => $this->getType()] + get_object_vars($this);
177
177
  }
178
178
  }
@@ -2,33 +2,17 @@
2
2
 
3
3
  namespace PhpParser;
4
4
 
5
- use PhpParser\Node\Expr\Array_;
6
5
  use PhpParser\Node\Expr\Include_;
7
- use PhpParser\Node\Expr\List_;
8
- use PhpParser\Node\Scalar\Int_;
9
- use PhpParser\Node\Scalar\InterpolatedString;
10
- use PhpParser\Node\Scalar\String_;
6
+ use PhpParser\Node\Stmt\Class_;
11
7
  use PhpParser\Node\Stmt\GroupUse;
12
8
  use PhpParser\Node\Stmt\Use_;
13
- use PhpParser\Node\UseItem;
9
+ use PhpParser\Node\Stmt\UseUse;
14
10
 
15
- class NodeDumper {
16
- private bool $dumpComments;
17
- private bool $dumpPositions;
18
- private bool $dumpOtherAttributes;
19
- private ?string $code;
20
- private string $res;
21
- private string $nl;
22
-
23
- private const IGNORE_ATTRIBUTES = [
24
- 'comments' => true,
25
- 'startLine' => true,
26
- 'endLine' => true,
27
- 'startFilePos' => true,
28
- 'endFilePos' => true,
29
- 'startTokenPos' => true,
30
- 'endTokenPos' => true,
31
- ];
11
+ class NodeDumper
12
+ {
13
+ private $dumpComments;
14
+ private $dumpPositions;
15
+ private $code;
32
16
 
33
17
  /**
34
18
  * Constructs a NodeDumper.
@@ -37,218 +21,150 @@ class NodeDumper {
37
21
  * * bool dumpComments: Whether comments should be dumped.
38
22
  * * bool dumpPositions: Whether line/offset information should be dumped. To dump offset
39
23
  * information, the code needs to be passed to dump().
40
- * * bool dumpOtherAttributes: Whether non-comment, non-position attributes should be dumped.
41
24
  *
42
25
  * @param array $options Options (see description)
43
26
  */
44
27
  public function __construct(array $options = []) {
45
28
  $this->dumpComments = !empty($options['dumpComments']);
46
29
  $this->dumpPositions = !empty($options['dumpPositions']);
47
- $this->dumpOtherAttributes = !empty($options['dumpOtherAttributes']);
48
30
  }
49
31
 
50
32
  /**
51
33
  * Dumps a node or array.
52
34
  *
53
- * @param array|Node $node Node or array to dump
35
+ * @param array|Node $node Node or array to dump
54
36
  * @param string|null $code Code corresponding to dumped AST. This only needs to be passed if
55
37
  * the dumpPositions option is enabled and the dumping of node offsets
56
38
  * is desired.
57
39
  *
58
40
  * @return string Dumped value
59
41
  */
60
- public function dump($node, ?string $code = null): string {
42
+ public function dump($node, string $code = null) : string {
61
43
  $this->code = $code;
62
- $this->res = '';
63
- $this->nl = "\n";
64
- $this->dumpRecursive($node, false);
65
- return $this->res;
44
+ return $this->dumpRecursive($node);
66
45
  }
67
46
 
68
- /** @param mixed $node */
69
- protected function dumpRecursive($node, bool $indent = true): void {
70
- if ($indent) {
71
- $this->nl .= " ";
72
- }
47
+ protected function dumpRecursive($node) {
73
48
  if ($node instanceof Node) {
74
- $this->res .= $node->getType();
49
+ $r = $node->getType();
75
50
  if ($this->dumpPositions && null !== $p = $this->dumpPosition($node)) {
76
- $this->res .= $p;
51
+ $r .= $p;
77
52
  }
78
- $this->res .= '(';
53
+ $r .= '(';
79
54
 
80
55
  foreach ($node->getSubNodeNames() as $key) {
81
- $this->res .= "$this->nl " . $key . ': ';
56
+ $r .= "\n " . $key . ': ';
82
57
 
83
58
  $value = $node->$key;
84
- if (\is_int($value)) {
59
+ if (null === $value) {
60
+ $r .= 'null';
61
+ } elseif (false === $value) {
62
+ $r .= 'false';
63
+ } elseif (true === $value) {
64
+ $r .= 'true';
65
+ } elseif (is_scalar($value)) {
85
66
  if ('flags' === $key || 'newModifier' === $key) {
86
- $this->res .= $this->dumpFlags($value);
87
- continue;
88
- }
89
- if ('type' === $key && $node instanceof Include_) {
90
- $this->res .= $this->dumpIncludeType($value);
91
- continue;
92
- }
93
- if ('type' === $key
94
- && ($node instanceof Use_ || $node instanceof UseItem || $node instanceof GroupUse)) {
95
- $this->res .= $this->dumpUseType($value);
96
- continue;
67
+ $r .= $this->dumpFlags($value);
68
+ } elseif ('type' === $key && $node instanceof Include_) {
69
+ $r .= $this->dumpIncludeType($value);
70
+ } elseif ('type' === $key
71
+ && ($node instanceof Use_ || $node instanceof UseUse || $node instanceof GroupUse)) {
72
+ $r .= $this->dumpUseType($value);
73
+ } else {
74
+ $r .= $value;
97
75
  }
76
+ } else {
77
+ $r .= str_replace("\n", "\n ", $this->dumpRecursive($value));
98
78
  }
99
- $this->dumpRecursive($value);
100
79
  }
101
80
 
102
81
  if ($this->dumpComments && $comments = $node->getComments()) {
103
- $this->res .= "$this->nl comments: ";
104
- $this->dumpRecursive($comments);
82
+ $r .= "\n comments: " . str_replace("\n", "\n ", $this->dumpRecursive($comments));
105
83
  }
84
+ } elseif (is_array($node)) {
85
+ $r = 'array(';
106
86
 
107
- if ($this->dumpOtherAttributes) {
108
- foreach ($node->getAttributes() as $key => $value) {
109
- if (isset(self::IGNORE_ATTRIBUTES[$key])) {
110
- continue;
111
- }
112
-
113
- $this->res .= "$this->nl $key: ";
114
- if (\is_int($value)) {
115
- if ('kind' === $key) {
116
- if ($node instanceof Int_) {
117
- $this->res .= $this->dumpIntKind($value);
118
- continue;
119
- }
120
- if ($node instanceof String_ || $node instanceof InterpolatedString) {
121
- $this->res .= $this->dumpStringKind($value);
122
- continue;
123
- }
124
- if ($node instanceof Array_) {
125
- $this->res .= $this->dumpArrayKind($value);
126
- continue;
127
- }
128
- if ($node instanceof List_) {
129
- $this->res .= $this->dumpListKind($value);
130
- continue;
131
- }
132
- }
133
- }
134
- $this->dumpRecursive($value);
135
- }
136
- }
137
- $this->res .= "$this->nl)";
138
- } elseif (\is_array($node)) {
139
- $this->res .= 'array(';
140
87
  foreach ($node as $key => $value) {
141
- $this->res .= "$this->nl " . $key . ': ';
142
- $this->dumpRecursive($value);
88
+ $r .= "\n " . $key . ': ';
89
+
90
+ if (null === $value) {
91
+ $r .= 'null';
92
+ } elseif (false === $value) {
93
+ $r .= 'false';
94
+ } elseif (true === $value) {
95
+ $r .= 'true';
96
+ } elseif (is_scalar($value)) {
97
+ $r .= $value;
98
+ } else {
99
+ $r .= str_replace("\n", "\n ", $this->dumpRecursive($value));
100
+ }
143
101
  }
144
- $this->res .= "$this->nl)";
145
102
  } elseif ($node instanceof Comment) {
146
- $this->res .= \str_replace("\n", $this->nl, $node->getReformattedText());
147
- } elseif (\is_string($node)) {
148
- $this->res .= \str_replace("\n", $this->nl, (string)$node);
149
- } elseif (\is_int($node) || \is_float($node)) {
150
- $this->res .= $node;
151
- } elseif (null === $node) {
152
- $this->res .= 'null';
153
- } elseif (false === $node) {
154
- $this->res .= 'false';
155
- } elseif (true === $node) {
156
- $this->res .= 'true';
103
+ return $node->getReformattedText();
157
104
  } else {
158
105
  throw new \InvalidArgumentException('Can only dump nodes and arrays.');
159
106
  }
160
- if ($indent) {
161
- $this->nl = \substr($this->nl, 0, -4);
162
- }
107
+
108
+ return $r . "\n)";
163
109
  }
164
110
 
165
- protected function dumpFlags(int $flags): string {
111
+ protected function dumpFlags($flags) {
166
112
  $strs = [];
167
- if ($flags & Modifiers::PUBLIC) {
168
- $strs[] = 'PUBLIC';
113
+ if ($flags & Class_::MODIFIER_PUBLIC) {
114
+ $strs[] = 'MODIFIER_PUBLIC';
169
115
  }
170
- if ($flags & Modifiers::PROTECTED) {
171
- $strs[] = 'PROTECTED';
116
+ if ($flags & Class_::MODIFIER_PROTECTED) {
117
+ $strs[] = 'MODIFIER_PROTECTED';
172
118
  }
173
- if ($flags & Modifiers::PRIVATE) {
174
- $strs[] = 'PRIVATE';
119
+ if ($flags & Class_::MODIFIER_PRIVATE) {
120
+ $strs[] = 'MODIFIER_PRIVATE';
175
121
  }
176
- if ($flags & Modifiers::ABSTRACT) {
177
- $strs[] = 'ABSTRACT';
122
+ if ($flags & Class_::MODIFIER_ABSTRACT) {
123
+ $strs[] = 'MODIFIER_ABSTRACT';
178
124
  }
179
- if ($flags & Modifiers::STATIC) {
180
- $strs[] = 'STATIC';
125
+ if ($flags & Class_::MODIFIER_STATIC) {
126
+ $strs[] = 'MODIFIER_STATIC';
181
127
  }
182
- if ($flags & Modifiers::FINAL) {
183
- $strs[] = 'FINAL';
128
+ if ($flags & Class_::MODIFIER_FINAL) {
129
+ $strs[] = 'MODIFIER_FINAL';
184
130
  }
185
- if ($flags & Modifiers::READONLY) {
186
- $strs[] = 'READONLY';
131
+ if ($flags & Class_::MODIFIER_READONLY) {
132
+ $strs[] = 'MODIFIER_READONLY';
187
133
  }
188
134
 
189
135
  if ($strs) {
190
136
  return implode(' | ', $strs) . ' (' . $flags . ')';
191
137
  } else {
192
- return (string) $flags;
138
+ return $flags;
193
139
  }
194
140
  }
195
141
 
196
- /** @param array<int, string> $map */
197
- private function dumpEnum(int $value, array $map): string {
198
- if (!isset($map[$value])) {
199
- return (string) $value;
200
- }
201
- return $map[$value] . ' (' . $value . ')';
202
- }
203
-
204
- private function dumpIncludeType(int $type): string {
205
- return $this->dumpEnum($type, [
142
+ protected function dumpIncludeType($type) {
143
+ $map = [
206
144
  Include_::TYPE_INCLUDE => 'TYPE_INCLUDE',
207
145
  Include_::TYPE_INCLUDE_ONCE => 'TYPE_INCLUDE_ONCE',
208
146
  Include_::TYPE_REQUIRE => 'TYPE_REQUIRE',
209
147
  Include_::TYPE_REQUIRE_ONCE => 'TYPE_REQUIRE_ONCE',
210
- ]);
148
+ ];
149
+
150
+ if (!isset($map[$type])) {
151
+ return $type;
152
+ }
153
+ return $map[$type] . ' (' . $type . ')';
211
154
  }
212
155
 
213
- private function dumpUseType(int $type): string {
214
- return $this->dumpEnum($type, [
156
+ protected function dumpUseType($type) {
157
+ $map = [
215
158
  Use_::TYPE_UNKNOWN => 'TYPE_UNKNOWN',
216
159
  Use_::TYPE_NORMAL => 'TYPE_NORMAL',
217
160
  Use_::TYPE_FUNCTION => 'TYPE_FUNCTION',
218
161
  Use_::TYPE_CONSTANT => 'TYPE_CONSTANT',
219
- ]);
220
- }
221
-
222
- private function dumpIntKind(int $kind): string {
223
- return $this->dumpEnum($kind, [
224
- Int_::KIND_BIN => 'KIND_BIN',
225
- Int_::KIND_OCT => 'KIND_OCT',
226
- Int_::KIND_DEC => 'KIND_DEC',
227
- Int_::KIND_HEX => 'KIND_HEX',
228
- ]);
229
- }
230
-
231
- private function dumpStringKind(int $kind): string {
232
- return $this->dumpEnum($kind, [
233
- String_::KIND_SINGLE_QUOTED => 'KIND_SINGLE_QUOTED',
234
- String_::KIND_DOUBLE_QUOTED => 'KIND_DOUBLE_QUOTED',
235
- String_::KIND_HEREDOC => 'KIND_HEREDOC',
236
- String_::KIND_NOWDOC => 'KIND_NOWDOC',
237
- ]);
238
- }
162
+ ];
239
163
 
240
- private function dumpArrayKind(int $kind): string {
241
- return $this->dumpEnum($kind, [
242
- Array_::KIND_LONG => 'KIND_LONG',
243
- Array_::KIND_SHORT => 'KIND_SHORT',
244
- ]);
245
- }
246
-
247
- private function dumpListKind(int $kind): string {
248
- return $this->dumpEnum($kind, [
249
- List_::KIND_LIST => 'KIND_LIST',
250
- List_::KIND_ARRAY => 'KIND_ARRAY',
251
- ]);
164
+ if (!isset($map[$type])) {
165
+ return $type;
166
+ }
167
+ return $map[$type] . ' (' . $type . ')';
252
168
  }
253
169
 
254
170
  /**
@@ -258,7 +174,7 @@ class NodeDumper {
258
174
  *
259
175
  * @return string|null Dump of position, or null if position information not available
260
176
  */
261
- protected function dumpPosition(Node $node): ?string {
177
+ protected function dumpPosition(Node $node) {
262
178
  if (!$node->hasAttribute('startLine') || !$node->hasAttribute('endLine')) {
263
179
  return null;
264
180
  }
@@ -275,7 +191,7 @@ class NodeDumper {
275
191
  }
276
192
 
277
193
  // Copied from Error class
278
- private function toColumn(string $code, int $pos): int {
194
+ private function toColumn($code, $pos) {
279
195
  if ($pos > strlen($code)) {
280
196
  throw new \RuntimeException('Invalid position information');
281
197
  }
@@ -5,27 +5,25 @@ namespace PhpParser;
5
5
  use PhpParser\NodeVisitor\FindingVisitor;
6
6
  use PhpParser\NodeVisitor\FirstFindingVisitor;
7
7
 
8
- class NodeFinder {
8
+ class NodeFinder
9
+ {
9
10
  /**
10
11
  * Find all nodes satisfying a filter callback.
11
12
  *
12
- * @param Node|Node[] $nodes Single node or array of nodes to search in
13
- * @param callable $filter Filter callback: function(Node $node) : bool
13
+ * @param Node|Node[] $nodes Single node or array of nodes to search in
14
+ * @param callable $filter Filter callback: function(Node $node) : bool
14
15
  *
15
16
  * @return Node[] Found nodes satisfying the filter callback
16
17
  */
17
- public function find($nodes, callable $filter): array {
18
- if ($nodes === []) {
19
- return [];
20
- }
21
-
18
+ public function find($nodes, callable $filter) : array {
22
19
  if (!is_array($nodes)) {
23
20
  $nodes = [$nodes];
24
21
  }
25
22
 
26
23
  $visitor = new FindingVisitor($filter);
27
24
 
28
- $traverser = new NodeTraverser($visitor);
25
+ $traverser = new NodeTraverser;
26
+ $traverser->addVisitor($visitor);
29
27
  $traverser->traverse($nodes);
30
28
 
31
29
  return $visitor->getFoundNodes();
@@ -33,15 +31,13 @@ class NodeFinder {
33
31
 
34
32
  /**
35
33
  * Find all nodes that are instances of a certain class.
36
-
37
- * @template TNode as Node
38
34
  *
39
35
  * @param Node|Node[] $nodes Single node or array of nodes to search in
40
- * @param class-string<TNode> $class Class name
36
+ * @param string $class Class name
41
37
  *
42
- * @return TNode[] Found nodes (all instances of $class)
38
+ * @return Node[] Found nodes (all instances of $class)
43
39
  */
44
- public function findInstanceOf($nodes, string $class): array {
40
+ public function findInstanceOf($nodes, string $class) : array {
45
41
  return $this->find($nodes, function ($node) use ($class) {
46
42
  return $node instanceof $class;
47
43
  });
@@ -50,23 +46,20 @@ class NodeFinder {
50
46
  /**
51
47
  * Find first node satisfying a filter callback.
52
48
  *
53
- * @param Node|Node[] $nodes Single node or array of nodes to search in
54
- * @param callable $filter Filter callback: function(Node $node) : bool
49
+ * @param Node|Node[] $nodes Single node or array of nodes to search in
50
+ * @param callable $filter Filter callback: function(Node $node) : bool
55
51
  *
56
52
  * @return null|Node Found node (or null if none found)
57
53
  */
58
- public function findFirst($nodes, callable $filter): ?Node {
59
- if ($nodes === []) {
60
- return null;
61
- }
62
-
54
+ public function findFirst($nodes, callable $filter) {
63
55
  if (!is_array($nodes)) {
64
56
  $nodes = [$nodes];
65
57
  }
66
58
 
67
59
  $visitor = new FirstFindingVisitor($filter);
68
60
 
69
- $traverser = new NodeTraverser($visitor);
61
+ $traverser = new NodeTraverser;
62
+ $traverser->addVisitor($visitor);
70
63
  $traverser->traverse($nodes);
71
64
 
72
65
  return $visitor->getFoundNode();
@@ -75,14 +68,12 @@ class NodeFinder {
75
68
  /**
76
69
  * Find first node that is an instance of a certain class.
77
70
  *
78
- * @template TNode as Node
79
- *
80
- * @param Node|Node[] $nodes Single node or array of nodes to search in
81
- * @param class-string<TNode> $class Class name
71
+ * @param Node|Node[] $nodes Single node or array of nodes to search in
72
+ * @param string $class Class name
82
73
  *
83
- * @return null|TNode Found node, which is an instance of $class (or null if none found)
74
+ * @return null|Node Found node, which is an instance of $class (or null if none found)
84
75
  */
85
- public function findFirstInstanceOf($nodes, string $class): ?Node {
76
+ public function findFirstInstanceOf($nodes, string $class) {
86
77
  return $this->findFirst($nodes, function ($node) use ($class) {
87
78
  return $node instanceof $class;
88
79
  });