contract C {
	function f(address a) external view returns (bool success) {
		(success,) = a.call.gas(42)("");
	}
	function g(address a) external view returns (bool success) {
		(success,) = a.call.gas(42)("");
	}
	function h() external payable {}
	function i() external view {
		this.h.gas(42)();
	}
}
// ----
// TypeError: (90-108): Function declared as view, but this expression (potentially) modifies the state and thus requires non-payable (the default) or payable.
// TypeError: (190-208): Function declared as view, but this expression (potentially) modifies the state and thus requires non-payable (the default) or payable.
// TypeError: (279-295): Function declared as view, but this expression (potentially) modifies the state and thus requires non-payable (the default) or payable.