Commit Graph
227 Commits
Author SHA1 Message Date
chriseth 5a75581f66 Disallow invoking the same modifier multiple times. 2017-06-23 20:12:22 +02:00
chriseth b86a4cad57 Check for constness of address constant. 2017-06-23 11:19:57 +02:00
Federico Bond 0f8ad1d68f Fix segmentation fault with constant function parameters 2017-06-21 22:46:27 -03:00
Alex Beregszaszi d7e63f23de Fix UTF-8 validation for high codepoints (>10000) 2017-06-16 16:41:29 +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 2b3b00776e Additional test. 2017-06-14 16:06:48 +02:00
chriseth 07cc84fade Fix a crash about a non-callable expression. 2017-06-14 14:26:20 +02: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
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
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
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 9e1c509cf5 Use keccak256() in tests (and not sha3()) 2017-05-30 12:33:04 +01: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 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
chriseth 96870686a9 Style and stricter tests. 2017-05-02 15:48:58 +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 1d712c7d64 Fix storage access tests. 2017-04-25 16:49:04 +02:00
chriseth 34717838da Review comments. 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 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
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
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 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
chriseth 9f328ff749 Turn non-constant constants error into warning. 2017-03-14 19:25:16 +01:00
chriseth 592cec7e90 Disallow constants that are neither value types nor strings. 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 276229cc58 Tests for no compound assignment for tuples. 2017-03-08 12:42:07 +01:00
chriseth 774cdb1135 Tests for warning about literal constant base in exponentition. 2017-03-07 13:43:51 +01:00
chriseth a2ac05e1a2 Merge pull request #1733 from ethereum/selfReferentialConstant
Detect cyclic dependencies between constants.
2017-03-06 17:18:39 +01:00