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
Valentin Wüstholz
9bcbd93ac5
Change translation of implicit throws (issue #1589 ).
...
This adds a new invalid instruction that is used for encoding
implicit throws that are emitted by the compiler. This makes it
possible to distinguish such runtime errors from user-provided,
explicit throws.
2017-01-26 16:39:07 +01:00
Alex Beregszaszi
102fd7ee5d
Merge pull request #1604 from ethereum/checksums
...
Warn about invalid checksums of addresses.
2017-01-26 14:42:34 +00:00
chriseth
873f2dddd6
Update error message.
2017-01-26 13:52:02 +01:00
chriseth
525758a130
Disallow assignment to non-identifiers.
2017-01-26 13:40:40 +01:00
chriseth
946a63c26f
Add test for assignment.
2017-01-25 17:27:01 +01:00
chriseth
27ba665694
Moved test.
2017-01-25 17:24:43 +01:00
Alex Beregszaszi
7ff44bec94
Add test for shadowing inline assembly instruction
2017-01-25 11:28:09 +00:00
Lefteris Karapetsas
9ca0fde853
Fix and better output for tests
2017-01-25 11:01:52 +01:00