Lines Matching refs:discriminant
39 let (discriminant, repr) = expr_to_discriminant(expr)?;
48 "discriminant value `{}` is outside the limits of {}",
62 insert(self, discriminant)
66 let discriminant = match self.previous {
68 Some(mut discriminant) => match discriminant.sign {
70 discriminant.magnitude -= 1;
71 if discriminant.magnitude == 0 {
72 discriminant.sign = Sign::Positive;
74 discriminant
77 if discriminant.magnitude == u64::MAX {
78 let msg = format!("discriminant overflow on value after {}", u64::MAX);
81 discriminant.magnitude += 1;
82 discriminant
86 insert(self, discriminant)
103 let msg = "these discriminant values do not fit in any supported enum repr type";
112 let discriminant = lit.base10_parse::<Discriminant>()?;
114 return Ok((discriminant, repr));
119 let (mut discriminant, repr) = expr_to_discriminant(&unary.expr)?;
120 discriminant.sign = match discriminant.sign {
124 return Ok((discriminant, repr));
135 fn insert(set: &mut DiscriminantSet, discriminant: Discriminant) -> Result<Discriminant> {
138 if discriminant < limits.min || limits.max < discriminant {
140 "discriminant value `{}` is outside the limits of {}",
141 discriminant, expected_repr,
147 set.values.insert(discriminant);
148 set.previous = Some(discriminant);
149 Ok(discriminant)
239 "discriminant value outside of supported range",