--- Comment #1 from Kenji Hara <> 2012-01-26 04:30:30 PST ---
My understanding is, each inout deduction from a function argument just like
pattern matching.

Parameter type:   inout(          int *)*
 Argument type: mutable(immutable(int)*)*  // mutable(...) is pseudo modifier
--> 'inout' is deduced to 'mutable'.

I think if we allow this kind of deduction, there is an ambiguous case:

inout(int) foo(inout(int**) x){ return 0; }
void main()
    immutable(int*)* x;
    // inout is deduced to imuutable or const? Both conversions
    //  immutable(int*)* to immutable(int**)
    //  immutable(int*)* to     const(int**)
    // are valid, so it is ambiguous.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to