Related to issue 11211
struct S {
@disable this();
bool cted;
this(int x) {
cted = true;
}
void foo() {
assert(cted);
}
}
void bar(A a) {
a.s.foo();
}
class A {
S s;
this() {
bar(this); // shouldn't compile
s = S(1);
}
}
void main() {
auto a = new A;
}
Passing 'this' outside the constructor should be disallowed before structs with disabled constructors are initialized.
I could go on with bug reports but it is obvious that there is no good solution in the face of current compilation model.
Comment #1 by robert.schadek — 2024-12-13T18:12:30Z