On Tue, 12 Nov 2013 00:37:30 +0100, Dicebot wrote: > Minimized repro: > > import std.variant; > > class A {} > > void main() > { > Variant v = new immutable A(); > auto x = v.get!(immutable A)(); // triggers assert > } > > One simple question - did this ever work? :) Because passing immutable > aggregate messages is sometimes sold as one of "proper" > usage scenario of std.concurrency and if it was never actually > implemented, that is damn sad. I have started to investigate this > scenario because of question on topic in #d @ freenode.
Looks like Variant works only with implicitly convertible types. In this case this fails: assert(isImplicitlyConvertible!(immutable(A), A));