The functional record update syntax was used on something other than a struct.
Erroneous code example:
#![allow(unused)]
fn main () {
enum PublicationFrequency {
Weekly,
SemiMonthly { days: (u8 , u8 ), annual_special: bool },
}
fn one_up_competitor (competitor_frequency: PublicationFrequency)
-> PublicationFrequency {
match competitor_frequency {
PublicationFrequency::Weekly => PublicationFrequency::SemiMonthly {
days: (1 , 15 ), annual_special: false
},
c @ PublicationFrequency::SemiMonthly{ .. } =>
PublicationFrequency::SemiMonthly {
annual_special: true , ..c
}
}
}
}
ⓘ
The functional record update syntax is only allowed for structs (struct-like
enum variants don't qualify, for example). To fix the previous code, rewrite the
expression without functional record update syntax:
#![allow(unused)]
fn main () {
enum PublicationFrequency {
Weekly,
SemiMonthly { days: (u8 , u8 ), annual_special: bool },
}
fn one_up_competitor (competitor_frequency: PublicationFrequency)
-> PublicationFrequency {
match competitor_frequency {
PublicationFrequency::Weekly => PublicationFrequency::SemiMonthly {
days: (1 , 15 ), annual_special: false
},
PublicationFrequency::SemiMonthly{ days, .. } =>
PublicationFrequency::SemiMonthly {
days, annual_special: true
}
}
}
}