.call to invoke a function on another contract,
address B = 0x4a915089aeC328Dac1F0b197Aba7EB8C1853882d; bytes4 callSig = bytes4(sha3("foo()")); B.call(callSig);
gives a warning,
Warning: Return value of low-level calls not used.
B public b; b = B(0x4a915089aeC328Dac1F0b197Aba7EB8C1853882d); b.foo();
gives no warning.
In what ways does
b.foo() know that the call is safe, while
B.call(callSig) does not ?