Superseded fix of 36a44cbcea9fbb18b221f77e00f2dca77f21bc88
fix lambdaSetParent
fix Issue 10848 - Compiler should always try to inlining a direct lambda call
An inlined call expression should have the same type with the return type of the function.

Additionally emit correct type for internal generated AssertExp.
Workaround to avoid dicardValue check

For test7585 in test/runnable/template9.d