Commit graph

204 commits

Author SHA1 Message Date
Ognjen Ivkovic
83b0cf52a5 Fix issue 12157 - Variant opEquals always returns false for classes and interfaces. 2014-02-14 01:47:44 -06:00
Ognjen Ivkovic
467d5d684b Fixed unittests to include original, proper, test case. 2014-02-14 00:26:32 -06:00
Ognjen Ivkovic
23f292ce1c Add assignment to EmptyArray.init to prevent use before set error. 2014-02-14 00:09:50 -06:00
Ognjen Ivkovic
b21c398ca2 Fix issue 10958 - Variant fails to compile for types with sizeof == 0. 2014-02-14 00:04:22 -06:00
k-hara
1323bd4f00 fix Issue 12071 - Algebraic won't take delegate returning structure
Use `Variant` rather than `VariantN` in order to pack arguments and returned value in opCall.
2014-02-11 21:02:02 +09:00
k-hara
b391b2ec9f Convert to new alias syntax 2014-02-11 15:27:05 +09:00
k-hara
545a9450f8 fix property enforcement 2014-02-10 22:24:02 +09:00
monarch dodra
67a4ad1f69 Merge pull request #1869 from GoldMax/Issue-7069
The std.traits.ImplicitConversionTargets returns wrong result for dchar
2014-01-31 04:11:11 -08:00
GoldMax
b097805473 remove templates 2014-01-20 11:46:04 +07:00
Daniel Murphy
a656f26e9e Remove use of automatic adjacent string literal concatenation from phobos 2014-01-20 03:42:21 +11:00
GoldMax
6e7eabbd42 fix 7069 2014-01-17 14:58:52 +07:00
Johannes Pfau
a7442de743 std.variant: Adjust test for ARM
See http://d.puremagic.com/issues/show_bug.cgi?id=10879
2014-01-14 21:06:09 +01:00
monarchdodra
44fe3d88f7 Remove tabs 2014-01-08 08:37:52 +01:00
monarchdodra
fd8540072d Remove trailing white 2014-01-08 08:30:28 +01:00
Martin Nowak
05fe0ae758 fix usage of Type.prop in typeof expressions
- use Type.init.prop
2013-12-01 21:32:32 +01:00
k-hara
aa01e5cb02 fix property enforcement 2013-11-02 01:14:16 +09:00
Ognjen Ivkovic
482f938b53 Resolve merge conflict. 2013-10-26 11:47:11 -06:00
Ognjen Ivkovic
4d30a5f278 Fix issue 11361 - Variant fails to compile with delegates containing const arguments. 2013-10-26 00:32:27 -06:00
Ognjen Ivkovic
9e0563d5e0 Slightly reworded comment. 2013-10-25 20:26:22 -06:00
Ognjen Ivkovic
042f3d4282 Add unittests for issue 11360. 2013-10-25 20:24:05 -06:00
Ognjen Ivkovic
a563a920eb Changed to return uninitialized Variant when the stored function returns void. 2013-10-25 19:22:18 -06:00
Andrej Mitrovic
92c71f45f8 Merge pull request #1152 from andralex/4916
Fix Issue 4916: struct VariantN does not overload ()
2013-10-24 18:30:37 -07:00
Kapps
01b7536eb9 Fix 10961 - Assigning void[] to Variant causes compiler errors. 2013-09-03 18:24:27 -06:00
k-hara
206d6f7fe9 Add workaround to fix issue 10567
Currently VariantN does not support const objects comparison. So just add specialized opCmp member and use cast().
2013-07-10 01:33:21 +09:00
Martin Nowak
2dba41d032 fix issue 10017 2013-05-27 17:15:43 +02:00
Vladimir Panteleev
2e4dbe8623 std.variant: Fix "ditto ditto" documentation bug 2013-04-10 13:21:41 +00:00
k-hara
3eecfd2b1e fix Issue 3789 - Structs members that require non-bitwise comparison not correctly compared 2013-03-09 16:52:43 +09:00
Andrei Alexandrescu
74cd007c6f Fix issue 4921 - Synopsis code in std.variant documentation throws an assertion error
http://d.puremagic.com/issues/show_bug.cgi?id=4921
2013-02-26 12:04:07 -05:00
Andrei Alexandrescu
7b03c1eda5 issue 5310 2013-02-25 01:48:46 +02:00
Andrei Alexandrescu
27733b1cc4 issue 4916 2013-02-23 18:36:37 +02:00
jmdavis
a9bf4d4136 Make std.variant.maxSize public.
It's kind of hard to use VariantN without it.
2013-02-04 19:54:57 -08:00
k-hara
128aa9f8fc Remove remain redundant parenthesis. 2012-12-03 00:53:38 +09:00
k-hara
01df2f60be Remove redundant parenthesis for getters, and use assignment syntax for setters 2012-11-23 15:07:17 +09:00
David Nadlinger
d3d0bf0ffc Fix Issue 9043 - Crash on comparing unordered types. 2012-11-18 01:27:49 +01:00
David Nadlinger
0d05bfb615 Fix Variant comparison ops (fixes issue 7990).
Note that ptrdiff_t.min is used as a sentinel value in opCmp;
seems like this was an oversight during the 64 bit mass migration
in 8331c709.
2012-11-18 00:58:07 +01:00
David Nadlinger
464151ddc1 Removed unneeded imports. 2012-11-18 00:17:08 +01:00
alexrp
b202180295 Remove all uses of sizediff_t in favor of ptrdiff_t. 2012-10-15 04:24:09 +02:00
Andrei Alexandrescu
d94803416b Merge pull request #805 from callumenator/master
Fix for issue 8689, Variant doesn't attempt float conversion in opArithmetic
2012-09-28 06:40:36 -07:00
André Stein
f5600708b4 Changes according to 9rnsr's review. 2012-09-27 18:25:17 +02:00
André Stein
b01ef30580 Integrated 9rnsr's suggestions. 2012-09-27 17:25:49 +02:00
André Stein
69faa7ab24 Fixed comments (ouch). 2012-09-27 14:48:41 +02:00
André Stein
62223f51da Fixed auto tester errors - () forgotten in visit call. 2012-09-27 14:39:26 +02:00
André Stein
a14142d3fb Integrated first chunk of changes of Andrei's review. 2012-09-27 14:25:59 +02:00
André Stein
038813a4c8 Fix warnings, auto tester should succeed now. 2012-09-22 12:28:19 +02:00
Callum Anderson
3bd4e2a055 Add check for conversion to float in opArithmetic 2012-09-18 12:21:12 -08:00
André Stein
7469408f81 visit and tryVisit have been extended to allow at most one function with no parameters which is called in case of errors (variant doesn't hold a value or in case of tryVisit, holds a value which can't be handled by visiting functions). 2012-09-13 22:59:44 +02:00
André Stein
692916fbd9 Updated visit to allow just delegates passed using the template parameter list. 2012-09-13 22:59:44 +02:00
André Stein
8eec1a2502 New implementation of visit and tryVisit that allows visitor structs and classes as well as delegate functions to be passed as parameters.
tryVisit is a new function which doesn't statically ensures that all types are handled by the visiting
functions. A VariantException is thrown if the algebraic holds a value which isn't handled by
the visitors.

visit and tryVisit share a common private template function as backend which does all the magic. applyDelegate and
applyVisitor have practically been merged into one new function.
2012-09-13 22:59:44 +02:00
André Stein
05cb2c08a2 std.variant: Added more explicit template constraint to applyDelegate which checks for a Algebraic type.
The new constraint isAlgebraic checks for all member functions and types used from  Algebraic and makes it hard to call the applyDelegate with arbitrary types.
2012-09-13 22:59:44 +02:00
André Stein
95fcb05bfa std.variant: Updated pull request according to klickverbot's comments.
- Now compiles now on 64bit. size_t -> int cast in unittest has been the problem. Unittests and documentation has been updated.
- Updated template constraints: applyDelegates doesn't need one as the previous constraint is implicitly checked during instation. applyVisitor now has an additional template constraint to just allow Algebraic types.
- Must not compile code in unittests has been replaced by static assert and __trait(compiles) checks.
2012-09-13 22:59:44 +02:00