Thread overview | ||||||
---|---|---|---|---|---|---|
|
September 11, 2009 [Issue 3311] New: std.range.chain shouldn't have opIndexAssign if arguments aren't mutable. | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3311 Summary: std.range.chain shouldn't have opIndexAssign if arguments aren't mutable. Product: D Version: 2.032 Platform: Other OS/Version: Windows Status: NEW Keywords: patch Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody@puremagic.com ReportedBy: dsimcha@yahoo.com --- Comment #0 from David Simcha <dsimcha@yahoo.com> 2009-09-11 07:50:39 PDT --- import std.range; void main() { immutable(uint)[] foo = [1,2,3,4,5]; immutable(uint)[] bar = [6,7,8,9,10]; auto baz = chain(foo, bar); } C:\dmd2\windows\bin\..\..\src\phobos\std\range.d(930): Error: this._input._field_field_0[index] isn't mutable C:\dmd2\windows\bin\..\..\src\phobos\std\range.d(930): Error: this._input._field_field_1[index] isn't mutable This is too simple to fix to do a formal patch, but here's an "inline patch": /**Tests whether a type is mutable, i.e. not const or immutable. This is only * tested at the shallowest level, not transitively. For example, an * immutable(uint)[] would be considered mutable.*/ template isMutable(T) { enum isMutable = !is(T == const(T)); } unittest { static assert(isMutable!(ElementType!(uint[]))); static assert(isMutable!(ElementType!(float[]))); static assert(!isMutable!(ElementType!(string))); static assert(isMutable!(ElementType!(string[]))); static assert(!isMutable!(ElementType!(const(char)[]))); static assert(isMutable!string); } And in std.range.chainImpl: static if (allSameType) void opIndexAssign(ElementType v, uint index) should be changed to static if (allSameType && isMutable!(ElementType)) void opIndexAssign(ElementType v, uint index) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
September 11, 2009 [Issue 3311] std.range.chain shouldn't have opIndexAssign if arguments aren't mutable. | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Simcha | http://d.puremagic.com/issues/show_bug.cgi?id=3311 Andrei Alexandrescu <andrei@metalanguage.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |andrei@metalanguage.com AssignedTo|nobody@puremagic.com |andrei@metalanguage.com -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 01, 2009 [Issue 3311] std.range.chain shouldn't have opIndexAssign if arguments aren't mutable. | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Simcha | http://d.puremagic.com/issues/show_bug.cgi?id=3311 David Simcha <dsimcha@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED --- Comment #1 from David Simcha <dsimcha@yahoo.com> 2009-12-01 06:21:48 PST --- Fixed SVN. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 06, 2009 [Issue 3311] std.range.chain shouldn't have opIndexAssign if arguments aren't mutable. | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Simcha | http://d.puremagic.com/issues/show_bug.cgi?id=3311 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@digitalmars.com --- Comment #2 from Walter Bright <bugzilla@digitalmars.com> 2009-12-06 00:50:58 PST --- Fixed dmd 2.037 -- 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