-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression in autoderef on ascii traits #32074
Comments
The impl is unstable, but IIRC unstable impls are still accessible? |
This might be an acceptable kind of regression. It's of the "added new impl" type, which we have already said is okay if the only change necessary to fix it is explicit UFCS. In this case, explicit deref is required, which is a similar annotation burden (however, the fact that we have to do this isn't very clear from the error message). Might need a crater run if we plan to keep it, cc @brson |
I’ll move the |
That should work! |
Implementing `AsciiExt` for `String` and `Vec<u8>` caused a regression: rust-lang#32074 and the `where Self: Sized` hack to have the `into_` methods in that trait (which is also implemented for DST `str` and `[u8]`) was rather clunky. CC rust-lang#27809
The libs team discussed this during triage today and the decision was to revert the |
@alexcrichton 1.7 doesn’t have any |
The addition of these methods in rust-lang#31335 required adding impls of the trait for the `String` and `Vec<T>` types. This unfortunately caused a regression (rust-lang#32074) in type inference for using these methods which the libs team has decided to not push forward with. These methods were stabilized in rust-lang#32020 which was intended to get backported to beta, but the backport hasn't happened just yet. This commit reverts both the addition and stabilization of these methods. One proposed method of handling this, in rust-lang#32076, was to move the methods to an extra trait to avoid conflicts with type inference. After some discussion, however, the libs team concluded that we probably want to reevaluate what we're doing here, so discussion will continue on the tracking issue, rust-lang#27809.
Ah yeah sorry I don't think I explained enough. The plan of action is detailed a little more clearly in the description of #32314, however. |
std: Revert addition of `into_ascii_*` methods The addition of these methods in #31335 required adding impls of the trait for the `String` and `Vec<T>` types. This unfortunately caused a regression (#32074) in type inference for using these methods which the libs team has decided to not push forward with. These methods were stabilized in #32020 which was intended to get backported to beta, but the backport hasn't happened just yet. This commit reverts both the addition and stabilization of these methods. One proposed method of handling this, in #32076, was to move the methods to an extra trait to avoid conflicts with type inference. After some discussion, however, the libs team concluded that we probably want to reevaluate what we're doing here, so discussion will continue on the tracking issue, #27809. Closes #32074
Just to make sure we don't accidentally break this in the future.
The addition of these methods in rust-lang#31335 required adding impls of the trait for the `String` and `Vec<T>` types. This unfortunately caused a regression (rust-lang#32074) in type inference for using these methods which the libs team has decided to not push forward with. These methods were stabilized in rust-lang#32020 which was intended to get backported to beta, but the backport hasn't happened just yet. This commit reverts both the addition and stabilization of these methods. One proposed method of handling this, in rust-lang#32076, was to move the methods to an extra trait to avoid conflicts with type inference. After some discussion, however, the libs team concluded that we probably want to reevaluate what we're doing here, so discussion will continue on the tracking issue, rust-lang#27809. Conflicts: src/libstd/ascii.rs
std: Add regression test for rust-lang#32074 Just to make sure we don't accidentally break this in the future.
std: Add regression test for rust-lang#32074 Just to make sure we don't accidentally break this in the future.
The following code compiles on stable but gives an error on beta/nightly:
playpen
This was caused by the new impl of AsciiExt on
String
: 700ac0ecc @SimonSapin @alexcrichton
The text was updated successfully, but these errors were encountered: