https://issues.dlang.org/show_bug.cgi?id=19969
Issue ID: 19969
Summary: Unhelpful error when attempting (incorrectly) to
append to a string
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
void main() {
string s;
s += "foo"; // Error: slice s is not mutable
}
Of course, the user meant to use ~=, but many other languages use += so this
will be a common occurrence. An error is expected here, but erroring on
mutability is unhelpful. It's also incorrect since the slice *is* mutable (even
though the elements are not).
Note, with a mutable string, you get a more helpful error:
void main() {
char[] s;
s += "foo"; // Error: invalid array operation s += "foo" (possible missing
[])
}
The enhancement request here is for a better error. Preferably something
mentioning that the operation is invalid.
--