You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following code throws a VariantException complaining about different types (char and immutable(char)[]):
unittest {
import std.variant;
Variant v = "";
v ~= 'a';
}
It's correct in some ways, but clearly a more useful behavior would be to concat the string and char and move on.
The text was updated successfully, but these errors were encountered:
(In reply to Simen Kjaeraas from comment #0)
> The following code throws a VariantException complaining about different> types (char and immutable(char)[]):> > unittest {> import std.variant;> Variant v = "";> v ~= 'a';> }> > It's correct in some ways, but clearly a more useful behavior would be to> concat the string and char and move on.
This shouldn't be a bug. Variant's design has strict restrictions on type qualifiers, because string = immutable (char) [], so the ~ operator restricts char. v ~= cast (immutable char)'a'; is possible because its qualifier is consistent.
For these limitations, you can see the unittest:
https://github.com/dlang/phobos/blob/master/std/variant.d#L2655
There are many anomaly collection behaviors for qualifier inconsistencies.
I don't know whether it was intentionally designed to do this, or because it was temporarily done for the sake of simplicity. I think, if there are no other factors, it would be better to fix the variant implementation and remove these restrictions.
simen.kjaras reported this on 2019-07-05T11:25:16Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=20030
CC List
Description
The text was updated successfully, but these errors were encountered: