230ea69eab009635a68f253a70e7f55d8af387bd 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. compilation_unit {
  2. package_statement {
  3. package_name: "ExplorerTest"
  4. }
  5. is_api: true
  6. declarations {
  7. class_declaration {
  8. name {
  9. name: "A"
  10. }
  11. }
  12. }
  13. declarations {
  14. impl {
  15. kind: InternalImpl
  16. impl_type {
  17. identifier {
  18. name: "A"
  19. }
  20. }
  21. interface {
  22. call {
  23. function {
  24. identifier {
  25. name: "ImplicitAs"
  26. }
  27. }
  28. argument {
  29. tuple_literal {
  30. fields {
  31. int_type_literal {
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }
  38. members {
  39. function {
  40. name {
  41. name: "Convert"
  42. }
  43. self_pattern {
  44. binding_pattern {
  45. name: "self"
  46. type {
  47. expression_pattern {
  48. expression {
  49. identifier {
  50. name: "Self"
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }
  57. param_pattern {
  58. }
  59. return_term {
  60. kind: Expression
  61. type {
  62. int_type_literal {
  63. }
  64. }
  65. }
  66. body {
  67. statements {
  68. return_expression_statement {
  69. expression {
  70. int_literal {
  71. value: 1
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }
  81. declarations {
  82. function {
  83. name {
  84. name: "Main"
  85. }
  86. param_pattern {
  87. }
  88. return_term {
  89. kind: Expression
  90. type {
  91. int_type_literal {
  92. }
  93. }
  94. }
  95. body {
  96. statements {
  97. variable_definition {
  98. pattern {
  99. binding_pattern {
  100. name: "a"
  101. type {
  102. expression_pattern {
  103. expression {
  104. identifier {
  105. name: "A"
  106. }
  107. }
  108. }
  109. }
  110. }
  111. }
  112. init {
  113. struct_literal {
  114. }
  115. }
  116. is_returned: false
  117. }
  118. }
  119. statements {
  120. match {
  121. expression {
  122. tuple_literal {
  123. fields {
  124. identifier {
  125. name: "a"
  126. }
  127. }
  128. fields {
  129. identifier {
  130. name: "a"
  131. }
  132. }
  133. }
  134. }
  135. clauses {
  136. pattern {
  137. tuple_pattern {
  138. fields {
  139. expression_pattern {
  140. expression {
  141. int_literal {
  142. value: 0
  143. }
  144. }
  145. }
  146. }
  147. fields {
  148. binding_pattern {
  149. name: "n"
  150. type {
  151. expression_pattern {
  152. expression {
  153. int_type_literal {
  154. }
  155. }
  156. }
  157. }
  158. }
  159. }
  160. }
  161. }
  162. statement {
  163. block {
  164. statements {
  165. return_expression_statement {
  166. expression {
  167. int_literal {
  168. value: 1
  169. }
  170. }
  171. }
  172. }
  173. }
  174. }
  175. }
  176. clauses {
  177. pattern {
  178. tuple_pattern {
  179. fields {
  180. binding_pattern {
  181. name: "n"
  182. type {
  183. expression_pattern {
  184. expression {
  185. int_type_literal {
  186. }
  187. }
  188. }
  189. }
  190. }
  191. }
  192. fields {
  193. expression_pattern {
  194. expression {
  195. int_literal {
  196. value: 0
  197. }
  198. }
  199. }
  200. }
  201. }
  202. }
  203. statement {
  204. block {
  205. statements {
  206. return_expression_statement {
  207. expression {
  208. int_literal {
  209. value: 1
  210. }
  211. }
  212. }
  213. }
  214. }
  215. }
  216. }
  217. clauses {
  218. pattern {
  219. expression_pattern {
  220. expression {
  221. tuple_literal {
  222. fields {
  223. int_literal {
  224. value: 1
  225. }
  226. }
  227. fields {
  228. int_literal {
  229. value: 1
  230. }
  231. }
  232. }
  233. }
  234. }
  235. }
  236. statement {
  237. block {
  238. statements {
  239. return_expression_statement {
  240. expression {
  241. int_literal {
  242. value: 0
  243. }
  244. }
  245. }
  246. }
  247. }
  248. }
  249. }
  250. }
  251. }
  252. statements {
  253. return_expression_statement {
  254. expression {
  255. int_literal {
  256. value: 1
  257. }
  258. }
  259. }
  260. }
  261. }
  262. }
  263. }
  264. }