Commit graph

273 commits

Author SHA1 Message Date
Per Nordlöw
ec556d2c4c Try to make std.variant.maxSize non-recursive
Use mixin("T...")

Use simpler unique name

Correct name from `maxSizeOf` to `maxSize`

Add more tets

Let mixin do its own implicit concatenation and conversion of i to string

Put braces on separate lines

Use max in test

Ues S.sizeof in one more assert

Use max in one more assert
2021-04-14 14:16:46 +02:00
berni44
7afc9bff9d Fix Issue 18780 - Inconsistent behavior with Variant holding int converting to unsigned types 2021-04-12 18:37:27 +02:00
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