Bug 1912 – Error without line number (Tuple, invalid value argument)
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2008-03-12T10:14:00Z
Last change time
2015-06-09T01:14:38Z
Keywords
diagnostic
Assigned to
bugzilla
Creator
webmaster
Comments
Comment #0 by webmaster — 2008-03-12T10:14:47Z
The code below actually has two problems with the error messages produced.
This bug is to report the fact that the first error message does not have a line number or file listed.
dmd 2.012, Linux
BEGIN MODULE "a.d"
import b;
import std.stdio;
template typeof_each(T,TPL...)
{
static if(TPL.length == 0)
alias Tuple!(typeof(T)) typeof_each;
else
alias Tuple!(typeof(T), typeof_each!(TPL)) typeof_each;
}
template typeid_each(T,TPL...)
{
static if(TPL.length == 0)
alias Tuple!(typeid(T)) typeid_each;
else
alias Tuple!(typeid(T), typeid_each!(TPL)) typeid_each;
}
void foo(ARGS_TPL...)(ARGS_TPL args)
{
writefln("", typeid_each!(typeof_each!(ARGS_TPL)));
}
void bar()
{
foo(',' , ',');
}
BEGIN MODULE "b.d"
template Tuple(TPL...)
{
alias TPL Tuple;
}
END CODE
COMPILER OUTPUT
Error: expression & _D10TypeInfo_a6__initZ is not a valid template value argument
b.d(16): template instance b.Tuple!(& _D10TypeInfo_a6__initZ) error instantiating
Comment #1 by clugdbug — 2008-06-19T13:47:29Z
Reduced test case. Changed title.
---
template Tuple(T...) {
alias T Tuple;
}
auto K = Tuple!(typeid(char));
---
Error: expression & D10TypeInfo_a6__initZ is not a valid template value argument
a.d(7): template instance a.Tuple!(& D10TypeInfo_a6__initZ) error instantiating
Comment #2 by clugdbug — 2008-07-09T07:14:00Z
Fixed DMD1.032
Comment #3 by webmaster — 2008-07-09T14:28:05Z
In my example code, the two original errors have gone away. There is a new error present, but it has a line number. I have not yet determined whether the new error is a problem in dmd or in my code. If it turns out to be DMD, I will open a new Bugzilla.
So, I agree that this bug is fixed.