[Issue 22041] SumType assignments should work with pointers in @safe code

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jun 18 19:05:29 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=22041

Dlang Bot <dlang-bot at dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #1 from Dlang Bot <dlang-bot at dlang.rocks> ---
@ljmf00 created dlang/phobos pull request #8146 "sumtype: remove forced @system
for opAssign preventing @safe code" fixing this issue:

- sumtype: remove forced @system for opAssign preventing @safe code

  Fixes #22041 .

  D programming language is moving towards @safe code and introducing new
  @system code makes std.sumtype fundamentally useless when using it under
@safe
  code. Forcing @system when the users are using pointers is just wrong.

  The simple example to prove it is the following:

  ```d
  void main() @safe
  {
      int* thisIsNotUnsafe = new int;
  }
  ```

  Using pointers in D is not necessarily @system.

  Moreover, this code is preventing the following code to compile in @safe:

  ```d
  alias FooBar = SumType!string;
  auto foobar = FooBar("foo");
  foobar = FooBar("bar");
  ```

  Signed-off-by: Luís Ferreira <contact at lsferreira.net>

https://github.com/dlang/phobos/pull/8146

--


More information about the Digitalmars-d-bugs mailing list