diff options
Diffstat (limited to 'tests/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs')
-rw-r--r-- | tests/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs b/tests/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs new file mode 100644 index 000000000..43b5f6d54 --- /dev/null +++ b/tests/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs @@ -0,0 +1,87 @@ +#![allow(unused)] + +#[derive(Copy, Clone)] +enum Nucleotide { + Adenine, + Thymine, + Cytosine, + Guanine +} + +#[derive(Clone)] +struct Autosome; + +#[derive(Clone)] +enum Allosome { + X(Vec<Nucleotide>), + Y(Vec<Nucleotide>) +} + +impl Allosome { + fn is_x(&self) -> bool { + match *self { + Allosome::X(_) => true, + Allosome::Y(_) => false, + } + } +} + +#[derive(Clone)] +struct Genome { + autosomes: [Autosome; 22], + allosomes: (Allosome, Allosome) +} + +fn find_start_codon(strand: &[Nucleotide]) -> Option<usize> { + let mut reading_frame = strand.windows(3); + // (missing parentheses in `while let` tuple pattern) + while let b1, b2, b3 = reading_frame.next().expect("there should be a start codon") { + //~^ ERROR unexpected `,` in pattern + // ... + } + None +} + +fn find_thr(strand: &[Nucleotide]) -> Option<usize> { + let mut reading_frame = strand.windows(3); + let mut i = 0; + // (missing parentheses in `if let` tuple pattern) + if let b1, b2, b3 = reading_frame.next().unwrap() { + //~^ ERROR unexpected `,` in pattern + // ... + } + None +} + +fn is_thr(codon: (Nucleotide, Nucleotide, Nucleotide)) -> bool { + match codon { + // (missing parentheses in match arm tuple pattern) + Nucleotide::Adenine, Nucleotide::Cytosine, _ => true + //~^ ERROR unexpected `,` in pattern + _ => false + } +} + +fn analyze_female_sex_chromosomes(women: &[Genome]) { + // (missing parentheses in `for` tuple pattern) + for x, _barr_body in women.iter().map(|woman| woman.allosomes.clone()) { + //~^ ERROR unexpected `,` in pattern + // ... + } +} + +fn analyze_male_sex_chromosomes(men: &[Genome]) { + // (missing parentheses in pattern with `@` binding) + for x, y @ Allosome::Y(_) in men.iter().map(|man| man.allosomes.clone()) { + //~^ ERROR unexpected `,` in pattern + // ... + } +} + +fn main() { + let genomes = Vec::new(); + // (missing parentheses in `let` pattern) + let women, men: (Vec<Genome>, Vec<Genome>) = genomes.iter().cloned() + //~^ ERROR unexpected `,` in pattern + .partition(|g: &Genome| g.allosomes.0.is_x() && g.allosomes.1.is_x()); +} |