pragma solidity >=0.4.0 <0.7.0; contract FunctionDeclaration { function increment(uint x) public pure returns (uint) { return x + 1; } function increment(uint x) public pure returns (uint){ return x + 1; } function increment(uint x) public pure returns (uint) { return x + 1; } function increment(uint x) public pure returns (uint) { return x + 1;} function kill() onlyowner public { selfdestruct(owner); } /* TODO: modifiers should always split if arguments split */ function thisFunctionHasLotsOfArguments(address a, address b, address c, address d, address e, address f) public { doSomething(); } function thisFunctionHasLotsOfArguments(address a, address b, address c, address d, address e, address f) public { doSomething(); } function thisFunctionHasLotsOfArguments( address a, address b, address c, address d, address e, address f) public { doSomething(); } function thisFunctionNameIsReallyLong(address x, address y, address z) public onlyowner priced returns (address) { doSomething(); } function thisFunctionNameIsReallyLong(address x, address y, address z) public onlyowner priced returns (address) { doSomething(); } function thisFunctionNameIsReallyLong(address x, address y, address z) public onlyowner priced returns (address) { doSomething(); } function thisFunctionNameIsReallyLong( address a, address b, address c ) public returns (address someAddressName, uint256 LongArgument, uint256 Argument) { doSomething(); return (veryVeryLongReturnArg1, veryVeryLongReturnArg1, veryVeryLongReturnArg1); } } // Base contracts just to make this compile contract B { constructor(uint) public { } } contract C { constructor(uint, uint) public { } } contract D { constructor(uint) public { } } /* TODO: constructors calls have priority over visibility */ contract A is B, C, D { uint x; constructor(uint param1, uint param2, uint param3, uint param4, uint param5) B(param1) C(param2, param3) D(param4) public { x = param5; } } contract X is B, C, D { uint x; constructor(uint param1, uint param2, uint param3, uint param4, uint param5) public B(param1) C(param2, param3) D(param4) { x = param5; } }