digitalmars.D.bugs - [Issue 11244] New: Invalid warning about slice assignment
- d-bugmail puremagic.com (35/35) Oct 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
- d-bugmail puremagic.com (11/11) Oct 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
- d-bugmail puremagic.com (11/13) Oct 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
- d-bugmail puremagic.com (10/20) Oct 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
- d-bugmail puremagic.com (29/29) Oct 14 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
- d-bugmail puremagic.com (11/11) Oct 16 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
- d-bugmail puremagic.com (9/9) Oct 20 2013 http://d.puremagic.com/issues/show_bug.cgi?id=11244
http://d.puremagic.com/issues/show_bug.cgi?id=11244
Summary: Invalid warning about slice assignment
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: rejects-valid
Severity: regression
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: code benjamin-thaut.de
PDT ---
Created an attachment (id=1261)
repro case
Starting with dmd 2.063 it is no longer possible to create user defined types
that behave exactly like build in types when it comes to slice assignment.
Creating a user defined type with a propper slice operator which returns the
slice of an array and then assignen that slice to an array will result in a
warning:
repro.d(20): Warning: explicit element-wise assignment copy[] = (s.opSlice())[]
is better than copy[] = s.opSlice()
The compiler does not seem to recognize the use of the slice operator here
because tha analysis is done after rewriting the slice operator into the call
to opSlice. This is especially anoying in generic code where a workaround like
this has to be used to avoid the warning:
static if(isArray!typeof(a))
copy[] = a[];
else
copy[] = a[][];
See attached repro case.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 13 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11244
monarchdodra gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |monarchdodra gmail.com
Probably related:
http://d.puremagic.com/issues/show_bug.cgi?id=11244
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 13 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11244
9999 <mailnew4ster gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mailnew4ster gmail.com
Probably related:
http://d.puremagic.com/issues/show_bug.cgi?id=11244
You put me in an infinite loop.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 13 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11244Probably related: http://d.puremagic.com/issues/show_bug.cgi?id=11244You put me in an infinite loop.I meant: http://d.puremagic.com/issues/show_bug.cgi?id=11228 Sorry. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------Probably related: http://d.puremagic.com/issues/show_bug.cgi?id=11244You put me in an infinite loop.
Oct 13 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11244
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla digitalmars.com
15:17:19 PDT ---
The repro case:
-------------------------
struct SimpleWrapper
{
int[] m_data;
this(int[] data)
{
m_data = data;
}
ref int[] opSlice()
{
return m_data;
}
}
void main(string[] args)
{
auto s = SimpleWrapper([1, 2, 3, 4]);
auto copy = new int[4];
copy[] = s[];
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 14 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11244
Kenji Hara <k.hara.pg gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |pull
PR to disable the feature that had proposed and implemented by issue 7444.
https://github.com/D-Programming-Language/dmd/pull/2673
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 16 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11244
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 20 2013









d-bugmail puremagic.com 