Thread overview
[Issue 23760] Error: unknown
Mar 07, 2023
RazvanN
Mar 07, 2023
RazvanN
Mar 07, 2023
RazvanN
Mar 07, 2023
Dlang Bot
Mar 08, 2023
Dlang Bot
Mar 16, 2023
Dlang Bot
March 07, 2023
https://issues.dlang.org/show_bug.cgi?id=23760

RazvanN <razvan.nitu1305@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |razvan.nitu1305@gmail.com
           Severity|normal                      |critical

--
March 07, 2023
https://issues.dlang.org/show_bug.cgi?id=23760

--- Comment #1 from RazvanN <razvan.nitu1305@gmail.com> ---
A reduced version:

class JavaBridge(Class)
{
    static if(is(typeof(__traits(getMember, Class, "state")))) {}
    alias T = __traits(getOverloads, Class, "state");
}

class JavaClass(CRTP)
{
    JavaBridge!(CRTP) _javaDBridge;
}

class A : JavaClass!A
{
    State* state;
}

--
March 07, 2023
https://issues.dlang.org/show_bug.cgi?id=23760

--- Comment #2 from RazvanN <razvan.nitu1305@gmail.com> ---
The problem seems to stem from the fact that the first time `State` is analyzed as a type is when the type is requested via `typeof`. In that context, semantic analysis is done with gagged errors, therefore you don't get the user friendly error message. Next time it is analyzed is when traits(overloads) is requested on `state`. By that time the compiler just sees that `state` has an erroneous type but doesn't know the reason.

--
March 07, 2023
https://issues.dlang.org/show_bug.cgi?id=23760

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
@RazvanN7 created dlang/dmd pull request #14963 "Fix Issue 23760 - Unknown error for type used with traits(getOverloads)" fixing this issue:

- Fix Issue 23760 - Unknown error for type used with traits(getOverloads)

https://github.com/dlang/dmd/pull/14963

--
March 08, 2023
https://issues.dlang.org/show_bug.cgi?id=23760

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #14963 "Fix Issue 23760 - Unknown error for type used with traits(getOverloads)" was merged into stable:

- d99e6d2cd1aef06a00b595152f0b04e7fb736d1f by RazvanN7:
  Fix Issue 23760 - Unknown error for type used with traits(getOverloads)

https://github.com/dlang/dmd/pull/14963

--
March 16, 2023
https://issues.dlang.org/show_bug.cgi?id=23760

--- Comment #5 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #14992 "merge stable" was merged into master:

- 2a4d6d286fa27f8bafa0d4d628411435da16677f by Razvan Nitu:
  Fix Issue 23760 - Unknown error for type used with traits(getOverloads)
(#14963)

https://github.com/dlang/dmd/pull/14992

--