mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 19:51:09 +01:00
The float.carbon conversions for int->float, uint->float and float->float were using various workarounds through extra indirections in order to avoid the impls overlapping. Now we can write them all as `impl From as ImplicitAs(Float(To))`, which makes them all appear to overlap, though any given type will only match at most one of them. We use `match_first` to give them an ordering regardless so that they are allowed to overlap in type structure.