January 25, 2021 [Issue 21580] The D compiler adds an extra (void*) member in unittest | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21580 Simen Kjaeraas <simen.kjaras@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |simen.kjaras@gmail.com Resolution|--- |DUPLICATE --- Comment #1 from Simen Kjaeraas <simen.kjaras@gmail.com> --- This is mostly expected. When a nested struct has a method, that method has access to the context of the function in which it is defined, so you can do things like this: void fun() { int i = 0; struct S { void gun() { ++i; } } S s; s.gun(); assert(i == 1); } Since the nested struct may be passed to other functions or even returned from the function that created it, this context pointer needs to be embedded in the struct. Regardless, in your case the context pointer is strictly unnecessary, and could be elided. That makes this issue a duplicate of issue 10276. The workaround for this issue is to mark the struct as static. *** This issue has been marked as a duplicate of issue 10276 *** -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply