Skip to content

Commit 347d481

Browse files
committed
fix remaining clippy warnings
1 parent 93f70ab commit 347d481

21 files changed

+141
-159
lines changed

compiler/src/symboltable.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -301,19 +301,17 @@ impl SymbolTableBuilder {
301301
if let Some(alias) = &part.alias {
302302
// `import mymodule as myalias`
303303
self.register_name(alias, SymbolRole::Assigned)?;
304+
} else if part.symbols.is_empty() {
305+
// `import module`
306+
self.register_name(&part.module, SymbolRole::Assigned)?;
304307
} else {
305-
if part.symbols.is_empty() {
306-
// `import module`
307-
self.register_name(&part.module, SymbolRole::Assigned)?;
308-
} else {
309-
// `from mymodule import myimport`
310-
for symbol in &part.symbols {
311-
if let Some(alias) = &symbol.alias {
312-
// `from mymodule import myimportname as myalias`
313-
self.register_name(alias, SymbolRole::Assigned)?;
314-
} else {
315-
self.register_name(&symbol.symbol, SymbolRole::Assigned)?;
316-
}
308+
// `from mymodule import myimport`
309+
for symbol in &part.symbols {
310+
if let Some(alias) = &symbol.alias {
311+
// `from mymodule import myimportname as myalias`
312+
self.register_name(alias, SymbolRole::Assigned)?;
313+
} else {
314+
self.register_name(&symbol.symbol, SymbolRole::Assigned)?;
317315
}
318316
}
319317
}

derive/src/compile_bytecode.rs

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ impl PyCompileInput {
7777
fn assert_source_empty(source: &Option<CompilationSource>) -> Result<(), Diagnostic> {
7878
if let Some(source) = source {
7979
Err(Diagnostic::spans_error(
80-
source.span.clone(),
80+
source.span,
8181
"Cannot have more than one source",
8282
))
8383
} else {
@@ -86,53 +86,50 @@ impl PyCompileInput {
8686
}
8787

8888
for meta in &self.metas {
89-
match meta {
90-
Meta::NameValue(name_value) => {
91-
if name_value.ident == "mode" {
92-
mode = Some(match &name_value.lit {
93-
Lit::Str(s) => match s.value().as_str() {
94-
"exec" => compile::Mode::Exec,
95-
"eval" => compile::Mode::Eval,
96-
"single" => compile::Mode::Single,
97-
_ => bail_span!(s, "mode must be exec, eval, or single"),
98-
},
99-
_ => bail_span!(name_value.lit, "mode must be a string"),
100-
})
101-
} else if name_value.ident == "module_name" {
102-
module_name = Some(match &name_value.lit {
103-
Lit::Str(s) => s.value(),
104-
_ => bail_span!(name_value.lit, "module_name must be string"),
105-
})
106-
} else if name_value.ident == "source" {
107-
assert_source_empty(&source)?;
108-
let code = match &name_value.lit {
109-
Lit::Str(s) => s.value(),
110-
_ => bail_span!(name_value.lit, "source must be a string"),
111-
};
112-
source = Some(CompilationSource {
113-
kind: CompilationSourceKind::SourceCode(code),
114-
span: extract_spans(&name_value).unwrap(),
115-
});
116-
} else if name_value.ident == "file" {
117-
assert_source_empty(&source)?;
118-
let path = match &name_value.lit {
119-
Lit::Str(s) => PathBuf::from(s.value()),
120-
_ => bail_span!(name_value.lit, "source must be a string"),
121-
};
122-
source = Some(CompilationSource {
123-
kind: CompilationSourceKind::File(path),
124-
span: extract_spans(&name_value).unwrap(),
125-
});
126-
}
89+
if let Meta::NameValue(name_value) = meta {
90+
if name_value.ident == "mode" {
91+
mode = Some(match &name_value.lit {
92+
Lit::Str(s) => match s.value().as_str() {
93+
"exec" => compile::Mode::Exec,
94+
"eval" => compile::Mode::Eval,
95+
"single" => compile::Mode::Single,
96+
_ => bail_span!(s, "mode must be exec, eval, or single"),
97+
},
98+
_ => bail_span!(name_value.lit, "mode must be a string"),
99+
})
100+
} else if name_value.ident == "module_name" {
101+
module_name = Some(match &name_value.lit {
102+
Lit::Str(s) => s.value(),
103+
_ => bail_span!(name_value.lit, "module_name must be string"),
104+
})
105+
} else if name_value.ident == "source" {
106+
assert_source_empty(&source)?;
107+
let code = match &name_value.lit {
108+
Lit::Str(s) => s.value(),
109+
_ => bail_span!(name_value.lit, "source must be a string"),
110+
};
111+
source = Some(CompilationSource {
112+
kind: CompilationSourceKind::SourceCode(code),
113+
span: extract_spans(&name_value).unwrap(),
114+
});
115+
} else if name_value.ident == "file" {
116+
assert_source_empty(&source)?;
117+
let path = match &name_value.lit {
118+
Lit::Str(s) => PathBuf::from(s.value()),
119+
_ => bail_span!(name_value.lit, "source must be a string"),
120+
};
121+
source = Some(CompilationSource {
122+
kind: CompilationSourceKind::File(path),
123+
span: extract_spans(&name_value).unwrap(),
124+
});
127125
}
128-
_ => {}
129126
}
130127
}
131128

132129
source
133130
.ok_or_else(|| {
134131
Diagnostic::span_error(
135-
self.span.clone(),
132+
self.span,
136133
"Must have either file or source in py_compile_bytecode!()",
137134
)
138135
})?

derive/src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ impl Diagnostic {
104104
}
105105

106106
pub fn from_vec(diagnostics: Vec<Diagnostic>) -> Result<(), Diagnostic> {
107-
if diagnostics.len() == 0 {
107+
if diagnostics.is_empty() {
108108
Ok(())
109109
} else {
110110
Err(Diagnostic {

derive/src/from_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ impl ArgAttribute {
6262
optional: false,
6363
};
6464

65-
while let Some(arg) = iter.next() {
65+
for arg in iter {
6666
attribute.parse_argument(arg)?;
6767
}
6868

derive/src/pyclass.rs

Lines changed: 31 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,14 @@ impl ClassItem {
6363
NestedMeta::Meta(meta) => meta,
6464
NestedMeta::Literal(_) => continue,
6565
};
66-
match meta {
67-
Meta::NameValue(name_value) => {
68-
if name_value.ident == "name" {
69-
if let Lit::Str(s) = &name_value.lit {
70-
py_name = Some(s.value());
71-
} else {
72-
bail_span!(
73-
&sig.ident,
74-
"#[pymethod(name = ...)] must be a string"
75-
);
76-
}
66+
if let Meta::NameValue(name_value) = meta {
67+
if name_value.ident == "name" {
68+
if let Lit::Str(s) = &name_value.lit {
69+
py_name = Some(s.value());
70+
} else {
71+
bail_span!(&sig.ident, "#[pymethod(name = ...)] must be a string");
7772
}
7873
}
79-
_ => {}
8074
}
8175
}
8276
item = Some(ClassItem::Method {
@@ -104,20 +98,17 @@ impl ClassItem {
10498
NestedMeta::Meta(meta) => meta,
10599
NestedMeta::Literal(_) => continue,
106100
};
107-
match meta {
108-
Meta::NameValue(name_value) => {
109-
if name_value.ident == "name" {
110-
if let Lit::Str(s) = &name_value.lit {
111-
py_name = Some(s.value());
112-
} else {
113-
bail_span!(
114-
&sig.ident,
115-
"#[pyclassmethod(name = ...)] must be a string"
116-
);
117-
}
101+
if let Meta::NameValue(name_value) = meta {
102+
if name_value.ident == "name" {
103+
if let Lit::Str(s) = &name_value.lit {
104+
py_name = Some(s.value());
105+
} else {
106+
bail_span!(
107+
&sig.ident,
108+
"#[pyclassmethod(name = ...)] must be a string"
109+
);
118110
}
119111
}
120-
_ => {}
121112
}
122113
}
123114
item = Some(ClassItem::ClassMethod {
@@ -235,24 +226,22 @@ pub fn impl_pyimpl(_attr: AttributeArgs, item: Item) -> Result<TokenStream2, Dia
235226
let ty = &imp.self_ty;
236227
let mut properties: HashMap<&str, (Option<&Ident>, Option<&Ident>)> = HashMap::new();
237228
for item in items.iter() {
238-
match item {
239-
ClassItem::Property {
240-
ref item_ident,
241-
ref py_name,
242-
setter,
243-
} => {
244-
let entry = properties.entry(py_name).or_default();
245-
let func = if *setter { &mut entry.1 } else { &mut entry.0 };
246-
if func.is_some() {
247-
bail_span!(
248-
item_ident,
249-
"Multiple property accessors with name {:?}",
250-
py_name
251-
)
252-
}
253-
*func = Some(item_ident);
229+
if let ClassItem::Property {
230+
ref item_ident,
231+
ref py_name,
232+
setter,
233+
} = item
234+
{
235+
let entry = properties.entry(py_name).or_default();
236+
let func = if *setter { &mut entry.1 } else { &mut entry.0 };
237+
if func.is_some() {
238+
bail_span!(
239+
item_ident,
240+
"Multiple property accessors with name {:?}",
241+
py_name
242+
)
254243
}
255-
_ => {}
244+
*func = Some(item_ident);
256245
}
257246
}
258247
let methods = items.iter().filter_map(|item| match item {
@@ -319,7 +308,7 @@ fn generate_class_def(
319308
ident: &Ident,
320309
attr_name: &'static str,
321310
attr: AttributeArgs,
322-
attrs: &Vec<Attribute>,
311+
attrs: &[Attribute],
323312
) -> Result<TokenStream2, Diagnostic> {
324313
let mut class_name = None;
325314
for attr in attr {

parser/src/lexer.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -488,15 +488,15 @@ where
488488
for i in 1..=literal_number {
489489
match self.next_char() {
490490
Some(c) => match c.to_digit(16) {
491-
Some(d) => p += d << (literal_number - i) * 4,
491+
Some(d) => p += d << ((literal_number - i) * 4),
492492
None => return unicode_error,
493493
},
494494
None => return unicode_error,
495495
}
496496
}
497497
match wtf8::CodePoint::from_u32(p) {
498-
Some(cp) => return Ok(cp.to_char_lossy()),
499-
None => return unicode_error,
498+
Some(cp) => Ok(cp.to_char_lossy()),
499+
None => unicode_error,
500500
}
501501
}
502502

@@ -755,12 +755,14 @@ where
755755
Ok(IndentationLevel { spaces, tabs })
756756
}
757757

758+
#[allow(clippy::cognitive_complexity)]
758759
fn inner_next(&mut self) -> LexResult {
759760
if !self.pending.is_empty() {
760761
return self.pending.remove(0);
761762
}
762763

763-
'top_loop: loop {
764+
// top loop
765+
loop {
764766
// Detect indentation levels
765767
if self.at_begin_of_line {
766768
self.at_begin_of_line = false;

vm/src/builtins.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ fn builtin_reversed(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult {
713713
vm.invoke(reversed_method?, PyFuncArgs::default())
714714
} else {
715715
vm.get_method_or_type_error(obj.clone(), "__getitem__", || {
716-
format!("argument to reversed() must be a sequence")
716+
"argument to reversed() must be a sequence".to_string()
717717
})?;
718718
let len = vm.call_method(&obj.clone(), "__len__", PyFuncArgs::default())?;
719719
let obj_iterator = objiter::PySequenceIterator {

vm/src/cformat.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ impl CFormatSpec {
119119
) -> String {
120120
let mut num_chars = string.chars().count();
121121
if let Some(num_prefix_chars) = num_prefix_chars {
122-
num_chars = num_chars + num_prefix_chars;
122+
num_chars += num_prefix_chars;
123123
}
124124
let num_chars = num_chars;
125125

@@ -250,7 +250,7 @@ impl FromStr for CFormatString {
250250
.or_else(|_| parse_specifier(cur_text))
251251
.map(|(format_part, new_text, consumed)| {
252252
parts.push((index, format_part));
253-
index = index + consumed;
253+
index += consumed;
254254
new_text
255255
})
256256
.map_err(|(e, consumed)| CFormatError {
@@ -320,7 +320,7 @@ fn parse_literal(text: &str) -> Result<(CFormatPart, &str, usize), ParsingError>
320320
match parse_literal_single(cur_text) {
321321
Ok((next_char, remaining)) => {
322322
result_string.push(next_char);
323-
consumed = consumed + 1;
323+
consumed += 1;
324324
cur_text = remaining;
325325
}
326326
Err(err) => {
@@ -537,12 +537,12 @@ impl FromStr for CFormatSpec {
537537
};
538538

539539
Ok(CFormatSpec {
540-
mapping_key: mapping_key,
541-
flags: flags,
540+
mapping_key,
541+
flags,
542542
min_field_width: width,
543-
precision: precision,
544-
format_type: format_type,
545-
format_char: format_char,
543+
precision,
544+
format_type,
545+
format_char,
546546
chars_consumed: calc_consumed(text, remaining_text),
547547
})
548548
}

vm/src/format.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ impl FormatPreconversor {
2020
}
2121
}
2222

23-
pub fn from_str(text: &str) -> Option<FormatPreconversor> {
23+
pub fn from_string(text: &str) -> Option<FormatPreconversor> {
2424
let mut chars = text.chars();
2525
if chars.next() != Some('!') {
2626
return None;
@@ -33,7 +33,7 @@ impl FormatPreconversor {
3333
}
3434

3535
pub fn parse_and_consume(text: &str) -> (Option<FormatPreconversor>, &str) {
36-
let preconversor = FormatPreconversor::from_str(text);
36+
let preconversor = FormatPreconversor::from_string(text);
3737
match preconversor {
3838
None => (None, text),
3939
Some(_) => {

0 commit comments

Comments
 (0)