February 27, 2021 [Issue 21667] New: scope parameter causes 'no size because of forward references' | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=21667 Issue ID: 21667 Summary: scope parameter causes 'no size because of forward references' Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: rejects-valid Severity: normal Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: dkorpel@live.nl I changed a parameter to have the `scope` storage class, and suddenly got an error that didn't follow from the change: "no size because of forward references". Test case: ``` struct M { F.Type f; } struct F { enum Type {a} void foo(scope M m) {} } ``` Without the `scope`, it compiles. I think the problem is that `scope` makes the compiler check whether type M has pointers, calling `determineFields` on M, which fails because it wants semantic analysis of F to be done for F.Type. -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply