override.dot 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. strict digraph "tests/contract_testcases/solana/functions/override.sol" {
  2. S [label="name:S\ntests/contract_testcases/solana/functions/../simple.sol:3:8-9\nfield name:f1 ty:int64\nfield name:f2 ty:bool"]
  3. inc [label="function inc\ntests/contract_testcases/solana/functions/../simple.sol:7:1-23\nsignature inc((int64,bool))\nvisibility internal\nmutability pure"]
  4. parameters [label="parameters\nstruct S s"]
  5. expr [label="expression\ntests/contract_testcases/solana/functions/../simple.sol:7:26-35"]
  6. assign [label="assign\nint64\ntests/contract_testcases/solana/functions/../simple.sol:7:26-35"]
  7. structmember [label="struct member #0 int64\ntests/contract_testcases/solana/functions/../simple.sol:7:28-30"]
  8. variable [label="variable: s\nstruct S\ntests/contract_testcases/solana/functions/../simple.sol:7:26-27"]
  9. add [label="add\nint64\ntests/contract_testcases/solana/functions/../simple.sol:7:26-35"]
  10. load [label="load int64\ntests/contract_testcases/solana/functions/../simple.sol:7:26-35"]
  11. structmember_11 [label="struct member #0 int64\ntests/contract_testcases/solana/functions/../simple.sol:7:28-30"]
  12. variable_12 [label="variable: s\nstruct S\ntests/contract_testcases/solana/functions/../simple.sol:7:26-27"]
  13. number_literal [label="int64 literal: 1\ntests/contract_testcases/solana/functions/../simple.sol:7:34-35"]
  14. contract [label="contract C\ntests/contract_testcases/solana/functions/override.sol:5:1-7:2"]
  15. base [label="base A\ntests/contract_testcases/solana/functions/override.sol:5:15-20"]
  16. var [label="variable meh\nvisibility public\ntests/contract_testcases/solana/functions/override.sol:6:2-32"]
  17. meh [label="function meh\ncontract: C\ntests/contract_testcases/solana/functions/override.sol:6:29-32\nsignature meh()\nvisibility public\nmutability view\noverride A"]
  18. returns [label="returns\nint256 "]
  19. return [label="return\nimplicit"]
  20. storage_load [label="storage load int256\nimplicit"]
  21. storage_var [label="storage variable\nC.meh\nint256 storage\nimplicit"]
  22. contract_23 [label="contract A\ntests/contract_testcases/solana/functions/override.sol:9:1-11:2"]
  23. foo [label="function foo\ncontract: A\ntests/contract_testcases/solana/functions/override.sol:10:5-43\nsignature foo()\nvisibility external\nmutability nonpayable\nvirtual"]
  24. returns_25 [label="returns\nuint256 "]
  25. contract_26 [label="contract B\ntests/contract_testcases/solana/functions/override.sol:12:1-14:2"]
  26. foo_27 [label="function foo\ncontract: B\ntests/contract_testcases/solana/functions/override.sol:13:5-43\nsignature foo()\nvisibility external\nmutability nonpayable\nvirtual"]
  27. returns_28 [label="returns\nuint256 "]
  28. contract_29 [label="contract X\ntests/contract_testcases/solana/functions/override.sol:15:1-17:2"]
  29. base_30 [label="base A\ntests/contract_testcases/solana/functions/override.sol:15:15-16"]
  30. base_31 [label="base B\ntests/contract_testcases/solana/functions/override.sol:15:18-19"]
  31. var_32 [label="variable foo\nvisibility public\ntests/contract_testcases/solana/functions/override.sol:16:9-39"]
  32. foo_33 [label="function foo\ncontract: X\ntests/contract_testcases/solana/functions/override.sol:16:36-39\nsignature foo()\nvisibility public\nmutability view\noverride A\noverride B"]
  33. returns_34 [label="returns\nuint256 "]
  34. return_35 [label="return\nimplicit"]
  35. storage_load_36 [label="storage load uint256\nimplicit"]
  36. storage_var_37 [label="storage variable\nX.foo\nuint256 storage\nimplicit"]
  37. contract_38 [label="contract Y\ntests/contract_testcases/solana/functions/override.sol:18:1-19:2"]
  38. base_39 [label="base X\ntests/contract_testcases/solana/functions/override.sol:18:15-16"]
  39. contract_40 [label="contract A2\ntests/contract_testcases/solana/functions/override.sol:21:1-23:2"]
  40. foo_41 [label="function foo\ncontract: A2\ntests/contract_testcases/solana/functions/override.sol:22:5-51\nsignature foo()\nvisibility external\nmutability nonpayable\nvirtual"]
  41. returns_42 [label="returns\nuint256 "]
  42. return_43 [label="return\ntests/contract_testcases/solana/functions/override.sol:22:54-62"]
  43. number_literal_44 [label="uint256 literal: 1\ntests/contract_testcases/solana/functions/override.sol:22:61-62"]
  44. contract_45 [label="contract B2\ntests/contract_testcases/solana/functions/override.sol:24:1-26:2"]
  45. foo_46 [label="function foo\ncontract: B2\ntests/contract_testcases/solana/functions/override.sol:25:5-51\nsignature foo()\nvisibility external\nmutability nonpayable\nvirtual"]
  46. returns_47 [label="returns\nuint256 "]
  47. return_48 [label="return\ntests/contract_testcases/solana/functions/override.sol:25:54-62"]
  48. number_literal_49 [label="uint256 literal: 2\ntests/contract_testcases/solana/functions/override.sol:25:61-62"]
  49. contract_50 [label="contract X2\ntests/contract_testcases/solana/functions/override.sol:27:1-29:2"]
  50. base_51 [label="base A2\ntests/contract_testcases/solana/functions/override.sol:27:16-18"]
  51. base_52 [label="base B2\ntests/contract_testcases/solana/functions/override.sol:27:20-22"]
  52. var_53 [label="variable foo\nvisibility public\ntests/contract_testcases/solana/functions/override.sol:28:9-37"]
  53. foo_54 [label="function foo\ncontract: X2\ntests/contract_testcases/solana/functions/override.sol:28:34-37\nsignature foo()\nvisibility public\nmutability view\noverride A2"]
  54. returns_55 [label="returns\nuint256 "]
  55. return_56 [label="return\nimplicit"]
  56. storage_load_57 [label="storage load uint256\nimplicit"]
  57. storage_var_58 [label="storage variable\nX2.foo\nuint256 storage\nimplicit"]
  58. contract_59 [label="contract Y2\ntests/contract_testcases/solana/functions/override.sol:30:1-31:2"]
  59. base_60 [label="base X2\ntests/contract_testcases/solana/functions/override.sol:30:16-18"]
  60. contract_61 [label="contract A\ntests/contract_testcases/solana/functions/../simple.sol:1:1-14"]
  61. contract_62 [label="contract L\ntests/contract_testcases/solana/functions/../simple.sol:2:1-13"]
  62. diagnostic [label="global variable has no bases contracts to override\nlevel Error\ntests/contract_testcases/solana/functions/override.sol:3:14-22"]
  63. diagnostic_65 [label="found contract 'C'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:5:1-7:2"]
  64. diagnostic_66 [label="'meh' does not override anything\nlevel Error\ntests/contract_testcases/solana/functions/override.sol:6:29-32"]
  65. diagnostic_67 [label="found interface 'A'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:9:1-11:2"]
  66. diagnostic_68 [label="found interface 'B'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:12:1-14:2"]
  67. diagnostic_69 [label="found contract 'X'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:15:1-17:2"]
  68. diagnostic_70 [label="found contract 'Y'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:18:1-19:2"]
  69. diagnostic_71 [label="found abstract contract 'A2'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:21:1-23:2"]
  70. diagnostic_72 [label="found abstract contract 'B2'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:24:1-26:2"]
  71. diagnostic_73 [label="found contract 'X2'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:27:1-29:2"]
  72. diagnostic_74 [label="function 'foo' missing overrides 'B2', specify 'override(B2,A2)'\nlevel Error\ntests/contract_testcases/solana/functions/override.sol:28:21-33"]
  73. diagnostic_75 [label="found contract 'Y2'\nlevel Debug\ntests/contract_testcases/solana/functions/override.sol:30:1-31:2"]
  74. diagnostic_76 [label="found contract 'A'\nlevel Debug\ntests/contract_testcases/solana/functions/../simple.sol:1:1-14"]
  75. diagnostic_77 [label="found library 'L'\nlevel Debug\ntests/contract_testcases/solana/functions/../simple.sol:2:1-13"]
  76. structs -> S
  77. free_functions -> inc [label="function"]
  78. inc -> parameters [label="parameters"]
  79. inc -> expr [label="body"]
  80. expr -> assign [label="expr"]
  81. assign -> structmember [label="left"]
  82. structmember -> variable [label="var"]
  83. assign -> add [label="right"]
  84. add -> load [label="left"]
  85. load -> structmember_11 [label="expr"]
  86. structmember_11 -> variable_12 [label="var"]
  87. add -> number_literal [label="right"]
  88. contracts -> contract
  89. contract -> base [label="base"]
  90. contract -> var [label="variable"]
  91. contract -> meh [label="function"]
  92. meh -> returns [label="returns"]
  93. meh -> return [label="body"]
  94. return -> storage_load [label="expr"]
  95. storage_load -> storage_var [label="expr"]
  96. contracts -> contract_23
  97. contract_23 -> foo [label="function"]
  98. foo -> returns_25 [label="returns"]
  99. contracts -> contract_26
  100. contract_26 -> foo_27 [label="function"]
  101. foo_27 -> returns_28 [label="returns"]
  102. contracts -> contract_29
  103. contract_29 -> base_30 [label="base"]
  104. contract_29 -> base_31 [label="base"]
  105. contract_29 -> var_32 [label="variable"]
  106. contract_29 -> foo_33 [label="function"]
  107. foo_33 -> returns_34 [label="returns"]
  108. foo_33 -> return_35 [label="body"]
  109. return_35 -> storage_load_36 [label="expr"]
  110. storage_load_36 -> storage_var_37 [label="expr"]
  111. contracts -> contract_38
  112. contract_38 -> base_39 [label="base"]
  113. contracts -> contract_40
  114. contract_40 -> foo_41 [label="function"]
  115. foo_41 -> returns_42 [label="returns"]
  116. foo_41 -> return_43 [label="body"]
  117. return_43 -> number_literal_44 [label="expr"]
  118. contracts -> contract_45
  119. contract_45 -> foo_46 [label="function"]
  120. foo_46 -> returns_47 [label="returns"]
  121. foo_46 -> return_48 [label="body"]
  122. return_48 -> number_literal_49 [label="expr"]
  123. contracts -> contract_50
  124. contract_50 -> base_51 [label="base"]
  125. contract_50 -> base_52 [label="base"]
  126. contract_50 -> var_53 [label="variable"]
  127. contract_50 -> foo_54 [label="function"]
  128. foo_54 -> returns_55 [label="returns"]
  129. foo_54 -> return_56 [label="body"]
  130. return_56 -> storage_load_57 [label="expr"]
  131. storage_load_57 -> storage_var_58 [label="expr"]
  132. contracts -> contract_59
  133. contract_59 -> base_60 [label="base"]
  134. contracts -> contract_61
  135. contracts -> contract_62
  136. diagnostics -> diagnostic [label="Error"]
  137. diagnostics -> diagnostic_65 [label="Debug"]
  138. diagnostics -> diagnostic_66 [label="Error"]
  139. diagnostics -> diagnostic_67 [label="Debug"]
  140. diagnostics -> diagnostic_68 [label="Debug"]
  141. diagnostics -> diagnostic_69 [label="Debug"]
  142. diagnostics -> diagnostic_70 [label="Debug"]
  143. diagnostics -> diagnostic_71 [label="Debug"]
  144. diagnostics -> diagnostic_72 [label="Debug"]
  145. diagnostics -> diagnostic_73 [label="Debug"]
  146. diagnostics -> diagnostic_74 [label="Error"]
  147. diagnostics -> diagnostic_75 [label="Debug"]
  148. diagnostics -> diagnostic_76 [label="Debug"]
  149. diagnostics -> diagnostic_77 [label="Debug"]
  150. }