https://issues.dlang.org/show_bug.cgi?id=24705
Issue ID: 24705
Summary: Arguments of synchronized method are unintentionally
treated as shared with -preview=nosharedaccess
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
The following code should compile without error even with
-preview=nosharedaccess, but in fact the argument `int n` is treated as shared,
resulting in an error.
I have confirmed that all dmd compilers from version 2.088.1 to 2.100.2 (and
also in the current nightly) have the same bug.
```d
// $ dmd test.d -preview=nosharedaccess
class MyClass
{
synchronized void foo(int n)
{
// Error: direct access to shared `n` is not allowed, see `core.atomic`
int a = n;
}
}
void main() {}
```
--