From ae018d579b35e01d72061eaa99695ca93bc9bf9b Mon Sep 17 00:00:00 2001 From: Windel Bouwman Date: Wed, 17 Jul 2019 09:36:11 +0200 Subject: [PATCH] Implement suggestion from clippy. --- compiler/src/symboltable.rs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/compiler/src/symboltable.rs b/compiler/src/symboltable.rs index 233010164b..3122af01aa 100644 --- a/compiler/src/symboltable.rs +++ b/compiler/src/symboltable.rs @@ -13,7 +13,7 @@ use rustpython_parser::location::Location; use std::collections::HashMap; pub fn make_symbol_table(program: &ast::Program) -> Result { - let mut builder = SymbolTableBuilder::new(); + let mut builder: SymbolTableBuilder = Default::default(); builder.enter_scope(); builder.scan_program(program)?; assert_eq!(builder.scopes.len(), 1); @@ -26,7 +26,7 @@ pub fn make_symbol_table(program: &ast::Program) -> Result Result { - let mut builder = SymbolTableBuilder::new(); + let mut builder: SymbolTableBuilder = Default::default(); builder.enter_scope(); builder.scan_statements(statements)?; assert_eq!(builder.scopes.len(), 1); @@ -73,16 +73,18 @@ impl From for CompileError { type SymbolTableResult = Result<(), SymbolTableError>; impl SymbolScope { - pub fn new() -> Self { + pub fn lookup(&self, name: &str) -> Option<&SymbolRole> { + self.symbols.get(name) + } +} + +impl Default for SymbolScope { + fn default() -> Self { SymbolScope { symbols: HashMap::new(), sub_scopes: vec![], } } - - pub fn lookup(&self, name: &str) -> Option<&SymbolRole> { - self.symbols.get(name) - } } impl std::fmt::Debug for SymbolScope { @@ -153,13 +155,15 @@ pub struct SymbolTableBuilder { pub scopes: Vec, } -impl SymbolTableBuilder { - pub fn new() -> Self { +impl Default for SymbolTableBuilder { + fn default() -> Self { SymbolTableBuilder { scopes: vec![] } } +} +impl SymbolTableBuilder { pub fn enter_scope(&mut self) { - let scope = SymbolScope::new(); + let scope = Default::default(); self.scopes.push(scope); }