2020-10-06 14:32:05 +00:00
|
|
|
==== Source: C ====
|
2020-12-03 17:29:17 +00:00
|
|
|
pragma abicoder v1;
|
2020-10-06 14:32:05 +00:00
|
|
|
import "X";
|
|
|
|
import "V1A";
|
|
|
|
import "V2A";
|
|
|
|
import "V1B";
|
|
|
|
|
|
|
|
contract C is V1A, V2A, V1B {
|
|
|
|
function foo()
|
|
|
|
public
|
|
|
|
modV1A
|
|
|
|
modV2A // There should be no error for modV2A (it uses ABIEncoderV2)
|
|
|
|
modV1B
|
|
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
==== Source: V1A ====
|
2020-12-03 17:29:17 +00:00
|
|
|
pragma abicoder v1;
|
2020-10-06 14:32:05 +00:00
|
|
|
import "X";
|
|
|
|
|
|
|
|
contract V1A {
|
|
|
|
modifier modV1A() {
|
|
|
|
_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
==== Source: V1B ====
|
2020-12-03 17:29:17 +00:00
|
|
|
pragma abicoder v1;
|
2020-10-06 14:32:05 +00:00
|
|
|
import "X";
|
|
|
|
|
|
|
|
contract V1B {
|
|
|
|
modifier modV1B() {
|
|
|
|
_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
==== Source: V2A ====
|
2020-11-23 18:06:44 +00:00
|
|
|
pragma abicoder v2;
|
2020-10-06 14:32:05 +00:00
|
|
|
import "X";
|
|
|
|
|
|
|
|
contract V2A {
|
|
|
|
modifier modV2A() {
|
2020-11-10 13:14:43 +00:00
|
|
|
X(address(0x00)).get();
|
2020-10-06 14:32:05 +00:00
|
|
|
_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
==== Source: X ====
|
2020-11-23 18:06:44 +00:00
|
|
|
pragma abicoder v2;
|
2020-10-06 14:32:05 +00:00
|
|
|
|
|
|
|
struct Data {
|
|
|
|
bool flag;
|
|
|
|
}
|
|
|
|
|
|
|
|
contract X {
|
|
|
|
function get() public view returns (Data memory) {}
|
|
|
|
}
|
|
|
|
// ----
|