check for name shadowing
check that function in an expression returns something