digitalmars.D.bugs - [Issue 11986] New: IFTI type deduction / implicit conversion does not work for null literal
- d-bugmail puremagic.com (47/47) Jan 24 2014 https://d.puremagic.com/issues/show_bug.cgi?id=11986
https://d.puremagic.com/issues/show_bug.cgi?id=11986 Summary: IFTI type deduction / implicit conversion does not work for null literal Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: andrej.mitrovich gmail.com 12:35:52 PST --- ----- class C(T) { } void foo(T)(C!T a, C!T b) { } void main() { C!int c; foo(c, null); } ----- test.d(10): Error: template test.foo cannot deduce function from argument types !()(C!int, typeof(null)), candidates are: test.d(5): test.foo(T)(C!T a, C!T b) null should be implicitly convertible to C!T since it's a reference type. Note that the programmer can't simply introduce another templated type parameter since the parameter might end up being typed as typeof(null), which is problematic. For example: ----- class C(T) { void bar() { } } void foo(T, T2)(C!T a, T2 b) if (is(T2 : C!T)) { b.bar(); // Error: no property 'bar' for type 'typeof(null)' } void main() { C!int c; foo(c, null); } ----- So I think the OP case is rejects-valid. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 24 2014