digitalmars.D.bugs - [Issue 18282] New: Assignment of local variable to `scope` variable
- d-bugmail puremagic.com (39/39) Jan 22 2018 https://issues.dlang.org/show_bug.cgi?id=18282
https://issues.dlang.org/show_bug.cgi?id=18282 Issue ID: 18282 Summary: Assignment of local variable to `scope` variable not recognized by compiler Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: slavo5150 yahoo.com void main() safe { string foo = "foo"; scope string*[] ls; ls ~= &foo; } Compile with `-dip1000` onlineapp.d(5): Error: reference to local variable foo assigned to non-scope ls https://run.dlang.io/is/ecYAKZ The compiler doesn't seem to recognize that ls is attributed with `scope`. However due to the way D's attributes are parsed, I'm not sure if it should actually be `scope string*[]`, `scope(string*)[]`, or `scope(string*[])`. Anyway, if you use `scope()` (i.e. with parens) the compiler confuses it with `scope(exit)` and friends. void main() safe { string foo = "foo"; scope(string*[]) ls; ls ~= &foo; } Compile with `-dip1000` onlineapp.d(4): Error: valid scope identifiers are exit, failure, or success, not string https://run.dlang.io/is/ecYAKZ --
Jan 22 2018