[Issue 20315] New: checkaction=context fails for const(void[]) argument

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Oct 24 13:46:26 UTC 2019


          Issue ID: 20315
           Summary: checkaction=context fails for const(void[]) argument
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: druntime
          Assignee: nobody at puremagic.com
          Reporter: moonlightsentinel at disroot.org

The following unittest from object.d fails to compile with -unittest

@safe unittest
    // Bugzilla 14401
    static class X
        int a;

    assert(typeid(X).initializer is typeid(X).m_init);

src/core/internal/dassert.d(110): Error: cannot implicitly convert expression
`idup(s)` of type `immutable(void)[]` to `string`
src/core/internal/dassert.d(209): Error: template instance
`core.internal.dassert.miniFormat!(const(void)[])` error instantiating
src/core/internal/dassert.d(17):        instantiated from here:
src/object.d(1117):        instantiated from here: `_d_assert_fail!("is",
const(void)[], const(void)[])`

The is caused by miniFormat using string concenation when instantiated with
const(void[] == typeof(typeid(X).initializer)).


More information about the Digitalmars-d-bugs mailing list