From 499b34cee0ea75a9a7e6b267c0328c166bc7ed57 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Thu, 10 Nov 2022 15:39:31 +0900 Subject: [PATCH] Apply let-else statements --- compiler/codegen/src/compile.rs | 4 +--- compiler/parser/build.rs | 8 ++------ stdlib/src/scproxy.rs | 8 ++------ vm/src/builtins/function.rs | 7 +++---- vm/src/builtins/type.rs | 4 +--- vm/src/dictdatatype.rs | 4 +--- vm/src/protocol/number.rs | 4 +--- vm/src/stdlib/itertools.rs | 4 +--- 8 files changed, 12 insertions(+), 31 deletions(-) diff --git a/compiler/codegen/src/compile.rs b/compiler/codegen/src/compile.rs index 6666d2314..7bf616923 100644 --- a/compiler/codegen/src/compile.rs +++ b/compiler/codegen/src/compile.rs @@ -1412,9 +1412,7 @@ impl Compiler { ) -> CompileResult<()> { let with_location = self.current_source_location; - let (item, items) = if let Some(parts) = items.split_first() { - parts - } else { + let Some((item, items)) = items.split_first() else { return Err(self.error(CodegenErrorType::EmptyWithItems)); }; diff --git a/compiler/parser/build.rs b/compiler/parser/build.rs index 81c28f43b..4559f2630 100644 --- a/compiler/parser/build.rs +++ b/compiler/parser/build.rs @@ -17,9 +17,7 @@ fn main() -> anyhow::Result<()> { } fn requires_lalrpop(source: &str, target: &str) -> Option { - let target = if let Ok(target) = File::open(target) { - target - } else { + let Ok(target) = File::open(target) else { return Some("python.rs doesn't exist. regenerate.".to_owned()); }; @@ -71,9 +69,7 @@ fn requires_lalrpop(source: &str, target: &str) -> Option { } fn try_lalrpop(source: &str, target: &str) -> anyhow::Result<()> { - let _message = if let Some(msg) = requires_lalrpop(source, target) { - msg - } else { + let Some(_message) = requires_lalrpop(source, target) else { return Ok(()); }; diff --git a/stdlib/src/scproxy.rs b/stdlib/src/scproxy.rs index e1e0fce73..a9f1c1447 100644 --- a/stdlib/src/scproxy.rs +++ b/stdlib/src/scproxy.rs @@ -33,9 +33,7 @@ mod _scproxy { #[pyfunction] fn _get_proxy_settings(vm: &VirtualMachine) -> PyResult> { - let proxy_dict = if let Some(p) = proxy_dict() { - p - } else { + let Some(proxy_dict) = proxy_dict() else { return Ok(None); }; @@ -73,9 +71,7 @@ mod _scproxy { #[pyfunction] fn _get_proxies(vm: &VirtualMachine) -> PyResult> { - let proxy_dict = if let Some(p) = proxy_dict() { - p - } else { + let Some(proxy_dict) = proxy_dict() else { return Ok(None); }; diff --git a/vm/src/builtins/function.rs b/vm/src/builtins/function.rs index 1a3cc2bf0..b23b0c8fe 100644 --- a/vm/src/builtins/function.rs +++ b/vm/src/builtins/function.rs @@ -392,13 +392,12 @@ impl PyFunction { fn set_qualname(&self, value: PySetterValue, vm: &VirtualMachine) -> PyResult<()> { match value { PySetterValue::Assign(value) => { - if let Ok(qualname) = value.downcast::() { - *self.qualname.lock() = qualname; - } else { + let Ok(qualname) = value.downcast::() else { return Err(vm.new_type_error( "__qualname__ must be set to a string object".to_string(), )); - } + }; + *self.qualname.lock() = qualname; } PySetterValue::Delete => { return Err( diff --git a/vm/src/builtins/type.rs b/vm/src/builtins/type.rs index 020add198..a4db53225 100644 --- a/vm/src/builtins/type.rs +++ b/vm/src/builtins/type.rs @@ -959,9 +959,7 @@ impl GetAttr for PyType { )) } - let name = if let Some(name) = vm.ctx.interned_str(&*name_str) { - name - } else { + let Some(name) = vm.ctx.interned_str(&*name_str) else { return Err(attribute_error(zelf, name_str.as_str(), vm)); }; vm_trace!("type.__getattribute__({:?}, {:?})", zelf, name); diff --git a/vm/src/dictdatatype.rs b/vm/src/dictdatatype.rs index 2746c90e1..1114fa1ed 100644 --- a/vm/src/dictdatatype.rs +++ b/vm/src/dictdatatype.rs @@ -586,9 +586,7 @@ impl Dict { pred: impl Fn(&T) -> Result, ) -> Result, E> { let (entry_index, index_index) = lookup; - let entry_index = if let Some(entry_index) = entry_index.index() { - entry_index - } else { + let Some(entry_index) = entry_index.index() else { return Ok(ControlFlow::Break(None)); }; let inner = &mut *self.write(); diff --git a/vm/src/protocol/number.rs b/vm/src/protocol/number.rs index da144dfae..88645c1d9 100644 --- a/vm/src/protocol/number.rs +++ b/vm/src/protocol/number.rs @@ -243,9 +243,7 @@ impl PyNumber<'_> { // PyNumber_Check pub fn check(obj: &PyObject) -> bool { - let methods = if let Some(m) = Self::find_methods(obj) { - m - } else { + let Some(methods) = Self::find_methods(obj) else { return false; }; let methods = methods.as_ref(); diff --git a/vm/src/stdlib/itertools.rs b/vm/src/stdlib/itertools.rs index 09a3f2634..ad41bdc87 100644 --- a/vm/src/stdlib/itertools.rs +++ b/vm/src/stdlib/itertools.rs @@ -110,9 +110,7 @@ mod decl { impl IterNextIterable for PyItertoolsChain {} impl IterNext for PyItertoolsChain { fn next(zelf: &Py, vm: &VirtualMachine) -> PyResult { - let source = if let Some(source) = zelf.source.read().clone() { - source - } else { + let Some(source) = zelf.source.read().clone() else { return Ok(PyIterReturn::StopIteration(None)); }; let next = loop {