Commit Graph

1459 Commits

Author SHA1 Message Date
Emilio Almansi
ca6957da37 Added property _documentation_ to Function, Event, and Modifier definition classes. 2018-02-19 16:45:38 +01:00
Federico Bond
d7532f7b9c Convert static SourceReferenceFormatter functions to member ones 2018-02-19 15:04:22 +01:00
Alexander Arlt
1d4547ab03 Minor improvement: check sources
- returns error, if "sources" is an array, an empty object or not defined
- Added new test-cases in test/libsolidity/StandardCompiler.cpp
2018-02-16 18:44:46 +01:00
chriseth
2b5a5a8669 Make addmod and mulmod revert if the last argument is zero. 2018-02-15 13:52:17 +01:00
chriseth
e08a206070 Disallow uninitialized storage pointers as experimental 0.5.0 feature. 2018-02-15 11:58:50 +01:00
chriseth
23484ba6a4
Merge pull request #3498 from ethereum/allowthisfselector
Allow `this.f.selector` to be pure.
2018-02-13 17:08:35 +01:00
Balajiganapathi S
b1417b318f Move string distance function to utils and format error message 2018-02-13 14:59:33 +00:00
Balajiganapathi S
2859834e58 Suggest alternatives when identifier not found. 2018-02-13 14:54:36 +00:00
chriseth
aea9e7fe54 Add tests for selectors for public variables. 2018-02-13 14:15:02 +01:00
Alex Beregszaszi
8f8ad3840e
Merge pull request #3349 from federicobond/number-improv
Avoid output messages size blow-up using huge bignums literals
2018-02-13 12:36:05 +00:00
chriseth
560fbd0df1 Always use shortened literal number representation. 2018-02-13 11:43:47 +01:00
chriseth
5916cf1e0a Allow this.f.selector to be pure. 2018-02-13 11:00:59 +01:00
Federico Bond
a320ffeafd Avoid output messages size blow-up using huge bignums literals 2018-02-12 22:53:33 +00:00
Alex Beregszaszi
573aa01fd2 Adjust tests for multiple errors with the var keyword 2018-02-12 22:39:42 +00:00
Alex Beregszaszi
3ddbf1617f Do not use var where not neccessary in tests 2018-02-12 22:37:35 +00:00
chriseth
8795036919
Merge pull request #3479 from ethereum/multiError
Support searching inside multiple errors.
2018-02-12 22:20:58 +01:00
chriseth
676cf52264 Support searching inside multiple errors. 2018-02-12 16:41:31 +01:00
Federico Bond
75a3a707a2 Fix segfault with undeclared array types 2018-02-11 21:40:41 -03:00
Alex Beregszaszi
32300ea3ff
Merge pull request #3360 from federicobond/nonfatal-reference-errors
Replace some fatal errors when resolving references with normal ones
2018-02-04 13:07:55 +00:00
Federico Bond
aef9518039 Add more test cases for reference resolving error handling 2018-02-02 14:09:32 -03:00
Federico Bond
600e66e605 Replace some fatal errors when resolving references with normal ones 2018-02-02 14:09:32 -03:00
Alex Beregszaszi
b545987ec7 Issue warning for using public visibility for interface functions 2018-02-01 10:28:00 +00:00
chriseth
6807010dc7 Prevent libraries from being called. 2018-01-19 16:27:44 +01:00
Alex Beregszaszi
8b20a7cd53 Disallow non-functional instructions in parseExpression early 2018-01-10 14:16:46 +01:00
Alex Beregszaszi
42f8875770 Show restricted instruction warning before argument mismatch issue 2018-01-08 00:39:22 +00:00
chriseth
767052f2f7 Tests for strict mode. 2018-01-06 03:28:21 +00:00
Alex Beregszaszi
9e7e312fdf Properly support library file names containing a colon (such as URLs). 2018-01-05 13:24:07 +00:00
Leonardo Alt
d0abc5359b [SMTChecker] Variables are merged after branches (ite variables) 2018-01-04 18:20:12 +01:00
chriseth
7f4cf00f1b Provide easy way to update source location expectation. 2018-01-04 14:29:03 +01:00
Alex Beregszaszi
2cdd789b5d
Merge pull request #3297 from ethereum/separate_expression_and_statement
Separate expression and statement
2018-01-04 12:04:19 +00:00
Alex Beregszaszi
8901b38959
Merge pull request #3369 from ethereum/jsonio-colon
Properly handle colons in file names within jsonio
2018-01-04 11:58:29 +00:00
Federico Bond
a0771691ff Improve error message for wrong struct initialization (#3359) 2018-01-04 11:24:39 +01:00
Alex Beregszaszi
ff9fdfac57 Properly handle colons in file names within jsonio 2018-01-03 15:44:03 +00:00
Alex Beregszaszi
add4cde68c Populate the sourceLocation field properly in standard JSON on errors 2017-12-18 12:17:51 +00:00
chriseth
3d1830f3f2
Merge pull request #3232 from ethereum/simplifyConstant
Simplify ConstantEvaluator.
2017-12-14 16:14:46 +01:00
chriseth
ca0d244bf7 Adjust tests. 2017-12-13 12:28:15 +01:00
Yoichi Hirai
14707b27e2
Merge pull request #3183 from federicobond/fix-event-parsing
Fix event parsing. Refs #3175
2017-12-12 11:12:18 +01:00
chriseth
48c7ba72f3 Simplify ConstantEvaluator. 2017-12-12 09:44:18 +00:00
Alex Beregszaszi
7ff9a85592 Reduce the types of errors outputted by ConstantEvaluator 2017-12-12 09:40:29 +00:00
Alex Beregszaszi
5226d54ed1 Improve error message for constant evaluator 2017-12-12 09:39:26 +00:00
Alex Beregszaszi
1734d44561 Rename jsonCompiler to libsolc 2017-12-11 12:49:08 +00:00
Alex Beregszaszi
b32d7a84fc Move some struct tests to require ABIEncoderV2 2017-12-11 02:42:09 +00:00
Alex Beregszaszi
d57afb20fa Fix warning test for jumps in assembly 2017-12-05 20:27:50 +00:00
Alex Beregszaszi
bc875f6b9c Warn for assembly labels too 2017-12-05 19:27:12 +00:00
chriseth
6d609557b6 Fix test. 2017-12-04 12:57:36 +01:00
chriseth
00e252a39f Another test for division. 2017-11-30 01:20:21 +01:00
chriseth
19e067465a Unary operators and division. 2017-11-30 01:20:21 +01:00
Alex Beregszaszi
73d25c883f Specify output selection in tests 2017-11-29 20:10:18 +00:00
chriseth
9d8e3ff395 Also test short input for old decoder. 2017-11-29 17:08:44 +01:00
chriseth
5a3dbb0269 Cleanup and overflow checks for data pointers. 2017-11-29 17:08:44 +01:00
chriseth
98c38108e8 Decoder tests. 2017-11-29 17:08:44 +01:00
chriseth
a1f59cbb17
Merge pull request #3220 from ethereum/IuliaIf
If statement for Iulia / Inline Assembly
2017-11-27 09:02:46 -05:00
Federico Bond
14fd647b85 Fix event parsing. Refs #3175 2017-11-22 23:08:12 -03:00
Alex Beregszaszi
ea18bed319
Merge pull request #3235 from ethereum/explicit-tests
Improve expected test errors for some old cases
2017-11-22 17:05:01 +00:00
Alex Beregszaszi
4c50d3f8e1 Improve expected test errors for some old cases 2017-11-22 15:41:07 +00:00
chriseth
9232cd2621 Tests. 2017-11-22 16:27:32 +01:00
chriseth
6dbc34e16e If statement for Iulia / inline assembly. 2017-11-22 16:25:24 +01:00
Kwang Yul Seo
4876c58f91 success(text) -> CHECK_SUCCESS(text)
success(text) does not assert the result. Use CHECK_SUCCESS macro.
2017-11-22 23:07:42 +09:00
chriseth
19d5c42429 For loop. 2017-11-22 02:35:34 +00:00
chriseth
5e2c066778 Test for multi-branches. 2017-11-22 02:35:34 +00:00
chriseth
95a65dc04c Fix boolean constants. 2017-11-22 02:35:34 +00:00
chriseth
90fb14f525 Tests. 2017-11-22 02:35:34 +00:00
chriseth
e5de4a66ed Tests. 2017-11-22 02:35:34 +00:00
Alex Beregszaszi
455e51a608 Improve cyclic constant error message 2017-11-22 02:11:22 +00:00
Balajiganapathi S
d102deaec9 Detect cyclic constant definitions 2017-11-22 02:07:56 +00:00
Balajiganapathi S
c0b4969451 Add more tests for constant var as array lengths 2017-11-22 01:41:50 +00:00
Balajiganapathi S
165857b1d4 Allow constant integer variables as array lengths. 2017-11-22 01:41:46 +00:00
Alex Beregszaszi
f7249abe28 Extend address checksum tests 2017-11-17 00:46:45 +00:00
Federico Bond
3cd6ac418a Add missing name resolver tests 2017-10-26 14:13:33 -03:00
Alex Beregszaszi
3a8324266f More detailed errors for invalid array lengths (such as division by zero). 2017-10-20 11:59:18 +01:00
chriseth
4e7d1440ab Merge pull request #3101 from ethereum/compilerstack-header
Remove the reliance on empty contract name equals "last contract" in CompilerStack
2017-10-19 13:43:17 +02:00
Alex Beregszaszi
10677125ae Turn usage of callcode into an error as experimental 0.5.0 feature 2017-10-19 02:20:30 +01:00
Alex Beregszaszi
2ce35b77be Implement CompilerStack.lastContractName() 2017-10-18 23:54:32 +01:00
Alex Beregszaszi
039cc25b1f Always require a contract/sourceName in CompilerStack 2017-10-18 23:32:33 +01:00
chriseth
e854da1a8c Merge pull request #2925 from ethereum/tuple-value-check
Validate each tuple literal
2017-10-18 11:59:40 +02:00
chriseth
58139e8613 Adjust tests. 2017-10-18 00:19:36 +02:00
chriseth
a3db1fc197 Do not accept truncated function selectors. 2017-10-17 23:17:36 +02:00
chriseth
8a8a71de84 Only check tuples for valid rational numbers if they have more than one element. 2017-10-17 19:14:49 +02:00
Alex Beregszaszi
c99d2aae04 Validate each tuple literal 2017-10-17 18:59:01 +02:00
chriseth
6001bd1406 Allocate one byte per memory byte array element instead of 32. 2017-10-16 22:29:31 +02:00
chriseth
082e7b6a9e Allow `gas` in view functions. 2017-10-16 13:28:44 +02:00
Yoichi Hirai
c35496bf4a Merge pull request #3038 from ethereum/interface-external
Force interface functions as external (0.5.0)
2017-10-10 12:21:08 +02:00
Alex Beregszaszi
9ee619c9bb Snarks test using Byzantium precompiles
* Snark tests.

* Verifying routine.

* Example proof.

* Update precompiled positions to Byzantium ruleset.
2017-10-09 11:09:20 +02:00
Alex Beregszaszi
c45e55675c Force interface functions as external (0.5.0) 2017-10-06 13:48:38 +01:00
chriseth
094012dbb0 Merge pull request #3036 from ethereum/constant-eval-refactor
Refactor error reporting in ConstantEvaluator
2017-10-06 13:50:15 +02:00
Alex Beregszaszi
c28ed2a619 Add tests for ConstantEvaluator 2017-10-05 20:08:12 +01:00
Alex Beregszaszi
b8be060b30 Ensure unused variables are not warned for in interfaces/abstract contracts 2017-10-05 19:31:53 +01:00
Alex Beregszaszi
81519845bc Require location keyword for local variables (0.5.0) 2017-10-05 19:02:30 +01:00
chriseth
d0fa56a217 Merge pull request #2981 from ethereum/no-address-overload
Do not add members of address to contracts in experimental 0.5.0
2017-10-05 16:12:21 +02:00
Alex Beregszaszi
8b26d65b62 Merge pull request #3020 from ethereum/smt-functioncall
SMT should not crash on special function calls (typecast)
2017-10-05 14:04:16 +01:00
Alex Beregszaszi
6ba0c2bba8 Merge pull request #2982 from ethereum/encoderFixes
ABI encoder fixes and test.
2017-10-05 11:59:42 +01:00
Alex Beregszaszi
09276cb9d3 Do not add members of address to contracts in experimental 0.5.0 2017-10-05 11:42:34 +01:00
Alex Beregszaszi
10529e994f SMT should not crash on typecast/structs 2017-10-05 11:41:11 +01:00
chriseth
54cf15ac4f Merge pull request #2901 from ethereum/compiler-names
Provide optional list of contract names to CompilerStack.compile
2017-10-05 11:23:46 +02:00
Alex Beregszaszi
f86cd06b97 Add contract depedendency tests to standardcompiler 2017-10-05 09:53:43 +01:00
Alex Beregszaszi
a0394a1bfa Restrict contracts compiled via outputSelection (but not the individual output details) 2017-10-04 20:30:14 +01:00
Federico Bond
76d3d24842 Do not consider shadowing in variable names inside event declarations 2017-10-04 13:30:26 -03:00
chriseth
f6fb7d96d3 Merge pull request #2990 from ethereum/someMoreSMTStuff
Basic SMT tests.
2017-10-04 14:56:24 +02:00
chriseth
30908415bf Merge pull request #3013 from ethereum/evmasm-cleanup
Cleanup instruction / gasmeter
2017-10-04 11:33:16 +02:00
wadeAlexC
73f17876e9 Better error message when using fractional number as array size expressions 2017-10-03 22:01:58 +01:00
Federico Bond
2b82352692 Disallow non-pure constant state variables in 0.5.0 2017-10-03 15:30:16 +01:00
Alex Beregszaszi
4d1c48eeee Remove duplicate EVMSchedule 2017-10-03 11:59:53 +01:00
Federico Bond
6d95447955 Emit error when declaring event with same name and arguments twice 2017-09-29 19:17:31 -03:00
Rhett Aultman
e434437eb7 Unary + now a synax error (experimental 0.5.0)
The unary + was deprecated with a warning, but will be elevated to an
error in 0.5.0.  This adds the syntax error for the 0.5.0 pragma, and
for a true 0.5.0 release we should consider removing the operator from
the parser.
2017-09-29 17:50:25 +01:00
Alex Beregszaszi
b1741b7735 Validate array length in type checker 2017-09-29 16:44:00 +01:00
chriseth
5028ccbe84 Tests for SMT checker. 2017-09-29 15:31:00 +02:00
chriseth
08effa0af5 More verbose error messages. 2017-09-29 12:05:45 +02:00
chriseth
9d8edb46f2 Allow test frameworks to filter out some warnings. 2017-09-29 12:05:45 +02:00
Alex Beregszaszi
7cb4d714c7 Fix overload resolution when conflict is with members of address (balance, transfer, etc) 2017-09-28 13:57:19 +01:00
chriseth
acd70557cc Test encoder for empty structs. 2017-09-27 17:55:04 +02:00
chriseth
2940964044 ABI encoder fixes and test. 2017-09-27 15:57:39 +02:00
Alex Beregszaszi
9ea812598d Fix other test to use ABI_CHECK 2017-09-27 00:50:35 +01:00
chriseth
95ec2fd0b6 Fix encoded EndToEnd inputs. 2017-09-25 19:33:38 +02:00
Alex Beregszaszi
a72237f275 Merge pull request #2954 from wadeAlexC/develop
Better message for unexpected trailing commas in parameter lists
2017-09-25 15:36:34 +01:00
chriseth
8e4f242274 Improved error messages for EndToEnd tests. 2017-09-25 10:49:25 +01:00
wadeAlexC
0099911ace Better error message for unexpected trailing comma in parameter lists 2017-09-25 10:42:01 +01:00
chriseth
a844bbda48 Cleanup test helper macros. 2017-09-22 16:17:28 +02:00
chriseth
8af298ade3 Merge pull request #2902 from ethereum/warn-obsolete
Warn about obsolete sha3/suicide calls
2017-09-20 18:00:40 +02:00
Alex Beregszaszi
3b813ed295 Support multiple assignment in inline assembly 2017-09-20 11:16:23 +02:00
Alex Beregszaszi
efa4598c23 Mark functions static 2017-09-20 01:23:21 +01:00
Alex Beregszaszi
ed1fd49ab0 Warn about obsolete sha3/suicide calls 2017-09-19 11:11:19 +01:00
Alex Beregszaszi
ada68bcee6 Add tests for constant bytes/strings 2017-09-18 22:25:50 +01:00
chriseth
3a9a9db6d6 Merge pull request #2910 from ethereum/fallback-restrict-external
Force fallback to be external (experimental 0.5.0 change)
2017-09-18 16:38:55 +02:00
Alex Beregszaszi
a3380ea8d0 Force fallback to be external (experimental 0.5.0 change) 2017-09-18 11:58:37 +01:00
chriseth
c001903cdc Fixed tests with mappings in structs and added some more. 2017-09-16 12:31:13 +01:00
chriseth
c5063d3155 Use "tuple" for struct types in ABI JSON.
Only use tuple as a type in the ABI (and remove all "anonymous struct" references too)
2017-09-16 12:31:12 +01:00
chriseth
70d70e7816 Implement struct encoder. 2017-09-16 12:31:12 +01:00
chriseth
6385641f6e Fix tests. 2017-09-16 12:31:12 +01:00
chriseth
44825d1c1e Expect test to fail until implemented. 2017-09-16 12:12:44 +01:00
chriseth
7e1b9c1652 Structure type json using "components". 2017-09-16 12:12:44 +01:00
chriseth
36a90289e6 Fix interface type conversion internal to structs. 2017-09-16 12:12:43 +01:00
chriseth
823e67bf40 Tests for external signatures. 2017-09-16 12:12:43 +01:00
chriseth
080be885f8 Function signatures containing structs. 2017-09-16 12:12:43 +01:00
chriseth
22f85d5af3 Update tests and error messages. 2017-09-16 12:12:43 +01:00
chriseth
2e72bd163a Allow structs as part of function interfaces. 2017-09-16 12:12:43 +01:00
chriseth
73771f5bb2 Named assembly labels. 2017-09-15 20:44:49 +01:00
Alex Beregszaszi
7dd372ce5c Merge pull request #2904 from ethereum/viewPure5
Enforce view with error for experimental 0.5.0.
2017-09-14 18:13:56 +01:00
chriseth
24fd67b7db Enforce view with error for experimental 0.5.0. 2017-09-14 17:53:43 +02:00
Alex Beregszaszi
67f96652f5 Update view/pure tests to contain mandatory visibility specifiers 2017-09-14 16:30:00 +01:00
Alex Beregszaszi
df8380193b Update type tests to contain mandatory visibility specifiers 2017-09-14 16:29:39 +01:00
Alex Beregszaszi
71118e99fe Fix view/pure warnings on selector tests 2017-09-13 18:48:21 +01:00
Alex Beregszaszi
5c9dbd5083 Merge pull request #2473 from ethereum/functiontype-sig
Add .selector member on function types
2017-09-13 17:35:48 +01:00
chriseth
3f3bcc4f8a Merge pull request #2848 from ethereum/checkViewPure
Enforce view and pure.
2017-09-13 18:29:13 +02:00
Alex Beregszaszi
8b166c3636 Use hashing function in tests 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
fd1f8ab38b Rename .sig to .selector on function types 2017-09-13 11:40:57 +01:00
Alex Beregszaszi
88946f9f03 Add tests for function type sigs 2017-09-13 11:40:57 +01:00
Suman
10d290cb9b Display helpful warning for unused function arguments/return parameters 2017-09-12 15:35:03 +01:00
Alex Beregszaszi
7ed938b95e Change retrieveContract to take name and not index 2017-09-11 15:58:30 +01:00
chriseth
b756274357 Allow constant variables in pure functions. 2017-09-06 13:52:29 +02:00
chriseth
c83768c426 Fix tests 2017-09-06 13:52:29 +02:00
chriseth
1a1db1ec96 Tone down error message. 2017-09-06 13:52:29 +02:00
chriseth
d6861d909c Analyze assembly. 2017-09-06 13:52:29 +02:00
chriseth
41d0ad7a9c New tests for view and pure checker. 2017-09-06 13:50:49 +02:00
Alex Beregszaszi
50047bf82c Change tests to use view or pure as appropriate 2017-09-06 13:50:49 +02:00
chriseth
311be6b659 Fix warning checking in test framework. 2017-09-06 12:19:11 +02:00
Alex Beregszaszi
3326a2282e Change array too large error message as it is valid for non-calldata too 2017-09-05 22:38:45 +01:00
Alex Beregszaszi
6245d9aafc Merge pull request #2846 from ethereum/refactorTests
Extract base from NameAndType and use compiler stack.
2017-08-29 14:27:37 +01:00
Alex Beregszaszi
c861817875 Add header for jsonCompiler 2017-08-29 13:43:55 +01:00
chriseth
4136ff9a59 Extract base from NameAndType and use compiler stack. 2017-08-29 14:05:38 +02:00
Alex Beregszaszi
0e11e5af10 Include all overloaded events in ABI 2017-08-28 20:07:43 +01:00
chriseth
122e65f8f4 Crash fix, parseTypeName can return null. 2017-08-28 15:13:02 +02:00
chriseth
372279ceb2 Merge pull request #2819 from ethereum/compilerstack-typecheck
Simplify typechecking loop in compilerstack
2017-08-25 19:38:15 +02:00
Alex Beregszaszi
8bc76ecf58 Update SolidityNameAndTypeResolution to match CompilerStack 2017-08-25 15:49:33 +01:00
Alex Beregszaszi
f6dba97fe1 Warn on using literals in tight packing 2017-08-25 14:16:50 +01:00
chriseth
d15526f877 Update tests. 2017-08-25 10:42:36 +01:00
Alex Beregszaszi
deeac7e2e0 Rename statemutability to stateMutability in ABI/AST 2017-08-24 15:23:00 +01:00
Alex Beregszaszi
e9a9a07d94 Add ABI test for pure function 2017-08-24 13:46:18 +01:00
Alex Beregszaszi
5668377c72 Introduce pure specifier on functions 2017-08-24 13:46:18 +01:00
chriseth
8af6f193bc Merge pull request #2770 from ethereum/recursionInAsm
Also prevent too much recursion in the assembly parser.
2017-08-24 11:14:01 +02:00
Alex Beregszaszi
70bb1e7478 Update tests for view 2017-08-22 18:24:22 +01:00
Alex Beregszaszi
efe4d68a7b Introduce view (and keep constant as an alias) 2017-08-22 18:24:22 +01:00
chriseth
97cb571ba4 Tests for recursion in JULIA. 2017-08-22 12:43:44 +02:00
chriseth
7b0046a9aa Check inheritance specifier arguments for interfaces. 2017-08-22 11:39:50 +01:00
Alex Beregszaszi
b25f0c52ac Reject the creation of interface with the new statement 2017-08-21 23:02:18 +01:00
Alex Beregszaszi
2c2ae74217 Merge pull request #2773 from ethereum/usingForWithoutLibrary
Fix crash related to ``using for`` without a library.
2017-08-21 19:47:57 +01:00
Alex Beregszaszi
4219acaba9 Merge pull request #2771 from ethereum/unused-includes
Remove some unused includes
2017-08-21 16:26:44 +01:00
chriseth
ec82706396 Fix crash related to `using for` without a library. 2017-08-21 16:57:37 +02:00
chriseth
d270879c8f Merge pull request #2748 from ethereum/natspec
Remove DocumentationType from natspec
2017-08-21 16:46:00 +02:00
chriseth
01b4bba0ed Merge branch 'develop' into library-constructor 2017-08-21 16:34:59 +02:00
Alex Beregszaszi
b3986f1d07 Remove some unused includes 2017-08-21 14:08:58 +01:00
chriseth
2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Alex Beregszaszi
fe25bcf350 Library cannot have constructors 2017-08-21 11:03:55 +01:00
Alex Beregszaszi
a61c88e9fe Use state mutability in override error messages 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
a2aaa47ee2 Use state mutability in fallback/constructor check 2017-08-16 17:23:09 +01:00
Alex Beregszaszi
93be0dd923 FunctionType comparison/identifer to support all statemutability levels 2017-08-16 17:23:08 +01:00
chriseth
3d595d4b14 Warn about shift of literals. 2017-08-16 13:54:28 +02:00
Alex Beregszaszi
7222fac456 Remove DocumentationType from natspec 2017-08-15 19:56:38 +01:00
Alex Beregszaszi
1f5ab603a7 Add test for payable constructor in ABI 2017-08-15 11:35:50 +01:00
Alex Beregszaszi
12f3257e7d Add statemutability field to the ABI 2017-08-15 11:35:50 +01:00
chriseth
32e43477c3 Prevent too deep recursion in parser. 2017-08-14 22:19:15 +02:00
chriseth
bcce31b548 Tests for recursion exploit in parser. 2017-08-14 18:58:56 +02:00
chriseth
2411f5d839 Merge pull request #2704 from ethereum/newEncoder
New ABI encoder
2017-08-14 17:04:00 +02:00
Alex Beregszaszi
b225bf5d53 Remove useless payable & constant typecheck 2017-08-14 14:21:47 +01:00
Alex Beregszaszi
1c1388f241 Update parser tests 2017-08-14 14:21:47 +01:00
chriseth
63b556b206 Test both encoders. 2017-08-14 13:11:42 +01:00
chriseth
38446a9669 ABI encoder tests. 2017-08-14 13:11:38 +01:00
chriseth
4d9790b6d5 Merge pull request #2703 from ethereum/warnAboutLargeStorageArrays
Warn about large storage structures.
2017-08-14 11:37:01 +02:00
Federico Bond
f0dc572055 Improve and add missing tests 2017-08-11 22:45:25 +01:00
chriseth
da3ac86403 Warn about large storage structures. 2017-08-11 20:57:57 +02:00
Federico Bond
a8c047f48d Enforce commas in tuple syntax 2017-08-11 17:28:48 +01:00
Alex Beregszaszi
e3d1137d2b Merge pull request #2712 from ethereum/experimental-metadata
Store experimental flag in metadata CBOR
2017-08-11 17:21:08 +01:00
Zhen Zhang
b5aeae0084 Amend expected test messages for SolidityNameAndTypeResolution 2017-08-11 16:45:52 +01:00
Alex Beregszaszi
2d1bab0de8 Output experimental flag in metadata only for risky features 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
4d82d4f57a Store experimental flag in metadata CBOR 2017-08-11 16:38:43 +01:00
Alex Beregszaszi
644c91fc2d Add __test experimental mode for testing 2017-08-11 16:38:02 +01:00
Alex Beregszaszi
abe6eb9830 Merge pull request #2700 from ethereum/abiTests
Some more ABI tests.
2017-08-10 16:59:09 +01:00
chriseth
95acbc7a9f Some more ABI tests. 2017-08-10 15:49:02 +02:00
Alex Beregszaszi
470950e75e Add tests for experimental pragma 2017-08-10 00:15:25 +01:00
Alex Beregszaszi
efd45f64a5 Show previous visibility specifier in parser error 2017-08-09 14:30:17 +01:00
Alex Beregszaszi
a8ca623a0f Add test for multiple visibilites on functions 2017-08-09 14:30:02 +01:00
Alex Beregszaszi
8df89c5d5b Disable unimplemented library functions instead 2017-08-08 12:42:10 +01:00
Alex Beregszaszi
1ada48f61e Raise error when using unimplemented internal library functions. 2017-08-08 11:58:00 +01:00
Alex Beregszaszi
bb0eb57c2f Constructors must be implemented if declared. 2017-08-04 20:38:45 +01:00
Alex Beregszaszi
a372941a44 Merge pull request #2687 from ethereum/show-unimplemented-funcs
Show unimplemented function if trying to instantiate an abstract class
2017-08-04 19:46:09 +01:00
chriseth
eacc67c430 Three more tests for shadowing. 2017-08-04 19:08:20 +02:00
Alex Beregszaszi
32acadf43d Do not mark overloaded functions as shadowing 2017-08-04 19:06:23 +02:00
Alex Beregszaszi
ef8c404c45 Fix tests to use unimplementedFunctions 2017-08-04 14:03:37 +01:00
chriseth
38e9505a83 Merge pull request #2673 from ethereum/builtin-gas
Disallow gas modifier on sha256/ripemd160/ecrecover
2017-08-04 14:43:15 +02:00
Alex Beregszaszi
b7642dc8a7 Disallow gas modifier on sha255/ripemd160/ecrecover 2017-08-01 20:55:01 +01:00
Alex Beregszaszi
f63bb0a442 Add test for call/callcode/delegatecall to invalid address 2017-08-01 20:51:52 +01:00
Alex Beregszaszi
b3061225bc .delegatecall() should always return a boolean of execution status 2017-08-01 20:50:03 +01:00
Alex Beregszaszi
6ea4b7fa37 Add test for tight packing keccak256/sha256/ripemd160 2017-08-01 02:11:17 +01:00
Alex Beregszaszi
990b7364f5 Add test for disallowed gas/value modifiers on builtins 2017-08-01 00:03:25 +01:00
chriseth
b930ce5e2a Fix import error check for release version. 2017-07-31 14:55:54 +02:00
chriseth
6dba8cf0f4 Use keccak256 instead of sha3 2017-07-28 16:57:34 +02:00
chriseth
368a8a62c1 Test case for invalid ecrecover call. 2017-07-28 15:32:42 +02:00
Alex Beregszaszi
53f747b7de Merge pull request #2635 from ethereum/fixCrashOnAssignmentToNonLValue
Fix crash on assignment to non-LValue
2017-07-27 13:59:22 +01:00
chriseth
7c7c2baa82 Re-allow multiple modifiers per function. 2017-07-27 13:45:39 +02:00
chriseth
16977bab7d Merge pull request #2650 from ethereum/metadata-test-fix
Fix metadata tests
2017-07-27 11:48:08 +02:00
Yoichi Hirai
241322e805 Merge pull request #2642 from ethereum/test-split-asm
Split off libevmasm specific optimiser tests
2017-07-27 11:29:33 +02:00
Alex Beregszaszi
ca28ce7d7b Fix metadata tests 2017-07-27 10:26:57 +01:00
chriseth
1298a8df14 Merge pull request #2566 from ethereum/metadata-only-relevant
Metadata: only include relevant files in the source list
2017-07-27 11:07:15 +02:00
Alex Beregszaszi
8107177b9c Split off libevmasm specific optimiser tests 2017-07-26 20:51:27 +01:00
chriseth
925569bfa3 Merge pull request #1637 from ethereum/warn-shadowing-globals
Warn if shadowing built-ins
2017-07-26 17:30:27 +02:00
Alex Beregszaszi
30012db396 Add CompilerStack::setOptimiserSettings 2017-07-26 15:17:07 +01:00
Alex Beregszaszi
6848199b66 Add CompilerStack::setLibraries 2017-07-26 15:05:16 +01:00
Alex Beregszaszi
fa5a7efb45 Remove unused interfaces from CompilerStack 2017-07-26 15:05:16 +01:00
chriseth
0d701c9456 Merge pull request #2603 from ethereum/test-jsoncompiler
Comprehensive tests for jsonCompiler
2017-07-26 14:41:24 +02:00
chriseth
b8fc58850d Test for assigning to non-lvalue. 2017-07-26 14:32:25 +02:00
Alex Beregszaszi
e0dc74b895 Warn about shadowing variables. 2017-07-25 16:32:37 +02:00
chriseth
72917c4f35 Cleanup fixed point type changes 2017-07-19 22:13:42 +01:00
VoR0220
78769f3b39 Change fixed point types to have digit count
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-07-19 21:49:01 +01:00
Alex Beregszaszi
6d6d4f6907 Merge pull request #2334 from ethereum/printMultiError
Print information about types of errors.
2017-07-19 21:25:36 +01:00
Alex Beregszaszi
e506129aee Add test and changelog 2017-07-19 07:19:01 -07:00
Alex Beregszaszi
35feb6d47c Add tests for relevant metadata files 2017-07-19 14:57:12 +01:00
Alex Beregszaszi
55600f2c51 Add test for compileStandard 2017-07-19 13:45:00 +01:00
Alex Beregszaszi
bcd19456f4 Add test for compileSingle 2017-07-19 13:40:44 +01:00
Alex Beregszaszi
439b67e019 Add test for compileJSONCallback 2017-07-19 13:40:28 +01:00
chriseth
217a4ae7c1 Print information about types of errors. 2017-07-19 12:26:08 +01:00
Yoichi Hirai
2a46e1b0e2 Merge pull request #2589 from ethereum/rename-onchainmetadata
Rename onChainMetadata to metadata
2017-07-19 11:43:19 +02:00
Yoichi Hirai
becb7af4a2 Merge pull request #2597 from ethereum/modifier-internal
Mark modifiers as internal
2017-07-19 11:41:07 +02:00
Alex Beregszaszi
644de755dc Mark modifiers as internal 2017-07-18 23:00:17 +01:00
Alex Beregszaszi
6d8929a71a Rename onChainMetadata to metadata 2017-07-18 20:54:28 +01:00
Alex Beregszaszi
13edf1062f Run metadata and gas meter tests when optimiser is on too 2017-07-18 20:22:00 +01:00
Alex Beregszaszi
075715cf15 Do not use obscure CompilerStack methods in tests 2017-07-18 16:14:25 +01:00
Alex Beregszaszi
6e4150a5cf Test for version/license in jsonCompiler 2017-07-18 15:33:38 +01:00
Alex Beregszaszi
aec3eabdda Add test for explicit type conversion literal string 2017-07-13 23:16:14 +02:00
Alex Beregszaszi
4229caaadc Disable large arrays for memory location too 2017-07-13 22:47:35 +02:00
Alex Beregszaszi
e640bb2aed Add tests for large calldata arrays 2017-07-13 22:47:35 +02:00
Alex Beregszaszi
b5da5f6e42 Merge pull request #2504 from ethereum/inlineasm-decl-empty
Support variable declarations without an assignment in assembly
2017-07-13 16:58:24 +02:00
chriseth
d1c3ecc94a Merge pull request #2567 from ethereum/refactorExceptions
Refactor exceptions and provide comment function.
2017-07-13 16:56:03 +02:00
Alex Beregszaszi
ee3a2c0599 Add end-to-end test 2017-07-13 15:18:40 +02:00
Alex Beregszaszi
cee93d946d Support parsing let statements without a value 2017-07-13 15:18:18 +02:00
chriseth
c9b51e71bd Add another transfer testcase. 2017-07-13 15:10:34 +02:00
chriseth
09e821619e Refactor exceptions and provide comment function. 2017-07-13 11:34:03 +02:00
Federico Bond
da917333d9 Fix error message formatting 2017-07-12 23:59:45 -03:00
Federico Bond
f20b150f38 Add type error when attempting value transfer to a non-payable contract 2017-07-12 23:57:53 -03:00
chriseth
b7a59652f1 Merge pull request #2501 from ethereum/undef-macros
Move UndefMacros from libdevcore to libsolidity/parsing
2017-07-12 15:07:20 +02:00
Alex Beregszaszi
db7ad508f8 Issue proper warning trying to access calldata variables in inline assembly 2017-07-12 10:48:44 +02:00
Alex Beregszaszi
1682767c6e Add failing implicit conversion test 2017-07-11 14:51:58 +01:00
chriseth
883666d2c0 Fix invalid "explicit storage keyword" warning for reference members of structs. 2017-07-10 18:30:41 +02:00
chriseth
0400e61e28 Deprecate throw. 2017-07-05 21:15:00 +02:00
chriseth
dd34277ca6 Warn if local storage reference variable does not use "storage" explicitly. 2017-07-05 19:38:00 +02:00
chriseth
0cb93a5f7b Test for internal "variable already present" error. 2017-07-04 19:33:54 +02:00
Alex Beregszaszi
b615b01449 Move UndefMacros from libdevcore to libsolidity/parsing 2017-07-02 00:09:46 +01:00
chriseth
dd9416be29 Merge pull request #2481 from ethereum/mload-optim
MLOAD has side-effects, treat it like that in the optimiser
2017-07-01 17:53:01 +02:00
Yoichi Hirai
4dfc413b8e test: add a test passing an invalid boolean value as an event argument
Fixes #1381
2017-07-01 10:35:51 +01:00
Yoichi Hirai
fdc9ef14ad test: add an assertion about storing an invalid boolean into the memory 2017-07-01 10:35:51 +01:00
Yoichi Hirai
7cbf6a86dd test: add a test about storing an invalid boolean 2017-07-01 10:35:51 +01:00
chriseth
11dd89c70b Removed useless test. 2017-06-30 21:27:39 +01:00
Alex Beregszaszi
0c92f53944 Correctly check for jump warnings 2017-06-30 20:47:33 +01:00
Alex Beregszaszi
d4fecc7b11 Warn on JUMP/JUMPI in inline assembly 2017-06-30 20:47:14 +01:00
chriseth
044058276e Warn about callcode. 2017-06-30 16:37:32 +02:00
chriseth
46caff4597 Test for negative stack height. 2017-06-28 16:55:49 +01:00
chriseth
803ab3626b Verbose error message test failure. 2017-06-28 15:02:25 +02:00
chriseth
c3e5d6b7ef Give min and max values in warning message. 2017-06-28 15:02:25 +02:00
chriseth
070a241899 Adjust other tests. 2017-06-28 11:41:03 +02:00
chriseth
c73ba612f4 Fix test error reporting if we ignore warnings. 2017-06-28 11:41:03 +02:00
chriseth
af7ff3a3ef Update tests themselves 2017-06-28 11:41:03 +02:00
chriseth
73fbaa5a3e Test for var i = 0; 2017-06-28 11:41:03 +02:00
chriseth
708d17d13f Merge pull request #2464 from federicobond/deprecate-function-type-names
Warn deprecated usage of parameter names in function types
2017-06-27 16:32:48 +02:00
Alex Beregszaszi
bc31d4969c Merge pull request #2437 from ethereum/warnDoubleCopyStorage
Warn about copies in storage that might overwrite unexpectedly.
2017-06-27 10:24:03 +01:00
Alex Beregszaszi
6b05bbbbb4 Update tests for function type comparison 2017-06-26 22:01:35 +01:00
Federico Bond
70fd5c1770 Warn deprecated usage of parameter names in function types 2017-06-26 15:39:01 -03:00
chriseth
336c9e8f32 Some more tests. 2017-06-26 16:42:43 +02:00
chriseth
1a3066c3a1 Test about semantics of "swap" in storage. 2017-06-26 16:31:36 +02:00
chriseth
d0b6de0b34 Warn about copies in storage that might overwrite unexpectedly. 2017-06-26 16:31:36 +02:00
chriseth
d2445dfdce Tests for comparison of non-comparable types. 2017-06-26 16:30:22 +02:00
Alex Beregszaszi
751ba701bc Merge pull request #2450 from ethereum/addressstring
Fix for strings treated as addresses.
2017-06-26 12:18:33 +01:00
Alex Beregszaszi
a0b0df2d98 Merge pull request #2460 from ethereum/disallowMultiModifier
Disallow invoking the same modifier multiple times.
2017-06-26 11:51:12 +01:00
chriseth
f879489291 Merge pull request #2449 from federicobond/warn-bytesxx-decimal
Warn if decimal literals are used in a bytesXX context
2017-06-26 09:13:41 +02:00
Federico Bond
7a3ea61ffd Warn if decimal literals are used in a bytesXX context
Fixes #2349
2017-06-23 23:21:19 -03:00
chriseth
5a75581f66 Disallow invoking the same modifier multiple times. 2017-06-23 20:12:22 +02:00
chriseth
64067975e4 Review suggestions. 2017-06-23 19:29:11 +02:00
chriseth
25fc8ad9b9 Fix tests. 2017-06-23 19:29:11 +02:00
chriseth
a25f73e2cc Fix location tests. 2017-06-23 19:29:11 +02:00
chriseth
b86a4cad57 Check for constness of address constant. 2017-06-23 11:19:57 +02:00
Alex Beregszaszi
79ed529b3f Merge pull request #2452 from ethereum/fixPassingEmptyString
Fix passing empty string
2017-06-22 22:33:06 +01:00
chriseth
f36e021ffc Test for passing empty string literal as function argument. 2017-06-22 17:39:29 +02:00
chriseth
9eaf26a359 Check for address-like strings being treated as addresses. 2017-06-22 16:48:44 +02:00
Federico Bond
0f8ad1d68f Fix segmentation fault with constant function parameters 2017-06-21 22:46:27 -03:00
chriseth
b3a7b5a145 Merge pull request #2416 from federicobond/multiple-specifiers
Display error if payable or constant is specified multiple times
2017-06-19 12:00:04 +02:00
chriseth
0c75afb2c1 Merge pull request #2225 from ethereum/julia-for
Implement for statement in assembly parser / printer / code generator
2017-06-19 11:53:22 +02:00
Federico Bond
d170ceaf3d Display error if payable or constant is specified multiple times 2017-06-17 12:21:46 -03:00
Alex Beregszaszi
d7e63f23de Fix UTF-8 validation for high codepoints (>10000) 2017-06-16 16:41:29 +02:00
Alex Beregszaszi
c5339037e9 Test for variable redeclaration in for loops 2017-06-16 11:30:03 +01:00
chriseth
0fd73e5832 Fix test. 2017-06-16 11:29:41 +01:00
chriseth
ea0a86a995 Some more parsing tests. 2017-06-16 11:29:35 +01:00
chriseth
2f0826ffd7 Functionality tests for for. 2017-06-16 10:56:21 +01:00
chriseth
1b3ba7bc57 Some more tests. 2017-06-16 10:56:21 +01:00
Alex Beregszaszi
47925bc14e Parse for statement in assembly parser / printer 2017-06-16 10:56:21 +01:00
chriseth
fb5db94879 Merge pull request #2397 from ethereum/doublepush
Peephole optimizer for double push.
2017-06-15 10:50:07 +02:00
chriseth
66881bd675 Merge branch 'develop' into asm-aux 2017-06-15 08:39:02 +02:00
Alex Beregszaszi
42b61171d9 Merge pull request #2192 from winsvega/develop
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
Alex Beregszaszi
3c4671a2da Match substring in tests to avoid metadata issues 2017-06-14 20:31:20 +01:00
Alex Beregszaszi
585b3ea3e3 Print auxiliary data in the assembly 2017-06-14 20:14:15 +01:00
chriseth
e5b0ad562e Peephole optimizer for double push. 2017-06-14 20:02:45 +02:00
chriseth
f008ddf836 Merge pull request #2381 from ethereum/fixcrash
Fix a crash about a non-callable expression.
2017-06-14 18:35:38 +02:00
chriseth
fd5bf16101 Merge pull request #2384 from ethereum/parseFunctionalInstructions
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02:00
Dimitry
c20cdd0a05 add new opcode instructions to the parser
STATICCALL        0xfa  6 inputs  (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
chriseth
2b3b00776e Additional test. 2017-06-14 16:06:48 +02:00
chriseth
1ae0e082b3 Merge pull request #2392 from federicobond/disallow-trailing-commas
Forbid trailing commas in named arguments
2017-06-14 15:31:40 +02:00
chriseth
1b1f35762e Enforce function arguments when parsing functional instructions. 2017-06-14 14:51:47 +02:00
chriseth
21aafaa704 Merge pull request #2331 from ethereum/ASTDocumentationEntry
documentation field added to ContractDefinition-Node
2017-06-14 14:32:27 +02:00
chriseth
07cc84fade Fix a crash about a non-callable expression. 2017-06-14 14:26:20 +02:00
Federico Bond
fd8365df08 Forbid trailing commas in named arguments 2017-06-14 00:15:27 -03:00
Yoichi Hirai
8775e77305
Add a warning about a varialbe of the name of an instruction 2017-06-13 16:57:08 +02:00
Yoichi Hirai
a7241df4b7
Add a failing test as suggested in
https://github.com/ethereum/solidity/pull/2275#discussion_r121438333
2017-06-13 16:57:08 +02:00
Yoichi Hirai
a0f8c94dad
Add a test about checking a warning 2017-06-13 16:57:08 +02:00
Yoichi Hirai
464dea2459
test: Add different styles of returndatacopy and returndatasize 2017-06-13 16:57:08 +02:00
Yoichi Hirai
0b22154a75
libevmasm: add RETURNDATACOPY and RETURNDATASIZE 2017-06-13 16:57:02 +02:00
chriseth
bf2b5c746a Use lowercase when reporting instruction error. 2017-06-09 15:17:29 +02:00
Alex Beregszaszi
80227af08a Add test for two functions calling eachother 2017-06-09 10:46:13 +01:00
chriseth
b098b363b5 Test for embedded functions. 2017-06-08 15:52:45 +02:00
chriseth
b75c7b5775 Move inline assembly to new abstraction and test both backends. 2017-06-08 15:52:45 +02:00
chriseth
64ddb176bb Test for accessing outer inline assembly scope. 2017-06-08 15:52:45 +02:00
chriseth
97cc968a13 Initial EVM1.5 assembly implementation. 2017-06-08 15:52:44 +02:00
djudjuu
83f0e00900 tests for non-legacy mode 2017-06-07 15:52:44 +02:00
djudjuu
ebdebc7c12 new test case and indentation fix 2017-06-06 15:47:30 +02:00
chriseth
1fba984966 Merge pull request #2332 from ethereum/fixLiteralPrint
fix Literalprint
2017-06-06 15:09:48 +02:00
djudjuu
62eafdd010 adjusted testcase and renaming 2017-06-06 13:26:23 +02:00
chriseth
d4a57d81ba Merge pull request #2317 from ethereum/keccak256
Use keccak256 in tests and replace the SHA3 instruction in assembly
2017-05-30 19:34:28 +02:00
djudjuu
b011ddfae3 adjusted test-cases 2017-05-30 19:25:54 +02:00
Rhett Aultman
89b60ffbd4 Refactor error reporting
This commit introduces ErrorReporter, a utility class which consolidates
all of the error logging functionality into a common set of functions.
It also replaces all direct interactions with an ErrorList with calls to
an ErrorReporter.

This commit resolves issue #2209
2017-05-30 07:28:31 -07:00
Alex Beregszaszi
dcb7c51920 Add inline assembly test for sha3/keccak256 2017-05-30 13:57:44 +01:00
Alex Beregszaszi
ff33297786 Add test for sha3() == keccak256() 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
9e1c509cf5 Use keccak256() in tests (and not sha3()) 2017-05-30 12:33:04 +01:00
Alex Beregszaszi
0c8beac357 Rename the SHA3 assembly instruction to KECCAK256 2017-05-30 10:54:29 +01:00
Alex Beregszaszi
98c9051174 Fix expected message in test case 2017-05-26 11:16:12 +01:00
Alex Beregszaszi
05fcf1989c Better error messages for invalid switch cases 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
c64bd33784 Disallow instructions as a switch expression 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
0c5c1ca911 Add tests 2017-05-26 03:20:34 +01:00
Alex Beregszaszi
338202ea96 Uniform error messages 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
130f7419fb Add tests 2017-05-24 13:35:52 +01:00
Alex Beregszaszi
4612c7681c Validate metadata JSON too 2017-05-24 12:24:00 +01:00
Alex Beregszaszi
804e99c633 Split out metadata test into its own file 2017-05-24 12:24:00 +01:00
Alex Beregszaszi
fb46268982 Add tests 2017-05-23 10:24:19 +01:00
chriseth
74d2e7311a Merge pull request #2265 from roadriverrail/inline_asm_unused_warning
Analyze InlineAssembly for variable use
2017-05-22 16:34:29 +02:00
chriseth
8eead553af Merge pull request #1810 from ethereum/compactJson
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
Rhett Aultman
621c3fa22f Analyze InlineAssembly for variable use
The unused variable checker in StaticAnalyzer did not conssider
InlineAssembly objects.  This commit introduces that missing feature.
2017-05-21 15:23:05 -07:00
chriseth
56424bb202 Merge pull request #2262 from ethereum/interface-cleanup
Cleanup the external interfaces (ABI and Natspec)
2017-05-19 17:55:33 +02:00
Alex Beregszaszi
cd5d93da2a Rename CompilerStack.metadata to CompilerStack.natspec 2017-05-19 16:11:04 +01:00
Alex Beregszaszi
4bf3cbb09a Use CompilerStack.contractABI directly 2017-05-19 15:57:36 +01:00
Alex Beregszaszi
2ade4fcdd8 Add tests for bool literal 2017-05-19 09:44:16 +01:00
djudjuu
6316a76ab9 testsuite adjustment 2017-05-19 09:51:23 +02:00
chriseth
dea7b864e6 Compact format for AST-Json with backwards compatibility 2017-05-17 11:14:33 +02:00
Alex Beregszaszi
41b5361b3f Run in optimizer mode when requested 2017-05-06 11:28:46 +01:00
Alex Beregszaszi
31bd4acf66 Split out common metadata validation code 2017-05-06 11:28:01 +01:00
Alex Beregszaszi
c4315521a3 Add basic test for jsonCompiler 2017-05-06 11:28:01 +01:00
chriseth
0582fcb93b Merge pull request #2194 from ethereum/removeerrorlabel
Remove error label / invalid jump label.
2017-05-05 14:25:43 +02:00
chriseth
00933b99cc Merge pull request #2206 from ethereum/fixoptimizer
Constant optimizer fix
2017-05-03 11:54:11 +02:00
chriseth
f3bb7350f1 Fix tests. 2017-05-03 11:30:40 +02:00
chriseth
230f51efb7 Cleanup, style and additional test. 2017-05-03 11:26:21 +02:00
chriseth
e3ed3623c7 More strict tests. 2017-05-03 11:26:21 +02:00
Rhett Aultman
a6faa5acf3 Treat returns with expressions as return param use
There are many cases of code where the return parameters exist mostly
as a form of documentation.  This change ensures that they do not have
to be used in the function body so long as there is a return supplying
values
2017-05-03 11:26:21 +02:00
Rhett Aultman
a40c8cfb68 Warn on unused local variables
Analyze functions for all local variables, parameters, and named
return variables which are never used in the function, and issue
a warning.
2017-05-03 11:26:21 +02:00
Alex Beregszaszi
c09f071ff6 Merge pull request #2211 from ethereum/jsonio-fixes
Follow the JSON I/O spec closely
2017-05-02 16:47:14 +01:00
Alex Beregszaszi
ed3ab3506a Follow the JSON I/O spec closely 2017-05-02 16:52:38 +02:00
chriseth
96870686a9 Style and stricter tests. 2017-05-02 15:48:58 +02:00
chriseth
e2f00c96d5 Stricter tests for constant optimization. 2017-05-02 12:20:00 +02:00
Rhett Aultman
e544698ad3 Deprecate use of unary '+'
The unary '+' serves no meaningful purpose in Solidity and it makes it
possible to produce typos with dagerous implications (e.g. 'a =+5 '),
so we are deprecating it.  The SyntaxChecker currently issues warnings
on the unary '+' but will still compile it for now.
2017-04-28 17:43:19 -07:00
chriseth
f33614e1f7 Merge pull request #2171 from ethereum/splitParseAndAnalyze
refactoring parse() into two separate functions
2017-04-28 17:19:31 +02:00
djuju
45f8c5aa88 enumchecks not working 2017-04-28 15:24:59 +02:00
chriseth
28f10f4783 Remove error label / invalid jump label. 2017-04-28 13:14:52 +02:00
djuju
99a7aefb75 refactoring parse() into two separate functions 2017-04-27 12:38:24 +02:00
Alex Beregszaszi
35f1cf92db Remove parentheses from around function return parameters 2017-04-27 10:08:02 +01:00
chriseth
2c1fb46bc3 Merge pull request #1711 from ethereum/asmfunctions
Assembly: Analysis stage for functions.
2017-04-26 17:47:48 +02:00
chriseth
1d712c7d64 Fix storage access tests. 2017-04-25 16:49:04 +02:00
Alex Beregszaszi
fa467c365c Fix test build 2017-04-25 16:49:04 +02:00
chriseth
478f2997ea Storage access from inline assembly. 2017-04-25 16:49:04 +02:00
chriseth
4afd54b235 Convert storge access tests to new explicit slot / offset access. 2017-04-25 16:49:04 +02:00
chriseth
34717838da Review comments. 2017-04-25 16:49:03 +02:00
chriseth
3f1f0316c6 Use raw string for tests. 2017-04-25 16:49:03 +02:00
chriseth
f13c8af3f9 Make tests comply with stack height checks. 2017-04-25 16:49:03 +02:00
chriseth
c6fa78c73e Use actual type checking phase of assembler. 2017-04-25 16:49:03 +02:00
chriseth
5d6747eb32 Refactor assembly analysis into scope filling and checking. 2017-04-25 16:49:03 +02:00
Yoichi Hirai
3c4c4abc2f Remove a test about SELFDESTRUCT because the test harness obtains refund while the gas meter should not assume the refund. 2017-04-25 16:47:44 +02:00
Yoichi Hirai
cee54deb3b test: fix invalid signatures 2017-04-25 16:47:44 +02:00
Yoichi Hirai
7da9ba68e9 test: add a test case about the gas cost of EXTCODESIZE 2017-04-25 16:14:58 +02:00
Yoichi Hirai
259c551c61 test: add a failing test case about the gas cost of SUICIDE opcode 2017-04-25 16:14:58 +02:00
Yoichi Hirai
00b15d53b9 Add a failing test about the gas cost of BALANCE 2017-04-25 16:14:58 +02:00
Yoichi Hirai
8387d0df83 test: add a test about gas costs of EXP 2017-04-25 16:14:58 +02:00
chriseth
9577f87dfc More pure tests. 2017-04-24 18:08:21 +02:00
chriseth
aad64d818a Test for side-effect free condition. 2017-04-21 20:09:37 +02:00
chriseth
937695bfdc Change error message. 2017-04-21 15:04:03 +02:00
chriseth
9bc9fe6af7 Warn about side-effect free statements. 2017-04-21 11:36:38 +02:00
Alex Beregszaszi
74373ecc7a Add test for legacyAST 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
c29da75f96 Add test for bytecode 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
a24ac2f285 Add compilation test and verify output 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
137ef78e9a Trigger cases by the JSON (and not string) interface 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
10ec334f74 Add basic tests for StandardCompiler 2017-04-20 19:38:00 +01:00
chriseth
766fa2fe85 Check that contract inheriting from base with unimplemented constructor is abstract. 2017-03-21 18:11:43 +01:00
Alex Beregszaszi
2067a00f22 Disallow private or internal functions in interfaces 2017-03-17 17:07:18 +00:00
Alex Beregszaszi
5a71e4f1a7 Add more complex tests for interfaces 2017-03-17 17:06:53 +00:00
Alex Beregszaszi
d5102c1db7 Disallow constructor in interfaces 2017-03-17 17:06:52 +00:00
Alex Beregszaszi
2c4bce2d62 Disallow enums in interfaces 2017-03-17 17:06:52 +00:00
Alex Beregszaszi
16a91ef90a Use declared instead of defined 2017-03-17 17:06:52 +00:00
Alex Beregszaszi
cfab70fd89 Add tests for interfaces 2017-03-17 17:06:49 +00:00
Alex Beregszaszi
6d4628ace4 Add ContractKind to ContractDefinition 2017-03-17 16:27:04 +00:00
Alex Beregszaszi
3ae88377d6 Change references to FunctionType::Location 2017-03-16 12:49:52 +00:00
chriseth
0c8a766146 Merge pull request #1698 from ethereum/exp-notation
Fix scientific notation in number literals
2017-03-15 14:55:45 +01:00
Alex Beregszaszi
b28be08b6d Add tests for negative base 2017-03-15 13:07:28 +00:00
Alex Beregszaszi
b0a23fa77d Add tests for fractional numbers in exponential notation 2017-03-15 13:06:27 +00:00
Alex Beregszaszi
6014c3fe16 Add tests for scientific notation 2017-03-15 13:06:26 +00:00
chriseth
ab178b8bac Mention 'transfer' in warning about unchecked 'send'. 2017-03-15 11:10:24 +01:00
Yoichi Hirai
d134fda0c0 Merge pull request #1729 from ethereum/constantvariables
Only allow pure expressions for constant state variables.
2017-03-15 10:03:35 +01:00
chriseth
9f328ff749 Turn non-constant constants error into warning. 2017-03-14 19:25:16 +01:00
chriseth
47cd8964b8 Require and Assert. 2017-03-14 14:21:33 +01:00
chriseth
592cec7e90 Disallow constants that are neither value types nor strings. 2017-03-13 13:30:23 +01:00
chriseth
14948e514d Allow enum values for constants. 2017-03-13 13:30:23 +01:00
chriseth
49cfacced2 End to end tests for constants. 2017-03-13 13:30:23 +01:00
chriseth
f39763e91c Type checking for pure expressions. 2017-03-13 13:30:21 +01:00
chriseth
bde913f088 Some new tests for constant variables. 2017-03-13 13:29:51 +01:00
Yoichi Hirai
ef8b56a058 Merge pull request #1751 from ethereum/warnLiteralExpBase
Warn if base of exponentiation operation is a literal.
2017-03-10 19:25:47 +01:00
Yoichi Hirai
e364909e06 Merge pull request #1747 from ethereum/fixICEInternalConstructor
Move privateness of constructor into AST itself.
2017-03-08 17:49:14 +01:00
chriseth
3f9a775834 Merge pull request #1748 from ethereum/singletonArray
Use mobile type for singleton array.
2017-03-08 16:11:03 +01:00
chriseth
276229cc58 Tests for no compound assignment for tuples. 2017-03-08 12:42:07 +01:00
Yoichi Hirai
78f7dd2344 Merge pull request #1750 from ethereum/asmoctal
Disallow octal numbers in parser.
2017-03-08 12:24:22 +01:00
Yoichi Hirai
85411f4f67 Merge pull request #1736 from ethereum/boundoptimizer
Add upper bound for computing constants.
2017-03-08 12:11:16 +01:00
chriseth
774cdb1135 Tests for warning about literal constant base in exponentition. 2017-03-07 13:43:51 +01:00
chriseth
bb06569dc6 Disallow octal literals. 2017-03-07 12:34:32 +01:00
chriseth
a2ac05e1a2 Merge pull request #1733 from ethereum/selfReferentialConstant
Detect cyclic dependencies between constants.
2017-03-06 17:18:39 +01:00
chriseth
5c5d83fd70 Check for circular references in constant variables. 2017-03-06 15:05:09 +01:00
chriseth
d089a1ef2b Tests for cyclic dependencies between constants. 2017-03-06 15:05:09 +01:00
chriseth
fe5f85ef34 Test for array singletons. 2017-03-06 14:42:28 +01:00
chriseth
c89a579809 Test for uninitialized mapping. 2017-03-06 14:27:18 +01:00
chriseth
0479f7f16c Test for trying to construct an inconstructible contract before its definition. 2017-03-06 14:12:42 +01:00
Yoichi Hirai
cfbbd89daf Merge pull request #1702 from ethereum/assertError
Change effect of assert to invalid opcode.
2017-03-03 18:25:50 +01:00
chriseth
05dac99922 Tests for optimizing constants. 2017-03-03 16:51:29 +01:00
chriseth
2600fa0413 Test for declaring variable with empty tuple type. 2017-03-02 14:33:58 +01:00
chriseth
f35b70f3a3 Test case for external function type with calldata argument. 2017-03-01 15:53:24 +01:00
chriseth
673268a6f8 Merge pull request #1651 from ethereum/transfer-method
Add address.transfer(value)
2017-02-24 15:42:52 +01:00
chriseth
6bbba106a7 Merge pull request #1710 from ethereum/strictasmtests
Check error messages for assembly tests.
2017-02-24 08:26:16 +01:00
Alex Beregszaszi
4d290e551c Disallow setting .gas() on .transfer() 2017-02-24 00:27:36 +00:00
Alex Beregszaszi
cde027d144 Fix test for gas overloading in .transfer() 2017-02-24 00:18:18 +00:00
Alex Beregszaszi
81006dae98 Support gas modifier on addr.transfer() 2017-02-24 00:18:18 +00:00
Alex Beregszaszi
ba437ef31a Add type checking test for address methods 2017-02-24 00:18:18 +00:00
Alex Beregszaszi
16e48219d3 Add test for address.transfer() 2017-02-24 00:17:45 +00:00
chriseth
4b1e8111cc Remove assert for now. 2017-02-23 19:43:40 +01:00
chriseth
5cd01ab7d1 Test for unbalanced stack due to loading two values from outside. 2017-02-20 12:33:22 +01:00
chriseth
50894c6af8 Fix compiler warning. 2017-02-20 11:57:50 +01:00
chriseth
d794d35e50 Also check imbalanced stack. 2017-02-20 11:42:23 +01:00
chriseth
354f92f813 Check error messages for assembly tests. 2017-02-17 16:39:51 +01:00
chriseth
7bdc4ddab2 Merge pull request #1627 from ethereum/asmfunctions
Parsing assembly function definitions and calls.
2017-02-16 20:12:31 +01:00
chriseth
e629cf5bc3 Test case. 2017-02-16 14:57:00 +01:00
chriseth
01fcd989b5 More tests. 2017-02-16 10:18:16 +01:00
chriseth
49a919b3e0 Parsing function calls. 2017-02-16 10:15:22 +01:00
chriseth
5d584aded8 Parsing function definitions. 2017-02-16 10:15:22 +01:00
chriseth
5e8a1e0ae6 Test for unicode string literals. 2017-02-15 15:21:11 +01:00
chriseth
58849cb1d5 Tests for printing assembly. 2017-02-14 15:41:25 +01:00
chriseth
e67faa9839 Extract scopes into compiler stack. 2017-02-14 13:23:44 +01:00
chriseth
fc8e50f688 Refactor NameAndTypeResolver and SyntaxChecker to allow other entry points. 2017-02-14 13:23:44 +01:00
chriseth
0d8a9c3289 Merge pull request #1661 from ethereum/asm-revert
Implement REVERT (EIP140)
2017-02-13 14:56:22 +01:00
chriseth
e2349f9d5d Merge pull request #1676 from ethereum/test-modifytimestamp
Add blockTimestamp and do not rely on mining time (soltest)
2017-02-13 14:54:06 +01:00
Alex Beregszaszi
30cfad3548 Check for state changes in revert() tests 2017-02-10 22:44:29 +00:00
Alex Beregszaszi
f26fe5bc1c Add tests for revert() 2017-02-10 22:44:29 +00:00
Alex Beregszaszi
8429c03f2a Add tests for assert() 2017-02-10 13:29:17 +00:00
Alex Beregszaszi
a82acba49a Compare start/end timestamp 2017-02-10 13:26:11 +00:00
Alex Beregszaszi
4cf44f1b41 Do not use modifyTimestamp where not needed 2017-02-10 13:24:56 +00:00
Alex Beregszaszi
697db80b48 Disallow arrays with negative length 2017-02-02 00:24:45 +00:00
Alex Beregszaszi
ee147e14d3 Cover both failure cases 2017-02-01 21:35:32 +00:00
Alex Beregszaszi
0b61f13c7f Add more tests for function type conversion 2017-02-01 12:23:47 +00:00
Alex Beregszaszi
ef7add8c2b Add tests for explicity fuction type to address casting 2017-02-01 12:23:47 +00:00
Alex Beregszaszi
eb530aa217 Add tests for invalid instruction 2017-01-27 21:24:58 +00:00
chriseth
b2c35fb41a Merge pull request #1598 from wuestholz/develop
Change translation of implicit throws
2017-01-27 14:10:22 +01:00
chriseth
636e480156 Merge pull request #1451 from LefterisJP/fix_build
Accept any kind of whitespace after natspec tags
2017-01-27 14:09:39 +01:00
Lefteris Karapetsas
f01c8c07e5
Tests for natspect parsing failure cases 2017-01-27 12:13:14 +01:00
Lefteris Karapetsas
cc7834f2a9
Doc tags followed by newline are now parsed properly 2017-01-27 00:00:05 +01:00
chriseth
a9c6ff4ac8 Refactor json return type generation. 2017-01-26 18:21:19 +01:00
Valentin Wüstholz
5b7cc018f0 Address feedback from code review. 2017-01-26 16:39:07 +01:00