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 types in question check out when I look at them; tll::ternary::... types and traits are from a type-level implementation of natural numbers represented in a ternary format. What's going on is that on the left-hand of these "type mismatches" is that one side has gone through normalization and the other has not (Pred<Zero<L>> should normalize to Two<Pred<L>>.) So, my (un)educated guess as to what's going on here is that normalization is not happening somewhere it should, and as such MIR is producing a spurious warning about a type mismatch.
Here's the code that causes it. Unfortunately, I don't think I can easily pare this down to a minimal reproduction case, but to start:
I'm getting this warning:
The types in question check out when I look at them;
tll::ternary::...
types and traits are from a type-level implementation of natural numbers represented in a ternary format. What's going on is that on the left-hand of these "type mismatches" is that one side has gone through normalization and the other has not (Pred<Zero<L>>
should normalize toTwo<Pred<L>>
.) So, my (un)educated guess as to what's going on here is that normalization is not happening somewhere it should, and as such MIR is producing a spurious warning about a type mismatch.Here's the code that causes it. Unfortunately, I don't think I can easily pare this down to a minimal reproduction case, but to start:
Changing the code to this compiles just fine with no broken MIR warnings:
Compiler info
The text was updated successfully, but these errors were encountered: