@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,76 +2,84 @@
2
2
 
3
3
  namespace PhpParser\Node\Stmt;
4
4
 
5
- use PhpParser\Modifiers;
6
5
  use PhpParser\Node;
7
6
 
8
- class ClassConst extends Node\Stmt {
7
+ class ClassConst extends Node\Stmt
8
+ {
9
9
  /** @var int Modifiers */
10
- public int $flags;
10
+ public $flags;
11
11
  /** @var Node\Const_[] Constant declarations */
12
- public array $consts;
12
+ public $consts;
13
13
  /** @var Node\AttributeGroup[] PHP attribute groups */
14
- public array $attrGroups;
14
+ public $attrGroups;
15
15
  /** @var Node\Identifier|Node\Name|Node\ComplexType|null Type declaration */
16
- public ?Node $type;
16
+ public $type;
17
17
 
18
18
  /**
19
19
  * Constructs a class const list node.
20
20
  *
21
- * @param Node\Const_[] $consts Constant declarations
22
- * @param int $flags Modifiers
23
- * @param array<string, mixed> $attributes Additional attributes
24
- * @param list<Node\AttributeGroup> $attrGroups PHP attribute groups
25
- * @param null|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration
21
+ * @param Node\Const_[] $consts Constant declarations
22
+ * @param int $flags Modifiers
23
+ * @param array $attributes Additional attributes
24
+ * @param Node\AttributeGroup[] $attrGroups PHP attribute groups
25
+ * @param null|string|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration
26
26
  */
27
27
  public function __construct(
28
28
  array $consts,
29
29
  int $flags = 0,
30
30
  array $attributes = [],
31
31
  array $attrGroups = [],
32
- ?Node $type = null
32
+ $type = null
33
33
  ) {
34
34
  $this->attributes = $attributes;
35
35
  $this->flags = $flags;
36
36
  $this->consts = $consts;
37
37
  $this->attrGroups = $attrGroups;
38
- $this->type = $type;
38
+ $this->type = \is_string($type) ? new Node\Identifier($type) : $type;
39
39
  }
40
40
 
41
- public function getSubNodeNames(): array {
41
+ public function getSubNodeNames() : array {
42
42
  return ['attrGroups', 'flags', 'type', 'consts'];
43
43
  }
44
44
 
45
45
  /**
46
46
  * Whether constant is explicitly or implicitly public.
47
+ *
48
+ * @return bool
47
49
  */
48
- public function isPublic(): bool {
49
- return ($this->flags & Modifiers::PUBLIC) !== 0
50
- || ($this->flags & Modifiers::VISIBILITY_MASK) === 0;
50
+ public function isPublic() : bool {
51
+ return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0
52
+ || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0;
51
53
  }
52
54
 
53
55
  /**
54
56
  * Whether constant is protected.
57
+ *
58
+ * @return bool
55
59
  */
56
- public function isProtected(): bool {
57
- return (bool) ($this->flags & Modifiers::PROTECTED);
60
+ public function isProtected() : bool {
61
+ return (bool) ($this->flags & Class_::MODIFIER_PROTECTED);
58
62
  }
59
63
 
60
64
  /**
61
65
  * Whether constant is private.
66
+ *
67
+ * @return bool
62
68
  */
63
- public function isPrivate(): bool {
64
- return (bool) ($this->flags & Modifiers::PRIVATE);
69
+ public function isPrivate() : bool {
70
+ return (bool) ($this->flags & Class_::MODIFIER_PRIVATE);
65
71
  }
66
72
 
67
73
  /**
68
74
  * Whether constant is final.
75
+ *
76
+ * @return bool
69
77
  */
70
- public function isFinal(): bool {
71
- return (bool) ($this->flags & Modifiers::FINAL);
78
+ public function isFinal() : bool {
79
+ return (bool) ($this->flags & Class_::MODIFIER_FINAL);
72
80
  }
73
81
 
74
- public function getType(): string {
82
+ public function getType() : string {
75
83
  return 'Stmt_ClassConst';
76
84
  }
77
85
  }
@@ -3,23 +3,23 @@
3
3
  namespace PhpParser\Node\Stmt;
4
4
 
5
5
  use PhpParser\Node;
6
- use PhpParser\Node\PropertyItem;
7
6
 
8
- abstract class ClassLike extends Node\Stmt {
7
+ abstract class ClassLike extends Node\Stmt
8
+ {
9
9
  /** @var Node\Identifier|null Name */
10
- public ?Node\Identifier $name;
10
+ public $name;
11
11
  /** @var Node\Stmt[] Statements */
12
- public array $stmts;
12
+ public $stmts;
13
13
  /** @var Node\AttributeGroup[] PHP attribute groups */
14
- public array $attrGroups;
14
+ public $attrGroups;
15
15
 
16
16
  /** @var Node\Name|null Namespaced name (if using NameResolver) */
17
- public ?Node\Name $namespacedName;
17
+ public $namespacedName;
18
18
 
19
19
  /**
20
20
  * @return TraitUse[]
21
21
  */
22
- public function getTraitUses(): array {
22
+ public function getTraitUses() : array {
23
23
  $traitUses = [];
24
24
  foreach ($this->stmts as $stmt) {
25
25
  if ($stmt instanceof TraitUse) {
@@ -32,7 +32,7 @@ abstract class ClassLike extends Node\Stmt {
32
32
  /**
33
33
  * @return ClassConst[]
34
34
  */
35
- public function getConstants(): array {
35
+ public function getConstants() : array {
36
36
  $constants = [];
37
37
  foreach ($this->stmts as $stmt) {
38
38
  if ($stmt instanceof ClassConst) {
@@ -45,7 +45,7 @@ abstract class ClassLike extends Node\Stmt {
45
45
  /**
46
46
  * @return Property[]
47
47
  */
48
- public function getProperties(): array {
48
+ public function getProperties() : array {
49
49
  $properties = [];
50
50
  foreach ($this->stmts as $stmt) {
51
51
  if ($stmt instanceof Property) {
@@ -62,11 +62,11 @@ abstract class ClassLike extends Node\Stmt {
62
62
  *
63
63
  * @return Property|null Property node or null if the property does not exist
64
64
  */
65
- public function getProperty(string $name): ?Property {
65
+ public function getProperty(string $name) {
66
66
  foreach ($this->stmts as $stmt) {
67
67
  if ($stmt instanceof Property) {
68
68
  foreach ($stmt->props as $prop) {
69
- if ($prop instanceof PropertyItem && $name === $prop->name->toString()) {
69
+ if ($prop instanceof PropertyProperty && $name === $prop->name->toString()) {
70
70
  return $stmt;
71
71
  }
72
72
  }
@@ -80,7 +80,7 @@ abstract class ClassLike extends Node\Stmt {
80
80
  *
81
81
  * @return ClassMethod[]
82
82
  */
83
- public function getMethods(): array {
83
+ public function getMethods() : array {
84
84
  $methods = [];
85
85
  foreach ($this->stmts as $stmt) {
86
86
  if ($stmt instanceof ClassMethod) {
@@ -97,7 +97,7 @@ abstract class ClassLike extends Node\Stmt {
97
97
  *
98
98
  * @return ClassMethod|null Method node or null if the method does not exist
99
99
  */
100
- public function getMethod(string $name): ?ClassMethod {
100
+ public function getMethod(string $name) {
101
101
  $lowerName = strtolower($name);
102
102
  foreach ($this->stmts as $stmt) {
103
103
  if ($stmt instanceof ClassMethod && $lowerName === $stmt->name->toLowerString()) {
@@ -2,28 +2,27 @@
2
2
 
3
3
  namespace PhpParser\Node\Stmt;
4
4
 
5
- use PhpParser\Modifiers;
6
5
  use PhpParser\Node;
7
6
  use PhpParser\Node\FunctionLike;
8
7
 
9
- class ClassMethod extends Node\Stmt implements FunctionLike {
8
+ class ClassMethod extends Node\Stmt implements FunctionLike
9
+ {
10
10
  /** @var int Flags */
11
- public int $flags;
11
+ public $flags;
12
12
  /** @var bool Whether to return by reference */
13
- public bool $byRef;
13
+ public $byRef;
14
14
  /** @var Node\Identifier Name */
15
- public Node\Identifier $name;
15
+ public $name;
16
16
  /** @var Node\Param[] Parameters */
17
- public array $params;
17
+ public $params;
18
18
  /** @var null|Node\Identifier|Node\Name|Node\ComplexType Return type */
19
- public ?Node $returnType;
19
+ public $returnType;
20
20
  /** @var Node\Stmt[]|null Statements */
21
- public ?array $stmts;
21
+ public $stmts;
22
22
  /** @var Node\AttributeGroup[] PHP attribute groups */
23
- public array $attrGroups;
23
+ public $attrGroups;
24
24
 
25
- /** @var array<string, bool> */
26
- private static array $magicNames = [
25
+ private static $magicNames = [
27
26
  '__construct' => true,
28
27
  '__destruct' => true,
29
28
  '__call' => true,
@@ -47,21 +46,14 @@ class ClassMethod extends Node\Stmt implements FunctionLike {
47
46
  * Constructs a class method node.
48
47
  *
49
48
  * @param string|Node\Identifier $name Name
50
- * @param array{
51
- * flags?: int,
52
- * byRef?: bool,
53
- * params?: Node\Param[],
54
- * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType,
55
- * stmts?: Node\Stmt[]|null,
56
- * attrGroups?: Node\AttributeGroup[],
57
- * } $subNodes Array of the following optional subnodes:
58
- * 'flags => 0 : Flags
59
- * 'byRef' => false : Whether to return by reference
60
- * 'params' => array() : Parameters
61
- * 'returnType' => null : Return type
62
- * 'stmts' => array() : Statements
63
- * 'attrGroups' => array() : PHP attribute groups
64
- * @param array<string, mixed> $attributes Additional attributes
49
+ * @param array $subNodes Array of the following optional subnodes:
50
+ * 'flags => MODIFIER_PUBLIC: Flags
51
+ * 'byRef' => false : Whether to return by reference
52
+ * 'params' => array() : Parameters
53
+ * 'returnType' => null : Return type
54
+ * 'stmts' => array() : Statements
55
+ * 'attrGroups' => array() : PHP attribute groups
56
+ * @param array $attributes Additional attributes
65
57
  */
66
58
  public function __construct($name, array $subNodes = [], array $attributes = []) {
67
59
  $this->attributes = $attributes;
@@ -69,20 +61,21 @@ class ClassMethod extends Node\Stmt implements FunctionLike {
69
61
  $this->byRef = $subNodes['byRef'] ?? false;
70
62
  $this->name = \is_string($name) ? new Node\Identifier($name) : $name;
71
63
  $this->params = $subNodes['params'] ?? [];
72
- $this->returnType = $subNodes['returnType'] ?? null;
64
+ $returnType = $subNodes['returnType'] ?? null;
65
+ $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType;
73
66
  $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : [];
74
67
  $this->attrGroups = $subNodes['attrGroups'] ?? [];
75
68
  }
76
69
 
77
- public function getSubNodeNames(): array {
70
+ public function getSubNodeNames() : array {
78
71
  return ['attrGroups', 'flags', 'byRef', 'name', 'params', 'returnType', 'stmts'];
79
72
  }
80
73
 
81
- public function returnsByRef(): bool {
74
+ public function returnsByRef() : bool {
82
75
  return $this->byRef;
83
76
  }
84
77
 
85
- public function getParams(): array {
78
+ public function getParams() : array {
86
79
  return $this->params;
87
80
  }
88
81
 
@@ -90,65 +83,79 @@ class ClassMethod extends Node\Stmt implements FunctionLike {
90
83
  return $this->returnType;
91
84
  }
92
85
 
93
- public function getStmts(): ?array {
86
+ public function getStmts() {
94
87
  return $this->stmts;
95
88
  }
96
89
 
97
- public function getAttrGroups(): array {
90
+ public function getAttrGroups() : array {
98
91
  return $this->attrGroups;
99
92
  }
100
93
 
101
94
  /**
102
95
  * Whether the method is explicitly or implicitly public.
96
+ *
97
+ * @return bool
103
98
  */
104
- public function isPublic(): bool {
105
- return ($this->flags & Modifiers::PUBLIC) !== 0
106
- || ($this->flags & Modifiers::VISIBILITY_MASK) === 0;
99
+ public function isPublic() : bool {
100
+ return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0
101
+ || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0;
107
102
  }
108
103
 
109
104
  /**
110
105
  * Whether the method is protected.
106
+ *
107
+ * @return bool
111
108
  */
112
- public function isProtected(): bool {
113
- return (bool) ($this->flags & Modifiers::PROTECTED);
109
+ public function isProtected() : bool {
110
+ return (bool) ($this->flags & Class_::MODIFIER_PROTECTED);
114
111
  }
115
112
 
116
113
  /**
117
114
  * Whether the method is private.
115
+ *
116
+ * @return bool
118
117
  */
119
- public function isPrivate(): bool {
120
- return (bool) ($this->flags & Modifiers::PRIVATE);
118
+ public function isPrivate() : bool {
119
+ return (bool) ($this->flags & Class_::MODIFIER_PRIVATE);
121
120
  }
122
121
 
123
122
  /**
124
123
  * Whether the method is abstract.
124
+ *
125
+ * @return bool
125
126
  */
126
- public function isAbstract(): bool {
127
- return (bool) ($this->flags & Modifiers::ABSTRACT);
127
+ public function isAbstract() : bool {
128
+ return (bool) ($this->flags & Class_::MODIFIER_ABSTRACT);
128
129
  }
129
130
 
130
131
  /**
131
132
  * Whether the method is final.
133
+ *
134
+ * @return bool
132
135
  */
133
- public function isFinal(): bool {
134
- return (bool) ($this->flags & Modifiers::FINAL);
136
+ public function isFinal() : bool {
137
+ return (bool) ($this->flags & Class_::MODIFIER_FINAL);
135
138
  }
136
139
 
137
140
  /**
138
141
  * Whether the method is static.
142
+ *
143
+ * @return bool
139
144
  */
140
- public function isStatic(): bool {
141
- return (bool) ($this->flags & Modifiers::STATIC);
145
+ public function isStatic() : bool {
146
+ return (bool) ($this->flags & Class_::MODIFIER_STATIC);
142
147
  }
143
148
 
144
149
  /**
145
150
  * Whether the method is magic.
151
+ *
152
+ * @return bool
146
153
  */
147
- public function isMagic(): bool {
154
+ public function isMagic() : bool {
148
155
  return isset(self::$magicNames[$this->name->toLowerString()]);
149
156
  }
150
157
 
151
- public function getType(): string {
158
+ public function getType() : string {
152
159
  return 'Stmt_ClassMethod';
153
160
  }
154
161
  }
@@ -2,52 +2,39 @@
2
2
 
3
3
  namespace PhpParser\Node\Stmt;
4
4
 
5
- use PhpParser\Modifiers;
5
+ use PhpParser\Error;
6
6
  use PhpParser\Node;
7
7
 
8
- class Class_ extends ClassLike {
9
- /** @deprecated Use Modifiers::PUBLIC instead */
10
- public const MODIFIER_PUBLIC = 1;
11
- /** @deprecated Use Modifiers::PROTECTED instead */
12
- public const MODIFIER_PROTECTED = 2;
13
- /** @deprecated Use Modifiers::PRIVATE instead */
14
- public const MODIFIER_PRIVATE = 4;
15
- /** @deprecated Use Modifiers::STATIC instead */
16
- public const MODIFIER_STATIC = 8;
17
- /** @deprecated Use Modifiers::ABSTRACT instead */
18
- public const MODIFIER_ABSTRACT = 16;
19
- /** @deprecated Use Modifiers::FINAL instead */
20
- public const MODIFIER_FINAL = 32;
21
- /** @deprecated Use Modifiers::READONLY instead */
22
- public const MODIFIER_READONLY = 64;
23
-
24
- /** @deprecated Use Modifiers::VISIBILITY_MASK instead */
25
- public const VISIBILITY_MODIFIER_MASK = 7; // 1 | 2 | 4
26
-
27
- /** @var int Modifiers */
28
- public int $flags;
8
+ class Class_ extends ClassLike
9
+ {
10
+ const MODIFIER_PUBLIC = 1;
11
+ const MODIFIER_PROTECTED = 2;
12
+ const MODIFIER_PRIVATE = 4;
13
+ const MODIFIER_STATIC = 8;
14
+ const MODIFIER_ABSTRACT = 16;
15
+ const MODIFIER_FINAL = 32;
16
+ const MODIFIER_READONLY = 64;
17
+
18
+ const VISIBILITY_MODIFIER_MASK = 7; // 1 | 2 | 4
19
+
20
+ /** @var int Type */
21
+ public $flags;
29
22
  /** @var null|Node\Name Name of extended class */
30
- public ?Node\Name $extends;
23
+ public $extends;
31
24
  /** @var Node\Name[] Names of implemented interfaces */
32
- public array $implements;
25
+ public $implements;
33
26
 
34
27
  /**
35
28
  * Constructs a class node.
36
29
  *
37
30
  * @param string|Node\Identifier|null $name Name
38
- * @param array{
39
- * flags?: int,
40
- * extends?: Node\Name|null,
41
- * implements?: Node\Name[],
42
- * stmts?: Node\Stmt[],
43
- * attrGroups?: Node\AttributeGroup[],
44
- * } $subNodes Array of the following optional subnodes:
45
- * 'flags' => 0 : Flags
46
- * 'extends' => null : Name of extended class
47
- * 'implements' => array(): Names of implemented interfaces
48
- * 'stmts' => array(): Statements
49
- * 'attrGroups' => array(): PHP attribute groups
50
- * @param array<string, mixed> $attributes Additional attributes
31
+ * @param array $subNodes Array of the following optional subnodes:
32
+ * 'flags' => 0 : Flags
33
+ * 'extends' => null : Name of extended class
34
+ * 'implements' => array(): Names of implemented interfaces
35
+ * 'stmts' => array(): Statements
36
+ * 'attrGroups' => array(): PHP attribute groups
37
+ * @param array $attributes Additional attributes
51
38
  */
52
39
  public function __construct($name, array $subNodes = [], array $attributes = []) {
53
40
  $this->attributes = $attributes;
@@ -59,36 +46,92 @@ class Class_ extends ClassLike {
59
46
  $this->attrGroups = $subNodes['attrGroups'] ?? [];
60
47
  }
61
48
 
62
- public function getSubNodeNames(): array {
49
+ public function getSubNodeNames() : array {
63
50
  return ['attrGroups', 'flags', 'name', 'extends', 'implements', 'stmts'];
64
51
  }
65
52
 
66
53
  /**
67
54
  * Whether the class is explicitly abstract.
55
+ *
56
+ * @return bool
68
57
  */
69
- public function isAbstract(): bool {
70
- return (bool) ($this->flags & Modifiers::ABSTRACT);
58
+ public function isAbstract() : bool {
59
+ return (bool) ($this->flags & self::MODIFIER_ABSTRACT);
71
60
  }
72
61
 
73
62
  /**
74
63
  * Whether the class is final.
64
+ *
65
+ * @return bool
75
66
  */
76
- public function isFinal(): bool {
77
- return (bool) ($this->flags & Modifiers::FINAL);
67
+ public function isFinal() : bool {
68
+ return (bool) ($this->flags & self::MODIFIER_FINAL);
78
69
  }
79
70
 
80
- public function isReadonly(): bool {
81
- return (bool) ($this->flags & Modifiers::READONLY);
71
+ public function isReadonly() : bool {
72
+ return (bool) ($this->flags & self::MODIFIER_READONLY);
82
73
  }
83
74
 
84
75
  /**
85
76
  * Whether the class is anonymous.
77
+ *
78
+ * @return bool
86
79
  */
87
- public function isAnonymous(): bool {
80
+ public function isAnonymous() : bool {
88
81
  return null === $this->name;
89
82
  }
90
83
 
91
- public function getType(): string {
84
+ /**
85
+ * @internal
86
+ */
87
+ public static function verifyClassModifier($a, $b) {
88
+ if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) {
89
+ throw new Error('Multiple abstract modifiers are not allowed');
90
+ }
91
+
92
+ if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) {
93
+ throw new Error('Multiple final modifiers are not allowed');
94
+ }
95
+
96
+ if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) {
97
+ throw new Error('Multiple readonly modifiers are not allowed');
98
+ }
99
+
100
+ if ($a & 48 && $b & 48) {
101
+ throw new Error('Cannot use the final modifier on an abstract class');
102
+ }
103
+ }
104
+
105
+ /**
106
+ * @internal
107
+ */
108
+ public static function verifyModifier($a, $b) {
109
+ if ($a & self::VISIBILITY_MODIFIER_MASK && $b & self::VISIBILITY_MODIFIER_MASK) {
110
+ throw new Error('Multiple access type modifiers are not allowed');
111
+ }
112
+
113
+ if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) {
114
+ throw new Error('Multiple abstract modifiers are not allowed');
115
+ }
116
+
117
+ if ($a & self::MODIFIER_STATIC && $b & self::MODIFIER_STATIC) {
118
+ throw new Error('Multiple static modifiers are not allowed');
119
+ }
120
+
121
+ if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) {
122
+ throw new Error('Multiple final modifiers are not allowed');
123
+ }
124
+
125
+ if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) {
126
+ throw new Error('Multiple readonly modifiers are not allowed');
127
+ }
128
+
129
+ if ($a & 48 && $b & 48) {
130
+ throw new Error('Cannot use the final modifier on an abstract class member');
131
+ }
132
+ }
133
+
134
+ public function getType() : string {
92
135
  return 'Stmt_Class';
93
136
  }
94
137
  }
@@ -4,26 +4,27 @@ namespace PhpParser\Node\Stmt;
4
4
 
5
5
  use PhpParser\Node;
6
6
 
7
- class Const_ extends Node\Stmt {
7
+ class Const_ extends Node\Stmt
8
+ {
8
9
  /** @var Node\Const_[] Constant declarations */
9
- public array $consts;
10
+ public $consts;
10
11
 
11
12
  /**
12
13
  * Constructs a const list node.
13
14
  *
14
- * @param Node\Const_[] $consts Constant declarations
15
- * @param array<string, mixed> $attributes Additional attributes
15
+ * @param Node\Const_[] $consts Constant declarations
16
+ * @param array $attributes Additional attributes
16
17
  */
17
18
  public function __construct(array $consts, array $attributes = []) {
18
19
  $this->attributes = $attributes;
19
20
  $this->consts = $consts;
20
21
  }
21
22
 
22
- public function getSubNodeNames(): array {
23
+ public function getSubNodeNames() : array {
23
24
  return ['consts'];
24
25
  }
25
-
26
- public function getType(): string {
26
+
27
+ public function getType() : string {
27
28
  return 'Stmt_Const';
28
29
  }
29
30
  }
@@ -4,26 +4,27 @@ namespace PhpParser\Node\Stmt;
4
4
 
5
5
  use PhpParser\Node;
6
6
 
7
- class Continue_ extends Node\Stmt {
7
+ class Continue_ extends Node\Stmt
8
+ {
8
9
  /** @var null|Node\Expr Number of loops to continue */
9
- public ?Node\Expr $num;
10
+ public $num;
10
11
 
11
12
  /**
12
13
  * Constructs a continue node.
13
14
  *
14
- * @param null|Node\Expr $num Number of loops to continue
15
- * @param array<string, mixed> $attributes Additional attributes
15
+ * @param null|Node\Expr $num Number of loops to continue
16
+ * @param array $attributes Additional attributes
16
17
  */
17
- public function __construct(?Node\Expr $num = null, array $attributes = []) {
18
+ public function __construct(Node\Expr $num = null, array $attributes = []) {
18
19
  $this->attributes = $attributes;
19
20
  $this->num = $num;
20
21
  }
21
22
 
22
- public function getSubNodeNames(): array {
23
+ public function getSubNodeNames() : array {
23
24
  return ['num'];
24
25
  }
25
-
26
- public function getType(): string {
26
+
27
+ public function getType() : string {
27
28
  return 'Stmt_Continue';
28
29
  }
29
30
  }
@@ -1,3 +1,34 @@
1
1
  <?php declare(strict_types=1);
2
2
 
3
- require __DIR__ . '/../DeclareItem.php';
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+
7
+ class DeclareDeclare extends Node\Stmt
8
+ {
9
+ /** @var Node\Identifier Key */
10
+ public $key;
11
+ /** @var Node\Expr Value */
12
+ public $value;
13
+
14
+ /**
15
+ * Constructs a declare key=>value pair node.
16
+ *
17
+ * @param string|Node\Identifier $key Key
18
+ * @param Node\Expr $value Value
19
+ * @param array $attributes Additional attributes
20
+ */
21
+ public function __construct($key, Node\Expr $value, array $attributes = []) {
22
+ $this->attributes = $attributes;
23
+ $this->key = \is_string($key) ? new Node\Identifier($key) : $key;
24
+ $this->value = $value;
25
+ }
26
+
27
+ public function getSubNodeNames() : array {
28
+ return ['key', 'value'];
29
+ }
30
+
31
+ public function getType() : string {
32
+ return 'Stmt_DeclareDeclare';
33
+ }
34
+ }