Commit Graph
871 Commits
Author SHA1 Message Date
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
Erik Kundt ec27c2e507 Introduce AST node for structured documentation. 2020-01-30 18:25:56 +01:00
Mathias Baumann b8e2baf5f4 Use yul::AstWalker to resolve assembly symbols 2020-01-28 17:57:48 +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 c450b18673 Remove remaining instances of new. 2020-01-15 17:25:08 +01:00
djudjuu e8556fa1b2 Ast-Import from standard-json 2020-01-14 17:15:53 +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
Mathias L. Baumann 20cf9d9fef Merge pull request #8038 from ethereum/statless-typechecker-7566
Refactor PostTypeChecker into multiple classes per usecase
2020-01-06 14:39:58 +01:00
chriseth ece6463f56 Merge pull request #8069 from random-internet-cat/set-scope
Move scope of Scopable into new ScopableAnnotation
2019-12-20 08:22:36 +01:00
Jason Cobb 6679f92c8a Move all references to scope into annotation 2019-12-19 21:45:16 -05:00
chriseth 7db88cfedd Remove yul::Instruction. 2019-12-19 23:22:19 +01:00
Mathias Baumann a8ca96cd3e Refactor PostTypeChecker into multiple classes per usecase 2019-12-19 10:43:27 +00:00
chriseth c175a468ab Do not call ABIEncoderV2 experimental. 2019-12-12 10:59:07 +01:00
Leonardo Alt 1fb62b91d2 Add more override tests with public state variables 2019-12-11 15:15:51 +01:00
chriseth 70623665bf Move helper structs and clean code. 2019-12-11 15:15:51 +01:00
chriseth 30732269f6 Consider state vars. 2019-12-11 15:15:51 +01:00
chriseth 57824566e6 Use proxies. 2019-12-11 15:15:51 +01:00
chriseth 3e1b00b459 Introduce proxies. 2019-12-11 15:15:51 +01:00
chriseth 90feb8f72a Move Visibility out of Declaration. 2019-12-11 00:38:59 +01:00
chriseth 93d84f3554 Split out override checker into its own file. 2019-12-10 16:00:05 +01:00
chriseth a5f7661075 Ambigous overrides for modifiers. 2019-12-09 18:43:59 +01:00
chriseth 152f42c6b2 Make ambigous override checker generic. 2019-12-09 18:41:39 +01:00
chriseth e1d6ce2b66 Override checks for modifiers. 2019-12-09 18:41:39 +01:00
Daniel Kirchner 4c7f9f9751 Do not require overriding for functions in common base with unique implementation. 2019-12-09 16:04:45 +01:00
chriseth e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
Mathias Baumann b7d5de59c5 Implement overridding of functions by public variables 2019-12-05 12:48:52 +00:00
Gaith Hallak 4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
Daniel Kirchner 426f04b389 Implement and fix overriding unimplemented and implemented functions with unimplemented functions. 2019-12-05 09:26:43 +01:00
Daniel Kirchner 8b35918ad0 Replace superFunction by baseFunctions in AST annotations and JSON AST. 2019-12-05 03:33:32 +01:00
Erik Kundt 19d466d6fb Fixes named return natspec errors in compilation tests. 2019-12-04 15:38:12 +01:00
Erik Kundt e5cb0fe839 Reports doctring error on named return mismatch. 2019-12-04 15:38:11 +01:00
Christian Parpart 7bbdfe070f Make shadowing of inherited state variables an error. 2019-12-03 21:20:03 +01:00
Daniel Kirchner 05baa23e8a Require unimplemented functions to be virtual. 2019-12-02 21:59:00 +01:00
chriseth 1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
Mathias Baumann 7bc6645218 Disallow use of virtual and private together 2019-11-27 18:52:41 +01:00
chriseth 0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +01:00
chriseth 0973ae751a Do not warn about enabled ABIEncoderV2 anymore. 2019-11-26 15:49:42 +01:00
chriseth d5e9271592 Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00