7f260f482af7146c582240a9b8de772dcdffe0f3 5.3 KB

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