solidity/test/libsolidity/smtCheckerTests/functions/this_fake.sol
2020-12-09 19:55:18 +01:00

25 lines
583 B
Solidity

pragma experimental SMTChecker;
contract C
{
uint public x;
C c;
function f(C _c) public {
c = _c;
}
function g() public {
C this = c;
x = 0;
this.h();
// State knowledge is erased.
// Function call is not inlined.
assert(x == 0);
}
function h() public {
x = 2;
}
}
// ----
// Warning 2319: (160-166): This declaration shadows a builtin symbol.
// Warning 6328: (268-282): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, c = 0\n\n\n\nTransaction trace:\nconstructor()\nState: x = 0, c = 0\ng()