Thread overview
[Issue 353] New: null passed as a char[] template argument, concatenated with a string literal, is a non-constant expression
Sep 16, 2006
d-bugmail
Sep 20, 2006
Thomas Kuehne
Nov 25, 2006
d-bugmail
September 16, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=353

           Summary: null passed as a char[] template argument, concatenated
                    with a string literal, is a non-constant expression
           Product: D
           Version: 0.166
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: smjg@iname.com


----------
template Qwert(char[] yuiop) {
    const char[] Qwert = yuiop ~ "asdfg";
}

void main() {
    char[] hjkl = Qwert!(null);
}
----------
D:\My Documents\Programming\D\Tests\bugs\string_template7.d(2): non-constant expression null ~ "asdfg"
----------

No such error occurs if null is replaced by a string literal, or if line 2 is changed to

    const char[] Qwert = yuiop;

If, starting with the original code, hjkl is declared at module level, the error is doubled:

----------
template Qwert(char[] yuiop) {
    const char[] Qwert = yuiop ~ "asdfg";
}

char[] hjkl = Qwert!(null);
----------
D:\My Documents\Programming\D\Tests\bugs\string_template7a.d(5): non-constant
expression null ~ "asdfg"
D:\My Documents\Programming\D\Tests\bugs\string_template7a.d(2): non-constant
expression null ~ "asdfg"
----------

If hjkl is declared as const and at module level, then the error is tripled (at
lines 5, 2 and 2).


-- 

September 20, 2006
d-bugmail@puremagic.com schrieb am 2006-09-16:
> http://d.puremagic.com/issues/show_bug.cgi?id=353

> template Qwert(char[] yuiop) {
>     const char[] Qwert = yuiop ~ "asdfg";
> }
>
> void main() {
>     char[] hjkl = Qwert!(null);
> }
> ----------
> D:\My Documents\Programming\D\Tests\bugs\string_template7.d(2): non-constant expression null ~ "asdfg"
> ----------

<snip>

Added to DStress as http://dstress.kuehne.cn/compile/o/opCat_21_A.d http://dstress.kuehne.cn/compile/o/opCat_21_B.d http://dstress.kuehne.cn/compile/o/opCat_21_C.d http://dstress.kuehne.cn/compile/o/opCat_21_D.d http://dstress.kuehne.cn/compile/o/opCat_21_E.d http://dstress.kuehne.cn/compile/o/opCat_21_F.d http://dstress.kuehne.cn/compile/o/opCat_22_A.d http://dstress.kuehne.cn/compile/o/opCat_22_B.d http://dstress.kuehne.cn/compile/o/opCat_22_C.d http://dstress.kuehne.cn/compile/o/opCat_22_D.d http://dstress.kuehne.cn/compile/o/opCat_22_E.d http://dstress.kuehne.cn/compile/o/opCat_22_F.d

Thomas


November 25, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=353


bugzilla@digitalmars.com changed:

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




------- Comment #2 from bugzilla@digitalmars.com  2006-11-25 03:49 -------
Fixed DMD 0.175


--