diff --git a/src/ast.rs b/src/ast.rs
index ff2f8cc7e..dc0488008 100644
--- a/src/ast.rs
+++ b/src/ast.rs
@@ -2288,9 +2288,7 @@ impl<'a> Traversal<'a> {
impl<'a> Iterator for Traversal<'a> {
type Item = &'a dyn Node;
fn next(&mut self) -> Option<&'a dyn Node> {
- let Some(node) = self.stack.pop() else {
- return None;
- };
+ let node = self.stack.pop()?;
// We want to visit in reverse order so the first child ends up on top of the stack.
node.accept(self, true /* reverse */);
Some(node)
diff --git a/src/autoload.rs b/src/autoload.rs
index 9f6b3d38b..6d93c17e9 100644
--- a/src/autoload.rs
+++ b/src/autoload.rs
@@ -140,9 +140,7 @@ impl Autoload {
}
// Do we have an entry to load?
- let Some(file) = self.cache.check(cmd, false) else {
- return None;
- };
+ let file = self.cache.check(cmd, false)?;
// Is this file the same as what we previously autoloaded?
if let Some(loaded_file) = self.autoloaded_files.get(cmd) {
diff --git a/src/builtins/test.rs b/src/builtins/test.rs
index b18fc1d97..8ae653fb7 100644
--- a/src/builtins/test.rs
+++ b/src/builtins/test.rs
@@ -545,9 +545,7 @@ mod test_expressions {
}
// Parse a subexpression.
- let Some(subexpr) = self.parse_expression(start + 1, end) else {
- return None;
- };
+ let subexpr = self.parse_expression(start + 1, end)?;
// Parse a close paren.
let close_index = subexpr.range().end;
diff --git a/src/env/environment_impl.rs b/src/env/environment_impl.rs
index 281f95078..fcb636887 100644
--- a/src/env/environment_impl.rs
+++ b/src/env/environment_impl.rs
@@ -854,7 +854,7 @@ impl EnvStackImpl {
if val.exports() {
let mut node_ref = node.borrow_mut();
// Do NOT overwrite existing values, since we go from inner scopes outwards.
- if node_ref.env.get(key).is_none() {
+ if !node_ref.env.contains_key(key) {
node_ref.env.insert(key.clone(), val.clone());
}
node_ref.changed_exported();
diff --git a/src/future_feature_flags.rs b/src/future_feature_flags.rs
index 89ff90a81..776bf81c8 100644
--- a/src/future_feature_flags.rs
+++ b/src/future_feature_flags.rs
@@ -4,6 +4,9 @@ use crate::wchar::prelude::*;
use std::sync::atomic::AtomicBool;
use std::sync::atomic::Ordering;
+#[cfg(test)]
+use std::cell::RefCell;
+
/// The list of flags.
#[repr(u8)]
#[derive(Clone, Copy)]
@@ -97,7 +100,7 @@ pub const METADATA: &[FeatureMetadata] = &[
thread_local!(
#[cfg(test)]
- static LOCAL_FEATURES: std::cell::RefCell