Skip to content

Commit b63f2f9

Browse files
committed
bubble up QueryResult from lint rule
1 parent 7d6108b commit b63f2f9

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

crates/red_knot/src/lint.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,17 @@ fn lint_bad_overrides(context: &SemanticLintContext) -> QueryResult<()> {
173173
// not a method of a class
174174
continue;
175175
};
176-
let decorators: Vec<_> = func.function(context.db)?.decorators().to_vec();
177-
if decorators.iter().any(|deco_ty| {
178-
if let Type::Function(deco_func) = deco_ty {
179-
deco_func.file() == typing_file
180-
&& deco_func
181-
.symbol(context.db)
182-
.expect("TODO should bubble this up")
183-
== typing_override
184-
} else {
185-
false
176+
let mut override_decorated = false;
177+
for deco_ty in func.function(context.db)?.decorators() {
178+
let Type::Function(deco_func) = deco_ty else {
179+
continue;
180+
};
181+
if deco_func.file() == typing_file && deco_func.symbol(context.db)? == typing_override {
182+
override_decorated = true;
183+
break;
186184
}
187-
}) {
185+
}
186+
if override_decorated {
188187
let method_name = func.name(context.db)?;
189188
if class
190189
.get_super_class_member(context.db, &method_name)?
@@ -195,8 +194,8 @@ fn lint_bad_overrides(context: &SemanticLintContext) -> QueryResult<()> {
195194
format!(
196195
"Method {}.{} is decorated with `typing.override` but does not override any base class method",
197196
class.name(context.db)?,
198-
func.name(context.db)?),
199-
);
197+
method_name,
198+
));
200199
}
201200
}
202201
}

0 commit comments

Comments
 (0)