Skip to content

Commit 9cb3104

Browse files
committed
Fixed divergent trait impls
1 parent 695a94e commit 9cb3104

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/source.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ impl<I: AsRef<str>> Source<I> {
270270
impl<I: AsRef<str>> Cache<()> for Source<I> {
271271
type Storage = I;
272272

273-
fn fetch(&mut self, _: &()) -> Result<&Source<I>, impl fmt::Debug + '_> {
273+
fn fetch(&mut self, _: &()) -> Result<&Source<I>, impl fmt::Debug> {
274274
Ok::<_, ()>(self)
275275
}
276276
fn display<'a>(&self, _: &'a ()) -> Option<impl fmt::Display + 'a> {
@@ -281,18 +281,18 @@ impl<I: AsRef<str>> Cache<()> for Source<I> {
281281
impl<I: AsRef<str>> Cache<()> for &'_ Source<I> {
282282
type Storage = I;
283283

284-
fn fetch(&mut self, _: &()) -> Result<&Source<I>, Box<dyn fmt::Debug + '_>> {
285-
Ok(*self)
284+
fn fetch(&mut self, _: &()) -> Result<&Source<I>, impl fmt::Debug> {
285+
Ok::<_, ()>(*self)
286286
}
287-
fn display(&self, _: &()) -> Option<Box<dyn fmt::Display>> {
288-
None
287+
fn display<'a>(&self, _: &'a ()) -> Option<impl fmt::Display + 'a> {
288+
None::<u8>
289289
}
290290
}
291291

292292
impl<I: AsRef<str>, Id: fmt::Display + Eq> Cache<Id> for (Id, Source<I>) {
293293
type Storage = I;
294294

295-
fn fetch(&mut self, id: &Id) -> Result<&Source<I>, impl fmt::Debug + '_> {
295+
fn fetch(&mut self, id: &Id) -> Result<&Source<I>, impl fmt::Debug> {
296296
if id == &self.0 {
297297
Ok(&self.1)
298298
} else {
@@ -307,14 +307,14 @@ impl<I: AsRef<str>, Id: fmt::Display + Eq> Cache<Id> for (Id, Source<I>) {
307307
impl<I: AsRef<str>, Id: fmt::Display + Eq> Cache<Id> for (Id, &'_ Source<I>) {
308308
type Storage = I;
309309

310-
fn fetch(&mut self, id: &Id) -> Result<&Source<I>, Box<dyn fmt::Debug + '_>> {
310+
fn fetch(&mut self, id: &Id) -> Result<&Source<I>, impl fmt::Debug> {
311311
if id == &self.0 {
312312
Ok(self.1)
313313
} else {
314314
Err(Box::new(format!("Failed to fetch source '{}'", id)))
315315
}
316316
}
317-
fn display<'a>(&self, id: &'a Id) -> Option<Box<dyn fmt::Display + 'a>> {
317+
fn display<'a>(&self, id: &'a Id) -> Option<impl fmt::Display + 'a> {
318318
Some(Box::new(id))
319319
}
320320
}
@@ -328,7 +328,7 @@ pub struct FileCache {
328328
impl Cache<Path> for FileCache {
329329
type Storage = String;
330330

331-
fn fetch(&mut self, path: &Path) -> Result<&Source, impl fmt::Debug + '_> {
331+
fn fetch(&mut self, path: &Path) -> Result<&Source, impl fmt::Debug> {
332332
Ok::<_, Error>(match self.files.entry(path.to_path_buf()) {
333333
// TODO: Don't allocate here
334334
Entry::Occupied(entry) => entry.into_mut(),

0 commit comments

Comments
 (0)