cfallin / boolean_expression

A Rust library for manipulating and evaluating Boolean expressions and BDDs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

From<T> trait breaks dependencies

rachitnigam opened this issue · comments

Looks like commit 0105215 introduced a general from implementation that overlaps with any T that implements certain traits. This will break code that tries to provide its own implementation of From<T> (example attached).

https://github.com/cucapra/futil/blob/80aed57976ddac86a99c54dc546d42be16f073cc/calyx/src/passes/simplify_guards.rs#L10-L20

AFAIK, rust's trait system doesn't allow for multiple conflicting implementations so the upstream crate has to hide the implementation/not provide it.

On a side note, thanks for implementing this crate and open sourcing it!

Sorry about that! I hadn't fully thought through the implications of providing the From impl there. I agree that allowing flexibility is the right policy, so it's better to allow custom From impls.

I went ahead and removed this and published version 0.4.3, then yanked 0.4.2 since it was an inadvertent API-break.

@arlyon sorry about this -- hopefully adding the simple From impl on the user side won't be too much inconvenience in your use-case!

No worries, in retrospect it is clearly a restriction not a convenience so I agree.