[Issue 1611] New: State-losing implicit conversions are allowed
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Oct 24 10:16:08 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1611
Summary: State-losing implicit conversions are allowed
Product: D
Version: 2.007
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: andrei at metalanguage.com
In the grand tradition of C, many state-losing conversions among integral types
are implicit. This emasculates integral types and allows many bugs go by
unnoticed.
The following program should print nothing:
import std.stdio;
import std.typetuple;
void main()
{
alias TypeTuple!(byte, ubyte, short, ushort, int, uint, long, ulong,
char, wchar, dchar)
AllIntegrals;
foreach (T1; AllIntegrals)
{
foreach (T2; AllIntegrals)
{
static if (is(T1 : T2) && T1.sizeof > T2.sizeof)
writeln(T1.stringof, " -> ", T2.stringof);
}
}
}
It currently prints 45 lines.
--
More information about the Digitalmars-d-bugs
mailing list