digitalmars.D.bugs - [Issue 4662] New: Array ops on const arrays
- d-bugmail puremagic.com (27/27) Aug 17 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (10/10) Jan 27 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (14/14) Jan 27 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (10/10) Jan 28 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (12/12) Jul 14 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (7/7) Jul 14 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (14/14) Jul 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (7/21) Jul 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (10/10) Jul 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
- d-bugmail puremagic.com (14/20) Jul 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4662
http://d.puremagic.com/issues/show_bug.cgi?id=4662
Summary: Array ops on const arrays
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: bearophile_hugs eml.cc
This D2 program shows two problems (dmd 2.048):
void foo(const double[] arr1) {
arr1[] += 1; // line 2, no error here
double[] arr2;
arr1[] += arr2[]; // line 4, Error here
}
void main() {}
The first problem is at line 2, where the const nature of arr1 is ignored.
The second problem is at line 4, that generates a wrong error message:
test.d(4): Error: invalid array operation arr1[] += cast(const(double[]))arr2[]
(did you forget a [] ?)
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 17 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4662
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dsimcha yahoo.com
*** Issue 7286 has been marked as a duplicate of this issue. ***
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 27 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |accepts-invalid
CC| |yebblies gmail.com
Platform|x86 |All
AssignedTo|nobody puremagic.com |yebblies gmail.com
OS/Version|Windows |All
Looks like the fix for issue 5284 only got assignment.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 27 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
https://github.com/D-Programming-Language/dmd/pull/648
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 28 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662 Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/e917e1e404f8dc6b3440788d40fcf936c51bdf57 Fix Issue 4662 - Array ops on const arrays For BinAssignExp, check that the lhs is assignable or mutable. https://github.com/D-Programming-Language/dmd/commit/738114f00b12726a14fb4a65abe825957f82875d Issue 4662 - Array ops on const arrays -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 14 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662 Additional fix for yebblies's patch: https://github.com/D-Programming-Language/dmd/pull/1046 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 14 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662
The two problems of the example seems fixed. Now this program:
void main() {
const int[] a = new int[5];
int[] b = new int[5];
b[] += a[];
}
Gives:
test.d(4): Error: slice cast(const(int)[])b[] is not mutable
I think is a rejects-valid.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 15 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662
The two problems of the example seems fixed. Now this program:
void main() {
const int[] a = new int[5];
int[] b = new int[5];
b[] += a[];
}
Gives:
test.d(4): Error: slice cast(const(int)[])b[] is not mutable
I think is a rejects-valid.
Yes, my mistake.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 15 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662 Ok, not really my mistake, but a problem with typeMerge or the use of typeMerge in BinAssignExp::semantic. It doesn't make any sense for a BinAssignExp or a BinAssignExp::e1 to be type-merged with the rhs, ever. Bearophile, could you please open another bug for this? It is a regression because this bug previously hid the error. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 15 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4662
bearophile_hugs eml.cc changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
Ok, not really my mistake, but a problem with typeMerge or the use of typeMerge
in BinAssignExp::semantic. It doesn't make any sense for a BinAssignExp or a
BinAssignExp::e1 to be type-merged with the rhs, ever.
Bearophile, could you please open another bug for this? It is a regression
because this bug previously hid the error.
OK, thank you for answering.
I close this bug report as fixed, and I have opened a new regression, Issue
8390
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 15 2012









d-bugmail puremagic.com 