On Sunday, 24 March 2019 at 12:45:13 UTC, Francesco Mecca wrote:
https://run.dlang.io/is/zRcj59

```
alias Alg = Algebraic!(int, string);

void main()
{
        int n = 2;
    Alg value;

    value = n == 2 ? 2 : "string";
}
```

The original code used SumType but the effect is the same.

I suppose that I could write the following:

```
    if(n == 2) value = 2;
    else value = "string";
```

Is there a workaround for this that maintains a similar syntactic structure? is this behaviour accepted or should the compiler translate the first case in the second?

You can achieve the same thing by just constructing your algebraic type earlier:

  value = n == 2 ? Alg(2) : Alg("string");

Reply via email to