Skip to content

Commit de10ce2

Browse files
committed
Reduce nesting of match expression
1 parent 1ffb652 commit de10ce2

File tree

1 file changed

+27
-32
lines changed

1 file changed

+27
-32
lines changed

compiler/codegen/src/symboltable.rs

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,38 +1178,33 @@ impl SymbolTableBuilder {
11781178
let symbol = if let Some(symbol) = table.symbols.get_mut(name.as_ref()) {
11791179
// Role already set..
11801180
match role {
1181-
SymbolUsage::Global => {
1182-
if !symbol.is_global() {
1183-
if symbol.is_parameter {
1184-
return Err(SymbolTableError {
1185-
error: format!("name '{}' is parameter and global", name),
1186-
location,
1187-
});
1188-
}
1189-
if symbol.is_referenced {
1190-
return Err(SymbolTableError {
1191-
error: format!(
1192-
"name '{}' is used prior to global declaration",
1193-
name
1194-
),
1195-
location,
1196-
});
1197-
}
1198-
if symbol.is_annotated {
1199-
return Err(SymbolTableError {
1200-
error: format!("annotated name '{}' can't be global", name),
1201-
location,
1202-
});
1203-
}
1204-
if symbol.is_assigned {
1205-
return Err(SymbolTableError {
1206-
error: format!(
1207-
"name '{}' is assigned to before global declaration",
1208-
name
1209-
),
1210-
location,
1211-
});
1212-
}
1181+
SymbolUsage::Global if !symbol.is_global() => {
1182+
if symbol.is_parameter {
1183+
return Err(SymbolTableError {
1184+
error: format!("name '{}' is parameter and global", name),
1185+
location,
1186+
});
1187+
}
1188+
if symbol.is_referenced {
1189+
return Err(SymbolTableError {
1190+
error: format!("name '{}' is used prior to global declaration", name),
1191+
location,
1192+
});
1193+
}
1194+
if symbol.is_annotated {
1195+
return Err(SymbolTableError {
1196+
error: format!("annotated name '{}' can't be global", name),
1197+
location,
1198+
});
1199+
}
1200+
if symbol.is_assigned {
1201+
return Err(SymbolTableError {
1202+
error: format!(
1203+
"name '{}' is assigned to before global declaration",
1204+
name
1205+
),
1206+
location,
1207+
});
12131208
}
12141209
}
12151210
SymbolUsage::Nonlocal => {

0 commit comments

Comments
 (0)