Merge pull request #8005 from ethereum/docs_check_style_guide

Docs style guide
This commit is contained in:
Leonardo 2019-12-13 15:00:43 +01:00 committed by GitHub
commit 4d5ab20a8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 21 deletions

View File

@ -297,7 +297,7 @@ of the variable:
contract A
{
function f() external virtual pure returns(uint) { return 5; }
function f() external pure virtual returns(uint) { return 5; }
}
contract B is A

View File

@ -98,11 +98,11 @@ Yes::
contract B is A {
function spam() public override pure {
function spam() public pure override {
// ...
}
function ham() public override pure {
function ham() public pure override {
// ...
}
}
@ -111,11 +111,17 @@ No::
pragma solidity >=0.4.0 <0.7.0;
contract A {
function spam() public pure {
abstract contract A {
function spam() virtual pure public;
function ham() public virtual pure;
}
contract B is A {
function spam() public pure override {
// ...
}
function ham() public pure {
function ham() public pure override {
// ...
}
}
@ -564,31 +570,30 @@ No::
function increment(uint x) public pure returns (uint) {
return x + 1;}
You should explicitly label the visibility of all functions, including constructors.
The modifier order for a function should be:
1. Visibility
2. Mutability
3. Virtual
4. Override
5. Custom modifiers
Yes::
function explicitlyPublic(uint val) public {
doSomething();
function balance(uint from) public view override returns (uint) {
return balanceOf[from];
}
No::
function implicitlyPublic(uint val) {
doSomething();
}
The visibility modifier for a function should come before any custom
modifiers.
Yes::
function kill() public onlyowner {
selfdestruct(owner);
}
No::
function balance(uint from) public override view returns (uint) {
return balanceOf[from];
}
function kill() onlyowner public {
selfdestruct(owner);
}