First draft: added with-colon statement

Walter Bright newshound2 at digitalmars.com
Sun Jan 19 05:25:15 UTC 2025


On 1/18/2025 1:19 PM, qxi wrote:
> In current implementation if there is multiple 'with:' in same scope then last 
> 'with:' take precedence and I think multiple 'with:' in the same scope should 
> have the equal precedence.
> 
> '''
> enum E1{ A,B }
> 
> enum E2{ B,C }
> 
> {
>    with (E1):
>    B;  // E1.B
> 
>    with (E2):
> 
>    A;  // E1.A
>    C;  // E2.C
>    B;  // this should be error because 2 matched symbols 'E1.B' and 'E2.B'
> }
> '''


The example is equivalent to:
```
enum E1{ A,B }

enum E2{ B,C }

{
    with (E1)
    {
      B;  // E1.B

      with (E2)
      {
        A;  // E1.A
        C;  // E2.C
        B;  // (*)
      }
    }
}
'''
and B should resolve as E2.B because of the usual scoping rules. Changing the 
scoping rules would be different from other uses of : that introduce scope.



More information about the dip.development mailing list