June 16, 2022 [Issue 23191] New: [dip1000] scope parameter can be returned in @system code | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=23191 Issue ID: 23191 Summary: [dip1000] scope parameter can be returned in @system code Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: dkorpel@live.nl `scope` checks are only enabled in @safe code because they might have false positives, and we don't want to break valid @system code, where we trust the programmer to get it right. However, blatantly returning a `scope` parameter could still be made an error. This is useful since @system is still the default and `scope` may be hidden behind `in`. ``` int* f(scope int* x) { return x; } const(int)* f(in int* x) // with -preview=in, it means `const scope` { return x; // may look innocuous } ``` This came up in the news group: https://forum.dlang.org/post/t7rfdm$1jjc$1@digitalmars.com https://forum.dlang.org/post/t88iuv$mbb$1@digitalmars.com -- |
Copyright © 1999-2021 by the D Language Foundation