handle LValue to RValue conversions correctly