634aba8b73bb4c4c12485ac91c2b3dcb631358d0 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. compilation_unit {
  2. package_statement {
  3. package_name: "ExplorerTest"
  4. }
  5. is_api: true
  6. declarations {
  7. interface {
  8. name {
  9. name: "X"
  10. }
  11. members {
  12. function {
  13. name {
  14. name: "F"
  15. }
  16. param_pattern {
  17. }
  18. return_term {
  19. kind: Expression
  20. type {
  21. type_type_literal {
  22. }
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }
  29. declarations {
  30. function {
  31. name {
  32. name: "G"
  33. }
  34. deduced_parameters {
  35. name: "T"
  36. type {
  37. identifier {
  38. name: "X"
  39. }
  40. }
  41. }
  42. param_pattern {
  43. }
  44. return_term {
  45. kind: Expression
  46. type {
  47. call {
  48. function {
  49. simple_member_access {
  50. field: "F"
  51. object {
  52. identifier {
  53. name: "T"
  54. }
  55. }
  56. }
  57. }
  58. argument {
  59. tuple_literal {
  60. }
  61. }
  62. }
  63. }
  64. }
  65. body {
  66. statements {
  67. return_expression_statement {
  68. expression {
  69. struct_literal {
  70. }
  71. }
  72. }
  73. }
  74. }
  75. }
  76. }
  77. declarations {
  78. function {
  79. name {
  80. name: "Main"
  81. }
  82. param_pattern {
  83. }
  84. return_term {
  85. kind: Expression
  86. type {
  87. int_type_literal {
  88. }
  89. }
  90. }
  91. body {
  92. statements {
  93. return_expression_statement {
  94. expression {
  95. int_literal {
  96. value: 0
  97. }
  98. }
  99. }
  100. }
  101. }
  102. }
  103. }
  104. }