www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 22368] New: has[Unshared]Aliasing fails to instantiate for

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

          Issue ID: 22368
           Summary: has[Unshared]Aliasing fails to instantiate for
                    noreturn
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: moonlightsentinel disroot.org

The aliasing traits fail when instantiated with noreturn:

=====================================================

import std.traits;
static assert(!hasAliasing!noreturn);

std\meta.d-mixin-645(645): Error: template instance
`F!(__T27RepresentationTypeTupleImplTNnZ)` does not match template declaration
`RepresentationTypeTupleImpl(T)`
std\traits.d(2871): Error: template instance
`std.meta.staticMapMeta!(RepresentationTypeTupleImpl,
__T27RepresentationTypeTupleImplTNnZ)` error instantiating
std\traits.d(2802):        instantiated from here:
`RepresentationTypeTupleImpl!(noreturn)`
std\traits.d(2896):        instantiated from here:
`RepresentationTypeTuple!(noreturn)`
std\traits.d(3309):        instantiated from here: `hasRawAliasing!(noreturn)`
core\internal\traits.d(200):        ... (1 instantiations, -v to show) ...
std\traits.d(3209):        instantiated from here:
`anySatisfy!(hasAliasingImpl, noreturn)`
__stdin.d(2):        instantiated from here: `hasAliasing!(noreturn)`
__stdin.d(2):        while evaluating: `static assert(!hasAliasing!(noreturn))`

=====================================================

import std.traits;
static assert(!hasUnsharedAliasing!noreturn);



std\traits.d(3575): Error: cannot infer type from template instance
`pred!(noreturn)`, possible circular dependency
core\internal\traits.d(200): Error: template instance
`std.traits.pred!(noreturn)` error instantiating
std\traits.d(3430):        instantiated from here:
`anySatisfy!(hasUnsharedAliasingImpl, noreturn)`
__stdin.d(2):        instantiated from here: `hasUnsharedAliasing!(noreturn)`
__stdin.d(2):        while evaluating: `static
assert(!hasUnsharedAliasing!(noreturn))`

=====================================================

--
Oct 08 2021