solidity/test/libsolidity/semanticTests/viaYul/virtual_functions.sol
2019-11-14 11:49:39 +01:00

33 lines
626 B
Solidity

contract X {
function f() public returns (uint x) {
x = g();
}
function g() public virtual returns (uint x) {
x = 2;
}
}
contract C is X {
function f1() public returns (uint x) {
// direct call
x = g();
}
function f2() public returns (uint x) {
// call via base
x = f();
}
function f3() public returns (uint x) {
// explicit call via base
//x = super.g();
}
function g() public override returns (uint x) {
x = 3;
}
}
// ====
// compileViaYul: true
// ----
// f() -> 3
// f1() -> 3
// f2() -> 3
// g() -> 3