[Issue 16630] New: Compile errors with std.traits.arity and std.traits.ParameterStorageClassTuple

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Thu Oct 20 21:03:06 PDT 2016


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

          Issue ID: 16630
           Summary: Compile errors with std.traits.arity and
                    std.traits.ParameterStorageClassTuple
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: goldmax3000 at gmail.com

This code 

import std.traits;

class X
{
 @property auto prop() const
 {
  struct Iter {}      
  return Iter();
 }
}
pragma(msg, ParameterStorageClassTuple!(X.prop));

gives compile error:

/opt/compilers/dmd2/include/std/traits.d(1016): Error: string slice [1 .. 0] is
out of bounds
/opt/compilers/dmd2/include/std/traits.d(1016): Error: string slice [1 .. 0] is
out of bounds
/d57/f615.d(11): Error: template instance
std.traits.ParameterStorageClassTuple!(prop) error instantiating
/d57/f615.d(11):        while evaluating pragma(msg,
ParameterStorageClassTuple!(prop))

Similar error with pragma(msg, arity!(X.prop));

/opt/compilers/dmd2/include/std/traits.d(1699): Error: string index 0 is out of
bounds [0 .. 0]
/opt/compilers/dmd2/include/std/traits.d(1699): Error: string index 0 is out of
bounds [0 .. 0]
/opt/compilers/dmd2/include/std/traits.d(1751): Error: template instance
std.traits.functionLinkage!() error instantiating
/opt/compilers/dmd2/include/std/traits.d(970):        instantiated from here:
variadicFunctionStyle!(prop)
/opt/compilers/dmd2/include/std/traits.d(1756): Error: string index
18446744073709551593 is out of bounds [0 .. 0]
/opt/compilers/dmd2/include/std/traits.d(1756): Error: array index -23 is out
of bounds [0..0]
/d112/f0.d(11):        while looking for match for arity!(prop)
/d112/f0.d(11):        while evaluating pragma(msg, arity!(prop))

--


More information about the Digitalmars-d-bugs mailing list