solidity/test/libsolidity/semanticTests/modifiers/function_modifier_library_inheritance.sol

35 lines
564 B
Solidity
Raw Normal View History

// Tests that virtual lookup for modifiers in libraries does not consider
// the current inheritance hierarchy.
library L {
struct S {
uint256 v;
}
modifier mod(S storage s) {
s.v++;
_;
}
function libFun(S storage s) internal mod(s) {
s.v += 0x100;
}
}
contract Test {
using L for *;
L.S s;
modifier mod(L.S storage) {
revert();
_;
}
function f() public returns (uint256) {
s.libFun();
L.libFun(s);
return s.v;
}
}
// ----
// f() -> 0x202