| ▲ | throwaway27448 6 hours ago | |
> and the Rust standard library does that all the time. I don't doubt this is true, but do you have an example? I think I haven't run into a build breaking like this in std in like maybe seven/eight years. In my experience breaking changes/experimental apis are typically ensconced in features or gated by editions. Granted, it'd be nice to be able to enforce abi stability at the crate level, but managing that is its own can of worms. I did find that the breakage rfc allows for breaking inference, which tbh seems quite reasonable... inference is opt-in. | ||
| ▲ | umanwizard 5 hours ago | parent [-] | |
Almost every major release of rust stabilizes new library methods. For example, the latest major release (1.93) stabilized Vec::into_raw_parts. This isn’t gated by an edition. So if you had a trait with a method “into_raw_parts” which you had defined on Vec, after updating to 1.93 or later your code will either fail to compile, or start running different code when that method is called. Sorry, I meant to write “method resolution”, not inference. This isn’t the same issue as type inference (though indeed, stdlib changes can break that too) | ||