Thread overview
[Issue 19616] Result type of ternary operator connecting pointers/slices of class handles broken
[Issue 19616] Result type of tenery operator connecting pointers/slices of class handles broken
Jan 26, 2019
Bolpat
Jan 26, 2019
ag0aep6g
Jan 26, 2019
ag0aep6g
Jun 06, 2019
Bolpat
Jan 21, 2021
Bolpat
Dec 17, 2022
Iain Buclaw
January 26, 2019
https://issues.dlang.org/show_bug.cgi?id=19616

Bolpat <qs.il.paperinik@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|enhancement                 |critical

--
January 26, 2019
https://issues.dlang.org/show_bug.cgi?id=19616

ag0aep6g <ag0aep6g@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |accepts-invalid,
                   |                            |rejects-valid, safe
                 CC|                            |ag0aep6g@gmail.com
           Hardware|x86                         |All
                 OS|Windows                     |All

--
January 26, 2019
https://issues.dlang.org/show_bug.cgi?id=19616

ag0aep6g <ag0aep6g@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Result type of tenery       |Result type of ternary
                   |operator connecting         |operator connecting
                   |pointers/slices of class    |pointers/slices of class
                   |handles broken              |handles broken

--
June 06, 2019
https://issues.dlang.org/show_bug.cgi?id=19616

--- Comment #1 from Bolpat <qs.il.paperinik@gmail.com> ---
The same is true for interfaces:

interface I { }
interface A : I { }
bool condValue;
bool cond() { return condValue; }

pragma(msg, typeof(cond() ? &a : cond() ? &b : &i)); // I*
I* iPtr = cond() ? &a : &i; // fails with error message: cannot assign I* to I*
const(I)* iPtr = cond() ? &a : &i; // succeeds
(cond() ? a : i) = i; // succeeds and breaks @safe

--
January 21, 2021
https://issues.dlang.org/show_bug.cgi?id=19616

Bolpat <qs.il.paperinik@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |qs.il.paperinik@gmail.com

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=19616

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P2

--