Thread overview
[Issue 23791] Rvalue default argument for ref parameter gives misleading error
Mar 17, 2023
Paul Backus
Sep 09
Dlang Bot
March 17, 2023
https://issues.dlang.org/show_bug.cgi?id=23791

Paul Backus <snarwin+bugzilla@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
            Summary|Rvalue default argument for |Rvalue default argument for
                   |ref paramter gives          |ref parameter gives
                   |misleading error            |misleading error

--
September 09
https://issues.dlang.org/show_bug.cgi?id=23791

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

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

--- Comment #1 from Dlang Bot <dlang-bot@dlang.rocks> ---
@ntrel created dlang/dmd pull request #15596 "Fix isLvalue error message" fixing this issue:

- Fix isLvalue error message

  Requiring an lvalue is not the same as requiring modification.

  Fix Issue 23791 - Rvalue default argument for ref parameter gives misleading
error.

https://github.com/dlang/dmd/pull/15596

--
January 01
https://issues.dlang.org/show_bug.cgi?id=23791

Nick Treleaven <nick@geany.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |nick@geany.org
         Resolution|---                         |FIXED

--- Comment #2 from Nick Treleaven <nick@geany.org> ---
Fixed by https://github.com/dlang/dmd/pull/15793:

/home/nick/os/rval.d(1): Error: cannot create default argument for `ref` /
`out` parameter from constant `123`
/home/nick/os/rval.d(4): Error: cannot create default argument for `ref` /
`out` parameter from expression `S()` because it is not an lvalue

--