Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 864e859

Browse filesBrowse files
committed
Enable rust2024-incompatible pat and keyword-ident lints
1 parent f426348 commit 864e859
Copy full SHA for 864e859

File tree

20 files changed

+62
-64
lines changed
Filter options

20 files changed

+62
-64
lines changed

‎Cargo.toml

Copy file name to clipboardExpand all lines: Cargo.toml
+4
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,13 @@ wasm-bindgen = "0.2.100"
190190
[workspace.lints.rust]
191191
unsafe_code = "allow"
192192
unsafe_op_in_unsafe_fn = "deny"
193+
194+
# rust_2024_compatibility
193195
missing_unsafe_on_extern = "deny"
194196
unsafe_attr_outside_unsafe = "deny"
195197
deprecated_safe_2024 = "deny"
198+
rust_2024_incompatible_pat = "deny"
199+
keyword_idents_2024 = "deny"
196200

197201
[workspace.lints.clippy]
198202
perf = "warn"

‎common/src/int.rs

Copy file name to clipboardExpand all lines: common/src/int.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub fn bytes_to_int(lit: &[u8], mut base: u32) -> Option<BigInt> {
5050
base = parsed;
5151
true
5252
} else {
53-
if let [_first, ref others @ .., last] = lit {
53+
if let [_first, others @ .., last] = lit {
5454
let is_zero =
5555
others.iter().all(|&c| c == b'0' || c == b'_') && *last == b'0';
5656
if !is_zero {

‎compiler/codegen/src/compile.rs

Copy file name to clipboardExpand all lines: compiler/codegen/src/compile.rs
+4-4
Original file line numberDiff line numberDiff line change
@@ -3302,13 +3302,13 @@ impl Compiler {
33023302
elt, generators, ..
33033303
}) => {
33043304
Self::contains_await(elt)
3305-
|| generators.iter().any(|gen| Self::contains_await(&gen.iter))
3305+
|| generators.iter().any(|jen| Self::contains_await(&jen.iter))
33063306
}
33073307
Expr::SetComp(located_ast::ExprSetComp {
33083308
elt, generators, ..
33093309
}) => {
33103310
Self::contains_await(elt)
3311-
|| generators.iter().any(|gen| Self::contains_await(&gen.iter))
3311+
|| generators.iter().any(|jen| Self::contains_await(&jen.iter))
33123312
}
33133313
Expr::DictComp(located_ast::ExprDictComp {
33143314
key,
@@ -3318,13 +3318,13 @@ impl Compiler {
33183318
}) => {
33193319
Self::contains_await(key)
33203320
|| Self::contains_await(value)
3321-
|| generators.iter().any(|gen| Self::contains_await(&gen.iter))
3321+
|| generators.iter().any(|jen| Self::contains_await(&jen.iter))
33223322
}
33233323
Expr::GeneratorExp(located_ast::ExprGeneratorExp {
33243324
elt, generators, ..
33253325
}) => {
33263326
Self::contains_await(elt)
3327-
|| generators.iter().any(|gen| Self::contains_await(&gen.iter))
3327+
|| generators.iter().any(|jen| Self::contains_await(&jen.iter))
33283328
}
33293329
Expr::Starred(expr) => Self::contains_await(&expr.value),
33303330
Expr::IfExp(located_ast::ExprIfExp {

‎derive-impl/src/pytraverse.rs

Copy file name to clipboardExpand all lines: derive-impl/src/pytraverse.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ fn gen_trace_code(item: &mut DeriveInput) -> Result<TokenStream> {
7070
syn::Data::Struct(s) => {
7171
let fields = &mut s.fields;
7272
match fields {
73-
syn::Fields::Named(ref mut fields) => {
73+
syn::Fields::Named(fields) => {
7474
let res: Vec<TokenStream> = fields
7575
.named
7676
.iter_mut()

‎derive-impl/src/util.rs

Copy file name to clipboardExpand all lines: derive-impl/src/util.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ impl AttributeExt for Attribute {
529529
fn try_remove_name(&mut self, item_name: &str) -> Result<Option<NestedMeta>> {
530530
self.try_meta_mut(|meta| {
531531
let nested = match meta {
532-
Meta::List(MetaList { ref mut nested, .. }) => Ok(nested),
532+
Meta::List(MetaList { nested, .. }) => Ok(nested),
533533
other => Err(syn::Error::new(
534534
other.span(),
535535
format!(

‎jit/src/lib.rs

Copy file name to clipboardExpand all lines: jit/src/lib.rs
+3-3
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,9 @@ pub enum AbiValue {
215215
impl AbiValue {
216216
fn to_libffi_arg(&self) -> libffi::middle::Arg {
217217
match self {
218-
AbiValue::Int(ref i) => libffi::middle::Arg::new(i),
219-
AbiValue::Float(ref f) => libffi::middle::Arg::new(f),
220-
AbiValue::Bool(ref b) => libffi::middle::Arg::new(b),
218+
AbiValue::Int(i) => libffi::middle::Arg::new(i),
219+
AbiValue::Float(f) => libffi::middle::Arg::new(f),
220+
AbiValue::Bool(b) => libffi::middle::Arg::new(b),
221221
}
222222
}
223223
}

‎stdlib/src/csv.rs

Copy file name to clipboardExpand all lines: stdlib/src/csv.rs
+7-13
Original file line numberDiff line numberDiff line change
@@ -272,12 +272,12 @@ mod _csv {
272272
let Some(name) = name.payload_if_subclass::<PyStr>(vm) else {
273273
return Err(vm.new_type_error("argument 0 must be a string".to_string()));
274274
};
275-
let mut dialect = match dialect {
275+
let dialect = match dialect {
276276
OptionalArg::Present(d) => PyDialect::try_from_object(vm, d)
277277
.map_err(|_| vm.new_type_error("argument 1 must be a dialect object".to_owned()))?,
278278
OptionalArg::Missing => opts.result(vm)?,
279279
};
280-
opts.update_pydialect(&mut dialect);
280+
let dialect = opts.update_pydialect(dialect);
281281
GLOBAL_HASHMAP
282282
.lock()
283283
.insert(name.as_str().to_owned(), dialect);
@@ -665,7 +665,7 @@ mod _csv {
665665
}
666666

667667
impl FormatOptions {
668-
fn update_pydialect<'b>(&self, res: &'b mut PyDialect) -> &'b mut PyDialect {
668+
fn update_pydialect(&self, mut res: PyDialect) -> PyDialect {
669669
macro_rules! check_and_fill {
670670
($res:ident, $e:ident) => {{
671671
if let Some(t) = self.$e {
@@ -699,24 +699,18 @@ mod _csv {
699699
DialectItem::Str(name) => {
700700
let g = GLOBAL_HASHMAP.lock();
701701
if let Some(dialect) = g.get(name) {
702-
let mut dialect = *dialect;
703-
self.update_pydialect(&mut dialect);
704-
Ok(dialect)
702+
Ok(self.update_pydialect(*dialect))
705703
} else {
706704
Err(new_csv_error(vm, format!("{} is not registed.", name)))
707705
}
708706
// TODO
709707
// Maybe need to update the obj from HashMap
710708
}
711-
DialectItem::Obj(mut o) => {
712-
self.update_pydialect(&mut o);
713-
Ok(o)
714-
}
709+
DialectItem::Obj(o) => Ok(self.update_pydialect(*o)),
715710
DialectItem::None => {
716711
let g = GLOBAL_HASHMAP.lock();
717-
let mut res = *g.get("excel").unwrap();
718-
self.update_pydialect(&mut res);
719-
Ok(res)
712+
let res = *g.get("excel").unwrap();
713+
Ok(self.update_pydialect(res))
720714
}
721715
}
722716
}

‎stdlib/src/json/machinery.rs

Copy file name to clipboardExpand all lines: stdlib/src/json/machinery.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ pub fn scanstring<'a>(
135135
};
136136
let unterminated_err = || DecodeError::new("Unterminated string starting at", end - 1);
137137
let mut chars = s.char_indices().enumerate().skip(end).peekable();
138-
let (_, (mut chunk_start, _)) = chars.peek().ok_or_else(unterminated_err)?;
138+
let &(_, (mut chunk_start, _)) = chars.peek().ok_or_else(unterminated_err)?;
139139
while let Some((char_i, (byte_i, c))) = chars.next() {
140140
match c {
141141
'"' => {

‎stdlib/src/mmap.rs

Copy file name to clipboardExpand all lines: stdlib/src/mmap.rs
+2-2
Original file line numberDiff line numberDiff line change
@@ -497,8 +497,8 @@ mod mmap {
497497
fn as_bytes(&self) -> BorrowedValue<[u8]> {
498498
PyMutexGuard::map_immutable(self.mmap.lock(), |m| {
499499
match m.as_ref().expect("mmap closed or invalid") {
500-
MmapObj::Read(ref mmap) => &mmap[..],
501-
MmapObj::Write(ref mmap) => &mmap[..],
500+
MmapObj::Read(mmap) => &mmap[..],
501+
MmapObj::Write(mmap) => &mmap[..],
502502
}
503503
})
504504
.into()

‎stdlib/src/socket.rs

Copy file name to clipboardExpand all lines: stdlib/src/socket.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -1924,7 +1924,7 @@ mod _socket {
19241924
let host = opts.host.as_ref().map(|s| s.as_str());
19251925
let port = opts.port.as_ref().map(|p| -> std::borrow::Cow<str> {
19261926
match p {
1927-
Either::A(ref s) => s.as_str().into(),
1927+
Either::A(s) => s.as_str().into(),
19281928
Either::B(i) => i.to_string().into(),
19291929
}
19301930
});

‎stdlib/src/syslog.rs

Copy file name to clipboardExpand all lines: stdlib/src/syslog.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ mod syslog {
4949
impl GlobalIdent {
5050
fn as_ptr(&self) -> *const c_char {
5151
match self {
52-
GlobalIdent::Explicit(ref cstr) => cstr.as_ptr(),
52+
GlobalIdent::Explicit(cstr) => cstr.as_ptr(),
5353
GlobalIdent::Implicit => std::ptr::null(),
5454
}
5555
}

‎vm/src/builtins/iter.rs

Copy file name to clipboardExpand all lines: vm/src/builtins/iter.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub enum IterStatus<T> {
2828
unsafe impl<T: Traverse> Traverse for IterStatus<T> {
2929
fn traverse(&self, tracer_fn: &mut TraverseFn) {
3030
match self {
31-
IterStatus::Active(ref r) => r.traverse(tracer_fn),
31+
IterStatus::Active(r) => r.traverse(tracer_fn),
3232
IterStatus::Exhausted => (),
3333
}
3434
}

‎vm/src/builtins/mappingproxy.rs

Copy file name to clipboardExpand all lines: vm/src/builtins/mappingproxy.rs
+2-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ enum MappingProxyInner {
2929
unsafe impl Traverse for MappingProxyInner {
3030
fn traverse(&self, tracer_fn: &mut TraverseFn) {
3131
match self {
32-
MappingProxyInner::Class(ref r) => r.traverse(tracer_fn),
33-
MappingProxyInner::Mapping(ref arg) => arg.traverse(tracer_fn),
32+
MappingProxyInner::Class(r) => r.traverse(tracer_fn),
33+
MappingProxyInner::Mapping(arg) => arg.traverse(tracer_fn),
3434
}
3535
}
3636
}

‎vm/src/coroutine.rs

Copy file name to clipboardExpand all lines: vm/src/coroutine.rs
+16-16
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ pub struct Coro {
3636
exception: PyMutex<Option<PyBaseExceptionRef>>, // exc_state
3737
}
3838

39-
fn gen_name(gen: &PyObject, vm: &VirtualMachine) -> &'static str {
40-
let typ = gen.class();
39+
fn gen_name(jen: &PyObject, vm: &VirtualMachine) -> &'static str {
40+
let typ = jen.class();
4141
if typ.is(vm.ctx.types.coroutine_type) {
4242
"coroutine"
4343
} else if typ.is(vm.ctx.types.async_generator) {
@@ -67,15 +67,15 @@ impl Coro {
6767

6868
fn run_with_context<F>(
6969
&self,
70-
gen: &PyObject,
70+
jen: &PyObject,
7171
vm: &VirtualMachine,
7272
func: F,
7373
) -> PyResult<ExecutionResult>
7474
where
7575
F: FnOnce(FrameRef) -> PyResult<ExecutionResult>,
7676
{
7777
if self.running.compare_exchange(false, true).is_err() {
78-
return Err(vm.new_value_error(format!("{} already executing", gen_name(gen, vm))));
78+
return Err(vm.new_value_error(format!("{} already executing", gen_name(jen, vm))));
7979
}
8080

8181
vm.push_exception(self.exception.lock().take());
@@ -90,7 +90,7 @@ impl Coro {
9090

9191
pub fn send(
9292
&self,
93-
gen: &PyObject,
93+
jen: &PyObject,
9494
value: PyObjectRef,
9595
vm: &VirtualMachine,
9696
) -> PyResult<PyIterReturn> {
@@ -102,22 +102,22 @@ impl Coro {
102102
} else if !vm.is_none(&value) {
103103
return Err(vm.new_type_error(format!(
104104
"can't send non-None value to a just-started {}",
105-
gen_name(gen, vm),
105+
gen_name(jen, vm),
106106
)));
107107
} else {
108108
None
109109
};
110-
let result = self.run_with_context(gen, vm, |f| f.resume(value, vm));
110+
let result = self.run_with_context(jen, vm, |f| f.resume(value, vm));
111111
self.maybe_close(&result);
112112
match result {
113113
Ok(exec_res) => Ok(exec_res.into_iter_return(vm)),
114114
Err(e) => {
115115
if e.fast_isinstance(vm.ctx.exceptions.stop_iteration) {
116116
let err =
117-
vm.new_runtime_error(format!("{} raised StopIteration", gen_name(gen, vm)));
117+
vm.new_runtime_error(format!("{} raised StopIteration", gen_name(jen, vm)));
118118
err.set_cause(Some(e));
119119
Err(err)
120-
} else if gen.class().is(vm.ctx.types.async_generator)
120+
} else if jen.class().is(vm.ctx.types.async_generator)
121121
&& e.fast_isinstance(vm.ctx.exceptions.stop_async_iteration)
122122
{
123123
let err = vm
@@ -132,7 +132,7 @@ impl Coro {
132132
}
133133
pub fn throw(
134134
&self,
135-
gen: &PyObject,
135+
jen: &PyObject,
136136
exc_type: PyObjectRef,
137137
exc_val: PyObjectRef,
138138
exc_tb: PyObjectRef,
@@ -141,16 +141,16 @@ impl Coro {
141141
if self.closed.load() {
142142
return Err(vm.normalize_exception(exc_type, exc_val, exc_tb)?);
143143
}
144-
let result = self.run_with_context(gen, vm, |f| f.gen_throw(vm, exc_type, exc_val, exc_tb));
144+
let result = self.run_with_context(jen, vm, |f| f.gen_throw(vm, exc_type, exc_val, exc_tb));
145145
self.maybe_close(&result);
146146
Ok(result?.into_iter_return(vm))
147147
}
148148

149-
pub fn close(&self, gen: &PyObject, vm: &VirtualMachine) -> PyResult<()> {
149+
pub fn close(&self, jen: &PyObject, vm: &VirtualMachine) -> PyResult<()> {
150150
if self.closed.load() {
151151
return Ok(());
152152
}
153-
let result = self.run_with_context(gen, vm, |f| {
153+
let result = self.run_with_context(jen, vm, |f| {
154154
f.gen_throw(
155155
vm,
156156
vm.ctx.exceptions.generator_exit.to_owned().into(),
@@ -161,7 +161,7 @@ impl Coro {
161161
self.closed.store(true);
162162
match result {
163163
Ok(ExecutionResult::Yield(_)) => {
164-
Err(vm.new_runtime_error(format!("{} ignored GeneratorExit", gen_name(gen, vm))))
164+
Err(vm.new_runtime_error(format!("{} ignored GeneratorExit", gen_name(jen, vm))))
165165
}
166166
Err(e) if !is_gen_exit(&e, vm) => Err(e),
167167
_ => Ok(()),
@@ -183,10 +183,10 @@ impl Coro {
183183
pub fn set_name(&self, name: PyStrRef) {
184184
*self.name.lock() = name;
185185
}
186-
pub fn repr(&self, gen: &PyObject, id: usize, vm: &VirtualMachine) -> String {
186+
pub fn repr(&self, jen: &PyObject, id: usize, vm: &VirtualMachine) -> String {
187187
format!(
188188
"<{} object {} at {:#x}>",
189-
gen_name(gen, vm),
189+
gen_name(jen, vm),
190190
self.name.lock(),
191191
id
192192
)

‎vm/src/frame.rs

Copy file name to clipboardExpand all lines: vm/src/frame.rs
+9-9
Original file line numberDiff line numberDiff line change
@@ -426,19 +426,19 @@ impl ExecutingFrame<'_> {
426426
exc_val: PyObjectRef,
427427
exc_tb: PyObjectRef,
428428
) -> PyResult<ExecutionResult> {
429-
if let Some(gen) = self.yield_from_target() {
429+
if let Some(jen) = self.yield_from_target() {
430430
// borrow checker shenanigans - we only need to use exc_type/val/tb if the following
431431
// variable is Some
432-
let thrower = if let Some(coro) = self.builtin_coro(gen) {
432+
let thrower = if let Some(coro) = self.builtin_coro(jen) {
433433
Some(Either::A(coro))
434434
} else {
435-
vm.get_attribute_opt(gen.to_owned(), "throw")?
435+
vm.get_attribute_opt(jen.to_owned(), "throw")?
436436
.map(Either::B)
437437
};
438438
if let Some(thrower) = thrower {
439439
let ret = match thrower {
440440
Either::A(coro) => coro
441-
.throw(gen, exc_type, exc_val, exc_tb, vm)
441+
.throw(jen, exc_type, exc_val, exc_tb, vm)
442442
.to_pyresult(vm), // FIXME:
443443
Either::B(meth) => meth.call((exc_type, exc_val, exc_tb), vm),
444444
};
@@ -1568,16 +1568,16 @@ impl ExecutingFrame<'_> {
15681568

15691569
fn _send(
15701570
&self,
1571-
gen: &PyObject,
1571+
jen: &PyObject,
15721572
val: PyObjectRef,
15731573
vm: &VirtualMachine,
15741574
) -> PyResult<PyIterReturn> {
1575-
match self.builtin_coro(gen) {
1576-
Some(coro) => coro.send(gen, val, vm),
1575+
match self.builtin_coro(jen) {
1576+
Some(coro) => coro.send(jen, val, vm),
15771577
// FIXME: turn return type to PyResult<PyIterReturn> then ExecutionResult will be simplified
1578-
None if vm.is_none(&val) => PyIter::new(gen).next(vm),
1578+
None if vm.is_none(&val) => PyIter::new(jen).next(vm),
15791579
None => {
1580-
let meth = gen.get_attr("send", vm)?;
1580+
let meth = jen.get_attr("send", vm)?;
15811581
PyIterReturn::from_pyresult(meth.call((val,), vm), vm)
15821582
}
15831583
}

‎vm/src/function/argument.rs

Copy file name to clipboardExpand all lines: vm/src/function/argument.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ where
497497
{
498498
fn traverse(&self, tracer_fn: &mut TraverseFn) {
499499
match self {
500-
OptionalArg::Present(ref o) => o.traverse(tracer_fn),
500+
OptionalArg::Present(o) => o.traverse(tracer_fn),
501501
OptionalArg::Missing => (),
502502
}
503503
}

‎vm/src/stdlib/ast.rs

Copy file name to clipboardExpand all lines: vm/src/stdlib/ast.rs
+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
//! This module makes use of the parser logic, and translates all ast nodes
44
//! into python ast.AST objects.
55
6-
mod gen;
6+
mod r#gen;
77

88
use crate::{
99
builtins::{self, PyDict, PyModule, PyStrRef, PyType},
@@ -398,6 +398,6 @@ pub const PY_COMPILE_FLAGS_MASK: i32 = PY_COMPILE_FLAG_AST_ONLY
398398

399399
pub fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
400400
let module = _ast::make_module(vm);
401-
gen::extend_module_nodes(vm, &module);
401+
r#gen::extend_module_nodes(vm, &module);
402402
module
403403
}

‎vm/src/stdlib/ctypes/base.rs

Copy file name to clipboardExpand all lines: vm/src/stdlib/ctypes/base.rs
+1-1
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ impl Constructor for PyCSimple {
176176
let attributes = cls.get_attributes();
177177
let _type_ = attributes
178178
.iter()
179-
.find(|(&k, _)| k.to_object().str(vm).unwrap().to_string() == *"_type_")
179+
.find(|(k, _)| k.to_object().str(vm).unwrap().to_string() == *"_type_")
180180
.unwrap()
181181
.1
182182
.str(vm)?

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.