-
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
stop taking references in Relate #73705
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit 863ff8a61175b286206eace70e1cd174190cc520 with merge 962b50900727f0bf054bce5b61be7fd6dd43ab1b... |
☀️ Try build successful - checks-azure |
Queued 962b50900727f0bf054bce5b61be7fd6dd43ab1b with parent 67100f6, future comparison URL. |
Finished benchmarking try commit (962b50900727f0bf054bce5b61be7fd6dd43ab1b): comparison url. |
looks like a small perf improvement |
Yeah, or neutral. Which is fine. The compelling case here is more ergonomic (which is what I would expect, to be honest). |
@nikomatsakis fixed the merge conflict. Do you want to go ahead with merging this or is there still something I should do? |
@bors r+ |
📌 Commit acd4818 has been approved by |
stop taking references in Relate Adds a `Copy` bound to `Relate` and changes the type signatures to `T` from `&T`. While the `Copy` bound is not strictly necessary (i.e. the `Clone` bound of `TypeRelation` would be good enough), we don't need non `Copy` types and it simplifies the implementation. Removes the afaict unused impls for `Vec<ty::PolyExistentialProjection<'tcx>>`, `Rc<T>` and `Box<T>`. If they end up being relevant again the bound of `Relate` can be reduced to `T: Clone`. This also changes signature of `Binder::skip_binder` to `fn skip_binder(self) -> T`. `TypeError::ProjectionBoundsLength` was never used and is also removed in this PR. r? @nikomatsakis maybe 🤔 feel free to reassign
rebased, should be ready for merge again |
@bors r+ |
📌 Commit 69e4990 has been approved by |
stop taking references in Relate Adds a `Copy` bound to `Relate` and changes the type signatures to `T` from `&T`. While the `Copy` bound is not strictly necessary (i.e. the `Clone` bound of `TypeRelation` would be good enough), we don't need non `Copy` types and it simplifies the implementation. Removes the afaict unused impls for `Vec<ty::PolyExistentialProjection<'tcx>>`, `Rc<T>` and `Box<T>`. If they end up being relevant again the bound of `Relate` can be reduced to `T: Clone`. This also changes signature of `Binder::skip_binder` to `fn skip_binder(self) -> T`. `TypeError::ProjectionBoundsLength` was never used and is also removed in this PR. r? @nikomatsakis maybe 🤔 feel free to reassign
stop taking references in Relate Adds a `Copy` bound to `Relate` and changes the type signatures to `T` from `&T`. While the `Copy` bound is not strictly necessary (i.e. the `Clone` bound of `TypeRelation` would be good enough), we don't need non `Copy` types and it simplifies the implementation. Removes the afaict unused impls for `Vec<ty::PolyExistentialProjection<'tcx>>`, `Rc<T>` and `Box<T>`. If they end up being relevant again the bound of `Relate` can be reduced to `T: Clone`. This also changes signature of `Binder::skip_binder` to `fn skip_binder(self) -> T`. `TypeError::ProjectionBoundsLength` was never used and is also removed in this PR. r? @nikomatsakis maybe 🤔 feel free to reassign
…arth Rollup of 17 pull requests Successful merges: - rust-lang#72071 (Added detailed error code explanation for issue E0687 in Rust compiler.) - rust-lang#72369 (Bring net/parser.rs up to modern up to date with modern rust patterns) - rust-lang#72445 (Stabilize `#[track_caller]`.) - rust-lang#73466 (impl From<char> for String) - rust-lang#73548 (remove rustdoc warnings) - rust-lang#73649 (Fix sentence structure) - rust-lang#73678 (Update Box::from_raw example to generalize better) - rust-lang#73705 (stop taking references in Relate) - rust-lang#73716 (Document the static keyword) - rust-lang#73752 (Remap Windows ERROR_INVALID_PARAMETER to ErrorKind::InvalidInput from Other) - rust-lang#73776 (Move terminator to new module) - rust-lang#73778 (Make `likely` and `unlikely` const, gated by feature `const_unlikely`) - rust-lang#73805 (Document the type keyword) - rust-lang#73806 (Use an 'approximate' universal upper bound when reporting region errors) - rust-lang#73828 (Fix wording for anonymous parameter name help) - rust-lang#73846 (Fix comma in debug_assert! docs) - rust-lang#73847 (Edit cursor.prev() method docs in lexer) Failed merges: r? @ghost
Adds a
Copy
bound toRelate
and changes the type signatures toT
from&T
. While theCopy
bound is not strictly necessary (i.e. theClone
bound ofTypeRelation
would be good enough), we don't need nonCopy
types and it simplifies the implementation.Removes the afaict unused impls for
Vec<ty::PolyExistentialProjection<'tcx>>
,Rc<T>
andBox<T>
. If they end up being relevant again the bound ofRelate
can be reduced toT: Clone
.This also changes signature of
Binder::skip_binder
tofn skip_binder(self) -> T
.TypeError::ProjectionBoundsLength
was never used and is also removed in this PR.r? @nikomatsakis maybe 🤔 feel free to reassign