https://issues.dlang.org/show_bug.cgi?id=23113
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |CTFE CC| |[email protected] --- Comment #1 from [email protected] --- reduced the example to this: void main() { { Tree tree = Tree(1); assert(tree.node is tree.node.self); // ok } { __gshared static Tree tree = Tree(1); assert(tree.node is tree.node.self); // fail } } struct Tree { Node* node; this(int) { node = new Node; node.set(); assert(node.self is node); // ok } } struct Node { Node* self; void set() { self = &this; } } "&this" inside a struct in CTFE seems to have a wrong value when converted to static data (it's correct if you check it with assert in CTFE but not if you check the value at runtime) --
