On Monday, 31 December 2012 at 21:25:53 UTC, Mehrdad wrote:
I don't understand why there is a discussion on trying to special-case ref parameters. There's nothing special about ref parameters... what's special is ref _returns_.


Therefore all we need to do is disallow ref returns in @safe code.

Yes, but that will render a whole lot of perfectly safe code, including easily provable safe code, from being marked as safe.

The real problem is the ability to return a temp as a ref by obfuscating the temp from the compiler through an intermediate wrapper of some kind.

Perhaps what must be disallowed (as being @safe) are ref returns where the return result cannot be proven to be safe from within the calling function, i.e. the wrapper may be safe, but the usage of the wrapper cannot be guaranteed to be safe when used as a ref return.

--rt

Reply via email to