Commit Graph
4274 Commits
Author SHA1 Message Date
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 acab525fef Merge pull request #2199 from roadriverrail/no_unary_plus
Deprecate use of unary '+'
2017-05-02 16:43:47 +02:00
Alex Beregszaszi 2871663cad Remove why3 from standard compiler 2017-05-02 14:49:13 +01:00
chriseth 96870686a9 Style and stricter tests. 2017-05-02 15:48:58 +02:00
chriseth f42a9a9408 Merge pull request #2198 from ethereum/conditionalCompilerStateReset
conditional reset of compilerState-Enum
2017-05-02 15:17:10 +02:00
chriseth 2891b98882 Merge pull request #2110 from federicobond/fix-posttypechecker
Fix PostTypeChecker retaining state across contracts
2017-05-02 12:12:46 +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
djuju e9954eb325 conditional reset of compilerState-Enum 2017-04-28 18:46:27 +02: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 a6306a1d44 error fixed 2017-04-28 16:20:32 +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
chriseth f9bccab7b7 Merge pull request #2193 from ethereum/julia-assign-stack
Disallow assign from stack in Julia (=: var)
2017-04-27 22:00:33 +02:00
chriseth 6776be33a8 Merge pull request #2189 from ethereum/julia-instructions
Do not disallow EVM instructions as identifiers in Julia
2017-04-27 21:58:45 +02:00
Alex Beregszaszi 20206a04dd Disallow assign from stack in Julia (=: var) 2017-04-27 19:20:53 +01:00
Alex Beregszaszi 8020144d06 Do not validate identifiers against EVM instructions in JULIA 2017-04-27 18:16:42 +01:00
Alex Beregszaszi 01b60a4f8d Add flag for JULIA parsing 2017-04-27 18:16:42 +01:00
Alex Beregszaszi b0485e327b Make assembler errors fatal 2017-04-27 16:34:57 +01:00
Alex Beregszaszi 16276ab10b Catch assembler exceptions and throw readable Solidity exceptions 2017-04-27 16:06:49 +01:00
Alex Beregszaszi 8b79517d47 Do not validate identifiers against EVM instructions in JULIA 2017-04-27 14:12:48 +01:00
Alex Beregszaszi b48bc81d40 Add flag for JULIA parsing 2017-04-27 14:12:43 +01:00
djuju 5fd7942173 documentation, checks and renaming 2017-04-27 12:56:56 +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 d7b3ce24a4 Check stack height during code generation. 2017-04-26 17:12:04 +02:00
chriseth f3ec2ba39e Refactor to combined scope and stack height info. 2017-04-26 17:12:04 +02:00
chriseth 68218387cf Store stack height in analysis phase. 2017-04-26 12:34:24 +02:00
chriseth 1d712c7d64 Fix storage access tests. 2017-04-25 16:49:04 +02:00
chriseth e841b23bfd Special case for storage types with offset zero. 2017-04-25 16:49:04 +02:00
chriseth 3df7b06464 Pass internal resolver to assembly analyzer. 2017-04-25 16:49:04 +02:00
chriseth 0ebaf220b5 Fix refactoring error. 2017-04-25 16:49:04 +02:00
chriseth 978884d9ca Build fix. 2017-04-25 16:49:04 +02:00
chriseth 478f2997ea Storage access from inline assembly. 2017-04-25 16:49:04 +02:00
chriseth 5f4b68e211 Another stack check. 2017-04-25 16:49:04 +02:00
chriseth dfb7d5ebd9 Move analysis out of code generator. 2017-04-25 16:49:04 +02:00
chriseth dfaab73efe Only allow access to local variables and only if they have a stack size of one. 2017-04-25 16:49:04 +02:00
chriseth f19e6a09a7 Check again that instruction argument count is correct. 2017-04-25 16:49:03 +02:00
chriseth b622c2e9d3 Only run stack filler on AST elements that are or contain declarations. 2017-04-25 16:49:03 +02:00
chriseth 34717838da Review comments. 2017-04-25 16:49:03 +02:00
chriseth 83bf34c571 Review comments and cleanup. 2017-04-25 16:49:03 +02:00
chriseth 4755757c00 Remove some errors checks from code generation (was moved to analysis already). 2017-04-25 16:49:03 +02:00
chriseth 580921b329 Perform stack height checks in assembly analysis phase. 2017-04-25 16:49:03 +02:00
chriseth c4a0826f40 Add some missing error locations. 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 e0849f2f3b Split external identifier access into resolving and code generation. 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
chriseth 72fdf755c9 Register functions. 2017-04-25 16:49:03 +02:00