trait.test 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. Traits
  2. -----
  3. <?php
  4. trait A {
  5. public function a() {}
  6. }
  7. class B {
  8. use C;
  9. use D {
  10. a as protected b;
  11. c as d;
  12. e as private;
  13. }
  14. use E, F, G {
  15. E::a insteadof F, G;
  16. E::b as protected c;
  17. E::d as e;
  18. E::f as private;
  19. }
  20. }
  21. -----
  22. array(
  23. 0: Stmt_Trait(
  24. attrGroups: array(
  25. )
  26. name: Identifier(
  27. name: A
  28. )
  29. stmts: array(
  30. 0: Stmt_ClassMethod(
  31. attrGroups: array(
  32. )
  33. flags: MODIFIER_PUBLIC (1)
  34. byRef: false
  35. name: Identifier(
  36. name: a
  37. )
  38. params: array(
  39. )
  40. returnType: null
  41. stmts: array(
  42. )
  43. )
  44. )
  45. )
  46. 1: Stmt_Class(
  47. attrGroups: array(
  48. )
  49. flags: 0
  50. name: Identifier(
  51. name: B
  52. )
  53. extends: null
  54. implements: array(
  55. )
  56. stmts: array(
  57. 0: Stmt_TraitUse(
  58. traits: array(
  59. 0: Name(
  60. parts: array(
  61. 0: C
  62. )
  63. )
  64. )
  65. adaptations: array(
  66. )
  67. )
  68. 1: Stmt_TraitUse(
  69. traits: array(
  70. 0: Name(
  71. parts: array(
  72. 0: D
  73. )
  74. )
  75. )
  76. adaptations: array(
  77. 0: Stmt_TraitUseAdaptation_Alias(
  78. trait: null
  79. method: Identifier(
  80. name: a
  81. )
  82. newModifier: MODIFIER_PROTECTED (2)
  83. newName: Identifier(
  84. name: b
  85. )
  86. )
  87. 1: Stmt_TraitUseAdaptation_Alias(
  88. trait: null
  89. method: Identifier(
  90. name: c
  91. )
  92. newModifier: null
  93. newName: Identifier(
  94. name: d
  95. )
  96. )
  97. 2: Stmt_TraitUseAdaptation_Alias(
  98. trait: null
  99. method: Identifier(
  100. name: e
  101. )
  102. newModifier: MODIFIER_PRIVATE (4)
  103. newName: null
  104. )
  105. )
  106. )
  107. 2: Stmt_TraitUse(
  108. traits: array(
  109. 0: Name(
  110. parts: array(
  111. 0: E
  112. )
  113. )
  114. 1: Name(
  115. parts: array(
  116. 0: F
  117. )
  118. )
  119. 2: Name(
  120. parts: array(
  121. 0: G
  122. )
  123. )
  124. )
  125. adaptations: array(
  126. 0: Stmt_TraitUseAdaptation_Precedence(
  127. trait: Name(
  128. parts: array(
  129. 0: E
  130. )
  131. )
  132. method: Identifier(
  133. name: a
  134. )
  135. insteadof: array(
  136. 0: Name(
  137. parts: array(
  138. 0: F
  139. )
  140. )
  141. 1: Name(
  142. parts: array(
  143. 0: G
  144. )
  145. )
  146. )
  147. )
  148. 1: Stmt_TraitUseAdaptation_Alias(
  149. trait: Name(
  150. parts: array(
  151. 0: E
  152. )
  153. )
  154. method: Identifier(
  155. name: b
  156. )
  157. newModifier: MODIFIER_PROTECTED (2)
  158. newName: Identifier(
  159. name: c
  160. )
  161. )
  162. 2: Stmt_TraitUseAdaptation_Alias(
  163. trait: Name(
  164. parts: array(
  165. 0: E
  166. )
  167. )
  168. method: Identifier(
  169. name: d
  170. )
  171. newModifier: null
  172. newName: Identifier(
  173. name: e
  174. )
  175. )
  176. 3: Stmt_TraitUseAdaptation_Alias(
  177. trait: Name(
  178. parts: array(
  179. 0: E
  180. )
  181. )
  182. method: Identifier(
  183. name: f
  184. )
  185. newModifier: MODIFIER_PRIVATE (4)
  186. newName: null
  187. )
  188. )
  189. )
  190. )
  191. )
  192. )