Deduction regression or improvement?

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Tue Mar 8 14:35:57 PST 2016


On Tue, Mar 08, 2016 at 09:22:35PM +0000, Johan Engelen via Digitalmars-d wrote:
> Hi all,
>   Should the following compile or not?
> 
> auto foo(T)(T start, T end) {}
> void main() {
>     const SomeStruct a;
>     SomeStruct b;
>     foo(a,b);
> }
> See http://dpaste.dzfl.pl/15581af64747
> 
> DMD 2.068.2 compiles and does not complain.
> DMD 2.069.2 gives deduction error: "cannot deduce function from argument
> types !()(const(SomeStruct), SomeStruct),   candidates are:  foo(T)(T start,
> T end)"
> 
> Is this a regression or intended?  I did not find something about it
> in the release notes.
[...]

IMO, this *should* compile and infer T == const(SomeStruct) as the
common type of a and b.  But I'm not sure whether or not this is a
regression.


T

-- 
If the comments and the code disagree, it's likely that *both* are wrong. -- Christopher


More information about the Digitalmars-d mailing list