Commit Graph

991 Commits

Author SHA1 Message Date
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