61507506d828131fa1d7a748a0ba286f527f9f5d 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. compilation_unit {
  2. package_statement {
  3. package_name: "ExplorerTest"
  4. }
  5. is_api: true
  6. declarations {
  7. interface {
  8. name: "X"
  9. members {
  10. function {
  11. name: "F"
  12. param_pattern {
  13. }
  14. return_term {
  15. kind: Omitted
  16. }
  17. }
  18. }
  19. self {
  20. name: "Self"
  21. type {
  22. type_type_literal {
  23. }
  24. }
  25. }
  26. }
  27. }
  28. declarations {
  29. impl {
  30. kind: InternalImpl
  31. impl_type {
  32. int_type_literal {
  33. }
  34. }
  35. interface {
  36. identifier {
  37. name: "X"
  38. }
  39. }
  40. members {
  41. function {
  42. name: "F"
  43. param_pattern {
  44. }
  45. return_term {
  46. kind: Omitted
  47. }
  48. body {
  49. }
  50. }
  51. }
  52. }
  53. }
  54. declarations {
  55. function {
  56. name: "G"
  57. deduced_parameters {
  58. name: "T"
  59. type {
  60. identifier {
  61. name: "X"
  62. }
  63. }
  64. }
  65. param_pattern {
  66. fields {
  67. binding_pattern {
  68. name: "v"
  69. type {
  70. expression_pattern {
  71. expression {
  72. identifier {
  73. name: "T"
  74. }
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }
  81. return_term {
  82. kind: Expression
  83. type {
  84. type_type_literal {
  85. }
  86. }
  87. }
  88. body {
  89. statements {
  90. expression_statement {
  91. expression {
  92. call {
  93. function {
  94. simple_member_access {
  95. field: "F"
  96. object {
  97. identifier {
  98. name: "v"
  99. }
  100. }
  101. }
  102. }
  103. argument {
  104. tuple_literal {
  105. }
  106. }
  107. }
  108. }
  109. }
  110. }
  111. statements {
  112. return_expression_statement {
  113. expression {
  114. int_type_literal {
  115. }
  116. }
  117. }
  118. }
  119. }
  120. }
  121. }
  122. declarations {
  123. function {
  124. name: "Main"
  125. param_pattern {
  126. }
  127. return_term {
  128. kind: Expression
  129. type {
  130. int_type_literal {
  131. }
  132. }
  133. }
  134. body {
  135. statements {
  136. variable_definition {
  137. pattern {
  138. binding_pattern {
  139. name: "v"
  140. type {
  141. expression_pattern {
  142. expression {
  143. call {
  144. function {
  145. identifier {
  146. name: "G"
  147. }
  148. }
  149. argument {
  150. tuple_literal {
  151. fields {
  152. int_literal {
  153. value: 0
  154. }
  155. }
  156. }
  157. }
  158. }
  159. }
  160. }
  161. }
  162. }
  163. }
  164. init {
  165. int_literal {
  166. value: 0
  167. }
  168. }
  169. is_returned: false
  170. }
  171. }
  172. statements {
  173. return_expression_statement {
  174. expression {
  175. identifier {
  176. name: "v"
  177. }
  178. }
  179. }
  180. }
  181. }
  182. }
  183. }
  184. }