On 21 September 2014 16:02, deadalnix via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
On Sunday, 21 September 2014 at 03:48:36 UTC, Walter Bright wrote:
On 9/12/2014 6:48 PM, Manu via Digitalmars-d wrote:
What happens when a scope() thing finds it's way into generic code? If the type
doesn't carry that information, then you end up in a situation like ref. Have
you ever had to wrestle with ref in generic code?
ref is the biggest disaster zone in D, and I think all it's problems will
translate straight to scope if you do this.

I'm unaware of this disaster zone.

Well it is very real. I had to duplicate bunch of code in my visitor generator recently because of it. Getting generic code ref correct is very tedious, error prone, and guarantees code duplication and/or various static ifs all over the place.

It's also extremely hard to unittest; explodes the number of static if paths exponentially. I'm constantly finding bugs appear a year after writing some code because I missed some static branch paths when originally authoring.