overload_functions.dot 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. strict digraph "tests/contract_testcases/solana/functions/overload_functions.sol" {
  2. contract [label="contract Test1\ntests/contract_testcases/solana/functions/overload_functions.sol:2:1-11:2"]
  3. sum [label="function sum\ncontract: Test1\ntests/contract_testcases/solana/functions/overload_functions.sol:3:5-63\nsignature sum(int32,int32)\nvisibility public\nmutability pure"]
  4. parameters [label="parameters\nint32 a\nint32 b"]
  5. returns [label="returns\nint32 "]
  6. return [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:4:9-21"]
  7. add [label="add\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:4:16-21"]
  8. variable [label="variable: a\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:4:16-17"]
  9. variable_8 [label="variable: b\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:4:20-21"]
  10. sum_9 [label="function sum\ncontract: Test1\ntests/contract_testcases/solana/functions/overload_functions.sol:8:5-63\nsignature sum(int64,int64)\nvisibility public\nmutability pure"]
  11. parameters_10 [label="parameters\nint64 a\nint64 b"]
  12. returns_11 [label="returns\nint64 "]
  13. return_12 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:9:9-21"]
  14. add_13 [label="add\nint64\ntests/contract_testcases/solana/functions/overload_functions.sol:9:16-21"]
  15. variable_14 [label="variable: a\nint64\ntests/contract_testcases/solana/functions/overload_functions.sol:9:16-17"]
  16. variable_15 [label="variable: b\nint64\ntests/contract_testcases/solana/functions/overload_functions.sol:9:20-21"]
  17. contract_16 [label="contract Test2\ntests/contract_testcases/solana/functions/overload_functions.sol:13:1-25:2"]
  18. node_17 [label="constructor \ncontract: Test2\ntests/contract_testcases/solana/functions/overload_functions.sol:14:5-19\nsignature ()\nvisibility public\nmutability nonpayable"]
  19. sub [label="function sub\ncontract: Test2\ntests/contract_testcases/solana/functions/overload_functions.sol:18:5-54\nsignature sub(int32)\nvisibility public\nmutability pure"]
  20. parameters_19 [label="parameters\nint32 d"]
  21. returns_20 [label="returns\nint32 "]
  22. return_21 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:19:9-19"]
  23. subtract [label="subtract\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:19:16-19"]
  24. variable_23 [label="variable: d\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:19:16-17"]
  25. number_literal [label="int32 literal: 2\ntests/contract_testcases/solana/functions/overload_functions.sol:19:18-19"]
  26. multiply [label="function multiply\ncontract: Test2\ntests/contract_testcases/solana/functions/overload_functions.sol:22:5-68\nsignature multiply(int32,int32)\nvisibility public\nmutability pure"]
  27. parameters_26 [label="parameters\nint32 a\nint32 b"]
  28. returns_27 [label="returns\nint32 "]
  29. return_28 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:23:9-19"]
  30. multiply_29 [label="multiply\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:23:16-19"]
  31. variable_30 [label="variable: a\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:23:16-17"]
  32. variable_31 [label="variable: b\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:23:18-19"]
  33. contract_32 [label="contract Test3\ntests/contract_testcases/solana/functions/overload_functions.sol:27:1-36:2"]
  34. base [label="base Test2\ntests/contract_testcases/solana/functions/overload_functions.sol:27:19-24"]
  35. var [label="variable state\nvisibility internal\ntests/contract_testcases/solana/functions/overload_functions.sol:28:5-16"]
  36. node_35 [label="constructor \ncontract: Test3\ntests/contract_testcases/solana/functions/overload_functions.sol:29:5-34\nsignature (int32)\nvisibility public\nmutability nonpayable"]
  37. parameters_36 [label="parameters\nint32 state_var"]
  38. expr [label="expression\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-26"]
  39. assign [label="assign\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-14"]
  40. storage_var [label="storage variable\nTest3.state\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-14"]
  41. variable_40 [label="variable: state_var\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:30:17-26"]
  42. multiply_41 [label="function multiply\ncontract: Test3\ntests/contract_testcases/solana/functions/overload_functions.sol:33:5-59\nsignature multiply(int32)\nvisibility public\nmutability pure"]
  43. parameters_42 [label="parameters\nint32 c"]
  44. returns_43 [label="returns\nint32 "]
  45. return_44 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:34:9-23"]
  46. multiply_45 [label="multiply\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:34:16-23"]
  47. variable_46 [label="variable: c\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:34:16-17"]
  48. storage_load [label="storage load int32\ntests/contract_testcases/solana/functions/overload_functions.sol:34:18-23"]
  49. storage_var_48 [label="storage variable\nTest3.state\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:34:18-23"]
  50. contract_49 [label="contract Test4\ntests/contract_testcases/solana/functions/overload_functions.sol:38:1-47:2"]
  51. base_50 [label="base Test2\ntests/contract_testcases/solana/functions/overload_functions.sol:38:19-24"]
  52. var_51 [label="variable state\nvisibility internal\ntests/contract_testcases/solana/functions/overload_functions.sol:39:5-16"]
  53. node_52 [label="constructor \ncontract: Test4\ntests/contract_testcases/solana/functions/overload_functions.sol:40:5-34\nsignature (int32)\nvisibility public\nmutability nonpayable"]
  54. parameters_53 [label="parameters\nint32 state_var"]
  55. expr_54 [label="expression\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-26"]
  56. assign_55 [label="assign\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-14"]
  57. storage_var_56 [label="storage variable\nTest4.state\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-14"]
  58. variable_57 [label="variable: state_var\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:41:17-26"]
  59. multiply_58 [label="function multiply\ncontract: Test4\ntests/contract_testcases/solana/functions/overload_functions.sol:44:5-68\nsignature multiply(int32,int32)\nvisibility public\nmutability pure"]
  60. parameters_59 [label="parameters\nint32 a\nint32 b"]
  61. returns_60 [label="returns\nint32 "]
  62. return_61 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:45:9-25"]
  63. multiply_62 [label="multiply\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:45:16-25"]
  64. multiply_63 [label="multiply\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:45:16-23"]
  65. variable_64 [label="variable: a\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:45:16-17"]
  66. storage_load_65 [label="storage load int32\ntests/contract_testcases/solana/functions/overload_functions.sol:45:18-23"]
  67. storage_var_66 [label="storage variable\nTest4.state\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:45:18-23"]
  68. variable_67 [label="variable: b\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:45:24-25"]
  69. contract_68 [label="contract Test5\ntests/contract_testcases/solana/functions/overload_functions.sol:49:1-55:2"]
  70. base_69 [label="base Test3\ntests/contract_testcases/solana/functions/overload_functions.sol:49:19-24"]
  71. node_70 [label="constructor \ncontract: Test5\ntests/contract_testcases/solana/functions/overload_functions.sol:50:5-50\nsignature (int32)\nvisibility public\nmutability nonpayable"]
  72. parameters_71 [label="parameters\nint32 state_var"]
  73. Test3 [label="Test3"]
  74. variable_73 [label="variable: state_var\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:50:40-49"]
  75. sub_74 [label="function sub\ncontract: Test5\ntests/contract_testcases/solana/functions/overload_functions.sol:52:5-54\nsignature sub(int64)\nvisibility public\nmutability pure"]
  76. parameters_75 [label="parameters\nint64 e"]
  77. returns_76 [label="returns\nint64 "]
  78. return_77 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:53:9-19"]
  79. subtract_78 [label="subtract\nint64\ntests/contract_testcases/solana/functions/overload_functions.sol:53:16-19"]
  80. variable_79 [label="variable: e\nint64\ntests/contract_testcases/solana/functions/overload_functions.sol:53:16-17"]
  81. number_literal_80 [label="int64 literal: 2\ntests/contract_testcases/solana/functions/overload_functions.sol:53:18-19"]
  82. contract_81 [label="contract Test6\ntests/contract_testcases/solana/functions/overload_functions.sol:57:1-61:2"]
  83. node_82 [label="constructor \ncontract: Test6\ntests/contract_testcases/solana/functions/overload_functions.sol:58:5-19\nsignature ()\nvisibility public\nmutability nonpayable"]
  84. doThis [label="function doThis\ncontract: Test6\ntests/contract_testcases/solana/functions/overload_functions.sol:60:5-53\nsignature doThis()\nvisibility public\nmutability nonpayable\nvirtual"]
  85. returns_84 [label="returns\nint32 "]
  86. contract_85 [label="contract Test7\ntests/contract_testcases/solana/functions/overload_functions.sol:63:1-71:2"]
  87. base_86 [label="base Test6\ntests/contract_testcases/solana/functions/overload_functions.sol:63:19-24"]
  88. node_87 [label="constructor \ncontract: Test7\ntests/contract_testcases/solana/functions/overload_functions.sol:64:5-19\nsignature ()\nvisibility public\nmutability nonpayable"]
  89. doThis_88 [label="function doThis\ncontract: Test7\ntests/contract_testcases/solana/functions/overload_functions.sol:68:5-61\nsignature doThis()\nvisibility public\nmutability nonpayable\noverride Test6"]
  90. returns_89 [label="returns\nint32 "]
  91. return_90 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:69:9-17"]
  92. number_literal_91 [label="int32 literal: 7\ntests/contract_testcases/solana/functions/overload_functions.sol:69:16-17"]
  93. contract_92 [label="contract Base1\ntests/contract_testcases/solana/functions/overload_functions.sol:73:1-76:2"]
  94. foo [label="function foo\ncontract: Base1\ntests/contract_testcases/solana/functions/overload_functions.sol:75:5-34\nsignature foo()\nvisibility public\nmutability nonpayable\nvirtual"]
  95. contract_94 [label="contract Base2\ntests/contract_testcases/solana/functions/overload_functions.sol:78:1-81:2"]
  96. foo_95 [label="function foo\ncontract: Base2\ntests/contract_testcases/solana/functions/overload_functions.sol:80:5-34\nsignature foo()\nvisibility public\nmutability nonpayable\nvirtual"]
  97. contract_96 [label="contract Inherited\ntests/contract_testcases/solana/functions/overload_functions.sol:83:1-87:2"]
  98. base_97 [label="base Base1\ntests/contract_testcases/solana/functions/overload_functions.sol:83:23-28"]
  99. base_98 [label="base Base2\ntests/contract_testcases/solana/functions/overload_functions.sol:83:30-35"]
  100. foo_99 [label="function foo\ncontract: Inherited\ntests/contract_testcases/solana/functions/overload_functions.sol:86:5-49\nsignature foo()\nvisibility public\nmutability nonpayable\noverride Base1\noverride Base2"]
  101. contract_100 [label="contract ManglingInvalid\ntests/contract_testcases/solana/functions/overload_functions.sol:89:1-102:2"]
  102. foo_bool [label="function foo_bool\ncontract: ManglingInvalid\ntests/contract_testcases/solana/functions/overload_functions.sol:90:5-52\nsignature foo_bool()\nvisibility public\nmutability pure"]
  103. returns_102 [label="returns\nint32 "]
  104. return_103 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:91:9-17"]
  105. number_literal_104 [label="int32 literal: 2\ntests/contract_testcases/solana/functions/overload_functions.sol:91:16-17"]
  106. foo_105 [label="function foo\ncontract: ManglingInvalid\ntests/contract_testcases/solana/functions/overload_functions.sol:95:5-53\nsignature foo(bool)\nvisibility public\nmutability pure"]
  107. parameters_106 [label="parameters\nbool a"]
  108. returns_107 [label="returns\nint32 "]
  109. if [label="if\ntests/contract_testcases/solana/functions/overload_functions.sol:96:9-100:10"]
  110. variable_109 [label="variable: a\nbool\ntests/contract_testcases/solana/functions/overload_functions.sol:96:13-14"]
  111. return_110 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:97:13-21"]
  112. number_literal_111 [label="int32 literal: 1\ntests/contract_testcases/solana/functions/overload_functions.sol:97:20-21"]
  113. return_112 [label="return\ntests/contract_testcases/solana/functions/overload_functions.sol:99:13-21"]
  114. number_literal_113 [label="int32 literal: 3\ntests/contract_testcases/solana/functions/overload_functions.sol:99:20-21"]
  115. diagnostic [label="found contract 'Test1'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:2:1-11:2"]
  116. diagnostic_116 [label="found contract 'Test2'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:13:1-25:2"]
  117. diagnostic_117 [label="function 'multiply' with this signature already defined\nlevel Error\ntests/contract_testcases/solana/functions/overload_functions.sol:22:5-68"]
  118. note [label="previous definition of function 'multiply'\ntests/contract_testcases/solana/functions/overload_functions.sol:44:5-68"]
  119. diagnostic_119 [label="found contract 'Test3'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:27:1-36:2"]
  120. diagnostic_120 [label="found contract 'Test4'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:38:1-47:2"]
  121. diagnostic_121 [label="found contract 'Test5'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:49:1-55:2"]
  122. diagnostic_122 [label="found abstract contract 'Test6'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:57:1-61:2"]
  123. diagnostic_123 [label="found contract 'Test7'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:63:1-71:2"]
  124. diagnostic_124 [label="found contract 'Base1'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:73:1-76:2"]
  125. diagnostic_125 [label="found contract 'Base2'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:78:1-81:2"]
  126. diagnostic_126 [label="found contract 'Inherited'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:83:1-87:2"]
  127. diagnostic_127 [label="found contract 'ManglingInvalid'\nlevel Debug\ntests/contract_testcases/solana/functions/overload_functions.sol:89:1-102:2"]
  128. diagnostic_128 [label="mangling the symbol of overloaded function 'foo' with signature 'foo(bool)' results in a new symbol 'foo_bool' but this symbol already exists\nlevel Error\ntests/contract_testcases/solana/functions/overload_functions.sol:95:5-53"]
  129. note_129 [label="this function declaration conflicts with mangled name\ntests/contract_testcases/solana/functions/overload_functions.sol:90:5-52"]
  130. contracts -> contract
  131. contract -> sum [label="function"]
  132. sum -> parameters [label="parameters"]
  133. sum -> returns [label="returns"]
  134. sum -> return [label="body"]
  135. return -> add [label="expr"]
  136. add -> variable [label="left"]
  137. add -> variable_8 [label="right"]
  138. contract -> sum_9 [label="function"]
  139. sum_9 -> parameters_10 [label="parameters"]
  140. sum_9 -> returns_11 [label="returns"]
  141. sum_9 -> return_12 [label="body"]
  142. return_12 -> add_13 [label="expr"]
  143. add_13 -> variable_14 [label="left"]
  144. add_13 -> variable_15 [label="right"]
  145. contracts -> contract_16
  146. contract_16 -> node_17 [label="constructor"]
  147. contract_16 -> sub [label="function"]
  148. sub -> parameters_19 [label="parameters"]
  149. sub -> returns_20 [label="returns"]
  150. sub -> return_21 [label="body"]
  151. return_21 -> subtract [label="expr"]
  152. subtract -> variable_23 [label="left"]
  153. subtract -> number_literal [label="right"]
  154. contract_16 -> multiply [label="function"]
  155. multiply -> parameters_26 [label="parameters"]
  156. multiply -> returns_27 [label="returns"]
  157. multiply -> return_28 [label="body"]
  158. return_28 -> multiply_29 [label="expr"]
  159. multiply_29 -> variable_30 [label="left"]
  160. multiply_29 -> variable_31 [label="right"]
  161. contracts -> contract_32
  162. contract_32 -> base [label="base"]
  163. contract_32 -> var [label="variable"]
  164. contract_32 -> node_35 [label="constructor"]
  165. node_35 -> parameters_36 [label="parameters"]
  166. node_35 -> expr [label="body"]
  167. expr -> assign [label="expr"]
  168. assign -> storage_var [label="left"]
  169. assign -> variable_40 [label="right"]
  170. contract_32 -> multiply_41 [label="function"]
  171. multiply_41 -> parameters_42 [label="parameters"]
  172. multiply_41 -> returns_43 [label="returns"]
  173. multiply_41 -> return_44 [label="body"]
  174. return_44 -> multiply_45 [label="expr"]
  175. multiply_45 -> variable_46 [label="left"]
  176. multiply_45 -> storage_load [label="right"]
  177. storage_load -> storage_var_48 [label="expr"]
  178. contracts -> contract_49
  179. contract_49 -> base_50 [label="base"]
  180. contract_49 -> var_51 [label="variable"]
  181. contract_49 -> node_52 [label="constructor"]
  182. node_52 -> parameters_53 [label="parameters"]
  183. node_52 -> expr_54 [label="body"]
  184. expr_54 -> assign_55 [label="expr"]
  185. assign_55 -> storage_var_56 [label="left"]
  186. assign_55 -> variable_57 [label="right"]
  187. contract_49 -> multiply_58 [label="function"]
  188. multiply_58 -> parameters_59 [label="parameters"]
  189. multiply_58 -> returns_60 [label="returns"]
  190. multiply_58 -> return_61 [label="body"]
  191. return_61 -> multiply_62 [label="expr"]
  192. multiply_62 -> multiply_63 [label="left"]
  193. multiply_63 -> variable_64 [label="left"]
  194. multiply_63 -> storage_load_65 [label="right"]
  195. storage_load_65 -> storage_var_66 [label="expr"]
  196. multiply_62 -> variable_67 [label="right"]
  197. contracts -> contract_68
  198. contract_68 -> base_69 [label="base"]
  199. contract_68 -> node_70 [label="constructor"]
  200. node_70 -> parameters_71 [label="parameters"]
  201. node_70 -> Test3 [label="base"]
  202. Test3 -> variable_73 [label="arg #0"]
  203. contract_68 -> sub_74 [label="function"]
  204. sub_74 -> parameters_75 [label="parameters"]
  205. sub_74 -> returns_76 [label="returns"]
  206. sub_74 -> return_77 [label="body"]
  207. return_77 -> subtract_78 [label="expr"]
  208. subtract_78 -> variable_79 [label="left"]
  209. subtract_78 -> number_literal_80 [label="right"]
  210. contracts -> contract_81
  211. contract_81 -> node_82 [label="constructor"]
  212. contract_81 -> doThis [label="function"]
  213. doThis -> returns_84 [label="returns"]
  214. contracts -> contract_85
  215. contract_85 -> base_86 [label="base"]
  216. contract_85 -> node_87 [label="constructor"]
  217. contract_85 -> doThis_88 [label="function"]
  218. doThis_88 -> returns_89 [label="returns"]
  219. doThis_88 -> return_90 [label="body"]
  220. return_90 -> number_literal_91 [label="expr"]
  221. contracts -> contract_92
  222. contract_92 -> foo [label="function"]
  223. contracts -> contract_94
  224. contract_94 -> foo_95 [label="function"]
  225. contracts -> contract_96
  226. contract_96 -> base_97 [label="base"]
  227. contract_96 -> base_98 [label="base"]
  228. contract_96 -> foo_99 [label="function"]
  229. contracts -> contract_100
  230. contract_100 -> foo_bool [label="function"]
  231. foo_bool -> returns_102 [label="returns"]
  232. foo_bool -> return_103 [label="body"]
  233. return_103 -> number_literal_104 [label="expr"]
  234. contract_100 -> foo_105 [label="function"]
  235. foo_105 -> parameters_106 [label="parameters"]
  236. foo_105 -> returns_107 [label="returns"]
  237. foo_105 -> if [label="body"]
  238. if -> variable_109 [label="cond"]
  239. if -> return_110 [label="then"]
  240. return_110 -> number_literal_111 [label="expr"]
  241. if -> return_112 [label="else"]
  242. return_112 -> number_literal_113 [label="expr"]
  243. diagnostics -> diagnostic [label="Debug"]
  244. diagnostics -> diagnostic_116 [label="Debug"]
  245. diagnostics -> diagnostic_117 [label="Error"]
  246. diagnostic_117 -> note [label="note"]
  247. diagnostics -> diagnostic_119 [label="Debug"]
  248. diagnostics -> diagnostic_120 [label="Debug"]
  249. diagnostics -> diagnostic_121 [label="Debug"]
  250. diagnostics -> diagnostic_122 [label="Debug"]
  251. diagnostics -> diagnostic_123 [label="Debug"]
  252. diagnostics -> diagnostic_124 [label="Debug"]
  253. diagnostics -> diagnostic_125 [label="Debug"]
  254. diagnostics -> diagnostic_126 [label="Debug"]
  255. diagnostics -> diagnostic_127 [label="Debug"]
  256. diagnostics -> diagnostic_128 [label="Error"]
  257. diagnostic_128 -> note_129 [label="note"]
  258. }