Commit Graph
511 Commits
Author SHA1 Message Date
chriseth c24c4f85e4 Merge pull request #8665 from ethereum/recursiveStructRefactoring
Recursive struct refactoring and a bunch of ICE fixes.
2020-04-20 13:24:19 +02:00
Daniel Kirchner f6d1cee06b Ensure that public callable parameters are valid for calldata. 2020-04-16 17:23:20 +02:00
Daniel Kirchner 6f06154eb5 Move direct struct recursion check to detect recursion in global structs. 2020-04-16 16:42:12 +02:00
Daniel Kirchner b744a56801 Refactoring of errors and fixes for various ICEs. 2020-04-16 16:42:12 +02:00
Daniel Kirchner df1809f8da Annotate struct definitions with a recursive flag. 2020-04-16 16:42:12 +02:00
Daniel Kirchner b86c927505 Disallow virtual and override for constructors. 2020-04-15 13:58:37 +02:00
Daniel Kirchner 3af43fd350 Extract typing. 2020-04-14 10:59:28 +02:00
a3d4 3ef510bc86 Removed a redundant else clause. 2020-04-08 23:40:29 +02:00
Daniel Kirchner d68c526eaa Disallow external function pointers as immutables. 2020-04-03 11:56:51 +02:00
Mathias Baumann ac7b31e559 Validate immutable variables 2020-04-02 13:52:27 +02:00
chriseth a2b427dc0b Merge pull request #8567 from ethereum/storage-pointer-checker
Removed redundant storage declaration check; test coverages
2020-04-02 13:46:51 +02:00
hrkrshnn 79387b2ada Removed redundant declaration check; changed relevant test cases 2020-04-02 12:27:38 +05:30
Alexander Arlt 3e649eb8e1 Disallow access to functions from inline assembly. 2020-04-01 10:34:55 +02:00
a3d4 c002cae691 Fix #8450. Prevented internal compiler errors when assigning nested tuples. 2020-03-31 03:25:26 +02:00
chriseth fa148f2483 Parsing of immutable state variable. 2020-03-12 17:11:24 +01:00
a3d4 a86c511713 Replaced "assert" with "if" (incorrect contract code is not supposed to trigger asserts). 2020-03-12 14:03:27 +01:00
Daniel Kirchner 7f38cbb91d Fix calling unimplemented base function. 2020-03-06 10:51:16 +01:00
Djordje Mijovic 58c6b90705 Deprecated warning for .value() and .gas() on function and constructror calls 2020-03-04 12:51:49 +01:00
chriseth 45041e5d3a Allow access to `_slot` for local storage pointer variables. 2020-02-25 14:28:04 +01:00
Daniel Kirchner 9f094d59b9 Mark function selector accesses as pure for pure expressions and mark function accesses via contract name as pure. 2020-02-14 12:33:33 +01:00
Mathias Baumann 8911b58a6d Make type error fatal to prevent assert failure at later point 2020-02-13 15:16:28 +01:00
Daniel Kirchner 9c3151748e Move mapping key checks to ReferencesResolver and make them fatal. 2020-02-11 13:35:23 +01:00
Daniel Kirchner e07274a96f Disallow libraries as mapping keys. 2020-02-06 09:09:43 +01:00
chriseth 7cca036f4c Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
Daniel Kirchner d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
alex e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
Mathias Baumann a3f23d3158 Implement new with CREATE2 and function call options. 2020-01-23 21:20:01 +01:00
Jason Cobb 573a054d5d Prohibit interfaces inheriting from non-interfaces 2020-01-22 09:40:40 -05:00
Jason Cobb 1cc8ce1656 Don't prohibit interface inheritance 2020-01-22 09:40:40 -05:00
Daniel Kirchner ee5ff4df4e Clean up visibility via contract name and fix ICE on calling unimplemented base function. 2020-01-16 19:13:04 +01:00
Daniel Kirchner 9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
Mathias Baumann 2179562785 Move variables-in-interfaces checker to PostTypeChecker
refs #7566
2020-01-08 14:05:08 +01:00
Mathias Baumann 21844aa545 Move event-outside-emit check to PostTypeChecker
refs #7566
2020-01-08 14:05:08 +01:00
Mathias Baumann 9f8d49e358 Move modifier context check to PostTypeChecker
refs #7566
2020-01-08 14:05:08 +01:00
chriseth 5ca3abd7cb Merge pull request #8106 from random-internet-cat/move-contract-kind
Move ContractKind from ContractDefinition to file-scope
2020-01-08 13:06:26 +01:00
Christian Parpart 345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart 6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
Jason Cobb 529405deb6 Move ContractKind from ContractDefinition to file-scope 2020-01-07 09:11:29 -05:00
chriseth c175a468ab Do not call ABIEncoderV2 experimental. 2019-12-12 10:59:07 +01:00
chriseth 90feb8f72a Move Visibility out of Declaration. 2019-12-11 00:38:59 +01:00
chriseth e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
Gaith Hallak 4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
Daniel Kirchner 05baa23e8a Require unimplemented functions to be virtual. 2019-12-02 21:59:00 +01:00
Mathias Baumann 7bc6645218 Disallow use of virtual and private together 2019-11-27 18:52:41 +01:00
Erik Kundt ecaed1030f Makes array length access read-only. 2019-11-19 16:09:21 +01:00
chriseth 6797879128 Merge pull request #7647 from ethereum/virtual-5424
Implement virtual keyword
2019-11-19 13:21:27 +01:00
chriseth 216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
Mathias Baumann 0891b9451b Disallow variables of library types 2019-11-14 13:20:31 +01:00
Mathias Baumann 5b8ff78176 Implement virtual keyword 2019-11-14 11:49:39 +01:00
chriseth 06588cde76 Reconstruct function definition for magic variables in overload error message. 2019-11-14 10:13:22 +01:00