cast_contract.dot 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. strict digraph "tests/contract_testcases/substrate/inheritance/cast_contract.sol" {
  2. contract [label="contract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:2:9-5:10"]
  3. op1 [label="function op1\ncontract: operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:3:13-68\nsignature op1(int32,int32)\nvisibility external\nmutability nonpayable\nvirtual"]
  4. parameters [label="parameters\nint32 a\nint32 b"]
  5. returns [label="returns\nint32 "]
  6. op2 [label="function op2\ncontract: operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:4:13-68\nsignature op2(int32,int32)\nvisibility external\nmutability nonpayable\nvirtual"]
  7. parameters_6 [label="parameters\nint32 a\nint32 b"]
  8. returns_7 [label="returns\nint32 "]
  9. contract_8 [label="contract ferqu\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:7:9-21:10"]
  10. var [label="variable op\nvisibility internal\ncontract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:8:13-24"]
  11. new [label="constructor new\ncontract: ferqu\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:10:13-39\nsignature new(bool)\nvisibility public\nmutability nonpayable"]
  12. parameters_11 [label="parameters\nbool do_adds"]
  13. if [label="if\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:11:17-15:18"]
  14. variable [label="variable: do_adds\nbool\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:11:21-28"]
  15. expr [label="expression\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-34"]
  16. assign [label="assign\ncontract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-23"]
  17. storage_var [label="storage variable\nferqu.op\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-23"]
  18. cast [label="cast contract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:26-34"]
  19. constructor [label="constructor contract m1\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:26-34"]
  20. expr_19 [label="expression\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-34"]
  21. assign_20 [label="assign\ncontract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-23"]
  22. storage_var_21 [label="storage variable\nferqu.op\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-23"]
  23. cast_22 [label="cast contract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:26-34"]
  24. constructor_23 [label="constructor contract m2\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:26-34"]
  25. x [label="function x\ncontract: ferqu\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:18:13-55\nsignature x(int32)\nvisibility public\nmutability nonpayable"]
  26. parameters_25 [label="parameters\nint32 b"]
  27. returns_26 [label="returns\nint32 "]
  28. return [label="return\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:17-38"]
  29. call_external_function [label="call external function\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:24-38"]
  30. external_function [label="function(int32,int32) external returns (int32)\noperator.op1\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:24-38"]
  31. storage_load [label="storage load contract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:24-26"]
  32. storage_var_31 [label="storage variable\nferqu.op\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:24-26"]
  33. number_literal [label="int32 literal: 102\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:31-34"]
  34. variable_33 [label="variable: b\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:19:36-37"]
  35. contract_34 [label="contract m1\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:23:9-31:10"]
  36. base [label="base operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:23:24-32"]
  37. op1_36 [label="function op1\ncontract: m1\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:24:13-75\nsignature op1(int32,int32)\nvisibility public\nmutability nonpayable\noverride"]
  38. parameters_37 [label="parameters\nint32 a\nint32 b"]
  39. returns_38 [label="returns\nint32 "]
  40. return_39 [label="return\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:25:17-29"]
  41. add [label="add\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:25:24-29"]
  42. variable_41 [label="variable: a\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:25:24-25"]
  43. variable_42 [label="variable: b\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:25:28-29"]
  44. op2_43 [label="function op2\ncontract: m1\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:28:13-75\nsignature op2(int32,int32)\nvisibility public\nmutability nonpayable\noverride"]
  45. parameters_44 [label="parameters\nint32 a\nint32 b"]
  46. returns_45 [label="returns\nint32 "]
  47. return_46 [label="return\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:29:17-29"]
  48. subtract [label="subtract\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:29:24-29"]
  49. variable_48 [label="variable: a\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:29:24-25"]
  50. variable_49 [label="variable: b\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:29:28-29"]
  51. contract_50 [label="contract m2\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:33:9-41:10"]
  52. base_51 [label="base operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:33:24-32"]
  53. op1_52 [label="function op1\ncontract: m2\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:34:13-75\nsignature op1(int32,int32)\nvisibility public\nmutability nonpayable\noverride"]
  54. parameters_53 [label="parameters\nint32 a\nint32 b"]
  55. returns_54 [label="returns\nint32 "]
  56. return_55 [label="return\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:35:17-29"]
  57. multiply [label="multiply\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:35:24-29"]
  58. variable_57 [label="variable: a\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:35:24-25"]
  59. variable_58 [label="variable: b\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:35:28-29"]
  60. op2_59 [label="function op2\ncontract: m2\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:38:13-75\nsignature op2(int32,int32)\nvisibility public\nmutability nonpayable\noverride"]
  61. parameters_60 [label="parameters\nint32 a\nint32 b"]
  62. returns_61 [label="returns\nint32 "]
  63. return_62 [label="return\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:39:17-29"]
  64. divide [label="divide\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:39:24-29"]
  65. variable_64 [label="variable: a\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:39:24-25"]
  66. variable_65 [label="variable: b\nint32\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:39:28-29"]
  67. diagnostic [label="found interface 'operator'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:2:9-5:10"]
  68. diagnostic_68 [label="found contract 'ferqu'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:7:9-21:10"]
  69. diagnostic_69 [label="found contract 'm1'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:23:9-31:10"]
  70. diagnostic_70 [label="function can be declared 'pure'\nlevel Warning\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:24:13-75"]
  71. diagnostic_71 [label="function can be declared 'pure'\nlevel Warning\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:28:13-75"]
  72. diagnostic_72 [label="found contract 'm2'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:33:9-41:10"]
  73. diagnostic_73 [label="function can be declared 'pure'\nlevel Warning\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:34:13-75"]
  74. diagnostic_74 [label="function can be declared 'pure'\nlevel Warning\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:38:13-75"]
  75. contracts -> contract
  76. contract -> op1 [label="function"]
  77. op1 -> parameters [label="parameters"]
  78. op1 -> returns [label="returns"]
  79. contract -> op2 [label="function"]
  80. op2 -> parameters_6 [label="parameters"]
  81. op2 -> returns_7 [label="returns"]
  82. contracts -> contract_8
  83. contract_8 -> var [label="variable"]
  84. contract_8 -> new [label="constructor"]
  85. new -> parameters_11 [label="parameters"]
  86. new -> if [label="body"]
  87. if -> variable [label="cond"]
  88. if -> expr [label="then"]
  89. expr -> assign [label="expr"]
  90. assign -> storage_var [label="left"]
  91. assign -> cast [label="right"]
  92. cast -> constructor [label="expr"]
  93. if -> expr_19 [label="else"]
  94. expr_19 -> assign_20 [label="expr"]
  95. assign_20 -> storage_var_21 [label="left"]
  96. assign_20 -> cast_22 [label="right"]
  97. cast_22 -> constructor_23 [label="expr"]
  98. contract_8 -> x [label="function"]
  99. x -> parameters_25 [label="parameters"]
  100. x -> returns_26 [label="returns"]
  101. x -> return [label="body"]
  102. return -> call_external_function [label="expr"]
  103. call_external_function -> external_function [label="function"]
  104. external_function -> storage_load [label="address"]
  105. storage_load -> storage_var_31 [label="expr"]
  106. call_external_function -> number_literal [label="arg #0"]
  107. call_external_function -> variable_33 [label="arg #1"]
  108. contracts -> contract_34
  109. contract_34 -> base [label="base"]
  110. contract_34 -> op1_36 [label="function"]
  111. op1_36 -> parameters_37 [label="parameters"]
  112. op1_36 -> returns_38 [label="returns"]
  113. op1_36 -> return_39 [label="body"]
  114. return_39 -> add [label="expr"]
  115. add -> variable_41 [label="left"]
  116. add -> variable_42 [label="right"]
  117. contract_34 -> op2_43 [label="function"]
  118. op2_43 -> parameters_44 [label="parameters"]
  119. op2_43 -> returns_45 [label="returns"]
  120. op2_43 -> return_46 [label="body"]
  121. return_46 -> subtract [label="expr"]
  122. subtract -> variable_48 [label="left"]
  123. subtract -> variable_49 [label="right"]
  124. contracts -> contract_50
  125. contract_50 -> base_51 [label="base"]
  126. contract_50 -> op1_52 [label="function"]
  127. op1_52 -> parameters_53 [label="parameters"]
  128. op1_52 -> returns_54 [label="returns"]
  129. op1_52 -> return_55 [label="body"]
  130. return_55 -> multiply [label="expr"]
  131. multiply -> variable_57 [label="left"]
  132. multiply -> variable_58 [label="right"]
  133. contract_50 -> op2_59 [label="function"]
  134. op2_59 -> parameters_60 [label="parameters"]
  135. op2_59 -> returns_61 [label="returns"]
  136. op2_59 -> return_62 [label="body"]
  137. return_62 -> divide [label="expr"]
  138. divide -> variable_64 [label="left"]
  139. divide -> variable_65 [label="right"]
  140. diagnostics -> diagnostic [label="Debug"]
  141. diagnostics -> diagnostic_68 [label="Debug"]
  142. diagnostics -> diagnostic_69 [label="Debug"]
  143. diagnostics -> diagnostic_70 [label="Warning"]
  144. diagnostics -> diagnostic_71 [label="Warning"]
  145. diagnostics -> diagnostic_72 [label="Debug"]
  146. diagnostics -> diagnostic_73 [label="Warning"]
  147. diagnostics -> diagnostic_74 [label="Warning"]
  148. }