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

          Issue ID: 20326
           Summary: stringof on opaque type results in forward reference
                    error
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nob...@puremagic.com
          Reporter: moonlightsenti...@disroot.org

`T.stringof` causes a forward reference error if T is an opaque type
(class/interface/union/struct without definition):

-------------------------------------
test.d:

class C;
static assert(C.stringof == "C");
// test.d(1): Error: class test.C is forward referenced when looking for
stringof
// test.d(2):        while evaluating: static assert("C" == "C")

interface I;
static assert(I.stringof == "I");
test.d(4): Error: interface test.I is forward referenced when looking for
stringof
test.d(5):        while evaluating: static assert("I" == "I")

union U;
static assert(U.stringof == "U");
test.d(7): Error: union test.U is forward referenced when looking for stringof
test.d(8):        while evaluating: static assert("U" == "U")

struct S;
static assert(S.stringof == "C");
test.d(10): Error: struct test.S is forward referenced when looking for
stringof
test.d(11):        while evaluating: static assert("S" == "C")

--

Reply via email to