Skip to content
This repository has been archived by the owner on May 23, 2024. It is now read-only.

ices/98009.sh: fixed with no errors #1311

Merged
merged 1 commit into from
Jun 17, 2022
Merged

Conversation

github-actions[bot]
Copy link
Contributor

Issue: rust-lang/rust#98009

#!/bin/bash

cat > out.rs <<'EOF'


// run-rustfix
#![allow(dead_code)]

struct Events<R>(R);

struct Other;

pub trait Trait<T> {
    fn handle(value: T) -> Self;
}

// Blanket impl. (If you comment this out, compiler figures out that it
// is passing an `&mut` to a method that must be expecting an `&mut`,
// and injects an auto-reborrow.)
impl<T, U> Trait<U> for T where T: From<U> {
    fn handle(_: U) -> Self { unimplemented!() }
}

impl<'a, R> Trait<&'a mut Events<R>> for Other {
    fn handle(_: &'a mut Events<R>) -> Self { unimplemented!() }
}

fn this_compiles<'a, R>(value: &'a mut Events<R>) {
    for _ in 0..3 {
        Other::handle(&mut *value);
    }
}

fn this_does_not<'a, R>(value: &'a mut Events<R>) {
    for _ in 0..3 {
        Other::handle(value); //~ ERROR use of moved value: `value`
    }
}

fn main() {}


EOF

rustdoc -Zunstable-options  --output-format json --cap-lints warn --document-private-items --document-hidden-items  out.rs
=== stdout ===
=== stderr ===
==============

=== stdout ===
=== stderr ===
==============
@JohnTitor JohnTitor merged commit 84539f0 into master Jun 17, 2022
@JohnTitor JohnTitor deleted the autofix/ices/98009.sh branch June 17, 2022 03:38
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants