Auto merge of #91660 - llogiq:make-a-hash-of-def-ids, r=nnethercote
manually implement `Hash` for `DefId` This might speed up hashing for hashers that can work on individual u64s. Just as an experiment, suggested in a reddit thread on `FxHasher`. cc `@nnethercote` Note that this should not be merged as is without cfg-ing the code path for 64 bits.
This commit is contained in:
commit
a2d25b4ff7
3 changed files with 48 additions and 22 deletions
|
|
@ -1,14 +1,3 @@
|
|||
error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
|
||||
--> $DIR/coherence-orphan.rs:17:1
|
||||
|
|
||||
LL | impl !Send for Vec<isize> { }
|
||||
| ^^^^^^^^^^^^^^^----------
|
||||
| | |
|
||||
| | `Vec` is not defined in the current crate
|
||||
| impl doesn't use only types from inside the current crate
|
||||
|
|
||||
= note: define and implement a trait or new type instead
|
||||
|
||||
error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
|
||||
--> $DIR/coherence-orphan.rs:10:1
|
||||
|
|
||||
|
|
@ -21,6 +10,17 @@ LL | impl TheTrait<usize> for isize { }
|
|||
|
|
||||
= note: define and implement a trait or new type instead
|
||||
|
||||
error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
|
||||
--> $DIR/coherence-orphan.rs:17:1
|
||||
|
|
||||
LL | impl !Send for Vec<isize> { }
|
||||
| ^^^^^^^^^^^^^^^----------
|
||||
| | |
|
||||
| | `Vec` is not defined in the current crate
|
||||
| impl doesn't use only types from inside the current crate
|
||||
|
|
||||
= note: define and implement a trait or new type instead
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0117`.
|
||||
|
|
|
|||
|
|
@ -4,20 +4,20 @@ error[E0034]: multiple applicable items in scope
|
|||
LL | fn main() { 1_usize.me(); }
|
||||
| ^^ multiple `me` found
|
||||
|
|
||||
note: candidate #1 is defined in an impl of the trait `Me2` for the type `usize`
|
||||
= note: candidate #1 is defined in an impl of the trait `Me` for the type `usize`
|
||||
note: candidate #2 is defined in an impl of the trait `Me2` for the type `usize`
|
||||
--> $DIR/method-ambig-two-traits-cross-crate.rs:10:22
|
||||
|
|
||||
LL | impl Me2 for usize { fn me(&self) -> usize { *self } }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: candidate #2 is defined in an impl of the trait `Me` for the type `usize`
|
||||
help: disambiguate the associated function for candidate #1
|
||||
|
|
||||
LL | fn main() { Me2::me(&1_usize); }
|
||||
| ~~~~~~~~~~~~~~~~~
|
||||
help: disambiguate the associated function for candidate #2
|
||||
|
|
||||
LL | fn main() { Me::me(&1_usize); }
|
||||
| ~~~~~~~~~~~~~~~~
|
||||
help: disambiguate the associated function for candidate #2
|
||||
|
|
||||
LL | fn main() { Me2::me(&1_usize); }
|
||||
| ~~~~~~~~~~~~~~~~~
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue