January 12, 2012 [Issue 7279] New: Inconsistent overloading between arrays and scalars | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=7279 Summary: Inconsistent overloading between arrays and scalars Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: verylonglogin.reg@gmail.com --- Comment #0 from Denis <verylonglogin.reg@gmail.com> 2012-01-12 19:34:40 MSK --- --- void f(int[]) { assert(0); } void f(const int[]) { } void g(int[]) { assert(0); } void g(const(int)[]) { } void h(int) { assert(0); } void h(const int) { } void main() { immutable arr = [5]; f(arr); // Compiles g(arr); // Compiles immutable n = 5; h(n); // Error: ...matches both... } --- If f(arr) and g(arr) compiles, h(n) should compiles too. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 23, 2012 [Issue 7279] Inconsistent overloading between arrays and scalars | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis | http://d.puremagic.com/issues/show_bug.cgi?id=7279 Kenji Hara <k.hara.pg@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID --- Comment #1 from Kenji Hara <k.hara.pg@gmail.com> 2012-01-23 04:48:55 PST --- int[] is a value with mutable indirection, so copy conversion from immutable int[] to int[] is invalid. Then the callings of f and g with arr are solved with no ambiguous. But, immutable int is a value without mutable indirection, so copy conversion from immutable int to int is *valid*. Then callings of h makes ambiguous with the two const-conversions, immutable int -> int and immutable int -> const int. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation