Refactor Option<T> handling

Co-authored-by: Jeong YunWon <youknowone@users.noreply.github.com>
This commit is contained in:
Lee Dogeon
2021-08-10 19:14:25 +09:00
committed by GitHub
parent 5b5da3c45d
commit eea1945469

View File

@@ -520,17 +520,17 @@ fn write_profile(matches: &ArgMatches) -> Result<(), Box<dyn std::error::Error>>
fn run_rustpython(vm: &VirtualMachine, matches: &ArgMatches) -> PyResult<()> {
let scope = vm.new_scope_with_builtins();
let main_module = vm.new_module("__main__", scope.globals.clone());
let ann_dict = vm.ctx.new_dict();
let main_module_dict = main_module.dict();
if main_module_dict.is_none()
|| main_module_dict
.unwrap()
.set_item("__annotations__", ann_dict.as_object().to_owned(), vm)
.is_err()
{
error!("Failed to initialize __main__.__annotations__")
}
main_module
.dict()
.and_then(|d| {
d.set_item(
"__annotations__",
vm.ctx.new_dict().as_object().to_owned(),
vm,
)
.ok()
})
.expect("Failed to initialize __main__.__annotations__");
vm.get_attribute(vm.sys_module.clone(), "modules")?
.set_item("__main__", main_module, vm)?;