chriseth
e0266b79f3
Refactor: Combine bool and function pointer.
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
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
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