hyperledger-solang/solang

Mutability check is incomplete

LucasSte opened this issue · 0 comments

Our implementation for the mutability check does not cover all cases needed and needs a major overhaul. The following contract, for instance, should not work because test is not a view function.

contract C {
	bool x;
	int[4] a;

	function test() public view returns (int) {
		return foo()[1];
	}

	function foo() internal returns (int[4] storage) {
		x = true;
		return a;
	}

}