Trait Conformance When on Parametric *Args

In the example, if a trait B inherits from A, then if A is required, we can conform to A by passing an argument B. Since B should conform to A. This doesn’t work with parametric *args. See code bellow:

trait A:
    fn a(self):
        ...


struct ASt[*Ts: A]:
    ...


trait B(A):
    ...


# This is ok, since B inherits from A
struct Bsingle[t: B]:
    var a_value: ASt[t]


# This fails. Should happen?
struct Bmultiple[*Ts: B]:
    var a_values: ASt[*Ts]


# Works again.
struct Aonly[*Ts: A]:
    var a_values: ASt[*Ts]

Is it working as expected?

Seems like there is an issue on GitHub HERE

1 Like