From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- ...issue-48492-tuple-destructure-missing-parens.rs | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/test/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs (limited to 'src/test/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs') diff --git a/src/test/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs b/src/test/ui/did_you_mean/issue-48492-tuple-destructure-missing-parens.rs new file mode 100644 index 000000000..43b5f6d54 --- /dev/null +++ b/src/test/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), + Y(Vec) +} + +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 { + 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 { + 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, Vec) = genomes.iter().cloned() + //~^ ERROR unexpected `,` in pattern + .partition(|g: &Genome| g.allosomes.0.is_x() && g.allosomes.1.is_x()); +} -- cgit v1.2.3