[Issue 24562] inout on the copy constructor makes it so that a normal opAssign does not work with multiple layers of objects

2024-05-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24562

Jonathan M Davis  changed:

   What|Removed |Added

   Severity|blocker |major

--- Comment #1 from Jonathan M Davis  ---
Okay. In our current situation we were able to work around the issue via
explicit opAssigns, so I reduce this from being marked as a blocker, but in
cases where you're dealing with templated code outside your control, that won't
work. So, this is still a major issue.

--


[Issue 24567] New: In interpolation token strings: "$(expression)" is not treated as interpolation expression

2024-05-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24567

  Issue ID: 24567
   Summary: In interpolation token strings: "$(expression)" is not
treated as interpolation expression
   Product: D
   Version: D2
  Hardware: x86
OS: Windows
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: weltenst...@gmail.com

The following is supposed to fill the members of `test` with the content of
`assocarray`:


import std;

void main(){

struct Test {
int a;
}
Test test;
auto assocarray = [
"a": 1
];

static foreach(member; __traits(allMembers, Test)) {
mixin(iq{
writeln("$(member)");
test.$(member) = assocarray.get("$(member)", -1);
}.text);
}

writeln(test.a);
assert(test.a == 1);

}


Output:

$(member)
-1
core.exception.AssertError@.\test_token_interpolation.d(22): Assertion failure


It looks like token strings are "tokenized" before interpolation and not after,
which results in "string" tokens being completely ignored for interpolation.

--


[Issue 24565] out contract variable is implicitly const

2024-05-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24565

timon.g...@gmx.ch changed:

   What|Removed |Added

 CC||timon.g...@gmx.ch

--- Comment #2 from timon.g...@gmx.ch ---
FWIW, I would prefer fixing the implementation instead of documenting this
annoying behavior that makes contracts less useful.

--


[Issue 24565] out contract variable is implicitly const

2024-05-25 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24565

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@ntrel created dlang/dlang.org pull request #3836 "[spec/function] Improve
contract docs" fixing this issue:

- [spec/function] Improve contract docs

  Move in/out grammar to respective subheadings.
  Use list for contract expression arguments.
  Fix grammar for invalid state sentences.
  Fix wording of postcondition best practice.
  Mention postcondition identifier is implicitly const.
  Add anchor for example subheading.

  Fix Bugzilla 24565 - out contract variable is implicitly const

https://github.com/dlang/dlang.org/pull/3836

--