Bug 10961 – Assigning a void[] to a Variant results in compiler errors.
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-09-03T16:35:00Z
Last change time
2013-10-23T16:30:44Z
Keywords
pull
Assigned to
nobody
Creator
opantm2+dbugs
Comments
Comment #0 by opantm2+dbugs — 2013-09-03T16:35:45Z
The following sample code:
import std.variant, std.stdio;
void main() {
void[] elements = new void[4];
Variant v = elements;
writeln(v);
}
Results in the following compiler errors:
variant.d(425): Error: expression (*zis)[index] is void and has no value
variant.d(675): Error: variable std.variant.VariantN!(32LU).VariantN.get!void.get.Buf.result variables cannot be of type void
variant.d(678): Error: a struct is not a valid initializer for a _error_
variant.d(683): Error: cannot return non-void from void function
variant.d(471): Error: template instance std.variant.VariantN!(32LU).VariantN.get!void error instantiating
variant.d(562): instantiated from here: handler!(void[])
variant.d(512): instantiated from here: opAssign!(void[])
test.d(6): instantiated from here: __ctor!(void[])
variant.d(471): Error: [arg[0LU].get()] of type void[] has no value
variant.d(440): Error: switch case fallthrough - use 'goto case;' if intended
variant.d(485): Error: switch case fallthrough - use 'goto case;' if intended
variant.d(562): Error: template instance std.variant.VariantN!(32LU).VariantN.handler!(void[]) error instantiating
variant.d(512): instantiated from here: opAssign!(void[])
test.d(6): instantiated from here: __ctor!(void[])
variant.d(512): Error: template instance std.variant.VariantN!(32LU).VariantN.opAssign!(void[]) error instantiating
test.d(6): instantiated from here: __ctor!(void[])
test.d(6): Error: template instance std.variant.VariantN!(32LU).VariantN.__ctor!(void[]) error instantiating
Comment #1 by opantm2+dbugs — 2013-09-03T17:33:39Z