[Issue 17766] Wrong choice of generic mutable/const/immutable methods

2022-12-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17766

Iain Buclaw  changed:

   What|Removed |Added

   Priority|P1  |P2

--


[Issue 17766] Wrong choice of generic mutable/const/immutable methods

2019-04-12 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17766

Илья Ярошенко  changed:

   What|Removed |Added

   Severity|normal  |major

--


[Issue 17766] Wrong choice of generic mutable/const/immutable methods

2018-10-22 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17766

alexandru.ermic...@gmail.com changed:

   What|Removed |Added

 CC||alexandru.ermic...@gmail.co
   ||m

--- Comment #1 from alexandru.ermic...@gmail.com ---
This is not the only case, here is another case of wrong selection:

--
class Mquartz(T, Z) {
Z pass(T component) const {
"Mutable pass".writeln;
return component.z;
}
const(Z) pass(const T component) const {
"Const pass".writeln;
return component.z;
}
const(Z) pass(immutable T component) const {
"Immutable pass".writeln;
return component.z;
}
const(Z) pass(inout T component) const {
"Inout pass".writeln;
return component.z;
}
}

struct V {
int z;
}

void main() {

auto m = new Mquartz!(V, typeof(V.z));

// V v = V(21);
// writeln(m.pass(v));
writeln(m.pass(V(20)));
writeln(m.pass(const(V)(20)));
writeln(m.pass(immutable(V)(20)));
writeln(m.pass(inout(V)(20)));
}
-
Current logic will select only const version with const argument instead of
selecting right ones:
-
Const pass
20
Const pass
20
Const pass
20
Const pass
20
-
The overload selection logic works as expected only if m is const, then
response will as expected:
-
Mutable pass
20
Const pass
20
Immutable pass
20
Inout pass
20
-

--


[Issue 17766] Wrong choice of generic mutable/const/immutable methods

2017-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17766

ZombineDev  changed:

   What|Removed |Added

 CC||petar.p.ki...@gmail.com

--


[Issue 17766] Wrong choice of generic mutable/const/immutable methods

2017-08-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17766

ag0ae...@gmail.com changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||ag0ae...@gmail.com

--