Paul Backus
51a70ee267
Add sumtype to Phobos ( #7702 )
...
Add sumtype to Phobos
merged-on-behalf-of: unknown
2021-03-05 12:41:34 +01:00
Iain Buclaw
79ad118345
Remove tests for complex and imaginary types
2021-01-28 03:05:46 +01:00
Martin Kinkelin
1a459c5996
Get rid of std.conv.emplace[Ref](), use core[.internal].lifetime
...
The emplace() stuff was moved to druntime; for some reason, it's still
in Phobos.
I've diffed the two versions, and they are still almost identical (incl.
unittests); the druntime version appears to have seen some improvements
(e.g., forwarding r/lvalueness of the arguments) in the meantime.
2021-01-17 16:02:25 +01:00
Martin Kinkelin
f47abdc52b
std.variant: Make use of core.lifetime.copyEmplace() ( #7688 )
2020-11-04 12:18:02 +08:00
Simen Kjærås
6ee10a49a7
Fix issue 21253 - Can't compile Variant.visit!(...) with generic function
2020-10-31 02:53:54 +01:00
Imperatorn
2cd39dff61
Incorrect link to info about discriminating union
...
Previous link:
http://erdani.org/publications/cuj-04-2002.html = 404 Not found
New link:
http://erdani.org/publications/cuj-04-2002.php.html = 200 OK
2020-10-22 19:37:45 +09:00
MoonlightSentinel
e824871026
Make Phobos compilable with preview=fieldwise
2020-10-16 11:44:47 +02:00
MoonlightSentinel
c7e49f5afd
Fix 21231 - Unreachable warning for empty struct in VariantN...
...
... with preview=fieldwise.
Equality checks will never fail for instances of empty structs, hence
don't generate code checking `<` and `>` for them.
This was exposed by `-preview=fieldwise` which (as a side effect)
enables dmd to const-fold the aformentioned equality test in the
frontend.
2020-10-16 11:43:10 +02:00
Tomoya Tanjo
aa07861ec7
Fix Variant.opAssign
2020-10-14 21:34:31 +00:00
Tomoya Tanjo
cf9b0c7b0d
Fix issue 21296 - std.variant.Variant cannot be initialized with immutable AA
2020-10-07 15:08:01 +02:00
Andrei Alexandrescu
42138c021c
Replace Unqual-based idiom with immutable-based idiom ( #7576 )
...
Replace Unqual-based idiom with immutable-based idiom
merged-on-behalf-of: Andrei Alexandrescu <andralex@users.noreply.github.com>
2020-08-04 04:32:14 +02:00
Simen Kjærås
ea070e9a5c
Fix issue 21021 - std.variant confused by alias this when struct larger than maxDataSize
2020-07-07 12:32:14 +02:00
Geod24
04f3979317
Replace 'Issue XXX' with Bugzilla links
...
Make the links clickable, as was done in the DMD repository.
Also avoids any ambiguity w.r.t. where the issue is stored.
2020-04-13 16:28:09 +09:00
Bernhard Seckinger
2584fd837f
Fix Issue 15940 - ImplicitConversionTargets and class alias in struct
2019-12-10 15:29:18 +01:00
Martin Kinkelin
fe38be185b
Fix std.variant unittest
...
Accomodate for the fact that a `VariantN!24` without explicit allowed
types is at least `real` aligned, and that can be 8 on some platforms
(e.g., 32-bit Windows for LDC with 64-bit `real`), so that the size is
aligned up to `24+4 + /*padding*/ 4 = 32`.
2019-08-29 18:29:35 +03:00
shove70
b289b55b7d
Fix issue 19986 - Can't assign large const T to std.Variant.VariantN
2019-07-08 12:10:29 +08:00
The Dlang Bot
d6f1685a5c
Merge pull request #7084 from pbackus/fix-19994
...
Fix issue 19994 - Can't nest self-referential Algebraic types
merged-on-behalf-of: Nicholas Wilson <thewilsonator@users.noreply.github.com>
2019-07-08 05:15:05 +02:00
Mike
e0585fa785
Replace D1 operator overloads with D2 operator overloads
2019-07-04 13:33:53 +09:00
Paul Backus
8124b17e2c
Fix issue 19994 - Can't nest self-referential Algebraic types
2019-06-22 16:08:07 -04:00
Kriyszig
c163aeeefc
Removed alias
2019-06-21 16:39:52 +05:30
Kriyszig
6da85c4f8c
Fix Issue 19987 - Reducing memory used by VariantN
...
Swapping the fptr and union around will avoid unnecessary padding.
2019-06-21 16:28:06 +05:30
Marco de Wild
613c0b1f72
fix Issue 11061 - Variant of an array can be compared with another array
...
Fixes 11061
2019-06-06 14:14:20 +02:00
Kriyszig
5c8888f402
variant.d: Gated unittests behind version(StdDdoc)
...
Prevents compilation of unittests into user modules
fix Issue 18818 - unittests are compiled into user modules
2019-03-31 12:12:27 +05:30
Joakim
073ea406c6
Loosen two tests for IEEE Quadruple precision and make sure std.variant.VariantN is properly aligned for Quadruples.
2018-12-17 19:58:33 +05:30
Iain Buclaw
fd5facfe04
posix.mak: Enforce whitespace before opening parenthesis for version conditions
2018-09-22 16:57:24 +02:00
Basile Burg
9784974742
refactor VariantN using D2 style opOpAssign operator overloads
2018-09-02 16:32:13 +02:00
Nathan Sashihara
af77205b1b
Make PR#6684 pass unittests
2018-09-01 15:17:34 -04:00
Biotronic
71fc01cc63
Fix issue 19200
2018-08-28 14:52:02 +02:00
John Colvin
4b787c71fd
fix get and peek links in std.variant docs
2018-08-01 14:19:41 +01:00
Martin Nowak
8d4e3941cf
Merge remote-tracking branch 'upstream/master' into stable
2018-06-16 07:27:16 +02:00
Steven Schveighoffer
2de6f8da22
Fix issue 18934 - make std.variant support getting types that have const
...
members.
2018-06-07 12:43:13 -04:00
Sebastian Wilzbach
c324714fde
Remove a few cases of underscore escaping
2018-06-04 13:05:01 +02:00
Martin
a459a23245
Fix std.variant unittest
...
For all 64-bit targets with real.sizeof < 16, e.g., Win64 MSVC for LDC.
2018-04-26 22:53:59 +02:00
Sebastian Wilzbach
42894784dd
Markdownify Phobos
...
$(D word) -> `word`
2018-04-02 22:32:47 +02:00
Sebastian Wilzbach
43813f75d8
Add public examples to std.variant + DScanner check
2018-03-21 18:54:06 +01:00
Jack Stouffer
663b5b9278
Revert addition of StdUnittest
2018-02-20 13:32:32 -05:00
Eduard Staniloiu
d87f5a981d
Make VariantN infer dtor safety from types
2018-02-14 13:57:28 +00:00
Sebastian Wilzbach
1fd20cf0d5
Merge pull request #4204 from Biotronic/fix-10879
...
Fix Issue 10879 - std.variant Variant/Algebraic: Cant store static ar…
2018-01-31 07:03:44 +01:00
biotronic
875015e7af
Fix Issue 10879 - std.variant Variant/Algebraic: Cant store static arrays > 32(/16) bytes
2018-01-28 13:40:37 +01:00
Sebastian Wilzbach
a972e266ed
Allow running all unittest with -transition=complex
2018-01-17 11:14:32 +01:00
Sebastian Wilzbach
7de3787876
Use static foreach in Phobos
2018-01-03 17:30:11 +01:00
Sebastian Wilzbach
2678754347
Add StdUnittest to std.net.curl + stdx.allocator
2017-12-21 09:36:10 +01:00
Steven Schveighoffer
db28e80a4f
Avoid using typeid to call postblit and destructor, as it does not take
...
into account the type qualifiers.
2017-08-17 09:26:03 -04:00
Steven Schveighoffer
373babe48e
fix issue 13262 - Ensure shared data can be sent and received via
...
send/receive. Also now allows all types of shared items to be stored in
a Variant.
2017-08-16 11:35:11 -04:00
Sebastian Wilzbach
10d05229ae
Make Phobos module examples runnable
2017-07-02 00:22:13 +02:00
Vladimir Panteleev
d0b9555a06
Revert "Sort selective imports"
...
This reverts commit 998ad51fd7
.
2017-06-13 17:51:52 +00:00
Sebastian Wilzbach
998ad51fd7
Sort selective imports
2017-06-12 08:12:09 +02:00
Sebastian Wilzbach
61717ecc7d
Sort imports
2017-06-12 07:54:38 +02:00
The Dlang Bot
5356dc2353
Merge pull request #4035 from rcorre/visit_any
...
Allow a generic function for std.variant.visit.
merged-on-behalf-of: unknown
2017-03-03 02:36:22 +01:00
Ryan Roden-Corrent
4267255608
Allow a generic function for std.variant.visit.
...
If a lambda with a single generic parameter is provided as a handler
to std.variant.visit, it is invoked for any type contained in the
Algebraic which does not have a handler for that type.
This allows something like:
```
// Assume Circle, Square, and Triangle all define center()
Algebraic!(Circle, Square, Triangle) someShape;
auto center = someShape.visit!(x => x.center);
```
This may be combined with explicitly typed handlers and a single
fallback handler for an empty variant:
```
Algebraic!(int, float, string) something;
something.visit!((string s) => s.length, // called for string
x => x, // called for int/float
() => 0); // called if empty
```
2017-03-02 08:00:54 -05:00