rustfix icon indicating copy to clipboard operation
rustfix copied to clipboard

duplicate diagnostic detection does not handle insert-only replacements

Open ehuss opened this issue 4 years ago • 0 comments

The following example:

macro_rules! foo {
    () => {
        &1;
    };
}

fn main() {
    foo!();
    foo!();
}

generates a suggestion (on beta 1.55) to insert a fix like this:

let _ = &1;

However, since this diagnostic is triggered from macros, rustc emits two separate machine-applicable suggestions at the exact same spot. That causes rustfix to end up changing the code to:

let _ = let _ = &1;

which fails to compile.

#131 added detection to avoid applying duplicate suggestions, but I believe it does not handle the case when it is an insert_only suggestion.

ehuss avatar Aug 29 '21 21:08 ehuss