https://d.puremagic.com/issues/show_bug.cgi?id=11915


Maxim Fomin <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]


--- Comment #3 from Maxim Fomin <[email protected]> 2014-01-13 10:25:43 PST 
---
(In reply to comment #1)
> (In reply to comment #0)
> > This code illustrates the inconsistency:
> > ---
> > void f(int) { }
> > void f(ref int) { }
> > 
> > void g(int) { }
> > void g(out int) { }
> > 
> > void main()
> > {
> >     const int n = 1;
> >     f(n); // ok, selects `void f(int)`
> >     g(n); // Error: constant 1 is not an lvalue
> > }
> > ---
> > 
> > This is either "accepts-invalid" or "rejects-valid" bug.
> > 
> > 
> > The issue is segregated from Issue 11857.
> 
> This is diagnostic bug. With g(n) case, it should provide more better error
> message, like:
> 
> Error: out paraemter does not match non-mutable lvalue 'n' of type 'const int'

Why? Either both should be rejected because lvalue arguements are unsuccessfuly
matched to lvalue parameters, or should be both matched to (int) version
because compiler is not stupid to do what is described above.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to