contract C { // these should take the same slot function() internal returns (uint) a; function() external returns (uint) b; function() external returns (uint) c; function() internal returns (uint) d; uint8 public x; function set() public { x = 2; d = g; c = this.h; b = this.h; a = g; } function t1() public returns (uint256) { return a(); } function t2() public returns (uint256) { return b(); } function t3() public returns (uint256) { return a(); } function t4() public returns (uint256) { return b(); } function g() public returns (uint256) { return 7; } function h() public returns (uint256) { return 8; } } // ---- // set() -> // t1() -> 7 // t2() -> 8 // t3() -> 7 // t4() -> 8 // x() -> 2