clean up Compiler::create_qualified_name

This commit is contained in:
Jeong YunWon 2021-08-27 23:19:50 +09:00
parent ca37219aff
commit 88321d9319

View file

@ -1020,9 +1020,10 @@ impl Compiler {
}, },
}; };
let qualified_name = self.create_qualified_name(name, ""); let old_qualified_path = self.current_qualified_path.clone();
let old_qualified_path = self.current_qualified_path.replace(qualified_name.clone()); self.push_qualified_name(name);
self.current_qualified_path = Some(self.create_qualified_name("<locals>", "")); let qualified_name = self.current_qualified_path.clone().unwrap();
self.push_qualified_name("<locals>");
let (body, doc_str) = get_doc(body); let (body, doc_str) = get_doc(body);
@ -1190,11 +1191,9 @@ impl Compiler {
let prev_class_name = std::mem::replace(&mut self.class_name, Some(name.to_owned())); let prev_class_name = std::mem::replace(&mut self.class_name, Some(name.to_owned()));
let qualified_name = self.create_qualified_name(name, ""); let old_qualified_path = self.current_qualified_path.clone();
let old_qualified_path = std::mem::replace( self.push_qualified_name(name);
&mut self.current_qualified_path, let qualified_name = self.current_qualified_path.clone().unwrap();
Some(qualified_name.clone()),
);
self.push_output(bytecode::CodeFlags::empty(), 0, 0, 0, name.to_owned()); self.push_output(bytecode::CodeFlags::empty(), 0, 0, 0, name.to_owned());
@ -2466,11 +2465,12 @@ impl Compiler {
self.current_source_location.row() self.current_source_location.row()
} }
fn create_qualified_name(&self, name: &str, suffix: &str) -> String { fn push_qualified_name(&mut self, name: &str) {
if let Some(ref qualified_path) = self.current_qualified_path { if let Some(ref mut qualified_path) = self.current_qualified_path {
format!("{}.{}{}", qualified_path, name, suffix) qualified_path.push('.');
qualified_path.push_str(name);
} else { } else {
format!("{}{}", name, suffix) self.current_qualified_path = Some(name.to_owned());
} }
} }