July 06, 2023 [Issue 24035] New: Changing this for classes is allowed in contracts | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=24035 Issue ID: 24035 Summary: Changing this for classes is allowed in contracts Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: tim.dlang@t-online.de Pull request https://github.com/dlang/dmd/pull/15389 for issue 24024 allows to modify `this` for classes inside functions. This is now also allowed inside contracts, which is inconsistent with other parameters. import std.stdio; class C { void f(int i) in { this = null; // OK //i = 5; // Error: cannot modify parameter `i` in contract } do { writeln(cast(void*)this); // prints null } } void main() { C c = new C; c.f(1); } -- |
Copyright © 1999-2021 by the D Language Foundation