diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2014-10-24 12:25:50 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2014-10-31 07:25:34 -0500 |
| commit | 1384a43db3a8b1551bfc3c6feb37e2174d4c2ba0 (patch) | |
| tree | e45a0343003c22ed5b1ccbaa008189db578c3658 /src/libsyntax/ext | |
| parent | 065caf34f5ff29e04605f95d9c5d511af219439a (diff) | |
| download | rust-1384a43db3a8b1551bfc3c6feb37e2174d4c2ba0.tar.gz rust-1384a43db3a8b1551bfc3c6feb37e2174d4c2ba0.zip | |
DSTify Hash
- The signature of the `*_equiv` methods of `HashMap` and similar structures
have changed, and now require one less level of indirection. Change your code
from:
```
hashmap.find_equiv(&"Hello");
hashmap.find_equiv(&&[0u8, 1, 2]);
```
to:
```
hashmap.find_equiv("Hello");
hashmap.find_equiv(&[0u8, 1, 2]);
```
- The generic parameter `T` of the `Hasher::hash<T>` method have become
`Sized?`. Downstream code must add `Sized?` to that method in their
implementations. For example:
```
impl Hasher<FnvState> for FnvHasher {
fn hash<T: Hash<FnvState>>(&self, t: &T) -> u64 { /* .. */ }
}
```
must be changed to:
```
impl Hasher<FnvState> for FnvHasher {
fn hash<Sized? T: Hash<FnvState>>(&self, t: &T) -> u64 { /* .. */ }
// ^^^^^^
}
```
[breaking-change]
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/format.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index fa9a844233a..53d091db095 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -140,7 +140,7 @@ fn parse_args(ecx: &mut ExtCtxt, sp: Span, allow_method: bool, let name = interned_name.get(); p.expect(&token::Eq); let e = p.parse_expr(); - match names.find_equiv(&name) { + match names.find_equiv(name) { None => {} Some(prev) => { ecx.span_err(e.span, @@ -362,7 +362,7 @@ impl<'a, 'b> Context<'a, 'b> { self.ecx.expr_path(path) } parse::CountIsName(n) => { - let i = match self.name_positions.find_equiv(&n) { + let i = match self.name_positions.find_equiv(n) { Some(&i) => i, None => 0, // error already emitted elsewhere }; @@ -406,7 +406,7 @@ impl<'a, 'b> Context<'a, 'b> { // Named arguments are converted to positional arguments at // the end of the list of arguments parse::ArgumentNamed(n) => { - let i = match self.name_positions.find_equiv(&n) { + let i = match self.name_positions.find_equiv(n) { Some(&i) => i, None => 0, // error already emitted elsewhere }; |
