[Issue 23128] New: Attributes inference breaks down with cycles

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 20 12:35:01 UTC 2022


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

          Issue ID: 23128
           Summary: Attributes inference breaks down with cycles
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: kinke at gmx.net

```
struct S {
    int x;
    int getX()() { return !x ? getY() : x; }
    int getY()() { return !x ? -1 : getX(); }
}

static assert(__traits(compiles, (S s) @safe => s.getX())); // fails
```

@safety of getX() depends on getY(), and vice-versa. The compiler currently
simply falls back to @system. It should probably try harder to resolve such
cyclic dependencies.

--


More information about the Digitalmars-d-bugs mailing list