From b6e17811f9e6d9ac359c97f548eb8d6e0a55d072 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 6 Jul 2022 18:41:45 -0500 Subject: [PATCH] add tests and artifacts --- .../user_defined_types.sol-0.8.10-compact.zip | Bin 3215 -> 0 bytes .../user_defined_types.sol-0.8.11-compact.zip | Bin 3215 -> 0 bytes .../user_defined_types.sol-0.8.12-compact.zip | Bin 3217 -> 0 bytes .../user_defined_types.sol-0.8.8-compact.zip | Bin 3180 -> 0 bytes .../argument-0.8.8.sol-0.8.10-compact.zip | Bin 0 -> 3576 bytes .../argument-0.8.8.sol-0.8.11-compact.zip | Bin 0 -> 3578 bytes .../argument-0.8.8.sol-0.8.12-compact.zip | Bin 0 -> 3581 bytes .../argument-0.8.8.sol-0.8.13-compact.zip | Bin 0 -> 3575 bytes .../argument-0.8.8.sol-0.8.14-compact.zip | Bin 0 -> 3572 bytes .../argument-0.8.8.sol-0.8.15-compact.zip | Bin 0 -> 3578 bytes .../argument-0.8.8.sol-0.8.8-compact.zip | Bin 0 -> 3566 bytes .../calldata-0.8.8.sol-0.8.10-compact.zip | Bin 0 -> 9648 bytes .../calldata-0.8.8.sol-0.8.11-compact.zip | Bin 0 -> 9661 bytes .../calldata-0.8.8.sol-0.8.12-compact.zip | Bin 0 -> 9662 bytes .../calldata-0.8.8.sol-0.8.13-compact.zip | Bin 0 -> 9661 bytes .../calldata-0.8.8.sol-0.8.14-compact.zip | Bin 0 -> 9632 bytes .../calldata-0.8.8.sol-0.8.15-compact.zip | Bin 0 -> 9666 bytes .../calldata-0.8.8.sol-0.8.8-compact.zip | Bin 0 -> 9489 bytes .../constant-0.8.8.sol-0.8.10-compact.zip | Bin 0 -> 2428 bytes .../constant-0.8.8.sol-0.8.11-compact.zip | Bin 0 -> 2429 bytes .../constant-0.8.8.sol-0.8.12-compact.zip | Bin 0 -> 2431 bytes .../constant-0.8.8.sol-0.8.13-compact.zip | Bin 0 -> 2430 bytes .../constant-0.8.8.sol-0.8.14-compact.zip | Bin 0 -> 2432 bytes .../constant-0.8.8.sol-0.8.15-compact.zip | Bin 0 -> 2432 bytes .../constant-0.8.8.sol-0.8.8-compact.zip | Bin 0 -> 2413 bytes .../erc20-0.8.8.sol-0.8.10-compact.zip | Bin 0 -> 12287 bytes .../erc20-0.8.8.sol-0.8.11-compact.zip | Bin 0 -> 12318 bytes .../erc20-0.8.8.sol-0.8.12-compact.zip | Bin 0 -> 12317 bytes .../erc20-0.8.8.sol-0.8.13-compact.zip | Bin 0 -> 12308 bytes .../erc20-0.8.8.sol-0.8.14-compact.zip | Bin 0 -> 12318 bytes .../erc20-0.8.8.sol-0.8.15-compact.zip | Bin 0 -> 12314 bytes .../erc20-0.8.8.sol-0.8.8-compact.zip | Bin 0 -> 12316 bytes ...n_parenthesis-0.8.8.sol-0.8.10-compact.zip | Bin 0 -> 5969 bytes ...n_parenthesis-0.8.8.sol-0.8.11-compact.zip | Bin 0 -> 5964 bytes ...n_parenthesis-0.8.8.sol-0.8.12-compact.zip | Bin 0 -> 5972 bytes ...n_parenthesis-0.8.8.sol-0.8.13-compact.zip | Bin 0 -> 5977 bytes ...n_parenthesis-0.8.8.sol-0.8.14-compact.zip | Bin 0 -> 5981 bytes ...n_parenthesis-0.8.8.sol-0.8.15-compact.zip | Bin 0 -> 5969 bytes ...in_parenthesis-0.8.8.sol-0.8.8-compact.zip | Bin 0 -> 5936 bytes ...defined_types-0.8.8.sol-0.8.10-compact.zip | Bin 0 -> 3244 bytes ...defined_types-0.8.8.sol-0.8.11-compact.zip | Bin 0 -> 3245 bytes ...defined_types-0.8.8.sol-0.8.12-compact.zip | Bin 0 -> 3243 bytes ...defined_types-0.8.8.sol-0.8.13-compact.zip | Bin 0 -> 3246 bytes ...defined_types-0.8.8.sol-0.8.14-compact.zip | Bin 0 -> 3243 bytes ...defined_types-0.8.8.sol-0.8.15-compact.zip | Bin 0 -> 3245 bytes ..._defined_types-0.8.8.sol-0.8.8-compact.zip | Bin 0 -> 3216 bytes .../argument-0.8.8.sol-0.8.10-compact.json | 7 +++ .../argument-0.8.8.sol-0.8.11-compact.json | 7 +++ .../argument-0.8.8.sol-0.8.12-compact.json | 7 +++ .../argument-0.8.8.sol-0.8.13-compact.json | 7 +++ .../argument-0.8.8.sol-0.8.14-compact.json | 7 +++ .../argument-0.8.8.sol-0.8.15-compact.json | 7 +++ .../argument-0.8.8.sol-0.8.8-compact.json | 7 +++ .../calldata-0.8.8.sol-0.8.10-compact.json | 10 ++++ .../calldata-0.8.8.sol-0.8.11-compact.json | 10 ++++ .../calldata-0.8.8.sol-0.8.12-compact.json | 10 ++++ .../calldata-0.8.8.sol-0.8.13-compact.json | 10 ++++ .../calldata-0.8.8.sol-0.8.14-compact.json | 10 ++++ .../calldata-0.8.8.sol-0.8.15-compact.json | 10 ++++ .../calldata-0.8.8.sol-0.8.8-compact.json | 10 ++++ .../constant-0.8.8.sol-0.8.10-compact.json | 3 ++ .../constant-0.8.8.sol-0.8.11-compact.json | 3 ++ .../constant-0.8.8.sol-0.8.12-compact.json | 3 ++ .../constant-0.8.8.sol-0.8.13-compact.json | 3 ++ .../constant-0.8.8.sol-0.8.14-compact.json | 3 ++ .../constant-0.8.8.sol-0.8.15-compact.json | 3 ++ .../constant-0.8.8.sol-0.8.8-compact.json | 3 ++ .../erc20-0.8.8.sol-0.8.10-compact.json | 22 ++++++++ .../erc20-0.8.8.sol-0.8.11-compact.json | 22 ++++++++ .../erc20-0.8.8.sol-0.8.12-compact.json | 22 ++++++++ .../erc20-0.8.8.sol-0.8.13-compact.json | 22 ++++++++ .../erc20-0.8.8.sol-0.8.14-compact.json | 22 ++++++++ .../erc20-0.8.8.sol-0.8.15-compact.json | 22 ++++++++ .../erc20-0.8.8.sol-0.8.8-compact.json | 22 ++++++++ ..._parenthesis-0.8.8.sol-0.8.10-compact.json | 14 +++++ ..._parenthesis-0.8.8.sol-0.8.11-compact.json | 14 +++++ ..._parenthesis-0.8.8.sol-0.8.12-compact.json | 14 +++++ ..._parenthesis-0.8.8.sol-0.8.13-compact.json | 14 +++++ ..._parenthesis-0.8.8.sol-0.8.14-compact.json | 14 +++++ ..._parenthesis-0.8.8.sol-0.8.15-compact.json | 14 +++++ ...n_parenthesis-0.8.8.sol-0.8.8-compact.json | 14 +++++ ...efined_types-0.8.8.sol-0.8.10-compact.json | 10 ++++ ...efined_types-0.8.8.sol-0.8.11-compact.json | 10 ++++ ...efined_types-0.8.8.sol-0.8.12-compact.json | 10 ++++ ...efined_types-0.8.8.sol-0.8.13-compact.json | 10 ++++ ...efined_types-0.8.8.sol-0.8.14-compact.json | 10 ++++ ...efined_types-0.8.8.sol-0.8.15-compact.json | 10 ++++ ...defined_types-0.8.8.sol-0.8.8-compact.json | 10 ++++ ...{argument-0.8.9.sol => argument-0.8.8.sol} | 2 - ...{calldata-0.8.9.sol => calldata-0.8.8.sol} | 1 - ...{constant-0.8.9.sol => constant-0.8.8.sol} | 2 +- .../{erc20.sol => erc20-0.8.8.sol} | 0 .../in_parenthesis-0.8.8.sol | 48 ++++++++++++++++++ .../in_parenthesis.sol | 9 ---- .../user_defined_types-0.8.8.sol} | 0 tests/test_ast_parsing.py | 9 +++- 96 files changed, 519 insertions(+), 14 deletions(-) delete mode 100644 tests/ast-parsing/compile/user_defined_types.sol-0.8.10-compact.zip delete mode 100644 tests/ast-parsing/compile/user_defined_types.sol-0.8.11-compact.zip delete mode 100644 tests/ast-parsing/compile/user_defined_types.sol-0.8.12-compact.zip delete mode 100644 tests/ast-parsing/compile/user_defined_types.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip create mode 100644 tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json create mode 100644 tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json rename tests/ast-parsing/user_defined_value_type/{argument-0.8.9.sol => argument-0.8.8.sol} (94%) rename tests/ast-parsing/user_defined_value_type/{calldata-0.8.9.sol => calldata-0.8.8.sol} (98%) rename tests/ast-parsing/user_defined_value_type/{constant-0.8.9.sol => constant-0.8.8.sol} (89%) rename tests/ast-parsing/user_defined_value_type/{erc20.sol => erc20-0.8.8.sol} (100%) create mode 100644 tests/ast-parsing/user_defined_value_type/in_parenthesis-0.8.8.sol delete mode 100644 tests/ast-parsing/user_defined_value_type/in_parenthesis.sol rename tests/ast-parsing/{user_defined_types.sol => user_defined_value_type/user_defined_types-0.8.8.sol} (100%) diff --git a/tests/ast-parsing/compile/user_defined_types.sol-0.8.10-compact.zip b/tests/ast-parsing/compile/user_defined_types.sol-0.8.10-compact.zip deleted file mode 100644 index 245529e6b77aa572359813a25dc4f242f759cd74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3215 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 diff --git a/tests/ast-parsing/compile/user_defined_types.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_types.sol-0.8.8-compact.zip deleted file mode 100644 index 36924b8c2c904640651d8fb697001be94eda7f5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3180 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..5b0bfc860cb7f525bca4b84f768878f82147bb22 GIT binary patch literal 3578 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 nM1%Cd6WKo~`+r3O{}cZkpP3nf$p6y@{?GC| literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c4be608bc74c831c2958ddbccab1fbefcf9f6776 GIT binary patch literal 3581 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..56841fbaf550d377626203b8d913e1446b3a3100 GIT binary patch literal 3575 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..131c5769ed3f4fc726719794639c70292f321522 GIT binary patch literal 3572 zcma)<^*l~94v*{S7W7ugYhM8tKHQn7#&57~VJo`Ss zKd;yGdH?YK|G3ziTX6MjPpJn6vB+(mOc)w?1$_*^j*7Wh0*j_%S>MO2zlasuQT-3POoXXwx1W* zYQ4tNla5(S)+Uf8L|LNoZet1KZ{mdp4O(xJaK*;z2|z0wB9z1*th`F+C?)7)Ldft+ z&R>X=&&5Q6>C^8_KCGM7=EzVU6kS|;wMDgULVQ z_K;{XDl2!ODVXdXB&V+F{GhPduYFnb5T*X{qxPe`hHZN)VFf`}l~MQt=*PVxL26-} z+Jh;6&Cv6$53_0eld8;BVB)K17Jlc}8?8xRl1p4TM9g8M!8+4fonRajlxyR*_w9>` zuG{%C=1?~%Xu$&xr^d5+*T35mN)bPj*vT>MdRSrwO(aseDTB!Ku|vLD z0TUufT|xM1R~x>@0(sEkAyiWKuY*UIdYX7SIxYfPye?f;n%1QE1oO>1sXOk~BoVfr zdRq<*`lC{ErFm>9BSp9~lrxDcjN62c-e-|g-`PAVBHt$~=9K4J^J2?TkkdHrn;(xI zWp2Vo)X;@kF}d`5K`aB7OGnVd3q$7AOcpLRkvxSC7Kq2i5B5xwD$T9gyVRgM7rg!- zr>zVp%DUME5v2W9;`Nc+$&(yHNzd?1Mwt>mWAI-lVFtqpYjJBuzkNWjgAMo8)7aTr za|+{<*#D`T>bpbW*7_`GNqy$U{xDG6yCun%Ra0V93qga)m;CYmiKf=J`6N*nC?fG% zO;8qi83$ce(6{W~uzq&Q^t*{TFOMoMr$Xv>8|~gUvi8{lJ9ssO!vncOD{;rhvhJ=y zua09!Ha{cpYmgyd(aHF=t1z(=Gwm@o05|Q|WTKb=s$Po06Rzto_zjBk{ZytWrx5n1 z_06}LGY&U4^k^B4O1gyPCSbZ&Gy%8IC_1c8{nxU#HkpeTGRao!fM zL26R&J|UpPq)RhI15jbCiQUcF%*|T3F z`aj8`F`vg%Io!{DoqEAH6(zg@6pJM6nyzW)nSH@<8iw?VcQgMi1$ua&!xn^qFY9WT z#c$y`@{wtNb6z2{N5Os<%w{brUlZgnON6T(>|MW5>d;JRtX>i;cI#x4p0JoJQs;jV z-g%E>fS-r$LE`a7+tLU5%|h0Iw|zLvSR{z)xO89v8Npd6+fCLikmY~j9_p-?4EWhZ z!;mSslP&t}=ol@UWgkxr139u+R5XsG|D}{F8v!j~Iyr-Y4{+TuJ31;Z82c4~yDfXM zYK%?t7HjCGtA#YJ9`Sjq!=Q3n30aQ>e*ewFc24bC^6AM*jkwD=yb;+i)fli`=?MxY z6>4=lmzxqiOKBInNJDYM zUGb(s5-`U=1+!dn9lu{-BU@qVmp8-=7Ik-#*{Uweq*yVuPwO4$e&N42N(3EY9&Ot2 zM~++VS*X2GFJq-QCLxf)yk?!@9B@z0KXNEyE(W1Z`1sfNPGM>i?_Fc%E%OD>bTO)E z6^QZ;-XT{6t`)^>X+H-rYeaE`3O3C*YGcd)JR&YTD>Ac^-d~&1=cZY-J|(n1f)w{k z=?H3Km9RAjs&u|bypATU?!41Ch}Xre_5RV&nj#;~?xDP&1ZR3pl^@UQ@P@l)A&4tg zIZpr+p>0aPgA?g4UX?>UwMca(a4|#yKriZ)zkIKjni(dS&@338!n1`A7Ddfy#8^Ns z#wSf+Ed4{&E+%#beV+urw9rkI(w0c0bWWpbKJ44N<%qvQ8V3-=(t*kA1I@?n8aH4p zlgW0Du+1Si%btcQLh|_j37>r>v1kUA-G{eeP2$#f$KPC$-UcE?8CXNUZC9YxC;h5BS$fm@@ zS01&YULi0TsyihZX|5~f^qcU{rFp$hd<^o~t(q3?+U^Ts62B@gl{T+m$@yIw;&>DYsaP&e&Wi2O*Lt$vtpp$LjT z|Hb-uVc61?_hFo?tkll3j5*|E)UN5iit4NPZdtBkIo(yb7I%v#yAYaLgW;W|;4ACR zT+}cnfL?KxNO3tGSE1PKHCB0Ee|y7iUP;WhQTU2!24(uE(oIj&iLa5S+^`rQD2_L& zOTsVV;#70~u`E#|Dm^i{YIMc-5ebp=pGkQ$VLCR6rP#X7p|M?X*Z|{OU{DRup;RDw z_!O49XQcuy|BYIE@>`9sR(5Ca#cOe&m)$>P(D$Egk1oBieYPnL3m7QAAMRJ>+C5t{5#w~@z+;r0jb{s0z!SJ+od*CY6+ z24XT+Jpzl{3?Gic_Gs;M)v1^s3s_v!OZwew=59y%G_mrw@dcsI?g&+z15nvA`6>y2 z>WR@xs{~Bbeg9)OyOP->bmb)iVp1!4H5o#|L5Ctc(UoL&q-jQq`oPCYA4v6oO5ST* z<9weB$$VUiC5VV7^d-Lb8?N4yyR&zZVv)SSfyQ!_sE9q5ju$#+>F<`Ux)xA8AvWq z;JQSn(?G}iwM|oKDUa{@1d~4A26Z6c7HSgv)ZX`Q(xWyf5l!1y79+L)qEYqU)?Z>GR$68rC5zt?~t9S z)MT)845`MwI+a#>gSN*m{q;}&4)fc6;(@`-8gW%2ifO>;z405Kq4+ zwwUrc#ri2YpjrTF3BJ3A#b% z%Vp_q@wRZ;z6hy&5N0H?WE4?a#kXK*3~4zBRT&I!>{=qc`js_Xq5By$>y_;+7TfpJ zB%B+M6_>IMv|M=GdWD)UJ+!7w!SRbS&&P-2N}?~Nv$7>M)2W+dKf|2{M8XAS-z)FD z9(J!tA7kQ^@?IF^-;B3>Dz1H%TPO-o+0rZsRM&rwwnr3X(2dDma@UwGF|ms0eNVn# z^VOir)LTVx=)ADQ0;G_{cULT$kZg9dy*0TU)C-kbaN}I3U%gWyPO%!m~$nr_SIo7}3FVR@Iw2Jtiy;UAdwwusNTr=DlQP;;>V1aYuSkKV-Z^?8$Br z?zl4B93CY&9aPN$GuToWFKCUDYWp%uqDm*bbM5krql6TWFPGfN_>E*nabbl>lMIEs z1+6+sqcA~3xc9LcJECQQRahN;!n$!?xwQ5o=jGc)vO2x>wMpW`VsWm1kc#tR(^Y8w zOE#7bB}c($ru$bFJ%VcObTp(H?J4q^zL*1MhmezaohOX`!LZVf^nF`h2cUPE$zlS^08)l1q>E!I|Ao0q}9YJ{m2(SVG!TBp2;seiuk-=I; zn%pjgvtTQCRH7lf3eTihGph{G=b6Z!xvk($ht6|XbSQhfjq>nmyEKCQ3(nYEC!?zV z+fkf(VT%xc!JL zCYbqF@sXG;%S23~hjzxLIcm`oi&4J4U2t;h-WaU}TRD?d^MXTL@5V9^AI?IGB7_e~ zO<5wT+8Lod8XC?I##PKtU}e*8?DGloxiHuc1@{tWi;ptldviMI-(j) zYJQ{Ul?8QGFXakqJbi2U32%id!x@E@?~%CG4+Zg$6}XAuN#U}j%>Y)R~& z>{-FPqGT7vgLFhsA9o~QrV#thvF-ikYMqmNF{q#zU(v`0h^zjWUr)+d-6{D@kNIhm zmBJqhvkfEFu8S-~zrWfmeITNukUO=LHLrUSKqB*6{NNMIaTcj*XeJhz@ngU3ofl(2 z&!vmFg`S~ib&;d-XkJFL!kK&^(C{eG__X%6*8;nD#gi5)HT$;H+5Y(yw1BB#EGx71 zJ9*!#-}vJAZ`4Ppgs>blxDtl%~NkP0CV4ST|9In~f@&=36c^-kZGF8R0> zKrll^bP+&}iS4vYa0C(ui*+?MkA5}25n8Y;ojJU_{}fEpM%Vr(QLu9k=v{Mcu7p0m zKrag23k@$?cianO;i?Osh^U!OUAkg?T%k&DkT9H$Cj{YHGBxP<1#u^^tiMlG=4gEt zu<~yk49Nylbp}qjTKg-d4o~#7-=oBZuR>Y&0QlmYtW)_mhkeafoVIz2+P@xqIC;)# z-2B3fj9}6{f`};Vubonf zR&)Ab8(mjFij3c>Vtd_qm4}3XvdAYDlo6n`hD>RJX8I3ScZij`gOzkpO6E?h3&`Heh106ZVgMlgCc6&(K25;9D0UNvBpa& zSgp!^lGlql-H5&oBbm=yZ`r;sEmQ)ID_)oQRb9&)i({PmqM+RMZ&K>jY=UCJAMc(& zCU}*T#*$5+O?xpcFk|*UIfprwO^VFLWK>GM+nLzQ$FD#Ju1DJ`;(B$)R|iy^!rQrN zMM3An)Gi^$)baY}18E0Ml!U1blpuO#;%eDq-M^uJGM=A$tGwOo?1MeO;wx6y)!%(5 zV2-pZc*E>5!koYfTP{% zh|PT^H>QT;Fb7AzNA&Zx1%l*jm7Jrds@V%PT2G+#s4vMMOZZAsLi|X}gosdO^9G?A zMzLmW)3NL*4Or{?Btw9cA++Zjg1Rgh=BPOZFjJesxZL;&8LWeKxCtMrmM8vRsGl7t|wTBFa-yX~2Lw zjB$&@jQ^k2GI9F|TKLL{`%_h@+0pJxM6o%VcOr-(du7Gl^e6pLM6_gfl;{fwl=1Z& z;|J=@CKi-Ty@RVqg_Zmz`q*ipO|ef{cmI)qQMF`_ zyCj!i4v2OT@wH-kykURdvv?*hbU_Ca*J|fzzz{H%5eBJ8j_8HuMp7v3$lha;w{7B% znuoOlS2d~dJ+EQ|=UEtru!c+;j(&DE%N(UcBo0gDvZ%*Et1cQNoUUl95i=%wt0zm; zi1K9zM4=U&S@?I9g6*?*Z_ODm!(4oFucuo}8Pms}fP7faMn#lbMa2kXZdQjh%KPML zhDQ8J&DvN=#Cl`_+S`7%75YkgLI9)G{g-yXoiO9@p9xSukHH*g8yeT0)&nm6Qn3nP#+M-_rQ~=_ zC^b&~r`}g{^&kK%B!mHXY z4|xb9Pn%|@#4d z&p(vk%aV|6Bq2u(FC5IN`Y?qP1D8{bCTi8J#3RdQb@uP&<<8$z45A+r9zsuid7&f( zx1rqBp|FewM+lN7u#Kfc#CL0+_-#(-bgdn_`kd(2kB^>bU2|WQ;-U3Pj|g~KI-q%2 zd$3!{-r!Qrr5bK5bQf!gr^!?GCI^i=cM8dr9F8Q}HdYO} z_0`>~)I1BIz8VQ8A&#|oBf=7*Q+~VP$xr#q-`7dOfinK*pmakH5cqU@yHCTh%}+0? z4WQJR^#GVS)BfesZf1QQpNzE{<*GTEH%$1Q~Y#nr$K$= z5X;B~qJZh`vep_!?@q_A-3u&)yA3{nYz+FzwKyBb7hU-#n}6HZAP(L2J59=)Zn{+n zR?drGQ|&(-AVPa8p{RV6P1ioVCZkKN2{HU8*C98Sf-St&de4$dgV=$c6Yvo9T9mj^ zI?8|3=NTS$DiRWmM%Lck7uO!x`So0S?9*k-v@a#6XpGd(%_{FU&lY`AQFpUM58t z1O_%>s-8WbVrP*ee1AuR^OjMTncblp;9{%nD_uXK<{$)&owfu9vvvx44E5aavg^W_ z6G6?wh#5P5;AwhQ5xb^Qj#<{Hm8!~o_@W5z!Wqal7CC9MvVL2O)*(B zPmo}+wx>s9K^A*Sl=2&)iaGx;q{JTLbFAL77S;FEr@Qo3bOY%n>sv24Oi5Joff|x3 zEQ4m)1$kq^ z9~~oQ!kcs4?3e0)m)?<;bM4@LeSk%)t@M$50hstY+|T#fv2X97^M@*O6Glk}txmh) zXnsY4tz+Pz^>~GUL0y`e23P0my%dJHfzDetMJ-*jzgnOR65k7o35U9M-DfA?Kfdht z?#tnSfK2NQA7psz#IdKmlHIbIG2l0P>$EHW@b|HvB!$vVRXS79|2r!hPH zZB(E%YU?+d+cd>|#a$aHzCu%me*Nm!sSD8ph<<3+N-p;vC^pR3S4PB4^Uc2Nym)-N z!58U3Qii0t5z|MIpvfuS(Ax}wFhIvMOw9w$5WXlKM1kAm^|e=Ldb8Wx9mxWX5~99$ znl+ipoq7#sjgdOTytoJ7+=XMZFLvk(+_ol)2Qr&{G!UytLPw*Nd=o^0!JlBaHFOXyjcT8~kG~5)? z7c9|yc(}74J$ultR*i*X>xl29m!SvAMVN2Z2-Y^9CP;*@bL0(Od1()pzWt@@uGFsq z4#OUr7BpTszQv~-=~hmss;<_DtmqFST%}Rk3&Uq+kw$unba#yT)|D?#IWi^!umfai zQf2L5D?MUm!Irq1o#w7e?|Q{cnAy4+Y-*&zs~Q#{Zo1ukZkX{{t5k)aw8M literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..a74b49ac1510e77161f322c69c1194d41257059c GIT binary patch literal 3566 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 StReqH{lEV4pO*yz@&5o}Gg`v{ literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c69a936a3bd23c5e73baa09d82c8da216423b69c GIT binary patch literal 9661 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..2770368493927fb64a2fa9321aeb77a982d6c9dc GIT binary patch literal 9662 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..b17496fc484df2a04c9d59a208d398e08a50e643 GIT binary patch literal 9661 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 GTRAH<+IKBXy=8 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..4b98a2bc6548b3a8c598312263ecc029d28e057b GIT binary patch literal 9489 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..24b01b8dfb98a5d3f15a3682b4953b8e05a65b78 GIT binary patch literal 2429 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..43f7607498787faf149dbf1909ac06fa9cdafc83 GIT binary patch literal 2431 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..647d124a43fd9832509633a757484e3481502e2c GIT binary patch literal 2430 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..50f2cc275bfdf103bc203c05d1ba26e42d981d10 GIT binary patch literal 2432 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..652617a3d536790adced2841064109600f63a13c GIT binary patch literal 2432 zcma);=T{O61IEF?J+4;nZSIu=wA=$VC+0RsL>if4iYr&SQp`c6=E5*@1W75{bwg&? zakT{8H#KLjoDJM>_x=8!^FF^1&w0*y{(v9c;S|UWzy{z4Oyw`RD`=`LGB^PMyaoWE z1ONb#VQ5Sw0v)M&Ud!+|n6S{mpx8TM5s`t22qfxebdXjECJfC50t5U3fcpS|NoM8^ zy+gh53dYB`Mto%-&^HyS(&;&u#Z6_#Fdf3WGWC;bJ)f5ozXo-)LW}N+cU?81|LD>| zb2Pnik8~;^x3I2{K^K?gdML%U({P>MTY%=pETfAaGESnnB>!m&xo0 z{M^Fw%;+sJed?b0(9^YpN6|P>!kK>vW3+5)(raI_1z`{25|?HP_Spz+;END%AD(&0 zeK(O0SJ5nq{r2A86w^9q#Yme*d=YAy0-Mhx+F{DB^}$F)b)6%~!>`m*!|fqj%sV4T zIar9z{h8NQ=fvX7j6;pm@S}dosdCZmR5@5pi zQFTH1ZAs7P%l`Y|$lZ;^yZh}YjjbU!bUC>)UG9r%jZrNIs=ePTwHy}&zyK;g2HvEV zsKmj0RSc-*BySJrHc0Sv{;p;f%tPXFrstC2u39B;_hHPs(dfGVYH(FaDbt|dQ0;c! zwAZViHJ!ZWm4}xOnY0A!w%ZvgE>4eS#FH)sKJzYG4EE!3%CWtmPs0R*zHoRe576TN z+P8V$)W{Vyf1Ca=6&Z^B(yl<_B$?(EiUyi~xU-vFgBWs=b#X4LP^Ihh9#FmT&Q5u| z8+fpX(P!m0wqv9WIKOho2t#-w?HD#*-T7AP9_-t?N>@OS+x145%(a~(Pst< z-tG2UM#nS|&MoTN?+FE8_;M!NM__0we=r}d%=6OUbQnb@Fiv2V&6n*Lv+CME#x~AJvCS1z0N=7lD=f@K15p7H3R0mwO(@vzD_Rg*8V+%2EQW>aKJgE-yCv?#^|IgIn-XCkI#6 zb?sQ)b5XLcITMNTTzZH2&ry-d0dmOnbXUbB?; zFJV{~ajoaqwU*gr^AdGmnbS&tN|`I_e)e1&#HBGv(Nn7|J^CX-Q_*_;&V@4E(c_)h zT;H)N-R;E5_e}o3RRJv{ke<`8=GntO!HkFwz0;QL9D0XQaTZ=J2G%~l-R4YRa@NWD zs#+tUq4u0z^zjb{ zd95A!$cc?7HY^yn8EP;qx0!DXDsNzO3vigK@yYyqE4=jRIBKfgKmU+EX3f|CGMI{* z`??wKZkB{g)kOTz_c|+Uh1W5*v?_4u=Y$h@g`P=UFIBU9K!S>@?U(f>gyE^SUUnl5 zgmlV5#uBfadfb8hIHfj&r;@dY`@>4>Gb2D8KgXQ!jE`;Q@XRbZ_w58|)E4@&uD^vD zdg=*h1%$QPa4zp@)-`Dy8=oJI!i<1fAe1^IgdDX(s1=3H^T2n#P4Hn-^+=fj#Y$nx zRB2}HxMk&@6{i(hdDSCB&kf@`^VABKTT_%-w8E-&V#J5HxUBcJ3khz?gt)dWrmVeBZ?+hxPP)En%$XOzI@~ z3imQcn`FDm&0EkTm4lCdjLbyG@HKW=RtB+h5(iS!6u*^MeIiRh*QI+(w`YO4UpzT+ z$_jzydliCM^Kx`7hPdQ%Iv9grfPMVMj&)+#C}GZRi#0vy>go#> zN%{rt9j`k6i2urOV{I}#Yb@h?7B=)-ql9Ixosb0 zvGiRyE~nD;!RBA91k0ZB1`Q5|u=M%8^oF!w_HyUX{Ui5;^qPi~k%)g5rZuh=pxW*o$l>!R921kgv1 z3iR&9x=WL4J#JS>LTv^eVozi5hA3&^Jk!TI`HQC3FHu+jN=`}clw6>r&`;dA0)2$#}>O#5Li{C$&E-W94j^;j~h5$*tF kGduOaz38_Z{Wtf4|JMI!NpJ@+`@e7CZ`^;kFxS89KWb``MF0Q* literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..d98aa7751ecb2e21196bcd608e4695f411000076 GIT binary patch literal 2413 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c9e8559cd8c272c1e62c9ba2c0504addd87c5309 GIT binary patch literal 12317 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

C#I(E2s*nxZV;yc0kPgS$L%*QS*Fv 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..36b5e01437a308502feaac81d43939d188516669 GIT binary patch literal 12308 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..41dd2566ceb8de3aeb691fb93b5cf38f506e8862 GIT binary patch literal 12314 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..1752e6322eaa7172e8907695138c8d4a39fa729e GIT binary patch literal 12316 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..0d3ca25a0f6780d768b417e381ab19c14f26be29 GIT binary patch literal 5969 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 WbtNG3|7;Nci{XF0`Jb5s0RIo@M1f5J literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..a9f8231db16a7d78fc02b5f4b3101693eec39515 GIT binary patch literal 5972 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..65636b54f0b0f6f3d87b1fd45a3f3902b1414548 GIT binary patch literal 5977 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..aaff7aec640b0df359395b5efd8b437487b3007d GIT binary patch literal 5981 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 ZMR;o{15y5GgYX|;{_Cy(#5n-){{R$Fc$5GD literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..56b368c60c41e527780a379f333e37e8aa0c4949 GIT binary patch literal 5936 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 C+ZyHo literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..751c2cf7cf9f3c9a6fadc5032f627601aa824168 GIT binary patch literal 3243 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 D{Kz24 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..04156bb2a93b614432b3e76cb7c8b3d3c61b4a6e GIT binary patch literal 3245 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 Jt$6L<^&goX6;c2I literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..658877ed7243c4cb5861a177c7d7fc5f956862f7 GIT binary patch literal 3216 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 literal 0 HcmV?d00001 diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.10-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.11-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.12-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.13-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.14-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.15-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json new file mode 100644 index 000000000..cb45a229a --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/argument-0.8.8.sol-0.8.8-compact.json @@ -0,0 +1,7 @@ +{ + "FixLib": { + "div(uint256,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "works(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "test(Fix)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.10-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.11-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.12-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.13-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.14-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.15-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json new file mode 100644 index 000000000..3ebff8630 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/calldata-0.8.8.sol-0.8.8-compact.json @@ -0,0 +1,10 @@ +{ + "C": { + "f(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "g(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: BEGIN_LOOP 1\n\"];\n1->4;\n2[label=\"Node Type: END_LOOP 2\n\"];\n2->7;\n3[label=\"Node Type: NEW VARIABLE 3\n\"];\n3->1;\n4[label=\"Node Type: IF_LOOP 4\n\"];\n4->5[label=\"True\"];\n4->2[label=\"False\"];\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->4;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n}\n", + "test_f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: RETURN 7\n\"];\n}\n", + "test_g()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n4->5;\n5[label=\"Node Type: EXPRESSION 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->8;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: EXPRESSION 9\n\"];\n9->10;\n10[label=\"Node Type: RETURN 10\n\"];\n}\n", + "clean()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_equality(MyAddress[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->4;\n2[label=\"Node Type: BEGIN_LOOP 2\n\"];\n2->5;\n3[label=\"Node Type: END_LOOP 3\n\"];\n4[label=\"Node Type: NEW VARIABLE 4\n\"];\n4->2;\n5[label=\"Node Type: IF_LOOP 5\n\"];\n5->6[label=\"True\"];\n5->3[label=\"False\"];\n6[label=\"Node Type: EXPRESSION 6\n\"];\n6->7;\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->5;\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.10-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.11-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.12-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.13-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.14-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.15-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json new file mode 100644 index 000000000..0008a4469 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/constant-0.8.8.sol-0.8.8-compact.json @@ -0,0 +1,3 @@ +{ + "C": {} +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.10-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.11-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.12-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.13-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.14-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.15-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json new file mode 100644 index 000000000..d8c9a5943 --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/erc20-0.8.8.sol-0.8.8-compact.json @@ -0,0 +1,22 @@ +{ + "FixedMath": { + "add(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "sub(UFixed18,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "ERC20": { + "constructor()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "totalSupply()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "balanceOf(address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "allowance(address,address)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "transfer(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "approve(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "transferFrom(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: RETURN 3\n\"];\n}\n", + "increaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "decreaseAllowance(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: RETURN 2\n\"];\n}\n", + "_transfer(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_mint(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burn(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_approve(address,address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n", + "_burnFrom(address,UFixed18)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.10-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.11-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.12-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.13-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.14-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.15-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json new file mode 100644 index 000000000..272a4265d --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/in_parenthesis-0.8.8.sol-0.8.8-compact.json @@ -0,0 +1,14 @@ +{ + "C": { + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: EXPRESSION 4\n\"];\n}\n" + }, + "FixedMath": { + "add(UFixed,UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "mul(UFixed,uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "floor(UFixed)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n", + "toUFixed(uint256)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + }, + "Greeter": { + "constructor(string)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.10-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.11-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.12-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.13-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.14-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.15-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json new file mode 100644 index 000000000..06367c7cd --- /dev/null +++ b/tests/ast-parsing/expected/user_defined_value_type/user_defined_types-0.8.8.sol-0.8.8-compact.json @@ -0,0 +1,10 @@ +{ + "B": { + "u()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n}\n", + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n}\n" + }, + "D": {}, + "C": { + "f(Left[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/ast-parsing/user_defined_value_type/argument-0.8.9.sol b/tests/ast-parsing/user_defined_value_type/argument-0.8.8.sol similarity index 94% rename from tests/ast-parsing/user_defined_value_type/argument-0.8.9.sol rename to tests/ast-parsing/user_defined_value_type/argument-0.8.8.sol index 55fe237e1..8d511db7a 100644 --- a/tests/ast-parsing/user_defined_value_type/argument-0.8.9.sol +++ b/tests/ast-parsing/user_defined_value_type/argument-0.8.8.sol @@ -1,5 +1,3 @@ -pragma solidity ^0.8.9; - type Fix is int192; diff --git a/tests/ast-parsing/user_defined_value_type/calldata-0.8.9.sol b/tests/ast-parsing/user_defined_value_type/calldata-0.8.8.sol similarity index 98% rename from tests/ast-parsing/user_defined_value_type/calldata-0.8.9.sol rename to tests/ast-parsing/user_defined_value_type/calldata-0.8.8.sol index b69e2e0d6..dff2146e8 100644 --- a/tests/ast-parsing/user_defined_value_type/calldata-0.8.9.sol +++ b/tests/ast-parsing/user_defined_value_type/calldata-0.8.8.sol @@ -1,4 +1,3 @@ -pragma solidity ^0.8.9; pragma abicoder v2; type MyAddress is address; diff --git a/tests/ast-parsing/user_defined_value_type/constant-0.8.9.sol b/tests/ast-parsing/user_defined_value_type/constant-0.8.8.sol similarity index 89% rename from tests/ast-parsing/user_defined_value_type/constant-0.8.9.sol rename to tests/ast-parsing/user_defined_value_type/constant-0.8.8.sol index 70b395441..0ea1e5df8 100644 --- a/tests/ast-parsing/user_defined_value_type/constant-0.8.9.sol +++ b/tests/ast-parsing/user_defined_value_type/constant-0.8.8.sol @@ -1,5 +1,5 @@ type T is int224; -pragma solidity ^0.8.9; + contract C { T constant public s = T.wrap(int224(165521356710917456517261742455526507355687727119203895813322792776)); T constant public t = s; diff --git a/tests/ast-parsing/user_defined_value_type/erc20.sol b/tests/ast-parsing/user_defined_value_type/erc20-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_value_type/erc20.sol rename to tests/ast-parsing/user_defined_value_type/erc20-0.8.8.sol diff --git a/tests/ast-parsing/user_defined_value_type/in_parenthesis-0.8.8.sol b/tests/ast-parsing/user_defined_value_type/in_parenthesis-0.8.8.sol new file mode 100644 index 000000000..739221fb9 --- /dev/null +++ b/tests/ast-parsing/user_defined_value_type/in_parenthesis-0.8.8.sol @@ -0,0 +1,48 @@ +type MyInt is int; +contract C { + function f() public returns (MyInt a, int b) { + (MyInt).wrap; + a = (MyInt).wrap(5); + (MyInt).unwrap; + b = (MyInt).unwrap((MyInt).wrap(10)); + } +} + +// Represent a 18 decimal, 256 bit wide fixed point type +// using a user defined value type. +type UFixed is uint256; + +/// A minimal library to do fixed point operations on UFixed. +library FixedMath { + uint constant multiplier = 10**18; + + /// Adds two UFixed numbers. Reverts on overflow, + /// relying on checked arithmetic on uint256. + function add(UFixed a, UFixed b) internal pure returns (UFixed) { + return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b)); + } + /// Multiplies UFixed and uint256. Reverts on overflow, + /// relying on checked arithmetic on uint256. + function mul(UFixed a, uint256 b) internal pure returns (UFixed) { + return UFixed.wrap(UFixed.unwrap(a) * b); + } + /// Take the floor of a UFixed number. + /// @return the largest integer that does not exceed `a`. + function floor(UFixed a) internal pure returns (uint256) { + return UFixed.unwrap(a) / multiplier; + } + /// Turns a uint256 into a UFixed of the same value. + /// Reverts if the integer is too large. + function toUFixed(uint256 a) internal pure returns (UFixed) { + return UFixed.wrap(a * multiplier); + } +} + + +contract Greeter { + using FixedMath for UFixed; + UFixed public someValue; + + constructor(string memory _greeting) { + } +} diff --git a/tests/ast-parsing/user_defined_value_type/in_parenthesis.sol b/tests/ast-parsing/user_defined_value_type/in_parenthesis.sol deleted file mode 100644 index d45dacb4f..000000000 --- a/tests/ast-parsing/user_defined_value_type/in_parenthesis.sol +++ /dev/null @@ -1,9 +0,0 @@ -type MyInt is int; -contract C { - function f() public returns (MyInt a, int b) { - (MyInt).wrap; - a = (MyInt).wrap(5); - (MyInt).unwrap; - b = (MyInt).unwrap((MyInt).wrap(10)); - } -} diff --git a/tests/ast-parsing/user_defined_types.sol b/tests/ast-parsing/user_defined_value_type/user_defined_types-0.8.8.sol similarity index 100% rename from tests/ast-parsing/user_defined_types.sol rename to tests/ast-parsing/user_defined_value_type/user_defined_types-0.8.8.sol diff --git a/tests/test_ast_parsing.py b/tests/test_ast_parsing.py index eafe6a2f3..0b791f0ea 100644 --- a/tests/test_ast_parsing.py +++ b/tests/test_ast_parsing.py @@ -402,7 +402,14 @@ ALL_TESTS = [ Test("custom_error_with_state_variable.sol", make_version(8, 4, 12)), Test("complex_imports/import_aliases/test.sol", VERSIONS_08), # 0.8.9 crashes on our testcase - Test("user_defined_types.sol", ["0.8.8"] + make_version(8, 10, 12)), + Test( + "user_defined_value_type/user_defined_types-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15) + ), + Test("user_defined_value_type/argument-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), + Test("user_defined_value_type/calldata-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), + Test("user_defined_value_type/constant-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), + Test("user_defined_value_type/erc20-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), + Test("user_defined_value_type/in_parenthesis-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("bytes_call.sol", ["0.8.12"]), ] # create the output folder if needed