www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 23152] New: Bad diagnostic for variable used as a type

https://issues.dlang.org/show_bug.cgi?id=23152

          Issue ID: 23152
           Summary: Bad diagnostic for variable used as a type
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: diagnostic
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: b2.temp gmx.com

The error for

```
struct S1 {}
struct S2 { S1 S1; }  
```

is

 a7F65CC3F01F0.d:2:16: Error: circular reference to variable
`a7F65CC3F01F0.S2.S1`
I believe the right error should be
 a7F65CC3F01F0.d:2:16: Error: variable `a7F65CC3F01F0.S2.S1` is used as a type
A quick verification on run.dlang.io shows that this was the case in the past: --- Up to 2.062 : Failure with output: Error: unrecognized switch '-main' 2.063 to 2.064 : Failure with output: ----- onlineapp.d(2): Error: circular reference to 'onlineapp.S2.S1' onlineapp.d(2): Error: S1 is used as a type ----- 2.065.0: Failure with output: onlineapp.d(2): Error: circular reference to 'onlineapp.S2.S1' 2.066.1 to 2.071.2: Failure with output: ----- onlineapp.d(2): Error: circular reference to 'onlineapp.S2.S1' onlineapp.d(2): Error: S1 is used as a type ----- 2.072.2 to 2.078.3: Failure with output: onlineapp.d(2): Error: circular reference to variable 'onlineapp.S2.S1' Since 2.079.1: Failure with output: onlineapp.d(2): Error: circular reference to variable `onlineapp.S2.S1` --- but since 2.072.2 among the two messages only the less relevant is output --
Jun 01 2022