Commit Graph

839 Commits

Author SHA1 Message Date
Alex Beregszaszi
13e37df97c Allow enums in interfaces 2018-08-07 13:28:53 +01:00
Alex Beregszaszi
b0f9fc5af0 Fix type identifiers for RationalNumberType 2018-08-07 13:23:14 +01:00
Alex Beregszaszi
eb7b3862ac Properly handle invalid references used together with _slot and _offset. 2018-08-07 13:18:38 +01:00
Alex Beregszaszi
8b2d630275
Merge pull request #4724 from ethereum/slot-in-assembly
Do not crash on using _slot and _offset suffixes on their own
2018-08-07 12:55:40 +01:00
Alex Beregszaszi
21ceac090a
Merge pull request #4592 from asifmallik/fixBackslashBugFinal
Fix backslash bug
2018-08-07 12:47:37 +01:00
Alex Beregszaszi
296ba24f7f Do not crash on using _slot and _offset suffixes on their own 2018-08-07 12:14:12 +01:00
chriseth
71e26f6adb Remove clone feature. 2018-08-07 11:10:50 +01:00
chriseth
276724dedc
Merge pull request #4663 from ethereum/dropConstantAST
[BREAKING] Drop constant field from JSON AST
2018-08-06 18:55:12 +02:00
Asif Mallik
fba7b7c204 Fix backslash bug 2018-08-06 18:17:56 +02:00
chriseth
9d03de1f25
Merge pull request #4671 from ethereum/mappingTupleAssignment
Disallow assignments to mappings within tuple assignments; allow for local variables.
2018-08-06 12:59:16 +02:00
chriseth
3576980710
Merge pull request #4644 from ethereum/event_struct_error
Disallow structs in events without ABIEncoderV2
2018-08-06 11:44:05 +02:00
Daniel Kirchner
44374a5846 Remove "constant" from JSON AST. 2018-08-06 11:15:25 +02:00
Christian Parpart
a4ee1dfc83
Merge pull request #4412 from ethereum/v050-reference-resolver-errorTypeForLoose
[BREAKING] permanently set errorTypeForLoose from Warning to SyntaxError
2018-08-03 19:30:33 +02:00
Daniel Kirchner
1e4b5886d6 Allow assignments to local variables of mapping types. 2018-08-03 16:22:03 +02:00
Daniel Kirchner
c0a169ca90 Disallow assignments to mappings within tuple assignments. 2018-08-03 15:46:26 +02:00
Leonardo Alt
20c6cea7bb Disallow structs in events without ABIEncoderV2 2018-08-03 13:41:27 +02:00
Daniel Kirchner
35c5b7de25 Turn warning about uninitialized storage returns into an error. 2018-08-02 19:34:38 +02:00
Christian Parpart
5d9320c70b Disallow loos assembly in Solidity by permanently setting it to SyntaxError (from Warning) 2018-08-02 13:36:05 +01:00
Daniel Kirchner
30d9961efb Do not exclude public state variables when looking for conflicting declarations. 2018-08-01 14:31:04 +02:00
Alex Beregszaszi
ce99a5ce7f
Merge pull request #4378 from ethereum/noBaseWithoutArguments
[BREAKING] Disallow calling base constructors without arguments.
2018-08-01 13:18:37 +01:00
chriseth
7e5406dd89 Disallow calling base constructors without arguments. 2018-08-01 12:28:27 +01:00
Christian Parpart
38f9667e09 Guard CycleDetector against recursion exhaustion.
fixes #3935.
2018-08-01 12:02:59 +01:00
chriseth
c8232d9759 Disallow conversion between unrelated contract types. 2018-08-01 11:04:35 +01:00
Leonardo Alt
210fee571f Fix crash when FunctionType has undeclared type as parameter 2018-07-31 11:17:51 +02:00
Alex Beregszaszi
de90290c28
Merge pull request #4527 from ethereum/mappingEnforceStorage
Enforces explicit data location for mappings
2018-07-23 20:43:38 +01:00
Erik Kundt
c622a1e56c Enforces data location of local mappings to storage. 2018-07-23 19:30:07 +02:00
Christian Parpart
9f35f0b805 Disallow functions without implementation to use modifiers. This was already the case in the experimental 0.5.0 mode. 2018-07-23 17:29:08 +01:00
chriseth
e3c2f20f6e
Merge pull request #4439 from ethereum/address_members
[BREAKING] Enforce address members not accessible by contract instance
2018-07-19 09:24:27 +02:00
Leonardo Alt
faa9c221d4 Changes in ExpressionCompiler 2018-07-18 19:51:24 +02:00
Erik Kundt
182a0a9551 Disallows old constructor syntax. 2018-07-18 14:29:01 +02:00
Erik Kundt
8b827af5bf Updates changelog to be more specific about visibility enforcement. 2018-07-18 12:03:25 +02:00
Erik Kundt
b5ecfbe5bc Enforces visibility specifier and updates docs. 2018-07-17 17:44:51 +02:00
Leonardo Alt
0075f4239a Address members not accessible by contract instance 2018-07-17 13:33:23 +01:00
Alex Beregszaszi
21e97da294 Deprecate the throw statement 2018-07-16 15:33:20 +02:00
Christian Parpart
396bf11858 enforce interface-functions to be external-declared
- libsolidity: Enforce interface-functions must be external-declared.
- Changelog adapted to reflect changes wrt. functions in interfaces.
- test: Adjustments according to prior interface-function changes.
- tests: Adapting SolidityEndToEndTest to interface-function change.
- docs: Adapted documentation to interface-function change.
2018-07-16 12:15:36 +02:00
chriseth
bab4a3975f
Merge pull request #4501 from ethereum/recursiveStructsWithFixedArrays
Consider fixed-size arrays when checking for recursive structs.
2018-07-13 01:26:50 +02:00
Daniel Kirchner
d936eebe50 Update Changelog. 2018-07-12 20:33:51 +02:00
Daniel Kirchner
f6f8fe6450 Add Changelog entry. 2018-07-12 20:14:30 +02:00
chriseth
6dcafac44e
Merge pull request #4447 from hosho/develop
Fix NatSpec json output for "@notice" and "@dev" tags on contract definitions
2018-07-12 18:42:30 +02:00
chriseth
81271801b4
Merge pull request #4478 from ethereum/requireStorageLocation
Turn missing storage locations into an error.
2018-07-12 18:00:05 +02:00
Matthew Little
a0d8459d95 Add changelog bugfix
For fixing NatSpec json output for "@notice" and "@dev" tags on contract definitions.
2018-07-12 14:39:23 +02:00
chriseth
fa8102880f
Merge pull request #4428 from ethereum/enforce_staticcall_view
[BREAKING] Enforce STATICCALL for view and pure
2018-07-12 13:14:02 +02:00
chriseth
576f3ef18c
Merge pull request #4083 from ethereum/variable_stack_slot
[BREAKING] Allocate local variables according to their scope
2018-07-12 13:01:15 +02:00
Daniel Kirchner
aa81ac4456 Update Changelog. 2018-07-12 12:54:42 +02:00
Daniel Kirchner
08d0c9b7d7 Add Changelog entry. 2018-07-11 18:53:16 +02:00
Leonardo Alt
38026d3114 Use STATICCALL for view and pure 2018-07-11 14:45:22 +02:00
chriseth
f3abfa81ad
Merge pull request #4454 from ethereum/constructorArgCount
[BREAKING] Wrong argument count in constructor call
2018-07-11 14:45:05 +02:00
chriseth
238dbe1b99
Merge pull request #4388 from ethereum/noPackedLiterals
Disallow packed encoding of literals.
2018-07-11 14:28:20 +02:00
Erik Kundt
038554abe0 Adds changelog entry. 2018-07-11 01:57:14 +02:00
Cryptomental
140dbfdbd8 Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
2018-07-11 00:26:23 +02:00
chriseth
d84976dc87
Merge pull request #4376 from ethereum/fallbackExternal
Fallback functions have to be external
2018-07-10 21:39:25 +02:00
chriseth
6567cd3e51
Merge pull request #4466 from ethereum/tupleNotEmpty
Disallow empty tuple components.
2018-07-10 21:03:30 +02:00
Leonardo Alt
1f77deada1 [050] Reserving and popping local vars in their scope 2018-07-10 18:39:38 +02:00
chriseth
32b44e10c5 Changelog entry. 2018-07-10 16:27:57 +02:00
Daniel Kirchner
833fc8955f Update changelog. 2018-07-10 15:28:06 +02:00
chriseth
7650905567
Merge pull request #4415 from ethereum/uninitializedStoragePointer
[BREAKING] Turn uninitialized storage variables into error.
2018-07-10 15:24:01 +02:00
Daniel Kirchner
36022493df Add Changelog entry. 2018-07-10 12:17:01 +02:00
Daniel Kirchner
65631cffc2 Update documentation and Changelog. 2018-07-10 11:38:33 +02:00
chriseth
4747ef26fb
Add backticks to changelog. 2018-07-09 17:56:53 +02:00
Leonardo Alt
c1b67a845b Enforce error on hex number combined with unit denomination 2018-07-09 17:19:41 +02:00
Alex Beregszaszi
c42583d27e
Merge pull request #4366 from ethereum/libsolc-cleanup
Implement new libsolc API
2018-07-09 12:30:11 +02:00
chriseth
f3e0bf1dd8
Merge pull request #4418 from ethereum/initialConstants
Only allow compile-time constants for constant state variables.
2018-07-05 17:07:32 +02:00
chriseth
c8ac861832 Fix allocation of byte arrays. 2018-07-05 14:18:14 +02:00
Daniel Kirchner
d9a8f2aace Update documentation and Changelog. 2018-07-04 10:14:58 +02:00
chriseth
8ed3da1d5f Only allow compile-time constants for constant state variables. 2018-07-03 23:03:26 +02:00
chriseth
bc6b42a9f6 Changelog entry. 2018-07-03 22:51:57 +02:00
chriseth
533d5d4b1c
Merge pull request #4379 from ethereum/constructorArgsTwice
Disallow constructor arguments given multiple times.
2018-07-03 22:49:02 +02:00
Daniel Kirchner
a7fc8a996b Update Changelog. 2018-07-03 15:31:34 +02:00
Christian Parpart
0b5dd7320a Changelog: added `var`-keyword change 2018-07-03 10:53:09 +02:00
chriseth
f7a9c4203e Disallow packed encoding of literals. 2018-07-03 01:02:00 +02:00
chriseth
08aa7e47e4
Merge pull request #4305 from ethereum/transactionReceipts
Determine transaction status in RPC sessions.
2018-07-02 16:09:59 +02:00
Daniel Kirchner
334c023c72 Determine transaction status in RPC sessions. 2018-07-02 12:56:33 +02:00
chriseth
85b9d3927a
Merge pull request #4224 from ethereum/revert_wrong_calldata
[BREAKING] Revert if calldata has wrong size
2018-07-02 12:55:22 +02:00
Alex Beregszaszi
328554a4f9 Add new libsolc entry points (solidity_license/version/compile) 2018-06-29 19:30:37 +02:00
chriseth
f69e24c85e Disallow constructor arguments given multiple times. 2018-06-29 16:11:21 +02:00
Leonardo Alt
7763d21cc6 Revert if calldata is too short or points out of bounds 2018-06-26 10:27:48 +02:00
chriseth
237788c0bc Changelog entry. 2018-06-25 17:17:18 +02:00
Alex Beregszaszi
72e87423db Disallow the years unit denomination properly 2018-06-21 20:21:02 +02:00
chriseth
0d1047181d
Merge pull request #4306 from ethereum/remove_050_workaround_scoping
[BREAKING] C99 scoping rules by default (remove 050 workaround)
2018-06-21 13:57:59 +02:00
Alex Beregszaszi
7e4bd3e346
Merge pull request #4219 from ethereum/functionTypeNamedArguments
Turn named return parameters in function types into an error.
2018-06-20 23:51:19 +02:00
Leonardo Alt
8862b3092b C99 scoping rules by default 2018-06-20 12:53:38 +02:00
chriseth
ba7fbf11e7
Merge pull request #4300 from nventuro/optimize-out-and
Add TruthyAnd Peephole optimization
2018-06-20 11:38:37 +02:00
Alex Beregszaszi
a17059573f Disallow raw callcode (was deprecated in 0.4.12) 2018-06-19 19:31:07 +02:00
Daniel Kirchner
dbfee87860 Return parameters in function types may not be named. 2018-06-18 00:05:06 +02:00
Nicolás Venturo
172e208c6a Add TruthyAnd Peephole optimization 2018-06-15 11:27:39 -03:00
Daniel Kirchner
0319b184ce Add difficulty field to genesis chain parameters to fix ipc tests for recent versions of cpp-ethereum. 2018-06-14 16:46:10 +02:00
chriseth
baeabe1c2d
Merge pull request #4282 from ethereum/cli-yul
[BREAKING] Renamed the --julia CLI option to --yul
2018-06-14 08:42:37 +02:00
Christian Parpart
a211b89118 Enforce disallowing empty structs
This patch enfoces an error when it encounters an empty struct,
effectively eliminating the deprecation warning.

Also adjust 419_interface_structs to explicitely test for (non-empty) structs,
as this behaviour "may" change in the future.
2018-06-14 00:24:43 +01:00
Alex Beregszaszi
ba2a7294d8 Renamed the --julia CLI option to --yul 2018-06-14 00:09:00 +01:00
Alex Beregszaszi
2625f282b9 Remove obsolete --formal option from CLI 2018-06-13 01:00:51 +01:00
chriseth
1dc28c065d Properly pad data from calldata. 2018-06-12 18:51:40 +01:00
Alex Beregszaszi
9de45383d8 Disallow sha3/suicide aliases 2018-06-12 18:16:18 +01:00
Alex Beregszaszi
0e23b5e954 Tidy up changelog for 0.5.0 2018-06-12 17:08:39 +01:00
Alex Beregszaszi
d1e7e9ef5e
Merge pull request #3627 from ethereum/additional-keywords
[BREAKING] Add new reserved keywords.
2018-06-12 16:33:26 +01:00
chriseth
2c8eca5dcf
Merge pull request #4265 from ethereum/remove-std
Remove obsolete 'std' directory
2018-06-12 16:59:51 +02:00
Daniel Kirchner
e4b7b2160e Add new reserved keywords. 2018-06-12 16:02:53 +02:00
Daniel Kirchner
f33dc92cbd Use proper SAR for signed right shifts and emulate on pre-constantinople. 2018-06-12 09:32:19 +01:00
Erik Kundt
2e9f5d1c98 Introduces emit token and removes identifier workaround. 2018-06-11 21:21:22 +01:00
Alex Beregszaszi
99c585fd8a Remove obsolete 'std' directory 2018-06-11 20:11:10 +01:00
Alex Beregszaszi
0f572159ec Show named argument name in error 2018-06-06 15:59:27 +01:00
Jason Cobb
6e29775d39 Remove suicide and sha3 assembly instructions 2018-06-04 01:04:48 +01:00
chriseth
0a1a8bfb09
Merge pull request #4172 from ethereum/trailing_dot
[BREAKING] Disallow trailing dot not followed by number
2018-05-30 18:51:52 +02:00
chriseth
5a73044fa7
Merge pull request #3743 from ethereum/popStorageArray
pop() for storage arrays
2018-05-30 18:32:08 +02:00
Erik Kundt
98d52beba3 Adds syntax tests, documentation and changelog entry.
Refines comment for array utility function.
2018-05-30 17:43:20 +02:00
Leonardo Alt
ac68710789 Disallow trailing dots that are not followed by a number 2018-05-30 15:14:53 +01:00
chriseth
b708054c3e
Mention calldata as new keyword. 2018-05-30 14:43:59 +02:00
mingchuan
b7cafcbdf9
Allow using calldata keyword to specify data location 2018-05-30 18:05:55 +08:00
Daniel Kirchner
f627dc77d0 Fix continue inside do-while. 2018-05-16 18:32:48 +02:00
chriseth
c911e08283 Missed changelog entry. 2018-05-16 18:32:47 +02:00
Daniel Kirchner
5c59d56335 Disallow conversions between bytesX and uintY of different size. 2018-05-16 18:32:47 +02:00
Leonardo Alt
a19b516b2b Add syntax tests and Changelog entry 2018-05-16 18:32:47 +02:00
chriseth
9705678269 Merge pull request #3987 from ethereum/solc_remove_stdin
BREAKING Solc: read from stdin only if "-" is explicitly given
2018-05-16 18:32:44 +02:00
chriseth
e6a9d0da66 Initial changelog for version 0.5.0. 2018-05-16 18:32:32 +02:00
chriseth
3aee975e88 Set version to 0.4.25 - tentatively. 2018-05-16 17:54:07 +02:00
chriseth
80d688ace0 Split changelog into language and compiler features and set release date. 2018-05-16 10:34:15 +02:00
chriseth
894122c508 Warn/enforce single bytes argument for certain builtins (hashing functions).
In 0.5.0 mode, only accept a single bytes argument for ``.call``,
``keccak256`` and others and do not pad when encoding.
2018-05-16 09:48:03 +02:00
chriseth
67d208d144 Parse multi variable declaration statement. 2018-05-16 03:22:45 +02:00
chriseth
2ba0002998
Merge pull request #4139 from ethereum/abiEncodeIsPure
ABI encoding functions are pure and should be usable in constants.
2018-05-15 16:59:48 +02:00
chriseth
63861aac4a
Merge pull request #3947 from ethereum/smt_storage
[SMTChecker] Support to integer and Bool storage vars
2018-05-15 14:54:41 +02:00
chriseth
dac0029d16 ABI encoding functions are pure and should be usable in constants. 2018-05-15 14:45:54 +02:00
chriseth
dce6224052
Merge pull request #4062 from ethereum/revert-variable
Fix revert with reason coming from a string variable
2018-05-15 14:44:39 +02:00
Leonardo Alt
4117e859eb [SMTChecker] Declaring all state vars before any function is visited 2018-05-15 14:28:08 +02:00
Leonardo Alt
2dbb35d4a8 [SMTChecker] Support to integer and Bool storage vars 2018-05-15 14:22:50 +02:00
Daniel Kirchner
d7d71a14df Add Changelog entry. 2018-05-14 20:23:40 +02:00
Alex Beregszaszi
c03a29dea8 Fix revert with reason coming from a string variable 2018-05-09 17:53:17 +02:00
Daniel Kirchner
1a014f83cc Prefer view over constant in the documentation. 2018-05-09 15:06:47 +02:00
Daniel Kirchner
02380113d4 Use the entire token as source location for parser errors. 2018-05-09 14:08:22 +02:00
chriseth
54aa10ce36
Merge pull request #4054 from ethereum/token-names
Improve parser error messages
2018-05-09 11:06:23 +02:00
chriseth
fba7e055d9 Follow highest gas usage only for gas estimation. 2018-05-09 10:53:30 +02:00
chriseth
fe12f05c08 Deprecate wildcard assignments. 2018-05-08 15:13:32 +01:00
chriseth
a6868510ed Initial changelog for version 0.5.0. 2018-05-04 16:35:24 +02: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
Alex Beregszaszi
ffe7f224a6 Show proper error when trying to emit a non-event 2018-05-04 12:47:01 +02:00
Alex Beregszaszi
22bfd3da41 Use native shift instructions on Constantinople 2018-04-30 20:34:43 +01:00
chriseth
d1e1293fbd
Merge pull request #3981 from ethereum/years-suffix
The "year" denomination is deprecated
2018-04-24 12:12:03 +02: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
b2ff9bc88d Turns it into warning (error for 0.5.0) and adds Changelog entry. 2018-04-23 17:09:42 +02:00
Alexander Arlt
0b49fd3493 CMake: Update jsoncpp to v1.8.4 2018-04-23 11:10:39 +01:00
Alex Beregszaszi
069ea38916 Make literals an error for tight packing (experimental 0.5.0) 2018-04-20 11:58:16 +01:00
Alex Beregszaszi
38460d8b47 Remove unnecessary masking of the result of known short instructions 2018-04-19 23:59:06 +01:00
chriseth
0759206b11 Set version to 0.4.24 2018-04-19 17:50:13 +02:00
chriseth
a79c9a1dfe Prepare 0.4.23 release. 2018-04-19 17:21:34 +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
chriseth
a94945dfe4 Improve error message for failed member lookup. 2018-04-18 22:56:45 +01:00
chriseth
4895864302 Warn about functions named "constructor". 2018-04-18 21:23:09 +02:00
Alex Beregszaszi
cd17c37fe6
Merge pull request #3925 from ethereum/supportBionic2
Support ubuntu bionic source builds.
2018-04-18 18:38:05 +01:00
chriseth
64043ef970 Support ubuntu bionic source builds. 2018-04-18 17:15:26 +02:00
chriseth
29a97f1641 Fix name clashes between constructor and fallback function. 2018-04-18 14:24:35 +02:00
Leonardo Alt
ae3350ae03 [SMTChecker] Integration with CVC4 2018-04-17 12:26:58 +01:00
chriseth
3c24d64be5 Set version to 0.4.23 2018-04-17 07:55:35 +02:00
chriseth
c65159c78b Preparation for 0.4.22 release. 2018-04-16 20:20:58 +02:00
chriseth
936832b3f9 Preparation for 0.4.22 release. 2018-04-16 19:51:49 +02: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
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
559fa58ddf Document ABI encoding functions. 2018-04-13 18:36:33 +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
4bd31aaeca Add ChangeLog entry. 2018-04-12 21:15:14 +02:00
chriseth
7054defdd6
Merge pull request #3364 from ethereum/revertWithReason
Revert with reason
2018-04-12 21:01:08 +02:00
Daniel Kirchner
6862f22943 Fix internal compiler error when parsing `var` declaration without identifier. 2018-04-12 14:57:14 +02:00
chriseth
43b1dd758b Changelog entry. 2018-04-12 13:09:38 +02:00
chriseth
3da16b3e8a Documentation for revert with reason string. 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
2ad1acaf72 Warn if modifiers are applied to functions without implementation. 2018-04-11 22:00:21 +02:00
chriseth
d64e933327 Changelog entry. 2018-04-11 22:00:20 +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
8d355df14c
Merge pull request #3830 from ethereum/fix-include-paths-errors
Fix include paths errors
2018-04-11 21:25:30 +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
c15cb6cc7a Prevent information about file existence outside the allowed paths to leak by mimicing boost::filesystem::weakly_canonical. 2018-04-11 18:52:22 +02:00
Daniel Kirchner
cb548f6f53 Fix ConstantEvaluator to correctly handle single element tuples. 2018-04-11 18:30:34 +02:00
chriseth
d50d1f0ac1
Merge pull request #3580 from ethereum/asm-bitshift-optim
Add simplification rule for bitwise shifting
2018-04-11 17:18:31 +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
f03695731b Add source locations to syntax test expectations. 2018-04-10 14:08:22 +02:00
Daniel Kirchner
3eedbc6a9c Error when using no parentheses in modifier-style constructor calls. 2018-04-10 12:09:34 +02:00
Alex Beregszaszi
cb352edd26 Add constant optimiser for SHR/SHL instructions 2018-04-09 20:07:44 +01: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
d5f40c141b Limit the number of errors output in a single run to 256 2018-04-06 13:52:19 +02:00
Daniel Kirchner
037eba20fc
Merge pull request #3824 from ethereum/baseArgumentsEmptyParenthesis
Error when using empty parentheses for base class constructors that r…
2018-04-05 14:43:28 +02:00
Alex Beregszaszi
36d6c27e68
Merge pull request #3745 from ethereum/fixRecursion
Fix invalid recursion errors for structs
2018-04-05 12:04:54 +02:00
chriseth
c6da5c1650
Merge pull request #3822 from ethereum/swap-comparison
Replace comparison operators with opposites if preceded by SWAP1
2018-04-05 11:57:26 +02:00
Daniel Kirchner
96eff0ff6a Error when using empty parenthesis for base class constructors that require arguments. 2018-04-05 11:52:22 +02:00
Alex Beregszaszi
02ea0e547f Replace comparison operators with opposites if preceded by SWAP1 2018-04-04 17:47:58 +02:00
chriseth
65f18a18de More specific push implementation. 2018-04-04 16:50:45 +02:00
Alex Beregszaszi
920de496ab
Merge pull request #3798 from ethereum/commutative-swap
Remove useless SWAP1 in front of commutative operations
2018-04-04 08:15:24 +02:00
Alex Beregszaszi
17bcabb6cf Remove useless SWAP1 in front of commutative operations 2018-04-03 18:57:07 +02:00
Daniel Kirchner
d664a599e6 Constructors are defined using the `constructor` keyword. 2018-04-03 18:21:55 +02:00
Alex Beregszaszi
0edce4b570
Merge pull request #3693 from ethereum/optimizeMLOAD
Optimize across MLOAD if MSIZE is not used.
2018-04-03 15:58:11 +01:00
chriseth
5bdadff0d8 Fix detection of recursive structs. 2018-04-03 16:27:28 +02:00
chriseth
a54fdc495f Fix: Treat empty base constructor argument list as not provided. 2018-04-03 14:53:48 +02:00
chriseth
deadff263f Changelog entry. 2018-04-03 14:34:44 +02:00
chriseth
326d656a55
Merge pull request #3790 from ethereum/empty-structs
Disallow empty structs
2018-03-30 13:58:35 +02:00
chriseth
5c8a6aac69 Prevent encoding of weird types and support packed encoding of external function types. 2018-03-29 09:57:11 +01:00
Anthony Broad-Crawford
8a18f22b87 Support for error on non-existant or irregular files with command line option to ignore 2018-03-28 10:25:43 +01:00
chriseth
3bb54e8bd5
Merge pull request #3775 from federicobond/improve-error-fractional-shift
Improve error message when attempting to shift by fractional number
2018-03-28 11:16:44 +02:00
Alex Beregszaszi
ebb12756ad Still allow empty structs for non-0.5.0 mode 2018-03-27 15:49:41 +01:00
Alex Beregszaszi
b540ba527a Disallow empty structs 2018-03-27 15:49:41 +01:00
chriseth
62559cf127
Merge pull request #3681 from ethereum/interface-external
Allow overriding external functions in interfaces with public in a child
2018-03-27 15:47:59 +02:00
chriseth
0a58e57ceb Changelog entry. 2018-03-27 04:00:12 +01:00
Alex Beregszaszi
ef3595b000 Allow overriding external functions in interfaces with public in an implementing contract 2018-03-26 11:35:17 +01:00
Federico Bond
b79531bebf Improve error message when trying to shift by fractional number 2018-03-22 10:05:49 -03:00
chriseth
c7860a0fba Changelog entry. 2018-03-21 14:53:29 +00:00
Daniel R
f0c174af8f
Fix Typo in changelog.md 2018-03-15 10:42:59 +00:00
chriseth
78abe81f08
Merge branch 'develop' into externalFunctionsInLibraries 2018-03-14 18:07:55 +01:00
chriseth
abc7a45230
Merge pull request #3725 from ethereum/blockhashNoCall
Allow ``block.blockhash`` without it being called.
2018-03-14 18:04:40 +01:00
Alex Beregszaszi
59658afa30
Merge pull request #3722 from ethereum/fixMods
Fix modifier lookup in libraries.
2018-03-14 17:20:51 +01:00
Daniel Kirchner
9d079fd126 DocStringParser: Add Changelog entry and test case for empty descriptions. 2018-03-14 10:34:16 +01:00
chriseth
834d63de2c Allow `block.blockhash` without being called. 2018-03-13 17:34:21 +01:00
chriseth
eecc26deec Make external library functions accessible. 2018-03-13 17:18:46 +01:00
chriseth
58af150c3d Changelog entry. 2018-03-13 16:55:41 +01:00
Alex Beregszaszi
a59d6d2e53 Support constantinople in evm-version 2018-03-12 18:13:19 +01:00
chriseth
0649f900ca Properly skip cleanup if only enlarging storage array. 2018-03-09 14:06:54 +01:00
chriseth
16780ea3ed Set version to 0.4.22. 2018-03-07 20:26:44 +01:00
chriseth
cbd8644f2d Update changelog for release. 2018-03-07 18:15:25 +01:00
chriseth
cd2e1e079a Clarify that the experimental flag is not set for "experimental 0.5.0" 2018-03-07 13:56:57 +01:00
Alex Beregszaszi
ba8819542f
Merge pull request #3611 from ethereum/warn-using-address-overload
Warn if using address overloads on contracts
2018-03-06 19:13:55 +01:00
chriseth
af7c64c1fc Changelog entry. 2018-03-06 17:45:47 +01:00
Alex Beregszaszi
14b12ae745
Merge pull request #2966 from ethereum/useStaticCall
Use STATICCALL for pure function calls.
2018-03-06 17:07:03 +01:00
Alex Beregszaszi
83dacbf669
Merge pull request #3549 from ethereum/fixmultidim
Properly detect which array and struct types are unsupported by the old ABI encoder.
2018-03-06 15:51:17 +01:00
chriseth
b467116ea8 Use STATICCALL for pure function calls if EVM version supports it and 0.5.0 is activated. 2018-03-06 15:30:18 +01:00
chriseth
9d67e9b4fc
Merge pull request #3640 from AnthonyBroadCrawford/spanning-multiline-message-fix
moved spanning multi lines message to appear on some lane vs new line…
2018-03-05 22:51:53 +01:00
Anthony Broad-Crawford
174c46d5af Improved messaging when an error spans multiple lines and updated change log file. 2018-03-05 14:14:14 -06:00
chriseth
83fcf007bf Do not retain any gas in external calls (except if EVM version is set to homestead). 2018-03-05 19:32:12 +01:00
Alex Beregszaszi
fd60c1cf86 Warn if using address overloads on contracts 2018-03-05 15:50:27 +01:00
chriseth
477571e190 Do not warn about 0.5.0 experimental pragma. 2018-03-05 12:14:44 +01:00
chriseth
6dc137317f
Merge pull request #3569 from ethereum/evmVersion
EVM version
2018-03-05 12:10:49 +01:00
chriseth
f78d6a9a1e
Merge pull request #3628 from ethereum/literalsHexUnit
Deprecate using unit denominations in combination with hex numbers.
2018-03-02 11:11:16 +01:00
chriseth
83515eadcf Changelog entry 2018-03-01 17:19:35 +01:00
Daniel Kirchner
bd4c2b9bde Deprecate using unit denominations in combination with hex numbers. Closes #3574. 2018-03-01 16:58:55 +01:00
chriseth
98e8a93854 Changelog entry. 2018-03-01 14:29:00 +01:00
Alex Beregszaszi
b6dfd9ef54 Ensure that library addresses supplied are of correct length and hex prefixed in JSONIO 2018-03-01 12:03:56 +01:00
chriseth
9e3da89a7a
Merge pull request #3607 from izgzhen/complain-unknown-params
stop allow_guessing for command line option parser
2018-02-28 17:42:14 +01:00
chriseth
22d26e059c
Merge pull request #3613 from ethereum/require-visibility
Issue error if no visibility is specified (on 0.5.0)
2018-02-28 16:33:39 +01:00
Zhen Zhang
5fd9ea4b2a Stop allow_guessing for command line option parser 2018-02-28 09:31:24 +08:00
Alex Beregszaszi
a566825589 Issue error if no visibility is specified (on 0.5.0) 2018-02-27 16:31:53 +01:00
chriseth
e227bdbfa7 Changelog entry. 2018-02-27 12:17:25 +01:00
Alex Beregszaszi
5c0d82059f Turn throw into a syntax error for 0.5.0 2018-02-27 02:10:24 +01:00
chriseth
04c922e5ed Changelog entry. 2018-02-22 15:17:41 +01:00
chriseth
c182284d28 Do not warn about analysis-only experimental features. 2018-02-22 14:50:20 +01:00
Alex Beregszaszi
ae02bb5aad Raise error on oversized number literals in assembly 2018-02-22 01:02:19 +01:00
chriseth
3076a434ba
Merge pull request #3554 from ethereum/reuseScannerOrNot
Expect end of string at end of top-level block for assembly parser.
2018-02-21 00:41:57 +01:00
chriseth
e2bf5de8a2 Expect end of string at end of top-level block for assembly parser. 2018-02-21 00:41:39 +01:00
Alexander Arlt
0f29ac4e56 Add new JSON API for better abstraction and for supporting strict JSON parsing 2018-02-20 21:58:26 +01:00