mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Contract level checker: Disallow free function redefinition and alias
shadowing another free function Co-authored-by: chriseth <chris@ethereum.org>
This commit is contained in:
co-authored by
chriseth
parent
1cc0d642e8
commit
e2a2276272
@@ -0,0 +1,27 @@
|
||||
==== Source: s1.sol ====
|
||||
function f() pure returns (uint) { return 1337; }
|
||||
contract C {
|
||||
function g() public pure returns (uint) {
|
||||
return f();
|
||||
}
|
||||
}
|
||||
==== Source: s2.sol ====
|
||||
import "s1.sol";
|
||||
contract D is C {
|
||||
function h() public pure returns (uint) {
|
||||
return g();
|
||||
}
|
||||
}
|
||||
==== Source: s3.sol ====
|
||||
import "s2.sol";
|
||||
import {f as f} from "s2.sol";
|
||||
contract E is D {
|
||||
function i() public pure returns (uint) {
|
||||
return f();
|
||||
}
|
||||
}
|
||||
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// i() -> 1337
|
||||
Reference in New Issue
Block a user