Remove useless and_then

This commit is contained in:
Jeong YunWon 2023-03-18 21:50:08 +09:00
parent 70f8e04af3
commit 9155ed3826

View file

@ -414,21 +414,20 @@ impl SymbolTableAnalyzer {
st_typ: SymbolTableType, st_typ: SymbolTableType,
) -> Option<SymbolScope> { ) -> Option<SymbolScope> {
sub_tables.iter().find_map(|st| { sub_tables.iter().find_map(|st| {
st.symbols.get(name).and_then(|sym| { let sym = st.symbols.get(name)?;
if sym.scope == SymbolScope::Free || sym.flags.contains(SymbolFlags::FREE_CLASS) { if sym.scope == SymbolScope::Free || sym.flags.contains(SymbolFlags::FREE_CLASS) {
if st_typ == SymbolTableType::Class && name != "__class__" { if st_typ == SymbolTableType::Class && name != "__class__" {
None
} else {
Some(SymbolScope::Cell)
}
} else if sym.scope == SymbolScope::GlobalExplicit && self.tables.is_empty() {
// the symbol is defined on the module level, and an inner scope declares
// a global that points to it
Some(SymbolScope::GlobalExplicit)
} else {
None None
} else {
Some(SymbolScope::Cell)
} }
}) } else if sym.scope == SymbolScope::GlobalExplicit && self.tables.is_empty() {
// the symbol is defined on the module level, and an inner scope declares
// a global that points to it
Some(SymbolScope::GlobalExplicit)
} else {
None
}
}) })
} }