浏览代码

Fix assignment chains (#1110)

Fix assigning to both a storage variable and non-storage in assignment
chain.

Fixes https://github.com/xermicus/fuzzy-sol/issues/142

Signed-off-by: Sean Young <sean@mess.org>
Co-authored-by: Cyrill Leutwiler <cyrill@parity.io>
Sean Young 2 年之前
父节点
当前提交
4de31facd5
共有 27 个文件被更改,包括 191 次插入60 次删除
  1. 5 3
      src/sema/expression.rs
  2. 16 16
      tests/contract_testcases/evm/comment_tests.dot
  3. 2 2
      tests/contract_testcases/evm/interface_inheritance.dot
  4. 3 3
      tests/contract_testcases/evm/llvm_type.dot
  5. 7 7
      tests/contract_testcases/evm/rubixi.dot
  6. 2 2
      tests/contract_testcases/solana/functions/overload_functions.dot
  7. 1 1
      tests/contract_testcases/solana/mapping_deletion.dot
  8. 2 2
      tests/contract_testcases/substrate/arrays/lucas.dot
  9. 2 2
      tests/contract_testcases/substrate/contracts/external_call_02.dot
  10. 1 1
      tests/contract_testcases/substrate/contracts/external_call_03.dot
  11. 3 3
      tests/contract_testcases/substrate/doccomments_everywhere.dot
  12. 100 0
      tests/contract_testcases/substrate/expressions/assign_chain.dot
  13. 29 0
      tests/contract_testcases/substrate/expressions/assign_chain.sol
  14. 2 2
      tests/contract_testcases/substrate/expressions/test_cast_errors_04.dot
  15. 1 1
      tests/contract_testcases/substrate/functions/global_functions_08.dot
  16. 1 1
      tests/contract_testcases/substrate/functions/mutability_03.dot
  17. 1 1
      tests/contract_testcases/substrate/functions/mutability_04.dot
  18. 1 1
      tests/contract_testcases/substrate/functions/shadowing.dot
  19. 2 2
      tests/contract_testcases/substrate/inheritance/base_contract_access_via_name.dot
  20. 1 1
      tests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.dot
  21. 1 1
      tests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.dot
  22. 1 1
      tests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.dot
  23. 1 1
      tests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.dot
  24. 2 2
      tests/contract_testcases/substrate/inheritance/cast_contract.dot
  25. 2 2
      tests/contract_testcases/substrate/inheritance/test_override_06.dot
  26. 1 1
      tests/contract_testcases/substrate/value/this_address_03.dot
  27. 1 1
      tests/contract_testcases/substrate/value/this_address_04.dot

+ 5 - 3
src/sema/expression.rs

@@ -4268,11 +4268,13 @@ fn assign_single(
                 }
             }
 
+            let ty = ty.deref_any();
+
             Ok(Expression::Assign(
                 *loc,
                 ty.clone(),
                 Box::new(var.clone()),
-                Box::new(val.cast(&right.loc(), ty.deref_any(), true, ns, diagnostics)?),
+                Box::new(val.cast(&right.loc(), ty, true, ns, diagnostics)?),
             ))
         }
         Expression::Variable(_, var_ty, _) => Ok(Expression::Assign(
@@ -4284,7 +4286,7 @@ fn assign_single(
         _ => match &var_ty {
             Type::Ref(r_ty) => Ok(Expression::Assign(
                 *loc,
-                var_ty.clone(),
+                *r_ty.clone(),
                 Box::new(var),
                 Box::new(val.cast(&right.loc(), r_ty, true, ns, diagnostics)?),
             )),
@@ -4303,7 +4305,7 @@ fn assign_single(
 
                 Ok(Expression::Assign(
                     *loc,
-                    var_ty.clone(),
+                    *r_ty.clone(),
                     Box::new(var),
                     Box::new(val.cast(&right.loc(), r_ty, true, ns, diagnostics)?),
                 ))

+ 16 - 16
tests/contract_testcases/evm/comment_tests.dot

@@ -297,7 +297,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	call_internal_function_297 [label="call internal function\ntests/contract_testcases/evm/comment_tests.sol:323:29-41"]
 	internal_function_298 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/evm/comment_tests.sol:323:29-41"]
 	expr_299 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:324:9-27"]
-	assign [label="assign\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:324:9-15"]
+	assign [label="assign\naddress\ntests/contract_testcases/evm/comment_tests.sol:324:9-15"]
 	storage_var [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:324:9-15"]
 	variable_302 [label="variable: msgSender\naddress\ntests/contract_testcases/evm/comment_tests.sol:324:18-27"]
 	emit [label="emit\nevent Ownable.OwnershipTransferred\ntests/contract_testcases/evm/comment_tests.sol:327:9-57"]
@@ -340,12 +340,12 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	alloc_array_340 [label="alloc array string\ninitializer: 2e\ntests/contract_testcases/evm/comment_tests.sol:354:37-40"]
 	number_literal_341 [label="uint32 literal: 1\ntests/contract_testcases/evm/comment_tests.sol:354:37-40"]
 	expr_342 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:355:13-33"]
-	assign_343 [label="assign\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:355:13-19"]
+	assign_343 [label="assign\naddress\ntests/contract_testcases/evm/comment_tests.sol:355:13-19"]
 	storage_var_344 [label="storage variable\nOwnable.owners\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:355:13-19"]
 	variable_345 [label="variable: amm\naddress\ntests/contract_testcases/evm/comment_tests.sol:355:30-33"]
 	renounceOwnership [label="function renounceOwnership\ncontract: Ownable\ntests/contract_testcases/evm/comment_tests.sol:358:5-364:9\nsignature renounceOwnership()\nvisibility public\nmutability nonpayable\nvirtual"]
 	expr_347 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:366:10-31"]
-	assign_348 [label="assign\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:366:10-16"]
+	assign_348 [label="assign\naddress\ntests/contract_testcases/evm/comment_tests.sol:366:10-16"]
 	storage_var_349 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:366:10-16"]
 	storage_load_350 [label="storage load address\ntests/contract_testcases/evm/comment_tests.sol:366:19-31"]
 	storage_var_351 [label="storage variable\nOwnable._deadAddress\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:366:19-31"]
@@ -387,13 +387,13 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	using_387 [label="using for address\nlibrary Address"]
 	node_388 [label="constructor \ncontract: TigerBNB\ntests/contract_testcases/evm/comment_tests.sol:415:9-417:11\nsignature ()\nvisibility public\nmutability nonpayable"]
 	expr_389 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:419:14-47"]
-	assign_390 [label="assign\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:419:14-20"]
+	assign_390 [label="assign\naddress\ntests/contract_testcases/evm/comment_tests.sol:419:14-20"]
 	storage_var_391 [label="storage variable\nTigerBNB.owners\naddress storage\ntests/contract_testcases/evm/comment_tests.sol:419:14-20"]
 	cast_392 [label="cast address\ntests/contract_testcases/evm/comment_tests.sol:419:31-47"]
 	call_internal_function_393 [label="call internal function\ntests/contract_testcases/evm/comment_tests.sol:419:31-47"]
 	internal_function_394 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/evm/comment_tests.sol:419:31-47"]
 	expr_395 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:420:13-56"]
-	assign_396 [label="assign\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:420:13-56"]
+	assign_396 [label="assign\nuint256\ntests/contract_testcases/evm/comment_tests.sol:420:13-56"]
 	subscript [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:420:13-38"]
 	storage_var_398 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:420:13-20"]
 	cast_399 [label="cast address\ntests/contract_testcases/evm/comment_tests.sol:420:25-37"]
@@ -402,28 +402,28 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	storage_load_402 [label="storage load uint256\ntests/contract_testcases/evm/comment_tests.sol:420:49-56"]
 	storage_var_403 [label="storage variable\nTigerBNB._Ttotal\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:420:49-56"]
 	expr_404 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:422:13-34"]
-	assign_405 [label="assign\nuint8 storage\ntests/contract_testcases/evm/comment_tests.sol:422:13-22"]
+	assign_405 [label="assign\nuint8\ntests/contract_testcases/evm/comment_tests.sol:422:13-22"]
 	storage_var_406 [label="storage variable\nTigerBNB._decimals\nuint8 storage\ntests/contract_testcases/evm/comment_tests.sol:422:13-22"]
 	number_literal_407 [label="uint8 literal: 8\ntests/contract_testcases/evm/comment_tests.sol:422:33-34"]
 	expr_408 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:423:13-39"]
-	assign_409 [label="assign\nstring storage\ntests/contract_testcases/evm/comment_tests.sol:423:13-18"]
+	assign_409 [label="assign\nstring\ntests/contract_testcases/evm/comment_tests.sol:423:13-18"]
 	storage_var_410 [label="storage variable\nTigerBNB._name\nstring storage\ntests/contract_testcases/evm/comment_tests.sol:423:13-18"]
 	alloc_array_411 [label="alloc array string\ninitializer: 5469676572424e42\ntests/contract_testcases/evm/comment_tests.sol:423:29-39"]
 	number_literal_412 [label="uint32 literal: 8\ntests/contract_testcases/evm/comment_tests.sol:423:29-39"]
 	expr_413 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:424:13-41"]
-	assign_414 [label="assign\nstring storage\ntests/contract_testcases/evm/comment_tests.sol:424:13-20"]
+	assign_414 [label="assign\nstring\ntests/contract_testcases/evm/comment_tests.sol:424:13-20"]
 	storage_var_415 [label="storage variable\nTigerBNB._symbol\nstring storage\ntests/contract_testcases/evm/comment_tests.sol:424:13-20"]
 	alloc_array_416 [label="alloc array string\ninitializer: 5469676572424e42\ntests/contract_testcases/evm/comment_tests.sol:424:31-41"]
 	number_literal_417 [label="uint32 literal: 8\ntests/contract_testcases/evm/comment_tests.sol:424:31-41"]
 	expr_418 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:425:9-41"]
-	assign_419 [label="assign\nbool storage\ntests/contract_testcases/evm/comment_tests.sol:425:9-41"]
+	assign_419 [label="assign\nbool\ntests/contract_testcases/evm/comment_tests.sol:425:9-41"]
 	subscript_420 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/evm/comment_tests.sol:425:9-34"]
 	storage_var_421 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/evm/comment_tests.sol:425:9-25"]
 	call_internal_function_422 [label="call internal function\ntests/contract_testcases/evm/comment_tests.sol:425:26-33"]
 	internal_function_423 [label="function() internal view returns (address)\nOwnable.owner\ntests/contract_testcases/evm/comment_tests.sol:425:26-33"]
 	bool_literal_424 [label="bool literal: true\ntests/contract_testcases/evm/comment_tests.sol:425:37-41"]
 	expr_425 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:426:9-47"]
-	assign_426 [label="assign\nbool storage\ntests/contract_testcases/evm/comment_tests.sol:426:9-47"]
+	assign_426 [label="assign\nbool\ntests/contract_testcases/evm/comment_tests.sol:426:9-47"]
 	subscript_427 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/evm/comment_tests.sol:426:9-40"]
 	storage_var_428 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/evm/comment_tests.sol:426:9-25"]
 	cast_429 [label="cast address\ntests/contract_testcases/evm/comment_tests.sol:426:26-39"]
@@ -568,7 +568,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	parameters_568 [label="parameters\naddress sender\naddress recipient\nuint256 amount"]
 	returns_569 [label="returns\nbool "]
 	expr_570 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:531:9-22"]
-	assign_571 [label="assign\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:531:9-15"]
+	assign_571 [label="assign\nuint256\ntests/contract_testcases/evm/comment_tests.sol:531:9-15"]
 	storage_var_572 [label="storage variable\nTigerBNB.damada\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:531:9-15"]
 	number_literal_573 [label="uint256 literal: 3354\ntests/contract_testcases/evm/comment_tests.sol:531:18-22"]
 	if_574 [label="if\ntests/contract_testcases/evm/comment_tests.sol:535:13-541:10"]
@@ -667,7 +667,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	alloc_array_667 [label="alloc array string\ninitializer: 20\ntests/contract_testcases/evm/comment_tests.sol:566:50-53"]
 	number_literal_668 [label="uint32 literal: 1\ntests/contract_testcases/evm/comment_tests.sol:566:50-53"]
 	expr_669 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:567:13-97"]
-	assign_670 [label="assign\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:567:13-97"]
+	assign_670 [label="assign\nuint256\ntests/contract_testcases/evm/comment_tests.sol:567:13-97"]
 	subscript_671 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:567:13-38"]
 	storage_var_672 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:567:13-20"]
 	variable_673 [label="variable: Raddress\naddress\ntests/contract_testcases/evm/comment_tests.sol:567:29-37"]
@@ -687,7 +687,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	approve_687 [label="function approve\ncontract: TigerBNB\ntests/contract_testcases/evm/comment_tests.sol:586:9-596:13\nsignature approve(address)\nvisibility external\nmutability nonpayable"]
 	parameters_688 [label="parameters\naddress spender"]
 	expr_689 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:598:13-600:13"]
-	assign_690 [label="assign\nbool storage\ntests/contract_testcases/evm/comment_tests.sol:598:13-600:13"]
+	assign_690 [label="assign\nbool\ntests/contract_testcases/evm/comment_tests.sol:598:13-600:13"]
 	subscript_691 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/evm/comment_tests.sol:598:13-599:10"]
 	storage_var_692 [label="storage variable\nTigerBNB._espat\nmapping(address => bool) storage\ntests/contract_testcases/evm/comment_tests.sol:598:13-19"]
 	variable_693 [label="variable: spender\naddress\ntests/contract_testcases/evm/comment_tests.sol:598:20-27"]
@@ -755,7 +755,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	alloc_array_755 [label="alloc array string\ninitializer: 4942455032303a207472616e7366657220746f20746865207a65726f2061646472657373\ntests/contract_testcases/evm/comment_tests.sol:657:42-80"]
 	number_literal_756 [label="uint32 literal: 36\ntests/contract_testcases/evm/comment_tests.sol:657:42-80"]
 	expr_757 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:658:13-59"]
-	assign_758 [label="assign\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:658:13-59"]
+	assign_758 [label="assign\nuint256\ntests/contract_testcases/evm/comment_tests.sol:658:13-59"]
 	subscript_759 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:658:13-28"]
 	storage_var_760 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:658:13-20"]
 	variable_761 [label="variable: sender\naddress\ntests/contract_testcases/evm/comment_tests.sol:658:21-27"]
@@ -767,7 +767,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	variable_767 [label="variable: sender\naddress\ntests/contract_testcases/evm/comment_tests.sol:658:39-45"]
 	variable_768 [label="variable: tAmount\nuint256\ntests/contract_testcases/evm/comment_tests.sol:658:51-58"]
 	expr_769 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:659:9-61"]
-	assign_770 [label="assign\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:659:9-61"]
+	assign_770 [label="assign\nuint256\ntests/contract_testcases/evm/comment_tests.sol:659:9-61"]
 	subscript_771 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:659:9-27"]
 	storage_var_772 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:659:9-16"]
 	variable_773 [label="variable: recipient\naddress\ntests/contract_testcases/evm/comment_tests.sol:659:17-26"]
@@ -801,7 +801,7 @@ strict digraph "tests/contract_testcases/evm/comment_tests.sol" {
 	alloc_array_801 [label="alloc array string\ninitializer: 45524332303a20617070726f766520746f20746865207a65726f2061646472657373\ntests/contract_testcases/evm/comment_tests.sol:674:40-76"]
 	number_literal_802 [label="uint32 literal: 34\ntests/contract_testcases/evm/comment_tests.sol:674:40-76"]
 	expr_803 [label="expression\ntests/contract_testcases/evm/comment_tests.sol:675:9-44"]
-	assign_804 [label="assign\nuint256 storage\ntests/contract_testcases/evm/comment_tests.sol:675:9-44"]
+	assign_804 [label="assign\nuint256\ntests/contract_testcases/evm/comment_tests.sol:675:9-44"]
 	subscript_805 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/evm/comment_tests.sol:675:9-35"]
 	subscript_806 [label="subscript mapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/evm/comment_tests.sol:675:9-26"]
 	storage_var_807 [label="storage variable\nTigerBNB._allowance\nmapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/evm/comment_tests.sol:675:9-19"]

+ 2 - 2
tests/contract_testcases/evm/interface_inheritance.dot

@@ -34,7 +34,7 @@ strict digraph "tests/contract_testcases/evm/interface_inheritance.sol" {
 	cast [label="cast contract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:31:47-109"]
 	number_literal [label="address literal: 96635033217071433185869069577301221175488545358\ntests/contract_testcases/evm/interface_inheritance.sol:31:66-108"]
 	expr [label="expression\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-43"]
-	assign [label="assign\ncontract IUniswapV2Router02 storage\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-24"]
+	assign [label="assign\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-24"]
 	storage_var_37 [label="storage variable\nBABYLINK.uniswapV2Router\ncontract IUniswapV2Router02 storage\ntests/contract_testcases/evm/interface_inheritance.sol:33:9-24"]
 	variable [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:33:27-43"]
 	changeRouterVersion [label="function changeRouterVersion\ncontract: BABYLINK\ntests/contract_testcases/evm/interface_inheritance.sol:37:5-98\nsignature changeRouterVersion(address)\nvisibility public\nmutability nonpayable"]
@@ -64,7 +64,7 @@ strict digraph "tests/contract_testcases/evm/interface_inheritance.sol" {
 	cast_63 [label="cast contract IUniswapV2Router01\ntests/contract_testcases/evm/interface_inheritance.sol:45:44-60"]
 	variable_64 [label="variable: _uniswapV2Router\ncontract IUniswapV2Router02\ntests/contract_testcases/evm/interface_inheritance.sol:45:44-60"]
 	expr_65 [label="expression\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-118"]
-	assign_66 [label="assign\naddress storage\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-26"]
+	assign_66 [label="assign\naddress\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-26"]
 	storage_var_67 [label="storage variable\nBABYLINK.uniswapV2Pair\naddress storage\ntests/contract_testcases/evm/interface_inheritance.sol:46:13-26"]
 	call_external_function_68 [label="call external function\ntests/contract_testcases/evm/interface_inheritance.sol:46:29-118"]
 	external_function_69 [label="function(address,address) external returns (address)\nIUniswapV2Router01.createSomething\ntests/contract_testcases/evm/interface_inheritance.sol:46:29-118"]

+ 3 - 3
tests/contract_testcases/evm/llvm_type.dot

@@ -20,7 +20,7 @@ strict digraph "tests/contract_testcases/evm/llvm_type.sol" {
 	call_internal_function [label="call internal function\ntests/contract_testcases/evm/llvm_type.sol:16:40-52"]
 	internal_function [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/evm/llvm_type.sol:16:40-52"]
 	expr_22 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:17:17-37"]
-	assign [label="assign\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:17:17-23"]
+	assign [label="assign\naddress\ntests/contract_testcases/evm/llvm_type.sol:17:17-23"]
 	storage_var [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:17:17-23"]
 	variable [label="variable: msgSender\naddress\ntests/contract_testcases/evm/llvm_type.sol:17:28-37"]
 	emit [label="emit\nevent Ownable.OwnershipTransferred\ntests/contract_testcases/evm/llvm_type.sol:18:17-67"]
@@ -49,7 +49,7 @@ strict digraph "tests/contract_testcases/evm/llvm_type.sol" {
 	storage_var_49 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:30:44-50"]
 	number_literal_50 [label="address literal: 0\ntests/contract_testcases/evm/llvm_type.sol:30:53-63"]
 	expr_51 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:31:17-38"]
-	assign_52 [label="assign\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:31:17-23"]
+	assign_52 [label="assign\naddress\ntests/contract_testcases/evm/llvm_type.sol:31:17-23"]
 	storage_var_53 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:31:17-23"]
 	number_literal_54 [label="address literal: 0\ntests/contract_testcases/evm/llvm_type.sol:31:28-38"]
 	transferOwnership [label="function transferOwnership\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:34:9-83\nsignature transferOwnership(address)\nvisibility public\nmutability nonpayable\nvirtual"]
@@ -67,7 +67,7 @@ strict digraph "tests/contract_testcases/evm/llvm_type.sol" {
 	storage_var_67 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:36:44-50"]
 	variable_68 [label="variable: newOwner\naddress\ntests/contract_testcases/evm/llvm_type.sol:36:53-61"]
 	expr_69 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:37:17-36"]
-	assign_70 [label="assign\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:37:17-23"]
+	assign_70 [label="assign\naddress\ntests/contract_testcases/evm/llvm_type.sol:37:17-23"]
 	storage_var_71 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:37:17-23"]
 	variable_72 [label="variable: newOwner\naddress\ntests/contract_testcases/evm/llvm_type.sol:37:28-36"]
 	getTime [label="function getTime\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:40:9-62\nsignature getTime()\nvisibility public\nmutability view"]

+ 7 - 7
tests/contract_testcases/evm/rubixi.dot

@@ -15,7 +15,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	var_15 [label="variable participants\nvisibility private\ntests/contract_testcases/evm/rubixi.sol:30:10-44"]
 	DynamicPyramid [label="function DynamicPyramid\ncontract: Rubixi\ntests/contract_testcases/evm/rubixi.sol:17:10-42\nsignature DynamicPyramid()\nvisibility public\nmutability nonpayable"]
 	expr [label="expression\ntests/contract_testcases/evm/rubixi.sol:18:18-38"]
-	assign [label="assign\naddress storage\ntests/contract_testcases/evm/rubixi.sol:18:18-25"]
+	assign [label="assign\naddress\ntests/contract_testcases/evm/rubixi.sol:18:18-25"]
 	storage_var [label="storage variable\nRubixi.creator\naddress storage\ntests/contract_testcases/evm/rubixi.sol:18:18-25"]
 	cast [label="cast address\ntests/contract_testcases/evm/rubixi.sol:18:28-38"]
 	builtins [label="builtin Sender\ntests/contract_testcases/evm/rubixi.sol:18:28-38"]
@@ -85,7 +85,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	storage_var_85 [label="storage variable\nRubixi.participants\nstruct Rubixi.Participant[] storage\ntests/contract_testcases/evm/rubixi.sol:58:22-34"]
 	number_literal_86 [label="uint256 literal: 10\ntests/contract_testcases/evm/rubixi.sol:58:45-47"]
 	expr_87 [label="expression\ntests/contract_testcases/evm/rubixi.sol:58:49-72"]
-	assign_88 [label="assign\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:58:49-66"]
+	assign_88 [label="assign\nuint256\ntests/contract_testcases/evm/rubixi.sol:58:49-66"]
 	storage_var_89 [label="storage variable\nRubixi.pyramidMultiplier\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:58:49-66"]
 	number_literal_90 [label="uint256 literal: 200\ntests/contract_testcases/evm/rubixi.sol:58:69-72"]
 	if_91 [label="if\ntests/contract_testcases/evm/rubixi.sol:59:23-78"]
@@ -94,7 +94,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	storage_var_94 [label="storage variable\nRubixi.participants\nstruct Rubixi.Participant[] storage\ntests/contract_testcases/evm/rubixi.sol:59:27-39"]
 	number_literal_95 [label="uint256 literal: 25\ntests/contract_testcases/evm/rubixi.sol:59:50-52"]
 	expr_96 [label="expression\ntests/contract_testcases/evm/rubixi.sol:59:54-77"]
-	assign_97 [label="assign\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:59:54-71"]
+	assign_97 [label="assign\nuint256\ntests/contract_testcases/evm/rubixi.sol:59:54-71"]
 	storage_var_98 [label="storage variable\nRubixi.pyramidMultiplier\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:59:54-71"]
 	number_literal_99 [label="uint256 literal: 150\ntests/contract_testcases/evm/rubixi.sol:59:74-77"]
 	expr_100 [label="expression\ntests/contract_testcases/evm/rubixi.sol:62:18-61"]
@@ -177,7 +177,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	storage_load_177 [label="storage load uint256\ntests/contract_testcases/evm/rubixi.sol:79:44-66"]
 	storage_var_178 [label="storage variable\nRubixi.collectedFees\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:79:52-65"]
 	expr_179 [label="expression\ntests/contract_testcases/evm/rubixi.sol:80:18-35"]
-	assign_180 [label="assign\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:80:18-31"]
+	assign_180 [label="assign\nuint256\ntests/contract_testcases/evm/rubixi.sol:80:18-31"]
 	storage_var_181 [label="storage variable\nRubixi.collectedFees\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:80:18-31"]
 	number_literal_182 [label="uint256 literal: 0\ntests/contract_testcases/evm/rubixi.sol:80:34-35"]
 	collectFeesInEther [label="function collectFeesInEther\ncontract: Rubixi\ntests/contract_testcases/evm/rubixi.sol:83:10-65\nsignature collectFeesInEther(uint256)\nvisibility public\nmutability nonpayable"]
@@ -256,7 +256,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	changeOwner [label="function changeOwner\ncontract: Rubixi\ntests/contract_testcases/evm/rubixi.sol:102:10-63\nsignature changeOwner(address)\nvisibility public\nmutability nonpayable"]
 	parameters_257 [label="parameters\naddress _owner"]
 	expr_258 [label="expression\ntests/contract_testcases/evm/rubixi.sol:103:18-34"]
-	assign_259 [label="assign\naddress storage\ntests/contract_testcases/evm/rubixi.sol:103:18-25"]
+	assign_259 [label="assign\naddress\ntests/contract_testcases/evm/rubixi.sol:103:18-25"]
 	storage_var_260 [label="storage variable\nRubixi.creator\naddress storage\ntests/contract_testcases/evm/rubixi.sol:103:18-25"]
 	variable_261 [label="variable: _owner\naddress\ntests/contract_testcases/evm/rubixi.sol:103:28-34"]
 	changeMultiplier [label="function changeMultiplier\ncontract: Rubixi\ntests/contract_testcases/evm/rubixi.sol:106:10-64\nsignature changeMultiplier(uint256)\nvisibility public\nmutability nonpayable"]
@@ -272,7 +272,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	expr_272 [label="expression\ntests/contract_testcases/evm/rubixi.sol:107:50-58"]
 	builtins_273 [label="builtin Revert\ntests/contract_testcases/evm/rubixi.sol:107:50-56"]
 	expr_274 [label="expression\ntests/contract_testcases/evm/rubixi.sol:109:18-43"]
-	assign_275 [label="assign\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:109:18-35"]
+	assign_275 [label="assign\nuint256\ntests/contract_testcases/evm/rubixi.sol:109:18-35"]
 	storage_var_276 [label="storage variable\nRubixi.pyramidMultiplier\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:109:18-35"]
 	variable_277 [label="variable: _mult\nuint256\ntests/contract_testcases/evm/rubixi.sol:109:38-43"]
 	changeFeePercentage [label="function changeFeePercentage\ncontract: Rubixi\ntests/contract_testcases/evm/rubixi.sol:112:10-66\nsignature changeFeePercentage(uint256)\nvisibility public\nmutability nonpayable"]
@@ -284,7 +284,7 @@ strict digraph "tests/contract_testcases/evm/rubixi.sol" {
 	expr_284 [label="expression\ntests/contract_testcases/evm/rubixi.sol:113:33-41"]
 	builtins_285 [label="builtin Revert\ntests/contract_testcases/evm/rubixi.sol:113:33-39"]
 	expr_286 [label="expression\ntests/contract_testcases/evm/rubixi.sol:115:18-35"]
-	assign_287 [label="assign\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:115:18-28"]
+	assign_287 [label="assign\nuint256\ntests/contract_testcases/evm/rubixi.sol:115:18-28"]
 	storage_var_288 [label="storage variable\nRubixi.feePercent\nuint256 storage\ntests/contract_testcases/evm/rubixi.sol:115:18-28"]
 	variable_289 [label="variable: _fee\nuint256\ntests/contract_testcases/evm/rubixi.sol:115:31-35"]
 	currentMultiplier [label="function currentMultiplier\ncontract: Rubixi\ntests/contract_testcases/evm/rubixi.sol:119:10-95\nsignature currentMultiplier()\nvisibility public\nmutability view"]

+ 2 - 2
tests/contract_testcases/solana/functions/overload_functions.dot

@@ -36,7 +36,7 @@ strict digraph "tests/contract_testcases/solana/functions/overload_functions.sol
 	node_35 [label="constructor \ncontract: Test3\ntests/contract_testcases/solana/functions/overload_functions.sol:29:5-34\nsignature (int32)\nvisibility public\nmutability nonpayable"]
 	parameters_36 [label="parameters\nint32 state_var"]
 	expr [label="expression\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-26"]
-	assign [label="assign\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-14"]
+	assign [label="assign\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-14"]
 	storage_var [label="storage variable\nTest3.state\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:30:9-14"]
 	variable_40 [label="variable: state_var\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:30:17-26"]
 	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"]
@@ -53,7 +53,7 @@ strict digraph "tests/contract_testcases/solana/functions/overload_functions.sol
 	node_52 [label="constructor \ncontract: Test4\ntests/contract_testcases/solana/functions/overload_functions.sol:40:5-34\nsignature (int32)\nvisibility public\nmutability nonpayable"]
 	parameters_53 [label="parameters\nint32 state_var"]
 	expr_54 [label="expression\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-26"]
-	assign_55 [label="assign\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-14"]
+	assign_55 [label="assign\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-14"]
 	storage_var_56 [label="storage variable\nTest4.state\nint32 storage\ntests/contract_testcases/solana/functions/overload_functions.sol:41:9-14"]
 	variable_57 [label="variable: state_var\nint32\ntests/contract_testcases/solana/functions/overload_functions.sol:41:17-26"]
 	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"]

+ 1 - 1
tests/contract_testcases/solana/mapping_deletion.dot

@@ -5,7 +5,7 @@ strict digraph "tests/contract_testcases/solana/mapping_deletion.sol" {
 	node_5 [label="constructor \ncontract: savedTest\ntests/contract_testcases/solana/mapping_deletion.sol:3:5-25\nsignature (uint256)\nvisibility public\nmutability nonpayable"]
 	parameters [label="parameters\nuint256 d"]
 	expr [label="expression\ntests/contract_testcases/solana/mapping_deletion.sol:4:9-14"]
-	assign [label="assign\nuint256 storage\ntests/contract_testcases/solana/mapping_deletion.sol:4:9-10"]
+	assign [label="assign\nuint256\ntests/contract_testcases/solana/mapping_deletion.sol:4:9-10"]
 	storage_var [label="storage variable\nsavedTest.b\nuint256 storage\ntests/contract_testcases/solana/mapping_deletion.sol:4:9-10"]
 	variable [label="variable: d\nuint256\ntests/contract_testcases/solana/mapping_deletion.sol:4:13-14"]
 	increment [label="function increment\ncontract: savedTest\ntests/contract_testcases/solana/mapping_deletion.sol:7:5-38\nsignature increment(uint256)\nvisibility public\nmutability nonpayable"]

+ 2 - 2
tests/contract_testcases/substrate/arrays/lucas.dot

@@ -7,7 +7,7 @@ strict digraph "tests/contract_testcases/substrate/arrays/lucas.sol" {
 	alloc_array [label="alloc array string\ninitializer: 54657374\ntests/contract_testcases/substrate/arrays/lucas.sol:6:31-37"]
 	number_literal [label="uint32 literal: 4\ntests/contract_testcases/substrate/arrays/lucas.sol:6:31-37"]
 	expr [label="expression\ntests/contract_testcases/substrate/arrays/lucas.sol:7:13-31"]
-	assign [label="assign\nbytes storage\ntests/contract_testcases/substrate/arrays/lucas.sol:7:13-20"]
+	assign [label="assign\nbytes\ntests/contract_testcases/substrate/arrays/lucas.sol:7:13-20"]
 	storage_var [label="storage variable\nTest.byteArr\nbytes storage\ntests/contract_testcases/substrate/arrays/lucas.sol:7:13-20"]
 	cast [label="cast bytes\ntests/contract_testcases/substrate/arrays/lucas.sol:7:23-31"]
 	variable [label="variable: s\nstring\ntests/contract_testcases/substrate/arrays/lucas.sol:7:29-30"]
@@ -33,7 +33,7 @@ strict digraph "tests/contract_testcases/substrate/arrays/lucas.sol" {
 	storage_load [label="storage load bytes\ntests/contract_testcases/substrate/arrays/lucas.sol:15:19-35"]
 	storage_var_33 [label="storage variable\nTest.byteArr\nbytes storage\ntests/contract_testcases/substrate/arrays/lucas.sol:15:27-34"]
 	expr_34 [label="expression\ntests/contract_testcases/substrate/arrays/lucas.sol:16:13-30"]
-	assign_35 [label="assign\nbytes32 storage\ntests/contract_testcases/substrate/arrays/lucas.sol:16:13-17"]
+	assign_35 [label="assign\nbytes32\ntests/contract_testcases/substrate/arrays/lucas.sol:16:13-17"]
 	storage_var_36 [label="storage variable\nTest.baRR\nbytes32 storage\ntests/contract_testcases/substrate/arrays/lucas.sol:16:13-17"]
 	cast_37 [label="cast bytes32\ntests/contract_testcases/substrate/arrays/lucas.sol:16:20-30"]
 	variable_38 [label="variable: c\nuint256\ntests/contract_testcases/substrate/arrays/lucas.sol:16:28-29"]

+ 2 - 2
tests/contract_testcases/substrate/contracts/external_call_02.dot

@@ -3,7 +3,7 @@ strict digraph "tests/contract_testcases/substrate/contracts/external_call_02.so
 	var [label="variable x\nvisibility internal\ntests/contract_testcases/substrate/contracts/external_call_02.sol:3:13-16"]
 	new [label="constructor new\ncontract: c\ntests/contract_testcases/substrate/contracts/external_call_02.sol:4:13-33\nsignature new()\nvisibility public\nmutability nonpayable"]
 	expr [label="expression\ntests/contract_testcases/substrate/contracts/external_call_02.sol:5:17-31"]
-	assign [label="assign\ncontract b storage\ntests/contract_testcases/substrate/contracts/external_call_02.sol:5:17-18"]
+	assign [label="assign\ncontract b\ntests/contract_testcases/substrate/contracts/external_call_02.sol:5:17-18"]
 	storage_var [label="storage variable\nc.x\ncontract b storage\ntests/contract_testcases/substrate/contracts/external_call_02.sol:5:17-18"]
 	constructor [label="constructor contract b\ntests/contract_testcases/substrate/contracts/external_call_02.sol:5:21-31"]
 	number_literal [label="int32 literal: 102\ntests/contract_testcases/substrate/contracts/external_call_02.sol:5:27-30"]
@@ -14,7 +14,7 @@ strict digraph "tests/contract_testcases/substrate/contracts/external_call_02.so
 	new_13 [label="constructor new\ncontract: b\ntests/contract_testcases/substrate/contracts/external_call_02.sol:14:13-40\nsignature new(int32)\nvisibility public\nmutability nonpayable"]
 	parameters [label="parameters\nint32 a"]
 	expr_15 [label="expression\ntests/contract_testcases/substrate/contracts/external_call_02.sol:15:17-22"]
-	assign_16 [label="assign\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_02.sol:15:17-18"]
+	assign_16 [label="assign\nint32\ntests/contract_testcases/substrate/contracts/external_call_02.sol:15:17-18"]
 	storage_var_17 [label="storage variable\nb.x\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_02.sol:15:17-18"]
 	variable [label="variable: a\nint32\ntests/contract_testcases/substrate/contracts/external_call_02.sol:15:21-22"]
 	get_x [label="function get_x\ncontract: b\ntests/contract_testcases/substrate/contracts/external_call_02.sol:17:13-59\nsignature get_x(int32)\nvisibility public\nmutability nonpayable"]

+ 1 - 1
tests/contract_testcases/substrate/contracts/external_call_03.dot

@@ -15,7 +15,7 @@ strict digraph "tests/contract_testcases/substrate/contracts/external_call_03.so
 	new_14 [label="constructor new\ncontract: b\ntests/contract_testcases/substrate/contracts/external_call_03.sol:14:13-40\nsignature new(int32)\nvisibility public\nmutability nonpayable"]
 	parameters [label="parameters\nint32 a"]
 	expr [label="expression\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-22"]
-	assign [label="assign\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-18"]
+	assign [label="assign\nint32\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-18"]
 	storage_var_18 [label="storage variable\nb.x\nint32 storage\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:17-18"]
 	variable [label="variable: a\nint32\ntests/contract_testcases/substrate/contracts/external_call_03.sol:15:21-22"]
 	get_x [label="function get_x\ncontract: b\ntests/contract_testcases/substrate/contracts/external_call_03.sol:17:13-59\nsignature get_x(int32)\nvisibility public\nmutability nonpayable"]

+ 3 - 3
tests/contract_testcases/substrate/doccomments_everywhere.dot

@@ -50,7 +50,7 @@ strict digraph "tests/contract_testcases/substrate/doccomments_everywhere.sol" {
 	new [label="constructor new\ncontract: Property\ntests/contract_testcases/substrate/doccomments_everywhere.sol:17:3-76\nsignature new()\nvisibility public\nmutability nonpayable"]
 	node_51 [label="receive \ncontract: Property\ntests/contract_testcases/substrate/doccomments_everywhere.sol:19:3-29\nmutability payable"]
 	expr [label="expression\ntests/contract_testcases/substrate/doccomments_everywhere.sol:20:5-68"]
-	assign [label="assign\nuint256 storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:20:5-68"]
+	assign [label="assign\nuint256\ntests/contract_testcases/substrate/doccomments_everywhere.sol:20:5-68"]
 	subscript_54 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:20:5-29"]
 	storage_var_55 [label="storage variable\nProperty.valueLocked_\nmapping(address => uint256) storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:20:5-17"]
 	cast [label="cast address\ntests/contract_testcases/substrate/doccomments_everywhere.sol:20:18-28"]
@@ -99,7 +99,7 @@ strict digraph "tests/contract_testcases/substrate/doccomments_everywhere.sol" {
 	alloc_array [label="alloc array string\ninitializer: 596f7520617265206e6f7420746865206f776e6572\ntests/contract_testcases/substrate/doccomments_everywhere.sol:68:49-72"]
 	number_literal [label="uint32 literal: 21\ntests/contract_testcases/substrate/doccomments_everywhere.sol:68:49-72"]
 	expr_101 [label="expression\ntests/contract_testcases/substrate/doccomments_everywhere.sol:69:5-43"]
-	assign_102 [label="assign\nuint256 storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:69:5-43"]
+	assign_102 [label="assign\nuint256\ntests/contract_testcases/substrate/doccomments_everywhere.sol:69:5-43"]
 	subscript_103 [label="subscript mapping(uint256 => uint256) storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:69:5-24"]
 	storage_var_104 [label="storage variable\nProperty.sellingTokens_\nmapping(uint256 => uint256) storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:69:5-19"]
 	variable_105 [label="variable: _id\nuint256\ntests/contract_testcases/substrate/doccomments_everywhere.sol:69:20-23"]
@@ -118,7 +118,7 @@ strict digraph "tests/contract_testcases/substrate/doccomments_everywhere.sol" {
 	alloc_array_118 [label="alloc array string\ninitializer: 596f7520617265206e6f7420746865206f776e6572\ntests/contract_testcases/substrate/doccomments_everywhere.sol:73:49-72"]
 	number_literal_119 [label="uint32 literal: 21\ntests/contract_testcases/substrate/doccomments_everywhere.sol:73:49-72"]
 	expr_120 [label="expression\ntests/contract_testcases/substrate/doccomments_everywhere.sol:74:5-42"]
-	assign_121 [label="assign\nuint256 storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:74:5-42"]
+	assign_121 [label="assign\nuint256\ntests/contract_testcases/substrate/doccomments_everywhere.sol:74:5-42"]
 	subscript_122 [label="subscript mapping(uint256 => uint256) storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:74:5-23"]
 	storage_var_123 [label="storage variable\nProperty.buyingTokens_\nmapping(uint256 => uint256) storage\ntests/contract_testcases/substrate/doccomments_everywhere.sol:74:5-18"]
 	variable_124 [label="variable: _id\nuint256\ntests/contract_testcases/substrate/doccomments_everywhere.sol:74:19-22"]

+ 100 - 0
tests/contract_testcases/substrate/expressions/assign_chain.dot

@@ -0,0 +1,100 @@
+strict digraph "tests/contract_testcases/substrate/expressions/assign_chain.sol" {
+	S [label="name:S\ntests/contract_testcases/substrate/expressions/assign_chain.sol:2:8-9\nfield name:f1 ty:bool"]
+	contract [label="contract c\ntests/contract_testcases/substrate/expressions/assign_chain.sol:4:1-25:2"]
+	var [label="variable d1\nvisibility internal\ntests/contract_testcases/substrate/expressions/assign_chain.sol:5:2-6"]
+	var_5 [label="variable s1\nvisibility internal\ntests/contract_testcases/substrate/expressions/assign_chain.sol:6:2-6"]
+	f [label="function f\ncontract: c\ntests/contract_testcases/substrate/expressions/assign_chain.sol:8:2-37\nsignature f()\nvisibility public\nmutability nonpayable"]
+	returns [label="returns\nint64 "]
+	var_decl [label="variable decl contract d l\ntests/contract_testcases/substrate/expressions/assign_chain.sol:9:3-21"]
+	assign [label="assign\ncontract d\ntests/contract_testcases/substrate/expressions/assign_chain.sol:9:9-11"]
+	storage_var [label="storage variable\nc.d1\ncontract d storage\ntests/contract_testcases/substrate/expressions/assign_chain.sol:9:9-11"]
+	constructor [label="constructor contract d\ntests/contract_testcases/substrate/expressions/assign_chain.sol:9:14-21"]
+	return [label="return\ntests/contract_testcases/substrate/expressions/assign_chain.sol:10:3-15"]
+	call_external_function [label="call external function\ntests/contract_testcases/substrate/expressions/assign_chain.sol:10:10-15"]
+	external_function [label="function() external view returns (int64)\nd.v\ntests/contract_testcases/substrate/expressions/assign_chain.sol:10:10-15"]
+	variable [label="variable: l\ncontract d\ntests/contract_testcases/substrate/expressions/assign_chain.sol:10:10-11"]
+	g [label="function g\ncontract: c\ntests/contract_testcases/substrate/expressions/assign_chain.sol:13:2-36\nsignature g()\nvisibility public\nmutability nonpayable"]
+	returns_17 [label="returns\nbool "]
+	var_decl_18 [label="variable decl struct S s\ntests/contract_testcases/substrate/expressions/assign_chain.sol:14:3-17"]
+	struct_literal [label="struct literal: struct S\ntests/contract_testcases/substrate/expressions/assign_chain.sol:14:9-17"]
+	bool_literal [label="bool literal: false\ntests/contract_testcases/substrate/expressions/assign_chain.sol:14:11-16"]
+	var_decl_21 [label="variable decl bool l\ntests/contract_testcases/substrate/expressions/assign_chain.sol:15:3-23"]
+	assign_22 [label="assign\nbool\ntests/contract_testcases/substrate/expressions/assign_chain.sol:15:12-23"]
+	structmember [label="struct member #0 bool\ntests/contract_testcases/substrate/expressions/assign_chain.sol:15:14-16"]
+	variable_24 [label="variable: s\nstruct S\ntests/contract_testcases/substrate/expressions/assign_chain.sol:15:12-13"]
+	bool_literal_25 [label="bool literal: true\ntests/contract_testcases/substrate/expressions/assign_chain.sol:15:19-23"]
+	return_26 [label="return\ntests/contract_testcases/substrate/expressions/assign_chain.sol:17:3-11"]
+	variable_27 [label="variable: l\nbool\ntests/contract_testcases/substrate/expressions/assign_chain.sol:17:10-11"]
+	h [label="function h\ncontract: c\ntests/contract_testcases/substrate/expressions/assign_chain.sol:19:2-36\nsignature h()\nvisibility public\nmutability nonpayable"]
+	returns_29 [label="returns\nbool "]
+	var_decl_30 [label="variable decl struct S storage s\ntests/contract_testcases/substrate/expressions/assign_chain.sol:20:3-19"]
+	storage_var_31 [label="storage variable\nc.s1\nstruct S storage\ntests/contract_testcases/substrate/expressions/assign_chain.sol:20:17-19"]
+	var_decl_32 [label="variable decl bool l\ntests/contract_testcases/substrate/expressions/assign_chain.sol:21:3-23"]
+	assign_33 [label="assign\nbool\ntests/contract_testcases/substrate/expressions/assign_chain.sol:21:12-23"]
+	structmember_34 [label="struct member #0 bool storage\ntests/contract_testcases/substrate/expressions/assign_chain.sol:21:14-16"]
+	variable_35 [label="variable: s\nstruct S storage\ntests/contract_testcases/substrate/expressions/assign_chain.sol:21:12-13"]
+	bool_literal_36 [label="bool literal: true\ntests/contract_testcases/substrate/expressions/assign_chain.sol:21:19-23"]
+	return_37 [label="return\ntests/contract_testcases/substrate/expressions/assign_chain.sol:23:3-11"]
+	variable_38 [label="variable: l\nbool\ntests/contract_testcases/substrate/expressions/assign_chain.sol:23:10-11"]
+	contract_39 [label="contract d\ntests/contract_testcases/substrate/expressions/assign_chain.sol:27:1-29:2"]
+	var_40 [label="variable v\nvisibility public\ntests/contract_testcases/substrate/expressions/assign_chain.sol:28:2-16"]
+	v [label="function v\ncontract: d\ntests/contract_testcases/substrate/expressions/assign_chain.sol:28:15-16\nsignature v()\nvisibility public\nmutability view"]
+	returns_42 [label="returns\nint64 "]
+	return_43 [label="return\nimplicit"]
+	storage_load [label="storage load int64\nimplicit"]
+	storage_var_45 [label="storage variable\nd.v\nint64 storage\nimplicit"]
+	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/substrate/expressions/assign_chain.sol:4:1-25:2"]
+	diagnostic_48 [label="storage variable 'd1' has been assigned, but never read\nlevel Warning\ntests/contract_testcases/substrate/expressions/assign_chain.sol:5:2-6"]
+	diagnostic_49 [label="function can be declared 'pure'\nlevel Warning\ntests/contract_testcases/substrate/expressions/assign_chain.sol:13:2-36"]
+	diagnostic_50 [label="local variable 's' has been assigned, but never read\nlevel Warning\ntests/contract_testcases/substrate/expressions/assign_chain.sol:14:5-6"]
+	diagnostic_51 [label="found contract 'd'\nlevel Debug\ntests/contract_testcases/substrate/expressions/assign_chain.sol:27:1-29:2"]
+	structs -> S
+	contracts -> contract
+	contract -> var [label="variable"]
+	contract -> var_5 [label="variable"]
+	contract -> f [label="function"]
+	f -> returns [label="returns"]
+	f -> var_decl [label="body"]
+	var_decl -> assign [label="init"]
+	assign -> storage_var [label="left"]
+	assign -> constructor [label="right"]
+	var_decl -> return [label="next"]
+	return -> call_external_function [label="expr"]
+	call_external_function -> external_function [label="function"]
+	external_function -> variable [label="address"]
+	contract -> g [label="function"]
+	g -> returns_17 [label="returns"]
+	g -> var_decl_18 [label="body"]
+	var_decl_18 -> struct_literal [label="init"]
+	struct_literal -> bool_literal [label="arg #0"]
+	var_decl_18 -> var_decl_21 [label="next"]
+	var_decl_21 -> assign_22 [label="init"]
+	assign_22 -> structmember [label="left"]
+	structmember -> variable_24 [label="var"]
+	assign_22 -> bool_literal_25 [label="right"]
+	var_decl_21 -> return_26 [label="next"]
+	return_26 -> variable_27 [label="expr"]
+	contract -> h [label="function"]
+	h -> returns_29 [label="returns"]
+	h -> var_decl_30 [label="body"]
+	var_decl_30 -> storage_var_31 [label="init"]
+	var_decl_30 -> var_decl_32 [label="next"]
+	var_decl_32 -> assign_33 [label="init"]
+	assign_33 -> structmember_34 [label="left"]
+	structmember_34 -> variable_35 [label="var"]
+	assign_33 -> bool_literal_36 [label="right"]
+	var_decl_32 -> return_37 [label="next"]
+	return_37 -> variable_38 [label="expr"]
+	contracts -> contract_39
+	contract_39 -> var_40 [label="variable"]
+	contract_39 -> v [label="function"]
+	v -> returns_42 [label="returns"]
+	v -> return_43 [label="body"]
+	return_43 -> storage_load [label="expr"]
+	storage_load -> storage_var_45 [label="expr"]
+	diagnostics -> diagnostic [label="Debug"]
+	diagnostics -> diagnostic_48 [label="Warning"]
+	diagnostics -> diagnostic_49 [label="Warning"]
+	diagnostics -> diagnostic_50 [label="Warning"]
+	diagnostics -> diagnostic_51 [label="Debug"]
+}

+ 29 - 0
tests/contract_testcases/substrate/expressions/assign_chain.sol

@@ -0,0 +1,29 @@
+
+struct S { bool f1; }
+
+contract c {
+	d d1;
+	S s1;
+
+	function f() public returns (int64) {
+		d l = d1 = new d();
+		return l.v();
+	}
+
+	function g() public returns (bool) {
+		S s = S(false);
+		bool l = s.f1 = true;
+
+		return l;
+	}
+	function h() public returns (bool) {
+		S storage s = s1;
+		bool l = s.f1 = true;
+
+		return l;
+	}
+}
+
+contract d {
+	int64 public v;
+}

+ 2 - 2
tests/contract_testcases/substrate/expressions/test_cast_errors_04.dot

@@ -5,7 +5,7 @@ strict digraph "tests/contract_testcases/substrate/expressions/test_cast_errors_
 	set_bar [label="function set_bar\ncontract: foo\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:4:13-46\nsignature set_bar(uint32)\nvisibility public\nmutability nonpayable"]
 	parameters [label="parameters\nuint32 b"]
 	expr [label="expression\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-24"]
-	assign [label="assign\nuint256 storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-20"]
+	assign [label="assign\nuint256\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-20"]
 	storage_var [label="storage variable\nfoo.bar\nuint256 storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:17-20"]
 	zero_ext [label="zero extend uint256\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:23-24"]
 	variable [label="variable: b\nuint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:5:23-24"]
@@ -20,7 +20,7 @@ strict digraph "tests/contract_testcases/substrate/expressions/test_cast_errors_
 	set_x [label="function set_x\ncontract: foo2\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:17:13-44\nsignature set_x(uint32)\nvisibility public\nmutability nonpayable"]
 	parameters_21 [label="parameters\nuint32 b"]
 	expr_22 [label="expression\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-25"]
-	assign_23 [label="assign\nenum foo2.X storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-18"]
+	assign_23 [label="assign\nenum foo2.X\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-18"]
 	storage_var_24 [label="storage variable\nfoo2.y\nenum foo2.X storage\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:17-18"]
 	trunc_25 [label="truncate enum foo2.X\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:21-25"]
 	variable_26 [label="variable: b\nuint32\ntests/contract_testcases/substrate/expressions/test_cast_errors_04.sol:18:23-24"]

+ 1 - 1
tests/contract_testcases/substrate/functions/global_functions_08.dot

@@ -3,7 +3,7 @@ strict digraph "tests/contract_testcases/substrate/functions/global_functions_08
 	x [label="function x\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:9-37\nsignature x(struct S)\nvisibility internal\nmutability view"]
 	parameters [label="parameters\nstruct S storage x"]
 	expr [label="expression\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:40-50"]
-	assign [label="assign\nint32 storage\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:40-50"]
+	assign [label="assign\nint32\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:40-50"]
 	structmember [label="struct member #0 int32 storage\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:42-44"]
 	variable [label="variable: x\nstruct S storage\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:40-41"]
 	number_literal [label="int32 literal: 102\ntests/contract_testcases/substrate/functions/global_functions_08.sol:7:47-50"]

+ 1 - 1
tests/contract_testcases/substrate/functions/mutability_03.dot

@@ -4,7 +4,7 @@ strict digraph "tests/contract_testcases/substrate/functions/mutability_03.sol"
 	number_literal [label="int64 literal: 1844674\ntests/contract_testcases/substrate/functions/mutability_03.sol:2:25-32"]
 	bar [label="function bar\ncontract: test\ntests/contract_testcases/substrate/functions/mutability_03.sol:4:13-39\nsignature bar()\nvisibility public\nmutability view"]
 	expr [label="expression\ntests/contract_testcases/substrate/functions/mutability_03.sol:5:17-26"]
-	assign [label="assign\nint64 storage\ntests/contract_testcases/substrate/functions/mutability_03.sol:5:17-20"]
+	assign [label="assign\nint64\ntests/contract_testcases/substrate/functions/mutability_03.sol:5:17-20"]
 	storage_var [label="storage variable\ntest.foo\nint64 storage\ntests/contract_testcases/substrate/functions/mutability_03.sol:5:17-20"]
 	number_literal_8 [label="int64 literal: 102\ntests/contract_testcases/substrate/functions/mutability_03.sol:5:23-26"]
 	diagnostic [label="found contract 'test'\nlevel Debug\ntests/contract_testcases/substrate/functions/mutability_03.sol:1:1-7:10"]

+ 1 - 1
tests/contract_testcases/substrate/functions/mutability_04.dot

@@ -3,7 +3,7 @@ strict digraph "tests/contract_testcases/substrate/functions/mutability_04.sol"
 	bar [label="function bar\ncontract: test\ntests/contract_testcases/substrate/functions/mutability_04.sol:2:13-58\nsignature bar(int256[])\nvisibility internal\nmutability view"]
 	parameters [label="parameters\nint256[] storage foo"]
 	expr [label="expression\ntests/contract_testcases/substrate/functions/mutability_04.sol:3:17-29"]
-	assign [label="assign\nint256 storage\ntests/contract_testcases/substrate/functions/mutability_04.sol:3:17-29"]
+	assign [label="assign\nint256\ntests/contract_testcases/substrate/functions/mutability_04.sol:3:17-29"]
 	subscript [label="subscript int256[] storage\ntests/contract_testcases/substrate/functions/mutability_04.sol:3:17-23"]
 	variable [label="variable: foo\nint256[] storage\ntests/contract_testcases/substrate/functions/mutability_04.sol:3:17-20"]
 	number_literal [label="uint256 literal: 0\ntests/contract_testcases/substrate/functions/mutability_04.sol:3:21-22"]

+ 1 - 1
tests/contract_testcases/substrate/functions/shadowing.dot

@@ -4,7 +4,7 @@ strict digraph "tests/contract_testcases/substrate/functions/shadowing.sol" {
 	goodset [label="function goodset\ncontract: test\ntests/contract_testcases/substrate/functions/shadowing.sol:5:9-44\nsignature goodset(uint64)\nvisibility public\nmutability nonpayable"]
 	parameters [label="parameters\nuint64 val"]
 	expr [label="expression\ntests/contract_testcases/substrate/functions/shadowing.sol:6:13-25"]
-	assign [label="assign\nuint64 storage\ntests/contract_testcases/substrate/functions/shadowing.sol:6:13-19"]
+	assign [label="assign\nuint64\ntests/contract_testcases/substrate/functions/shadowing.sol:6:13-19"]
 	storage_var [label="storage variable\ntest.result\nuint64 storage\ntests/contract_testcases/substrate/functions/shadowing.sol:6:13-19"]
 	variable [label="variable: val\nuint64\ntests/contract_testcases/substrate/functions/shadowing.sol:6:22-25"]
 	badset [label="function badset\ncontract: test\ntests/contract_testcases/substrate/functions/shadowing.sol:9:9-43\nsignature badset(uint64)\nvisibility public\nmutability nonpayable"]

+ 2 - 2
tests/contract_testcases/substrate/inheritance/base_contract_access_via_name.dot

@@ -17,7 +17,7 @@ strict digraph "tests/contract_testcases/substrate/inheritance/base_contract_acc
 	set [label="function set\ncontract: Base\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:7:5-45\nsignature set(uint256)\nvisibility public\nmutability nonpayable\nvirtual"]
 	parameters [label="parameters\nuint256 val"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:8:9-24"]
-	assign [label="assign\nuint256 storage\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:8:9-18"]
+	assign [label="assign\nuint256\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:8:9-18"]
 	storage_var_20 [label="storage variable\nBase.something\nuint256 storage\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:8:9-18"]
 	variable [label="variable: val\nuint256\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:8:21-24"]
 	contract_22 [label="contract A\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:12:1-18:2"]
@@ -50,7 +50,7 @@ strict digraph "tests/contract_testcases/substrate/inheritance/base_contract_acc
 	set_49 [label="function set\ncontract: C\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:33:5-54\nsignature set(uint256)\nvisibility public\nmutability nonpayable\nvirtual\noverride"]
 	parameters_50 [label="parameters\nuint256 val"]
 	expr_51 [label="expression\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:34:9-31"]
-	assign_52 [label="assign\nuint256 storage\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:34:9-18"]
+	assign_52 [label="assign\nuint256\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:34:9-18"]
 	storage_var_53 [label="storage variable\nBase.something\nuint256 storage\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:34:9-18"]
 	add [label="add\nuint256\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:34:21-31"]
 	variable_55 [label="variable: val\nuint256\ntests/contract_testcases/substrate/inheritance/base_contract_access_via_name.sol:34:21-24"]

+ 1 - 1
tests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.dot

@@ -21,7 +21,7 @@ strict digraph "tests/contract_testcases/substrate/inheritance/base_contract_on_
 	new_20 [label="constructor new\ncontract: a\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:13:13-34\nsignature new(int64)\nvisibility public\nmutability nonpayable"]
 	parameters_21 [label="parameters\nint64 z"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:13:36-43"]
-	assign [label="assign\nint64 storage\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:13:36-39"]
+	assign [label="assign\nint64\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:13:36-39"]
 	storage_var_24 [label="storage variable\na.foo\nint64 storage\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:13:36-39"]
 	variable_25 [label="variable: z\nint64\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:13:42-43"]
 	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_06.sol:2:9-4:10"]

+ 1 - 1
tests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.dot

@@ -21,7 +21,7 @@ strict digraph "tests/contract_testcases/substrate/inheritance/base_contract_on_
 	new_20 [label="constructor new\ncontract: a\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:13:13-34\nsignature new(int64)\nvisibility public\nmutability nonpayable"]
 	parameters_21 [label="parameters\nint64 z"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:13:36-43"]
-	assign [label="assign\nint64 storage\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:13:36-39"]
+	assign [label="assign\nint64\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:13:36-39"]
 	storage_var_24 [label="storage variable\na.foo\nint64 storage\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:13:36-39"]
 	variable_25 [label="variable: z\nint64\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:13:42-43"]
 	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_07.sol:2:9-4:10"]

+ 1 - 1
tests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.dot

@@ -24,7 +24,7 @@ strict digraph "tests/contract_testcases/substrate/inheritance/base_contract_on_
 	new_23 [label="constructor new\ncontract: a\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:13:13-34\nsignature new(int64)\nvisibility public\nmutability nonpayable"]
 	parameters_24 [label="parameters\nint64 z"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:13:36-43"]
-	assign [label="assign\nint64 storage\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:13:36-39"]
+	assign [label="assign\nint64\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:13:36-39"]
 	storage_var_27 [label="storage variable\na.foo\nint64 storage\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:13:36-39"]
 	variable_28 [label="variable: z\nint64\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:13:42-43"]
 	diagnostic [label="found contract 'c'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/base_contract_on_constructor_08.sol:2:9-4:10"]

+ 1 - 1
tests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.dot

@@ -4,7 +4,7 @@ strict digraph "tests/contract_testcases/substrate/inheritance/base_contracts_ac
 	set [label="function set\ncontract: Base\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:4:5-42\nsignature set(uint256)\nvisibility public\nmutability pure"]
 	parameters [label="parameters\nuint256 val"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:5:9-24"]
-	assign [label="assign\nuint256 storage\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:5:9-18"]
+	assign [label="assign\nuint256\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:5:9-18"]
 	storage_var [label="storage variable\nBase.something\nuint256 storage\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:5:9-18"]
 	variable [label="variable: val\nuint256\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:5:21-24"]
 	contract_9 [label="contract A\ntests/contract_testcases/substrate/inheritance/base_contracts_access_named_args_via_name.sol:9:1-13:2"]

+ 2 - 2
tests/contract_testcases/substrate/inheritance/cast_contract.dot

@@ -13,12 +13,12 @@ strict digraph "tests/contract_testcases/substrate/inheritance/cast_contract.sol
 	if [label="if\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:11:17-15:18"]
 	variable [label="variable: do_adds\nbool\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:11:21-28"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-34"]
-	assign [label="assign\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-23"]
+	assign [label="assign\ncontract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-23"]
 	storage_var [label="storage variable\nferqu.op\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:21-23"]
 	cast [label="cast contract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:26-34"]
 	constructor [label="constructor contract m1\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:12:26-34"]
 	expr_19 [label="expression\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-34"]
-	assign_20 [label="assign\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-23"]
+	assign_20 [label="assign\ncontract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-23"]
 	storage_var_21 [label="storage variable\nferqu.op\ncontract operator storage\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:21-23"]
 	cast_22 [label="cast contract operator\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:26-34"]
 	constructor_23 [label="constructor contract m2\ntests/contract_testcases/substrate/inheritance/cast_contract.sol:14:26-34"]

+ 2 - 2
tests/contract_testcases/substrate/inheritance/test_override_06.dot

@@ -9,12 +9,12 @@ strict digraph "tests/contract_testcases/substrate/inheritance/test_override_06.
 	storage_var [label="storage variable\na.x\nint64 storage\nimplicit"]
 	f [label="function f\ncontract: a\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:4:13-50\nsignature f()\nvisibility external\nmutability payable\nvirtual"]
 	expr [label="expression\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:5:17-22"]
-	assign [label="assign\nint64 storage\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:5:17-18"]
+	assign [label="assign\nint64\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:5:17-18"]
 	storage_var_12 [label="storage variable\na.x\nint64 storage\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:5:17-18"]
 	number_literal_13 [label="int64 literal: 1\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:5:21-22"]
 	f_14 [label="function f\ncontract: a\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:8:13-51\nsignature f()\nvisibility external\nmutability payable\noverride"]
 	expr_15 [label="expression\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:9:17-22"]
-	assign_16 [label="assign\nint64 storage\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:9:17-18"]
+	assign_16 [label="assign\nint64\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:9:17-18"]
 	storage_var_17 [label="storage variable\na.x\nint64 storage\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:9:17-18"]
 	number_literal_18 [label="int64 literal: 2\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:9:21-22"]
 	diagnostic [label="found contract 'a'\nlevel Debug\ntests/contract_testcases/substrate/inheritance/test_override_06.sol:2:9-11:10"]

+ 1 - 1
tests/contract_testcases/substrate/value/this_address_03.dot

@@ -6,7 +6,7 @@ strict digraph "tests/contract_testcases/substrate/value/this_address_03.sol" {
 	other [label="function other\ncontract: b\ntests/contract_testcases/substrate/value/this_address_03.sol:10:13-44\nsignature other(int32)\nvisibility private\nmutability nonpayable"]
 	parameters [label="parameters\nint32 n"]
 	expr [label="expression\ntests/contract_testcases/substrate/value/this_address_03.sol:11:17-22"]
-	assign [label="assign\nint32 storage\ntests/contract_testcases/substrate/value/this_address_03.sol:11:17-18"]
+	assign [label="assign\nint32\ntests/contract_testcases/substrate/value/this_address_03.sol:11:17-18"]
 	storage_var [label="storage variable\nb.s\nint32 storage\ntests/contract_testcases/substrate/value/this_address_03.sol:11:17-18"]
 	variable [label="variable: n\nint32\ntests/contract_testcases/substrate/value/this_address_03.sol:11:21-22"]
 	diagnostic [label="found contract 'b'\nlevel Debug\ntests/contract_testcases/substrate/value/this_address_03.sol:2:9-13:10"]

+ 1 - 1
tests/contract_testcases/substrate/value/this_address_04.dot

@@ -14,7 +14,7 @@ strict digraph "tests/contract_testcases/substrate/value/this_address_04.sol" {
 	other [label="function other\ncontract: b\ntests/contract_testcases/substrate/value/this_address_04.sol:10:13-44\nsignature other(int32)\nvisibility private\nmutability nonpayable"]
 	parameters [label="parameters\nint32 n"]
 	expr_15 [label="expression\ntests/contract_testcases/substrate/value/this_address_04.sol:11:17-22"]
-	assign [label="assign\nint32 storage\ntests/contract_testcases/substrate/value/this_address_04.sol:11:17-18"]
+	assign [label="assign\nint32\ntests/contract_testcases/substrate/value/this_address_04.sol:11:17-18"]
 	storage_var_17 [label="storage variable\nb.s\nint32 storage\ntests/contract_testcases/substrate/value/this_address_04.sol:11:17-18"]
 	variable [label="variable: n\nint32\ntests/contract_testcases/substrate/value/this_address_04.sol:11:21-22"]
 	diagnostic [label="found contract 'b'\nlevel Debug\ntests/contract_testcases/substrate/value/this_address_04.sol:2:9-13:10"]