Fix qualified modifier lookup.

This commit is contained in:
chriseth
2020-11-17 18:33:45 +01:00
parent 3957fb8191
commit e64fd99fb5
3 changed files with 56 additions and 4 deletions
@@ -0,0 +1,22 @@
contract A {
uint public x = 7;
modifier m virtual { x = 2; _; }
}
contract C is A {
modifier m override { x = 1; _; }
function f() public A.m returns (uint) {
return 9;
}
function g() public m returns (uint) {
return 10;
}
}
// ----
// x() -> 7
// f() -> 9
// x() -> 2
// g() -> 0x0a
// x() -> 1
// f() -> 9
// x() -> 2
@@ -0,0 +1,25 @@
==== Source: a ====
import "a" as M;
contract C {
uint public x;
modifier m { x = 1; _; }
function f() public M.M.C.m returns (uint t, uint r) {
t = x;
x = 3;
r = 9;
}
function g() public m returns (uint t, uint r) {
t = x;
x = 4;
r = 10;
}
}
// ----
// x() -> 0x00
// f() -> 1, 9
// x() -> 3
// g() -> 1, 0x0a
// x() -> 4
// f() -> 1, 9
// x() -> 3