Commit Graph

1913 Commits

Author SHA1 Message Date
njwest
51b4dc3752 fixed grammar in error in CompilerUtils.cpp line 399, 'less variables.' should be 'fewer variables.' 2018-05-06 18:52:12 -04:00
chriseth
150d226603
Merge pull request #4063 from ethereum/emit-non-event
Show proper error when trying to emit a non-event
2018-05-04 15:02:04 +02:00
Alex Beregszaszi
cc10839073 Have more uniform parser errors 2018-05-04 13:27:05 +01:00
Alex Beregszaszi
c7ee649d80 More user friendly output in case of Identifier and Token keywords 2018-05-04 13:27:05 +01:00
Alex Beregszaszi
882248ce75 Remove code duplication in expectToken 2018-05-04 13:27:05 +01:00
Alex Beregszaszi
252bde8542 Introduce Token::friendlyName() helper 2018-05-04 13:11:23 +01:00
Alex Beregszaszi
e3279d8af8 Display nicer error messages in the parser (display tokens and not internal names) 2018-05-04 12:39:37 +01:00
chriseth
81d61ca086
Merge pull request #4059 from ethereum/parser-simplify
Simplify the parser expectations
2018-05-04 12:50:12 +02:00
Alex Beregszaszi
ffe7f224a6 Show proper error when trying to emit a non-event 2018-05-04 12:47:01 +02:00
daniel
aa1542a9e1 Change bytes to unsigned in FixedBytesType 2018-05-03 23:11:34 +01:00
Alex Beregszaszi
ed9f80690b Simplify expectIdentifierToken by using expectToken 2018-05-03 22:10:51 +01:00
Alex Beregszaszi
73c99d15cd Remove useless helper expectAssignmentOperator in parser 2018-05-03 21:35:38 +01:00
Alex Beregszaszi
b34428249a Change numBits to unsigned IntegerType 2018-05-02 23:22:25 -07:00
Alex Beregszaszi
2c00ebbee1 Change totalBits and fractionalDigits to unsigned in FixedPointType 2018-05-02 23:22:25 -07:00
chriseth
a856135bbf
Merge pull request #3797 from ethereum/shift-constantinople
Use native shift instructions on Constantinople
2018-05-02 16:50:15 +02:00
chriseth
8debded743
Revert "BREAKING: Bool variables should not allow arithmetic comparison" 2018-05-02 15:56:59 +02:00
chriseth
42289b642f
Merge pull request #4003 from ethereum/bool_vars_comparison
BREAKING: Bool variables should not allow arithmetic comparison
2018-05-02 15:56:06 +02:00
Alexander Arlt
f94b793472 Add virtual destructors on base classes. 2018-05-02 13:29:16 +02:00
Alex Beregszaszi
059e232e69 Support shifts in gas estimator 2018-04-30 21:22:59 +01:00
chriseth
2968639406 Removed signed shift right from the utilities. 2018-04-30 20:34:43 +01:00
Alex Beregszaszi
52c9441879 Do not use SAR instead of SDIV in shifts because it rounds differently 2018-04-30 20:34:43 +01:00
Alex Beregszaszi
c3608eaf90 Use native shift instructions in ABIFunctions on Constantinople 2018-04-30 20:34:43 +01:00
Alex Beregszaszi
22bfd3da41 Use native shift instructions on Constantinople 2018-04-30 20:34:43 +01:00
chriseth
d26b6b64c0
Merge pull request #3996 from ethereum/refactorParser
Refactor parser.
2018-04-30 19:15:11 +02:00
chriseth
15024154ab
Merge pull request #4018 from ethereum/disable-bytes0
Disable FixedBytesType(0) aka bytes0
2018-04-30 18:19:07 +02:00
chriseth
9e61b25dc4
Merge pull request #3958 from meowingtwurtle/fixedPointTypes
Types class changes for fixed points
2018-04-30 15:56:55 +02:00
Alex Beregszaszi
548bf2ff28 Remove unused function smallestTypeForLiteral 2018-04-30 14:35:26 +01:00
Alex Beregszaszi
e0b178e1c5 Disable FixedBytesType(0) aka bytes0 2018-04-30 12:23:30 +01:00
Leonardo Alt
ab251c7e7d Bool variables should not allow arithmetic comparison 2018-04-27 11:35:58 +02:00
chriseth
d44fb03322 Refactor parser. 2018-04-26 10:59:02 +02:00
Alexander Arlt
3ec667f59b Add virtual destructor in LValue class. 2018-04-24 23:39:25 +02:00
chriseth
d1e1293fbd
Merge pull request #3981 from ethereum/years-suffix
The "year" denomination is deprecated
2018-04-24 12:12:03 +02:00
Alex Beregszaszi
258ae8927e
Merge pull request #3970 from elopio/test/docstring-tag-end
docstring: add missing space
2018-04-24 02:16:27 +01:00
Leo Arias
b74566e4ea docstring: add missing space 2018-04-23 21:47:53 +00:00
chriseth
e685f9f59e
Merge pull request #3976 from ethereum/emptyTupleComponent
Empty tuple components should not be possible
2018-04-23 17:35:00 +02:00
Alex Beregszaszi
1ac0090f31 The "year" denomination is deprecated 2018-04-23 16:19:51 +01:00
Erik Kundt
896018c8a3 Treats inline array as an error. 2018-04-23 17:11:41 +02:00
Erik Kundt
b2ff9bc88d Turns it into warning (error for 0.5.0) and adds Changelog entry. 2018-04-23 17:09:42 +02:00
Erik Kundt
f2b58de92c Prevents null type from being used in tuple. 2018-04-22 16:54:33 +02:00
Alex Beregszaszi
5423974e87 Remove category check in FixedPointType:binaryOperatorResult as commonType handles the same 2018-04-20 17:54:34 +01:00
Jason Cobb
57003c534a Types changes for fixed points 2018-04-20 17:53:42 +01:00
Alex Beregszaszi
0493e3b053 Turn deprecated warnings for sha3/suicide into errors (experimental 0.5.0) 2018-04-20 17:40:48 +01:00
Alex Beregszaszi
069ea38916 Make literals an error for tight packing (experimental 0.5.0) 2018-04-20 11:58:16 +01:00
chriseth
676732776e
Merge pull request #3943 from ethereum/smt_remove_branch_warning
[SMTChecker] Remove 'information is erase' message for if-else
2018-04-20 09:01:59 +02:00
chriseth
2546a274ca
Merge pull request #3941 from ethereum/bytes-contract
Disallow explicit conversion of bytesXX to contract
2018-04-19 16:10:15 +02:00
Alex Beregszaszi
754d79edfa Disallow explicit conversion of bytesXX to contract 2018-04-19 15:58:14 +02:00
Leonardo Alt
ba3d16fc58 [SMTChecker] Remove 'information is erase' message for if-else 2018-04-19 09:28:44 +02:00
chriseth
a94945dfe4 Improve error message for failed member lookup. 2018-04-18 22:56:45 +01:00
Alex Beregszaszi
39b7b44a8d
Merge pull request #3923 from ethereum/warnConstructor
Warn about functions named "constructor".
2018-04-18 22:22:58 +01:00
Alex Beregszaszi
377254d5a8
Merge pull request #3922 from ethereum/smt_sol_unimplementedassert
[SMTChecker] Using solUnimplementedAssert instead of solAssert
2018-04-18 20:28:47 +01:00
chriseth
4895864302 Warn about functions named "constructor". 2018-04-18 21:23:09 +02:00
chriseth
29a97f1641 Fix name clashes between constructor and fallback function. 2018-04-18 14:24:35 +02:00
Leonardo Alt
78ba34608f [SMTChecker] Using solUnimplementedAssert instead of solAssert when applicable 2018-04-18 13:17:59 +02:00
Leonardo Alt
ae3350ae03 [SMTChecker] Integration with CVC4 2018-04-17 12:26:58 +01:00
chriseth
3d04d83297
Merge pull request #3868 from ethereum/bytescleanup
Properly force-clean for shortening bytesXX conversions.
2018-04-16 15:23:36 +02:00
chriseth
533d08517f
Merge pull request #3793 from ethereum/rationalNumberLimit
Rational number limit
2018-04-16 13:10:50 +02:00
Alex Beregszaszi
0201492bbf Remove redundant cleanup for abi.encode. 2018-04-16 12:47:38 +02:00
chriseth
4c1d39b7a2 Properly force-clean for shortening bytesXX conversions. 2018-04-16 12:47:38 +02:00
Erik Kundt
33fbf88707 Limits rational numbers to 4096 bits. 2018-04-16 11:45:55 +02:00
chriseth
d8030c9b2a
Merge pull request #3880 from ethereum/addressMemberDocAndWarn
Improve documentation and warning about accessing contract members in…
2018-04-16 11:05:05 +02:00
chriseth
95c49b367e
Merge pull request #3875 from ethereum/constructorSelfRef
Stricter check for "this" in constructor.
2018-04-13 18:39:31 +02:00
Daniel Kirchner
05c5ab19fb Improve documentation and warning about accessing contract members inherited from address. 2018-04-13 18:26:24 +02:00
Daniel Kirchner
be37e3a912 Stricter check for member access to "this" in constructor. 2018-04-13 15:57:13 +02:00
Erik Kundt
8935c0dd2f Uses short string representation of TypePointer 2018-04-12 21:14:50 +02:00
chriseth
7054defdd6
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
2018-04-12 21:01:08 +02:00
chriseth
44416d1ac6
Merge pull request #2980 from ethereum/abi-api
Add abi.encode and abi.encodePacked
2018-04-12 20:55:03 +02:00
chriseth
75b8828666 Allow struct encoding with new encoder. 2018-04-12 16:37:16 +02:00
Daniel Kirchner
6862f22943 Fix internal compiler error when parsing `var` declaration without identifier. 2018-04-12 14:57:14 +02:00
chriseth
4faa839813 Use error signature for revert data. 2018-04-12 13:09:38 +02:00
chriseth
fcb7a27216 Only forward returndata if EVM version supports it. 2018-04-12 13:09:38 +02:00
chriseth
7a9ee69e98 Bubble up error messages. 2018-04-12 13:09:38 +02:00
chriseth
ae1d040285 Allow error string for `require`. 2018-04-12 13:09:37 +02:00
chriseth
012ab37fe3 Code generator for revert with reason string. 2018-04-12 13:09:37 +02:00
chriseth
8ab7dc036a Register overload for `revert()` that can receive a reason string. 2018-04-12 13:09:37 +02:00
chriseth
f00bb43593 Allow function overloads involving MagicVariableDeclarations. 2018-04-12 13:09:37 +02:00
chriseth
17fc0f54b5 Use FunctionTypePointer (adds `const`). 2018-04-12 13:09:37 +02:00
chriseth
c3dc67d0e0
Merge pull request #3848 from ethereum/constantDivisionByZero
Error on invalid arithmetic with constant expressions.
2018-04-12 11:49:08 +02:00
chriseth
7343c40283 Check partial function parameters if rest is arbitrary. 2018-04-12 00:10:25 +02:00
Alex Beregszaszi
d56acb68ab Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature. 2018-04-11 22:32:10 +02:00
chriseth
b5a696ad48 Properly cope with constructor headers. 2018-04-11 22:00:21 +02:00
chriseth
2ad1acaf72 Warn if modifiers are applied to functions without implementation. 2018-04-11 22:00:21 +02:00
chriseth
6d289783b4 Fix state variable parsing. 2018-04-11 22:00:04 +02:00
chriseth
ae3fca6db2
Merge pull request #3863 from ethereum/fixGasEstimation
Correctly ignore costs of fallback for other functions.
2018-04-11 21:53:41 +02:00
Daniel Kirchner
daa69df447 Error on invalid arithmetic with constant expressions. 2018-04-11 21:17:10 +02:00
chriseth
928ce08845 Correctly ignore costs of fallback for other functions. 2018-04-11 19:42:34 +01:00
Daniel Kirchner
cb548f6f53 Fix ConstantEvaluator to correctly handle single element tuples. 2018-04-11 18:30:34 +02:00
chriseth
c9bdbcf470
Merge pull request #3309 from ethereum/limit-errors
Limit the number of errors output in a single run to 256
2018-04-11 16:13:41 +02:00
Jason Cobb
3b7b962b66 Fix bug in typechecking when comparing rational literals 2018-04-11 12:03:08 +02:00
Daniel Kirchner
3eedbc6a9c Error when using no parentheses in modifier-style constructor calls. 2018-04-10 12:09:34 +02:00
chriseth
b52614116e
Merge pull request #3821 from ethereum/warn-constructor-override
Warn constructor override
2018-04-10 11:39:31 +02:00
hydai
aaa8edc36d
Fixed typos 2018-04-10 13:41:35 +08:00
Daniel Kirchner
549ba801fb Use the most derived contract as main location in case of diamond inheritance. 2018-04-09 16:23:18 +02:00
Daniel Kirchner
b918a105a4 Move constructor argument override check to TypeChecker and reuse annotations in ContractCompiler. 2018-04-09 15:26:08 +02:00
Daniel Kirchner
b8fdb666e2 Allow duplicated constructor calls, if no arguments; support for multiple inheritance; backwards compatibility.
# tmp
2018-04-09 15:26:05 +02:00
Federico Bond
4e037281ac Error on duplicated super constructor calls 2018-04-09 11:22:35 +02:00
Daniel Kirchner
b2753aa053 Static Analyzer: Fix non-deterministic order of unused variable warnings. 2018-04-06 18:10:26 +02:00
Alex Beregszaszi
43d2954de8 Do not abort excessive warnings, just ignore them. 2018-04-06 14:44:03 +02:00
Alex Beregszaszi
0812d1189a Ignore warnings when limited errors to 256 2018-04-06 13:52:19 +02:00
Alex Beregszaszi
3730f68d4b reindent 2018-04-06 13:52:19 +02:00
Alex Beregszaszi
e8be0e61b3 Catch FatalError in CompilerStack::analysis to cover all the analysis tests 2018-04-06 13:52:19 +02:00