DIP1000: 'return scope' ambiguity and why you can't make opIndex work

Walter Bright newshound2 at digitalmars.com
Tue Jul 6 05:15:24 UTC 2021

On 7/5/2021 4:36 AM, claptrap wrote:
> How the heck are us mere mortals supposed to use this stuff if you struggle to 
> understand what it means?

I make mistakes all the time. That's why D has unit tests built in, and an 
acceptance test suite.

One reason I like writing software is once I get it right, it stays right every 

Actually, I find Dennis' table a tad confusing. An alternate formulation is:

Consider the ambiguity of a `return ref scope` parameter. Which is it:

1. `return ref` and `scope`
2. `ref` and `return scope`

? The ambiguity is resolved by looking at the function return. If it returns
by `ref`, then it's (1), otherwise (2). This is evident in the table above.
This rule is arbitrary, precluding things like creating a `return ref` and
`return scope` for the same parameter.

More information about the Digitalmars-d mailing list