@@ -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