http://d.puremagic.com/issues/show_bug.cgi?id=9198
Summary: Vararg functions don't respect IFTI rules Product: D Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: monarchdo...@gmail.com --- Comment #0 from monarchdo...@gmail.com 2012-12-23 01:49:23 PST --- I'm not sure *what* said rules are, but as observed here: https://github.com/D-Programming-Language/phobos/pull/1010#discussion_r2418181 The root issue is that IFTI should cast an immutable slice to a slice of immutables, but that doesn't happen with varargs: //---- import std.stdio; void foo1(Range)(Range) { writeln("Foo1: ", Range.stringof); } void foo2(Ranges...)(Ranges) { writeln("Foo2: ", Ranges[0].stringof); } void main() { immutable(int[]) a = [1, 2, 3]; foo1(a); foo2(a); } //---- Foo1: immutable(int)[] Foo2: immutable(int[]) //---- I'm not sure what the rules are, but I'd expect seeing something consistent in any case. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------