trait.test 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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: 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. name: C
  61. )
  62. )
  63. adaptations: array(
  64. )
  65. )
  66. 1: Stmt_TraitUse(
  67. traits: array(
  68. 0: Name(
  69. name: D
  70. )
  71. )
  72. adaptations: array(
  73. 0: Stmt_TraitUseAdaptation_Alias(
  74. trait: null
  75. method: Identifier(
  76. name: a
  77. )
  78. newModifier: PROTECTED (2)
  79. newName: Identifier(
  80. name: b
  81. )
  82. )
  83. 1: Stmt_TraitUseAdaptation_Alias(
  84. trait: null
  85. method: Identifier(
  86. name: c
  87. )
  88. newModifier: null
  89. newName: Identifier(
  90. name: d
  91. )
  92. )
  93. 2: Stmt_TraitUseAdaptation_Alias(
  94. trait: null
  95. method: Identifier(
  96. name: e
  97. )
  98. newModifier: PRIVATE (4)
  99. newName: null
  100. )
  101. )
  102. )
  103. 2: Stmt_TraitUse(
  104. traits: array(
  105. 0: Name(
  106. name: E
  107. )
  108. 1: Name(
  109. name: F
  110. )
  111. 2: Name(
  112. name: G
  113. )
  114. )
  115. adaptations: array(
  116. 0: Stmt_TraitUseAdaptation_Precedence(
  117. trait: Name(
  118. name: E
  119. )
  120. method: Identifier(
  121. name: a
  122. )
  123. insteadof: array(
  124. 0: Name(
  125. name: F
  126. )
  127. 1: Name(
  128. name: G
  129. )
  130. )
  131. )
  132. 1: Stmt_TraitUseAdaptation_Alias(
  133. trait: Name(
  134. name: E
  135. )
  136. method: Identifier(
  137. name: b
  138. )
  139. newModifier: PROTECTED (2)
  140. newName: Identifier(
  141. name: c
  142. )
  143. )
  144. 2: Stmt_TraitUseAdaptation_Alias(
  145. trait: Name(
  146. name: E
  147. )
  148. method: Identifier(
  149. name: d
  150. )
  151. newModifier: null
  152. newName: Identifier(
  153. name: e
  154. )
  155. )
  156. 3: Stmt_TraitUseAdaptation_Alias(
  157. trait: Name(
  158. name: E
  159. )
  160. method: Identifier(
  161. name: f
  162. )
  163. newModifier: PRIVATE (4)
  164. newName: null
  165. )
  166. )
  167. )
  168. )
  169. )
  170. )