}
}
- self.cur = self.sets.list.push(LintSet::CommandLine { specs });
+ self.cur = self.sets.list.push(LintSet { specs, parent: COMMAND_LINE });
}
/// Attempts to insert the `id` to `level_src` map entry. If unsuccessful
let prev = self.cur;
if !specs.is_empty() {
- self.cur = self.sets.list.push(LintSet::Node { specs, parent: prev });
+ self.cur = self.sets.list.push(LintSet { specs, parent: prev });
}
BuilderPush { prev, changed: prev != self.cur }
}
#[derive(Debug, HashStable)]
-pub enum LintSet {
- CommandLine {
- // -A,-W,-D flags, a `Symbol` for the flag itself and `Level` for which
- // flag.
- specs: FxHashMap<LintId, LevelAndSource>,
- },
-
- Node {
- specs: FxHashMap<LintId, LevelAndSource>,
- parent: LintStackIndex,
- },
+pub struct LintSet {
+ // -A,-W,-D flags, a `Symbol` for the flag itself and `Level` for which
+ // flag.
+ pub specs: FxHashMap<LintId, LevelAndSource>,
+
+ pub parent: LintStackIndex,
}
impl LintLevelSets {
}
}
loop {
- match self.list[idx] {
- LintSet::CommandLine { ref specs } => {
- if let Some(&(level, src)) = specs.get(&id) {
- return (Some(level), src);
- }
- return (None, LintLevelSource::Default);
- }
- LintSet::Node { ref specs, parent } => {
- if let Some(&(level, src)) = specs.get(&id) {
- return (Some(level), src);
- }
- idx = parent;
- }
+ let LintSet { ref specs, parent } = self.list[idx];
+ if let Some(&(level, src)) = specs.get(&id) {
+ return (Some(level), src);
+ }
+ if idx == COMMAND_LINE {
+ return (None, LintLevelSource::Default);
}
+ idx = parent;
}
}
}