mirror of https://github.com/astral-sh/ruff
Add an end location to Check (#299)
This commit is contained in:
parent
46e6a1b3be
commit
83f18193c2
|
|
@ -8,13 +8,15 @@ use rustpython_parser::ast::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::ast::operations::SourceCodeLocator;
|
use crate::ast::operations::SourceCodeLocator;
|
||||||
use crate::ast::types::{Binding, BindingKind, CheckLocator, FunctionScope, Scope, ScopeKind};
|
use crate::ast::types::{
|
||||||
|
Binding, BindingKind, CheckLocator, FunctionScope, Range, Scope, ScopeKind,
|
||||||
|
};
|
||||||
use crate::autofix::{fixer, fixes};
|
use crate::autofix::{fixer, fixes};
|
||||||
use crate::checks::{Check, CheckKind, Fix, RejectedCmpop};
|
use crate::checks::{Check, CheckKind, Fix, RejectedCmpop};
|
||||||
use crate::python::builtins::BUILTINS;
|
use crate::python::builtins::BUILTINS;
|
||||||
|
|
||||||
/// Check IfTuple compliance.
|
/// Check IfTuple compliance.
|
||||||
pub fn check_if_tuple(test: &Expr, location: Location) -> Option<Check> {
|
pub fn check_if_tuple(test: &Expr, location: Range) -> Option<Check> {
|
||||||
if let ExprKind::Tuple { elts, .. } = &test.node {
|
if let ExprKind::Tuple { elts, .. } = &test.node {
|
||||||
if !elts.is_empty() {
|
if !elts.is_empty() {
|
||||||
return Some(Check::new(CheckKind::IfTuple, location));
|
return Some(Check::new(CheckKind::IfTuple, location));
|
||||||
|
|
@ -24,7 +26,7 @@ pub fn check_if_tuple(test: &Expr, location: Location) -> Option<Check> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check AssertTuple compliance.
|
/// Check AssertTuple compliance.
|
||||||
pub fn check_assert_tuple(test: &Expr, location: Location) -> Option<Check> {
|
pub fn check_assert_tuple(test: &Expr, location: Range) -> Option<Check> {
|
||||||
if let ExprKind::Tuple { elts, .. } = &test.node {
|
if let ExprKind::Tuple { elts, .. } = &test.node {
|
||||||
if !elts.is_empty() {
|
if !elts.is_empty() {
|
||||||
return Some(Check::new(CheckKind::AssertTuple, location));
|
return Some(Check::new(CheckKind::AssertTuple, location));
|
||||||
|
|
@ -51,7 +53,7 @@ pub fn check_not_tests(
|
||||||
if check_not_in {
|
if check_not_in {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::NotInTest,
|
CheckKind::NotInTest,
|
||||||
locator.locate_check(operand.location),
|
locator.locate_check(Range::from_located(operand)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -59,7 +61,7 @@ pub fn check_not_tests(
|
||||||
if check_not_is {
|
if check_not_is {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::NotIsTest,
|
CheckKind::NotIsTest,
|
||||||
locator.locate_check(operand.location),
|
locator.locate_check(Range::from_located(operand)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -106,7 +108,7 @@ pub fn check_unused_variables(
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check DoNotAssignLambda compliance.
|
/// Check DoNotAssignLambda compliance.
|
||||||
pub fn check_do_not_assign_lambda(value: &Expr, location: Location) -> Option<Check> {
|
pub fn check_do_not_assign_lambda(value: &Expr, location: Range) -> Option<Check> {
|
||||||
if let ExprKind::Lambda { .. } = &value.node {
|
if let ExprKind::Lambda { .. } = &value.node {
|
||||||
Some(Check::new(CheckKind::DoNotAssignLambda, location))
|
Some(Check::new(CheckKind::DoNotAssignLambda, location))
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -119,7 +121,7 @@ fn is_ambiguous_name(name: &str) -> bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check AmbiguousVariableName compliance.
|
/// Check AmbiguousVariableName compliance.
|
||||||
pub fn check_ambiguous_variable_name(name: &str, location: Location) -> Option<Check> {
|
pub fn check_ambiguous_variable_name(name: &str, location: Range) -> Option<Check> {
|
||||||
if is_ambiguous_name(name) {
|
if is_ambiguous_name(name) {
|
||||||
Some(Check::new(
|
Some(Check::new(
|
||||||
CheckKind::AmbiguousVariableName(name.to_string()),
|
CheckKind::AmbiguousVariableName(name.to_string()),
|
||||||
|
|
@ -131,7 +133,7 @@ pub fn check_ambiguous_variable_name(name: &str, location: Location) -> Option<C
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check AmbiguousClassName compliance.
|
/// Check AmbiguousClassName compliance.
|
||||||
pub fn check_ambiguous_class_name(name: &str, location: Location) -> Option<Check> {
|
pub fn check_ambiguous_class_name(name: &str, location: Range) -> Option<Check> {
|
||||||
if is_ambiguous_name(name) {
|
if is_ambiguous_name(name) {
|
||||||
Some(Check::new(
|
Some(Check::new(
|
||||||
CheckKind::AmbiguousClassName(name.to_string()),
|
CheckKind::AmbiguousClassName(name.to_string()),
|
||||||
|
|
@ -143,7 +145,7 @@ pub fn check_ambiguous_class_name(name: &str, location: Location) -> Option<Chec
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check AmbiguousFunctionName compliance.
|
/// Check AmbiguousFunctionName compliance.
|
||||||
pub fn check_ambiguous_function_name(name: &str, location: Location) -> Option<Check> {
|
pub fn check_ambiguous_function_name(name: &str, location: Range) -> Option<Check> {
|
||||||
if is_ambiguous_name(name) {
|
if is_ambiguous_name(name) {
|
||||||
Some(Check::new(
|
Some(Check::new(
|
||||||
CheckKind::AmbiguousFunctionName(name.to_string()),
|
CheckKind::AmbiguousFunctionName(name.to_string()),
|
||||||
|
|
@ -175,7 +177,7 @@ pub fn check_useless_object_inheritance(
|
||||||
}) => {
|
}) => {
|
||||||
let mut check = Check::new(
|
let mut check = Check::new(
|
||||||
CheckKind::UselessObjectInheritance(name.to_string()),
|
CheckKind::UselessObjectInheritance(name.to_string()),
|
||||||
expr.location,
|
Range::from_located(expr),
|
||||||
);
|
);
|
||||||
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
||||||
if let Some(fix) = fixes::remove_class_def_base(
|
if let Some(fix) = fixes::remove_class_def_base(
|
||||||
|
|
@ -206,7 +208,7 @@ pub fn check_default_except_not_last(handlers: &Vec<Excepthandler>) -> Option<Ch
|
||||||
if type_.is_none() && idx < handlers.len() - 1 {
|
if type_.is_none() && idx < handlers.len() - 1 {
|
||||||
return Some(Check::new(
|
return Some(Check::new(
|
||||||
CheckKind::DefaultExceptNotLast,
|
CheckKind::DefaultExceptNotLast,
|
||||||
handler.location,
|
Range::from_located(handler),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -220,13 +222,19 @@ pub fn check_raise_not_implemented(expr: &Expr) -> Option<Check> {
|
||||||
ExprKind::Call { func, .. } => {
|
ExprKind::Call { func, .. } => {
|
||||||
if let ExprKind::Name { id, .. } = &func.node {
|
if let ExprKind::Name { id, .. } = &func.node {
|
||||||
if id == "NotImplemented" {
|
if id == "NotImplemented" {
|
||||||
return Some(Check::new(CheckKind::RaiseNotImplemented, expr.location));
|
return Some(Check::new(
|
||||||
|
CheckKind::RaiseNotImplemented,
|
||||||
|
Range::from_located(expr),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ExprKind::Name { id, .. } => {
|
ExprKind::Name { id, .. } => {
|
||||||
if id == "NotImplemented" {
|
if id == "NotImplemented" {
|
||||||
return Some(Check::new(CheckKind::RaiseNotImplemented, expr.location));
|
return Some(Check::new(
|
||||||
|
CheckKind::RaiseNotImplemented,
|
||||||
|
Range::from_located(expr),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
|
@ -258,7 +266,10 @@ pub fn check_duplicate_arguments(arguments: &Arguments) -> Vec<Check> {
|
||||||
for arg in all_arguments {
|
for arg in all_arguments {
|
||||||
let ident = &arg.node.arg;
|
let ident = &arg.node.arg;
|
||||||
if idents.contains(ident.as_str()) {
|
if idents.contains(ident.as_str()) {
|
||||||
checks.push(Check::new(CheckKind::DuplicateArgumentName, arg.location));
|
checks.push(Check::new(
|
||||||
|
CheckKind::DuplicateArgumentName,
|
||||||
|
Range::from_located(arg),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
idents.insert(ident);
|
idents.insert(ident);
|
||||||
}
|
}
|
||||||
|
|
@ -272,12 +283,16 @@ pub fn check_assert_equals(expr: &Expr, autofix: &fixer::Mode) -> Option<Check>
|
||||||
if attr == "assertEquals" {
|
if attr == "assertEquals" {
|
||||||
if let ExprKind::Name { id, .. } = &value.node {
|
if let ExprKind::Name { id, .. } = &value.node {
|
||||||
if id == "self" {
|
if id == "self" {
|
||||||
let mut check = Check::new(CheckKind::NoAssertEquals, expr.location);
|
let mut check =
|
||||||
|
Check::new(CheckKind::NoAssertEquals, Range::from_located(expr));
|
||||||
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
||||||
check.amend(Fix {
|
check.amend(Fix {
|
||||||
content: "assertEqual".to_string(),
|
content: "assertEqual".to_string(),
|
||||||
start: Location::new(expr.location.row(), expr.location.column() + 1),
|
location: Location::new(
|
||||||
end: Location::new(
|
expr.location.row(),
|
||||||
|
expr.location.column() + 1,
|
||||||
|
),
|
||||||
|
end_location: Location::new(
|
||||||
expr.location.row(),
|
expr.location.row(),
|
||||||
expr.location.column() + 1 + "assertEquals".len(),
|
expr.location.column() + 1 + "assertEquals".len(),
|
||||||
),
|
),
|
||||||
|
|
@ -326,7 +341,7 @@ pub fn check_repeated_keys(
|
||||||
if check_repeated_literals && v1 == v2 {
|
if check_repeated_literals && v1 == v2 {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::MultiValueRepeatedKeyLiteral,
|
CheckKind::MultiValueRepeatedKeyLiteral,
|
||||||
locator.locate_check(k2.location),
|
locator.locate_check(Range::from_located(k2)),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -334,7 +349,7 @@ pub fn check_repeated_keys(
|
||||||
if check_repeated_variables && v1 == v2 {
|
if check_repeated_variables && v1 == v2 {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::MultiValueRepeatedKeyVariable((*v2).to_string()),
|
CheckKind::MultiValueRepeatedKeyVariable((*v2).to_string()),
|
||||||
locator.locate_check(k2.location),
|
locator.locate_check(Range::from_located(k2)),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -373,13 +388,13 @@ pub fn check_literal_comparisons(
|
||||||
if matches!(op, Cmpop::Eq) {
|
if matches!(op, Cmpop::Eq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::NoneComparison(RejectedCmpop::Eq),
|
CheckKind::NoneComparison(RejectedCmpop::Eq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if matches!(op, Cmpop::NotEq) {
|
if matches!(op, Cmpop::NotEq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::NoneComparison(RejectedCmpop::NotEq),
|
CheckKind::NoneComparison(RejectedCmpop::NotEq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -393,13 +408,13 @@ pub fn check_literal_comparisons(
|
||||||
if matches!(op, Cmpop::Eq) {
|
if matches!(op, Cmpop::Eq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::TrueFalseComparison(value, RejectedCmpop::Eq),
|
CheckKind::TrueFalseComparison(value, RejectedCmpop::Eq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if matches!(op, Cmpop::NotEq) {
|
if matches!(op, Cmpop::NotEq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::TrueFalseComparison(value, RejectedCmpop::NotEq),
|
CheckKind::TrueFalseComparison(value, RejectedCmpop::NotEq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -419,13 +434,13 @@ pub fn check_literal_comparisons(
|
||||||
if matches!(op, Cmpop::Eq) {
|
if matches!(op, Cmpop::Eq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::NoneComparison(RejectedCmpop::Eq),
|
CheckKind::NoneComparison(RejectedCmpop::Eq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if matches!(op, Cmpop::NotEq) {
|
if matches!(op, Cmpop::NotEq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::NoneComparison(RejectedCmpop::NotEq),
|
CheckKind::NoneComparison(RejectedCmpop::NotEq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -439,13 +454,13 @@ pub fn check_literal_comparisons(
|
||||||
if matches!(op, Cmpop::Eq) {
|
if matches!(op, Cmpop::Eq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::TrueFalseComparison(value, RejectedCmpop::Eq),
|
CheckKind::TrueFalseComparison(value, RejectedCmpop::Eq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if matches!(op, Cmpop::NotEq) {
|
if matches!(op, Cmpop::NotEq) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::TrueFalseComparison(value, RejectedCmpop::NotEq),
|
CheckKind::TrueFalseComparison(value, RejectedCmpop::NotEq),
|
||||||
locator.locate_check(comparator.location),
|
locator.locate_check(Range::from_located(comparator)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -482,7 +497,7 @@ pub fn check_is_literal(
|
||||||
left: &Expr,
|
left: &Expr,
|
||||||
ops: &Vec<Cmpop>,
|
ops: &Vec<Cmpop>,
|
||||||
comparators: &Vec<Expr>,
|
comparators: &Vec<Expr>,
|
||||||
location: Location,
|
location: Range,
|
||||||
) -> Vec<Check> {
|
) -> Vec<Check> {
|
||||||
let mut checks: Vec<Check> = vec![];
|
let mut checks: Vec<Check> = vec![];
|
||||||
|
|
||||||
|
|
@ -503,7 +518,7 @@ pub fn check_is_literal(
|
||||||
pub fn check_type_comparison(
|
pub fn check_type_comparison(
|
||||||
ops: &Vec<Cmpop>,
|
ops: &Vec<Cmpop>,
|
||||||
comparators: &Vec<Expr>,
|
comparators: &Vec<Expr>,
|
||||||
location: Location,
|
location: Range,
|
||||||
) -> Vec<Check> {
|
) -> Vec<Check> {
|
||||||
let mut checks: Vec<Check> = vec![];
|
let mut checks: Vec<Check> = vec![];
|
||||||
|
|
||||||
|
|
@ -544,7 +559,7 @@ pub fn check_starred_expressions(
|
||||||
elts: &[Expr],
|
elts: &[Expr],
|
||||||
check_too_many_expressions: bool,
|
check_too_many_expressions: bool,
|
||||||
check_two_starred_expressions: bool,
|
check_two_starred_expressions: bool,
|
||||||
location: Location,
|
location: Range,
|
||||||
) -> Option<Check> {
|
) -> Option<Check> {
|
||||||
let mut has_starred: bool = false;
|
let mut has_starred: bool = false;
|
||||||
let mut starred_index: Option<usize> = None;
|
let mut starred_index: Option<usize> = None;
|
||||||
|
|
@ -606,7 +621,7 @@ pub fn check_break_outside_loop(
|
||||||
if !allowed {
|
if !allowed {
|
||||||
Some(Check::new(
|
Some(Check::new(
|
||||||
CheckKind::BreakOutsideLoop,
|
CheckKind::BreakOutsideLoop,
|
||||||
locator.locate_check(stmt.location),
|
locator.locate_check(Range::from_located(stmt)),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
@ -647,7 +662,7 @@ pub fn check_continue_outside_loop(
|
||||||
if !allowed {
|
if !allowed {
|
||||||
Some(Check::new(
|
Some(Check::new(
|
||||||
CheckKind::ContinueOutsideLoop,
|
CheckKind::ContinueOutsideLoop,
|
||||||
locator.locate_check(stmt.location),
|
locator.locate_check(Range::from_located(stmt)),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
@ -664,7 +679,7 @@ pub enum ShadowingType {
|
||||||
/// Check builtin name shadowing
|
/// Check builtin name shadowing
|
||||||
pub fn check_builtin_shadowing(
|
pub fn check_builtin_shadowing(
|
||||||
name: &str,
|
name: &str,
|
||||||
location: Location,
|
location: Range,
|
||||||
node_type: ShadowingType,
|
node_type: ShadowingType,
|
||||||
) -> Option<Check> {
|
) -> Option<Check> {
|
||||||
if BUILTINS.contains(&name) {
|
if BUILTINS.contains(&name) {
|
||||||
|
|
@ -688,7 +703,7 @@ pub fn check_super_args(expr: &Expr, args: &Vec<Expr>) -> Option<Check> {
|
||||||
if id == "super" && !args.is_empty() {
|
if id == "super" && !args.is_empty() {
|
||||||
return Some(Check::new(
|
return Some(Check::new(
|
||||||
CheckKind::SuperCallWithParameters,
|
CheckKind::SuperCallWithParameters,
|
||||||
expr.location,
|
Range::from_located(expr),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
use rustpython_parser::ast::{Expr, ExprKind, Keyword, Location};
|
use rustpython_parser::ast::{Expr, ExprKind, Keyword};
|
||||||
|
|
||||||
fn relocate_keyword(keyword: &mut Keyword, location: Location) {
|
use crate::ast::types::Range;
|
||||||
keyword.location = location;
|
|
||||||
|
fn relocate_keyword(keyword: &mut Keyword, location: Range) {
|
||||||
|
keyword.location = location.location;
|
||||||
|
keyword.end_location = location.end_location;
|
||||||
relocate_expr(&mut keyword.node.value, location);
|
relocate_expr(&mut keyword.node.value, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Change an expression's location (recursively) to match a desired, fixed location.
|
/// Change an expression's location (recursively) to match a desired, fixed location.
|
||||||
pub fn relocate_expr(expr: &mut Expr, location: Location) {
|
pub fn relocate_expr(expr: &mut Expr, location: Range) {
|
||||||
expr.location = location;
|
expr.location = location.location;
|
||||||
|
expr.end_location = location.end_location;
|
||||||
match &mut expr.node {
|
match &mut expr.node {
|
||||||
ExprKind::BoolOp { values, .. } => {
|
ExprKind::BoolOp { values, .. } => {
|
||||||
for expr in values {
|
for expr in values {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,28 @@
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use std::sync::atomic::{AtomicUsize, Ordering};
|
use std::sync::atomic::{AtomicUsize, Ordering};
|
||||||
|
|
||||||
use rustpython_parser::ast::Location;
|
use rustpython_parser::ast::{Located, Location};
|
||||||
|
|
||||||
fn id() -> usize {
|
fn id() -> usize {
|
||||||
static COUNTER: AtomicUsize = AtomicUsize::new(1);
|
static COUNTER: AtomicUsize = AtomicUsize::new(1);
|
||||||
COUNTER.fetch_add(1, Ordering::Relaxed)
|
COUNTER.fetch_add(1, Ordering::Relaxed)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug, Default)]
|
||||||
|
pub struct Range {
|
||||||
|
pub location: Location,
|
||||||
|
pub end_location: Location,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Range {
|
||||||
|
pub fn from_located<T>(located: &Located<T>) -> Self {
|
||||||
|
Range {
|
||||||
|
location: located.location,
|
||||||
|
end_location: located.end_location,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default)]
|
#[derive(Clone, Debug, Default)]
|
||||||
pub struct FunctionScope {
|
pub struct FunctionScope {
|
||||||
pub uses_locals: bool,
|
pub uses_locals: bool,
|
||||||
|
|
@ -60,12 +75,12 @@ pub enum BindingKind {
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct Binding {
|
pub struct Binding {
|
||||||
pub kind: BindingKind,
|
pub kind: BindingKind,
|
||||||
pub location: Location,
|
pub location: Range,
|
||||||
/// Tuple of (scope index, location) indicating the scope and location at which the binding was
|
/// Tuple of (scope index, range) indicating the scope and range at which the binding was
|
||||||
/// last used.
|
/// last used.
|
||||||
pub used: Option<(usize, Location)>,
|
pub used: Option<(usize, Range)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait CheckLocator {
|
pub trait CheckLocator {
|
||||||
fn locate_check(&self, default: Location) -> Location;
|
fn locate_check(&self, default: Range) -> Range;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,29 +45,29 @@ fn apply_fixes<'a>(fixes: impl Iterator<Item = &'a mut Fix>, contents: &str) ->
|
||||||
|
|
||||||
for fix in fixes {
|
for fix in fixes {
|
||||||
// Best-effort approach: if this fix overlaps with a fix we've already applied, skip it.
|
// Best-effort approach: if this fix overlaps with a fix we've already applied, skip it.
|
||||||
if last_pos > fix.start {
|
if last_pos > fix.location {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if fix.start.row() > last_pos.row() {
|
if fix.location.row() > last_pos.row() {
|
||||||
if last_pos.row() > 0 || last_pos.column() > 0 {
|
if last_pos.row() > 0 || last_pos.column() > 0 {
|
||||||
output.push_str(&lines[last_pos.row() - 1][last_pos.column() - 1..]);
|
output.push_str(&lines[last_pos.row() - 1][last_pos.column() - 1..]);
|
||||||
output.push('\n');
|
output.push('\n');
|
||||||
}
|
}
|
||||||
for line in &lines[last_pos.row()..fix.start.row() - 1] {
|
for line in &lines[last_pos.row()..fix.location.row() - 1] {
|
||||||
output.push_str(line);
|
output.push_str(line);
|
||||||
output.push('\n');
|
output.push('\n');
|
||||||
}
|
}
|
||||||
output.push_str(&lines[fix.start.row() - 1][..fix.start.column() - 1]);
|
output.push_str(&lines[fix.location.row() - 1][..fix.location.column() - 1]);
|
||||||
output.push_str(&fix.content);
|
output.push_str(&fix.content);
|
||||||
} else {
|
} else {
|
||||||
output.push_str(
|
output.push_str(
|
||||||
&lines[last_pos.row() - 1][last_pos.column() - 1..fix.start.column() - 1],
|
&lines[last_pos.row() - 1][last_pos.column() - 1..fix.location.column() - 1],
|
||||||
);
|
);
|
||||||
output.push_str(&fix.content);
|
output.push_str(&fix.content);
|
||||||
}
|
}
|
||||||
|
|
||||||
last_pos = fix.end;
|
last_pos = fix.end_location;
|
||||||
fix.applied = true;
|
fix.applied = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,8 +106,8 @@ mod tests {
|
||||||
fn apply_single_replacement() -> Result<()> {
|
fn apply_single_replacement() -> Result<()> {
|
||||||
let mut fixes = vec![Fix {
|
let mut fixes = vec![Fix {
|
||||||
content: "Bar".to_string(),
|
content: "Bar".to_string(),
|
||||||
start: Location::new(1, 9),
|
location: Location::new(1, 9),
|
||||||
end: Location::new(1, 15),
|
end_location: Location::new(1, 15),
|
||||||
applied: false,
|
applied: false,
|
||||||
}];
|
}];
|
||||||
let actual = apply_fixes(
|
let actual = apply_fixes(
|
||||||
|
|
@ -130,8 +130,8 @@ mod tests {
|
||||||
fn apply_single_removal() -> Result<()> {
|
fn apply_single_removal() -> Result<()> {
|
||||||
let mut fixes = vec![Fix {
|
let mut fixes = vec![Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start: Location::new(1, 8),
|
location: Location::new(1, 8),
|
||||||
end: Location::new(1, 16),
|
end_location: Location::new(1, 16),
|
||||||
applied: false,
|
applied: false,
|
||||||
}];
|
}];
|
||||||
let actual = apply_fixes(
|
let actual = apply_fixes(
|
||||||
|
|
@ -155,14 +155,14 @@ mod tests {
|
||||||
let mut fixes = vec![
|
let mut fixes = vec![
|
||||||
Fix {
|
Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start: Location::new(1, 8),
|
location: Location::new(1, 8),
|
||||||
end: Location::new(1, 17),
|
end_location: Location::new(1, 17),
|
||||||
applied: false,
|
applied: false,
|
||||||
},
|
},
|
||||||
Fix {
|
Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start: Location::new(1, 17),
|
location: Location::new(1, 17),
|
||||||
end: Location::new(1, 24),
|
end_location: Location::new(1, 24),
|
||||||
applied: false,
|
applied: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
@ -187,14 +187,14 @@ mod tests {
|
||||||
let mut fixes = vec![
|
let mut fixes = vec![
|
||||||
Fix {
|
Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start: Location::new(1, 8),
|
location: Location::new(1, 8),
|
||||||
end: Location::new(1, 16),
|
end_location: Location::new(1, 16),
|
||||||
applied: false,
|
applied: false,
|
||||||
},
|
},
|
||||||
Fix {
|
Fix {
|
||||||
content: "ignored".to_string(),
|
content: "ignored".to_string(),
|
||||||
start: Location::new(1, 10),
|
location: Location::new(1, 10),
|
||||||
end: Location::new(1, 12),
|
end_location: Location::new(1, 12),
|
||||||
applied: false,
|
applied: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@ pub fn remove_class_def_base(
|
||||||
return match (fix_start, fix_end) {
|
return match (fix_start, fix_end) {
|
||||||
(Some(start), Some(end)) => Some(Fix {
|
(Some(start), Some(end)) => Some(Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start,
|
location: start,
|
||||||
end,
|
end_location: end,
|
||||||
applied: false,
|
applied: false,
|
||||||
}),
|
}),
|
||||||
_ => None,
|
_ => None,
|
||||||
|
|
@ -91,8 +91,8 @@ pub fn remove_class_def_base(
|
||||||
match (fix_start, fix_end) {
|
match (fix_start, fix_end) {
|
||||||
(Some(start), Some(end)) => Some(Fix {
|
(Some(start), Some(end)) => Some(Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start,
|
location: start,
|
||||||
end,
|
end_location: end,
|
||||||
applied: false,
|
applied: false,
|
||||||
}),
|
}),
|
||||||
_ => None,
|
_ => None,
|
||||||
|
|
@ -116,8 +116,8 @@ pub fn remove_class_def_base(
|
||||||
match (fix_start, fix_end) {
|
match (fix_start, fix_end) {
|
||||||
(Some(start), Some(end)) => Some(Fix {
|
(Some(start), Some(end)) => Some(Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start,
|
location: start,
|
||||||
end,
|
end_location: end,
|
||||||
applied: false,
|
applied: false,
|
||||||
}),
|
}),
|
||||||
_ => None,
|
_ => None,
|
||||||
|
|
|
||||||
156
src/check_ast.rs
156
src/check_ast.rs
|
|
@ -5,13 +5,15 @@ use once_cell::sync::Lazy;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use rustpython_parser::ast::{
|
use rustpython_parser::ast::{
|
||||||
Arg, Arguments, Constant, Excepthandler, ExcepthandlerKind, Expr, ExprContext, ExprKind,
|
Arg, Arguments, Constant, Excepthandler, ExcepthandlerKind, Expr, ExprContext, ExprKind,
|
||||||
KeywordData, Location, Operator, Stmt, StmtKind, Suite,
|
KeywordData, Operator, Stmt, StmtKind, Suite,
|
||||||
};
|
};
|
||||||
use rustpython_parser::parser;
|
use rustpython_parser::parser;
|
||||||
|
|
||||||
use crate::ast::operations::{extract_all_names, SourceCodeLocator};
|
use crate::ast::operations::{extract_all_names, SourceCodeLocator};
|
||||||
use crate::ast::relocate::relocate_expr;
|
use crate::ast::relocate::relocate_expr;
|
||||||
use crate::ast::types::{Binding, BindingKind, CheckLocator, FunctionScope, Scope, ScopeKind};
|
use crate::ast::types::{
|
||||||
|
Binding, BindingKind, CheckLocator, FunctionScope, Range, Scope, ScopeKind,
|
||||||
|
};
|
||||||
use crate::ast::visitor::{walk_excepthandler, Visitor};
|
use crate::ast::visitor::{walk_excepthandler, Visitor};
|
||||||
use crate::ast::{checks, operations, visitor};
|
use crate::ast::{checks, operations, visitor};
|
||||||
use crate::autofix::fixer;
|
use crate::autofix::fixer;
|
||||||
|
|
@ -40,13 +42,13 @@ struct Checker<'a> {
|
||||||
scopes: Vec<Scope>,
|
scopes: Vec<Scope>,
|
||||||
scope_stack: Vec<usize>,
|
scope_stack: Vec<usize>,
|
||||||
dead_scopes: Vec<usize>,
|
dead_scopes: Vec<usize>,
|
||||||
deferred_string_annotations: Vec<(Location, &'a str)>,
|
deferred_string_annotations: Vec<(Range, &'a str)>,
|
||||||
deferred_annotations: Vec<(&'a Expr, Vec<usize>, Vec<usize>)>,
|
deferred_annotations: Vec<(&'a Expr, Vec<usize>, Vec<usize>)>,
|
||||||
deferred_functions: Vec<(&'a Stmt, Vec<usize>, Vec<usize>)>,
|
deferred_functions: Vec<(&'a Stmt, Vec<usize>, Vec<usize>)>,
|
||||||
deferred_lambdas: Vec<(&'a Expr, Vec<usize>, Vec<usize>)>,
|
deferred_lambdas: Vec<(&'a Expr, Vec<usize>, Vec<usize>)>,
|
||||||
deferred_assignments: Vec<usize>,
|
deferred_assignments: Vec<usize>,
|
||||||
// Derivative state.
|
// Derivative state.
|
||||||
in_f_string: Option<Location>,
|
in_f_string: Option<Range>,
|
||||||
in_annotation: bool,
|
in_annotation: bool,
|
||||||
in_literal: bool,
|
in_literal: bool,
|
||||||
seen_non_import: bool,
|
seen_non_import: bool,
|
||||||
|
|
@ -218,8 +220,8 @@ where
|
||||||
name.to_string(),
|
name.to_string(),
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Assignment,
|
kind: BindingKind::Assignment,
|
||||||
used: Some((global_scope_id, stmt.location)),
|
used: Some((global_scope_id, Range::from_located(stmt))),
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -227,7 +229,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.settings.select.contains(&CheckCode::E741) {
|
if self.settings.select.contains(&CheckCode::E741) {
|
||||||
let location = self.locate_check(stmt.location);
|
let location = self.locate_check(Range::from_located(stmt));
|
||||||
self.checks.extend(
|
self.checks.extend(
|
||||||
names.iter().filter_map(|name| {
|
names.iter().filter_map(|name| {
|
||||||
checks::check_ambiguous_variable_name(name, location)
|
checks::check_ambiguous_variable_name(name, location)
|
||||||
|
|
@ -276,13 +278,13 @@ where
|
||||||
if self.settings.select.contains(&CheckCode::E743) {
|
if self.settings.select.contains(&CheckCode::E743) {
|
||||||
if let Some(check) = checks::check_ambiguous_function_name(
|
if let Some(check) = checks::check_ambiguous_function_name(
|
||||||
name,
|
name,
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
) {
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.check_builtin_shadowing(name, stmt.location, true);
|
self.check_builtin_shadowing(name, Range::from_located(stmt), true);
|
||||||
|
|
||||||
for expr in decorator_list {
|
for expr in decorator_list {
|
||||||
self.visit_expr(expr);
|
self.visit_expr(expr);
|
||||||
|
|
@ -326,7 +328,7 @@ where
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Definition,
|
kind: BindingKind::Definition,
|
||||||
used: None,
|
used: None,
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -341,7 +343,7 @@ where
|
||||||
ScopeKind::Class | ScopeKind::Module => {
|
ScopeKind::Class | ScopeKind::Module => {
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ReturnOutsideFunction,
|
CheckKind::ReturnOutsideFunction,
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
|
@ -373,14 +375,19 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.settings.select.contains(&CheckCode::E742) {
|
if self.settings.select.contains(&CheckCode::E742) {
|
||||||
if let Some(check) =
|
if let Some(check) = checks::check_ambiguous_class_name(
|
||||||
checks::check_ambiguous_class_name(name, self.locate_check(stmt.location))
|
name,
|
||||||
{
|
self.locate_check(Range::from_located(stmt)),
|
||||||
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.check_builtin_shadowing(name, self.locate_check(stmt.location), false);
|
self.check_builtin_shadowing(
|
||||||
|
name,
|
||||||
|
self.locate_check(Range::from_located(stmt)),
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
for expr in bases {
|
for expr in bases {
|
||||||
self.visit_expr(expr)
|
self.visit_expr(expr)
|
||||||
|
|
@ -403,7 +410,7 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ModuleImportNotAtTopOfFile,
|
CheckKind::ModuleImportNotAtTopOfFile,
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -418,12 +425,12 @@ where
|
||||||
alias.node.name.to_string(),
|
alias.node.name.to_string(),
|
||||||
),
|
),
|
||||||
used: None,
|
used: None,
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
if let Some(asname) = &alias.node.asname {
|
if let Some(asname) = &alias.node.asname {
|
||||||
self.check_builtin_shadowing(asname, stmt.location, false);
|
self.check_builtin_shadowing(asname, Range::from_located(stmt), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.add_binding(
|
self.add_binding(
|
||||||
|
|
@ -441,7 +448,7 @@ where
|
||||||
.unwrap_or_else(|| alias.node.name.clone()),
|
.unwrap_or_else(|| alias.node.name.clone()),
|
||||||
),
|
),
|
||||||
used: None,
|
used: None,
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -461,7 +468,7 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ModuleImportNotAtTopOfFile,
|
CheckKind::ModuleImportNotAtTopOfFile,
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -482,9 +489,9 @@ where
|
||||||
.last()
|
.last()
|
||||||
.expect("No current scope found."))]
|
.expect("No current scope found."))]
|
||||||
.id,
|
.id,
|
||||||
stmt.location,
|
Range::from_located(stmt),
|
||||||
)),
|
)),
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -497,7 +504,7 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::FutureFeatureNotDefined(alias.node.name.to_string()),
|
CheckKind::FutureFeatureNotDefined(alias.node.name.to_string()),
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -505,7 +512,7 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::LateFutureImport,
|
CheckKind::LateFutureImport,
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
} else if alias.node.name == "*" {
|
} else if alias.node.name == "*" {
|
||||||
|
|
@ -520,7 +527,7 @@ where
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::StarImportation,
|
kind: BindingKind::StarImportation,
|
||||||
used: None,
|
used: None,
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -530,7 +537,7 @@ where
|
||||||
if !matches!(scope.kind, ScopeKind::Module) {
|
if !matches!(scope.kind, ScopeKind::Module) {
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ImportStarNotPermitted(module_name.to_string()),
|
CheckKind::ImportStarNotPermitted(module_name.to_string()),
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -538,7 +545,7 @@ where
|
||||||
if self.settings.select.contains(&CheckCode::F403) {
|
if self.settings.select.contains(&CheckCode::F403) {
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ImportStarUsed(module_name.to_string()),
|
CheckKind::ImportStarUsed(module_name.to_string()),
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -549,7 +556,7 @@ where
|
||||||
scope.import_starred = true;
|
scope.import_starred = true;
|
||||||
} else {
|
} else {
|
||||||
if let Some(asname) = &alias.node.asname {
|
if let Some(asname) = &alias.node.asname {
|
||||||
self.check_builtin_shadowing(asname, stmt.location, false);
|
self.check_builtin_shadowing(asname, Range::from_located(stmt), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
let binding = Binding {
|
let binding = Binding {
|
||||||
|
|
@ -558,7 +565,7 @@ where
|
||||||
Some(parent) => format!("{}.{}", parent, name),
|
Some(parent) => format!("{}.{}", parent, name),
|
||||||
}),
|
}),
|
||||||
used: None,
|
used: None,
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
};
|
};
|
||||||
self.add_binding(name, binding)
|
self.add_binding(name, binding)
|
||||||
}
|
}
|
||||||
|
|
@ -579,7 +586,7 @@ where
|
||||||
StmtKind::If { test, .. } => {
|
StmtKind::If { test, .. } => {
|
||||||
if self.settings.select.contains(&CheckCode::F634) {
|
if self.settings.select.contains(&CheckCode::F634) {
|
||||||
if let Some(check) =
|
if let Some(check) =
|
||||||
checks::check_if_tuple(test, self.locate_check(stmt.location))
|
checks::check_if_tuple(test, self.locate_check(Range::from_located(stmt)))
|
||||||
{
|
{
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
|
|
@ -587,9 +594,10 @@ where
|
||||||
}
|
}
|
||||||
StmtKind::Assert { test, .. } => {
|
StmtKind::Assert { test, .. } => {
|
||||||
if self.settings.select.contains(CheckKind::AssertTuple.code()) {
|
if self.settings.select.contains(CheckKind::AssertTuple.code()) {
|
||||||
if let Some(check) =
|
if let Some(check) = checks::check_assert_tuple(
|
||||||
checks::check_assert_tuple(test, self.locate_check(stmt.location))
|
test,
|
||||||
{
|
self.locate_check(Range::from_located(stmt)),
|
||||||
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -603,9 +611,10 @@ where
|
||||||
}
|
}
|
||||||
StmtKind::Assign { value, .. } => {
|
StmtKind::Assign { value, .. } => {
|
||||||
if self.settings.select.contains(&CheckCode::E731) {
|
if self.settings.select.contains(&CheckCode::E731) {
|
||||||
if let Some(check) =
|
if let Some(check) = checks::check_do_not_assign_lambda(
|
||||||
checks::check_do_not_assign_lambda(value, self.locate_check(stmt.location))
|
value,
|
||||||
{
|
self.locate_check(Range::from_located(stmt)),
|
||||||
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -615,7 +624,7 @@ where
|
||||||
if let Some(value) = value {
|
if let Some(value) = value {
|
||||||
if let Some(check) = checks::check_do_not_assign_lambda(
|
if let Some(check) = checks::check_do_not_assign_lambda(
|
||||||
value,
|
value,
|
||||||
self.locate_check(stmt.location),
|
self.locate_check(Range::from_located(stmt)),
|
||||||
) {
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
|
|
@ -651,7 +660,7 @@ where
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::ClassDefinition,
|
kind: BindingKind::ClassDefinition,
|
||||||
used: None,
|
used: None,
|
||||||
location: stmt.location,
|
location: Range::from_located(stmt),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
@ -698,7 +707,7 @@ where
|
||||||
elts,
|
elts,
|
||||||
check_too_many_expressions,
|
check_too_many_expressions,
|
||||||
check_two_starred_expressions,
|
check_two_starred_expressions,
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
) {
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
|
|
@ -710,13 +719,13 @@ where
|
||||||
if self.settings.select.contains(&CheckCode::E741) {
|
if self.settings.select.contains(&CheckCode::E741) {
|
||||||
if let Some(check) = checks::check_ambiguous_variable_name(
|
if let Some(check) = checks::check_ambiguous_variable_name(
|
||||||
id,
|
id,
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
) {
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.check_builtin_shadowing(id, expr.location, true);
|
self.check_builtin_shadowing(id, Range::from_located(expr), true);
|
||||||
|
|
||||||
let parent =
|
let parent =
|
||||||
self.parents[*(self.parent_stack.last().expect("No parent found."))];
|
self.parents[*(self.parent_stack.last().expect("No parent found."))];
|
||||||
|
|
@ -776,7 +785,7 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::YieldOutsideFunction,
|
CheckKind::YieldOutsideFunction,
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -792,10 +801,10 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::FStringMissingPlaceholders,
|
CheckKind::FStringMissingPlaceholders,
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
self.in_f_string = Some(expr.location);
|
self.in_f_string = Some(Range::from_located(expr));
|
||||||
}
|
}
|
||||||
ExprKind::BinOp {
|
ExprKind::BinOp {
|
||||||
left,
|
left,
|
||||||
|
|
@ -812,8 +821,10 @@ where
|
||||||
..
|
..
|
||||||
}) = scope.values.get("print")
|
}) = scope.values.get("print")
|
||||||
{
|
{
|
||||||
self.checks
|
self.checks.push(Check::new(
|
||||||
.push(Check::new(CheckKind::InvalidPrintSyntax, left.location));
|
CheckKind::InvalidPrintSyntax,
|
||||||
|
Range::from_located(left),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -855,7 +866,7 @@ where
|
||||||
left,
|
left,
|
||||||
ops,
|
ops,
|
||||||
comparators,
|
comparators,
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -863,7 +874,7 @@ where
|
||||||
self.checks.extend(checks::check_type_comparison(
|
self.checks.extend(checks::check_type_comparison(
|
||||||
ops,
|
ops,
|
||||||
comparators,
|
comparators,
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -872,7 +883,7 @@ where
|
||||||
..
|
..
|
||||||
} if self.in_annotation && !self.in_literal => {
|
} if self.in_annotation && !self.in_literal => {
|
||||||
self.deferred_string_annotations
|
self.deferred_string_annotations
|
||||||
.push((expr.location, value));
|
.push((Range::from_located(expr), value));
|
||||||
}
|
}
|
||||||
ExprKind::GeneratorExp { .. }
|
ExprKind::GeneratorExp { .. }
|
||||||
| ExprKind::ListComp { .. }
|
| ExprKind::ListComp { .. }
|
||||||
|
|
@ -1022,7 +1033,7 @@ where
|
||||||
if self.settings.select.contains(&CheckCode::E722) && type_.is_none() {
|
if self.settings.select.contains(&CheckCode::E722) && type_.is_none() {
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::DoNotUseBareExcept,
|
CheckKind::DoNotUseBareExcept,
|
||||||
excepthandler.location,
|
Range::from_located(excepthandler),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
match name {
|
match name {
|
||||||
|
|
@ -1030,13 +1041,17 @@ where
|
||||||
if self.settings.select.contains(&CheckCode::E741) {
|
if self.settings.select.contains(&CheckCode::E741) {
|
||||||
if let Some(check) = checks::check_ambiguous_variable_name(
|
if let Some(check) = checks::check_ambiguous_variable_name(
|
||||||
name,
|
name,
|
||||||
self.locate_check(excepthandler.location),
|
self.locate_check(Range::from_located(excepthandler)),
|
||||||
) {
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.check_builtin_shadowing(name, excepthandler.location, false);
|
self.check_builtin_shadowing(
|
||||||
|
name,
|
||||||
|
Range::from_located(excepthandler),
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
let scope = &self.scopes
|
let scope = &self.scopes
|
||||||
[*(self.scope_stack.last().expect("No current scope found."))];
|
[*(self.scope_stack.last().expect("No current scope found."))];
|
||||||
|
|
@ -1085,7 +1100,7 @@ where
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::UnusedVariable(name.to_string()),
|
CheckKind::UnusedVariable(name.to_string()),
|
||||||
excepthandler.location,
|
Range::from_located(excepthandler),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1131,25 +1146,25 @@ where
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Argument,
|
kind: BindingKind::Argument,
|
||||||
used: None,
|
used: None,
|
||||||
location: arg.location,
|
location: Range::from_located(arg),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
if self.settings.select.contains(&CheckCode::E741) {
|
if self.settings.select.contains(&CheckCode::E741) {
|
||||||
if let Some(check) = checks::check_ambiguous_variable_name(
|
if let Some(check) = checks::check_ambiguous_variable_name(
|
||||||
&arg.node.arg,
|
&arg.node.arg,
|
||||||
self.locate_check(arg.location),
|
self.locate_check(Range::from_located(arg)),
|
||||||
) {
|
) {
|
||||||
self.checks.push(check);
|
self.checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.check_builtin_arg_shadowing(&arg.node.arg, arg.location);
|
self.check_builtin_arg_shadowing(&arg.node.arg, Range::from_located(arg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CheckLocator for Checker<'_> {
|
impl CheckLocator for Checker<'_> {
|
||||||
fn locate_check(&self, default: Location) -> Location {
|
fn locate_check(&self, default: Range) -> Range {
|
||||||
self.in_f_string.unwrap_or(default)
|
self.in_f_string.unwrap_or(default)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1216,7 +1231,10 @@ impl<'a> Checker<'a> {
|
||||||
&& matches!(binding.kind, BindingKind::LoopVar)
|
&& matches!(binding.kind, BindingKind::LoopVar)
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ImportShadowedByLoopVar(name.clone(), existing.location.row()),
|
CheckKind::ImportShadowedByLoopVar(
|
||||||
|
name.clone(),
|
||||||
|
existing.location.location.row(),
|
||||||
|
),
|
||||||
binding.location,
|
binding.location,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
@ -1249,7 +1267,7 @@ impl<'a> Checker<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(binding) = scope.values.get_mut(id) {
|
if let Some(binding) = scope.values.get_mut(id) {
|
||||||
binding.used = Some((scope_id, expr.location));
|
binding.used = Some((scope_id, Range::from_located(expr)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1273,7 +1291,7 @@ impl<'a> Checker<'a> {
|
||||||
|
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::ImportStarUsage(id.clone(), from_list.join(", ")),
|
CheckKind::ImportStarUsage(id.clone(), from_list.join(", ")),
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
@ -1286,7 +1304,7 @@ impl<'a> Checker<'a> {
|
||||||
}
|
}
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::UndefinedName(id.clone()),
|
CheckKind::UndefinedName(id.clone()),
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1323,7 +1341,7 @@ impl<'a> Checker<'a> {
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Annotation,
|
kind: BindingKind::Annotation,
|
||||||
used: None,
|
used: None,
|
||||||
location: expr.location,
|
location: Range::from_located(expr),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|
@ -1339,7 +1357,7 @@ impl<'a> Checker<'a> {
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::LoopVar,
|
kind: BindingKind::LoopVar,
|
||||||
used: None,
|
used: None,
|
||||||
location: expr.location,
|
location: Range::from_located(expr),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|
@ -1351,7 +1369,7 @@ impl<'a> Checker<'a> {
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Binding,
|
kind: BindingKind::Binding,
|
||||||
used: None,
|
used: None,
|
||||||
location: expr.location,
|
location: Range::from_located(expr),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|
@ -1371,7 +1389,7 @@ impl<'a> Checker<'a> {
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Export(extract_all_names(parent, current)),
|
kind: BindingKind::Export(extract_all_names(parent, current)),
|
||||||
used: None,
|
used: None,
|
||||||
location: expr.location,
|
location: Range::from_located(expr),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|
@ -1382,7 +1400,7 @@ impl<'a> Checker<'a> {
|
||||||
Binding {
|
Binding {
|
||||||
kind: BindingKind::Assignment,
|
kind: BindingKind::Assignment,
|
||||||
used: None,
|
used: None,
|
||||||
location: expr.location,
|
location: Range::from_located(expr),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -1401,7 +1419,7 @@ impl<'a> Checker<'a> {
|
||||||
{
|
{
|
||||||
self.checks.push(Check::new(
|
self.checks.push(Check::new(
|
||||||
CheckKind::UndefinedName(id.clone()),
|
CheckKind::UndefinedName(id.clone()),
|
||||||
self.locate_check(expr.location),
|
self.locate_check(Range::from_located(expr)),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1571,7 +1589,7 @@ impl<'a> Checker<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn check_builtin_shadowing(&mut self, name: &str, location: Location, is_attribute: bool) {
|
fn check_builtin_shadowing(&mut self, name: &str, location: Range, is_attribute: bool) {
|
||||||
let scope = &self.scopes[*(self.scope_stack.last().expect("No current scope found."))];
|
let scope = &self.scopes[*(self.scope_stack.last().expect("No current scope found."))];
|
||||||
|
|
||||||
// flake8-builtins
|
// flake8-builtins
|
||||||
|
|
@ -1597,7 +1615,7 @@ impl<'a> Checker<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn check_builtin_arg_shadowing(&mut self, name: &str, location: Location) {
|
fn check_builtin_arg_shadowing(&mut self, name: &str, location: Range) {
|
||||||
if self.settings.select.contains(&CheckCode::A002) {
|
if self.settings.select.contains(&CheckCode::A002) {
|
||||||
if let Some(check) = checks::check_builtin_shadowing(
|
if let Some(check) = checks::check_builtin_shadowing(
|
||||||
name,
|
name,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
use crate::ast::types::Range;
|
||||||
use rustpython_parser::ast::Location;
|
use rustpython_parser::ast::Location;
|
||||||
|
|
||||||
use crate::autofix::fixer;
|
use crate::autofix::fixer;
|
||||||
|
|
@ -64,11 +65,11 @@ pub fn check_lines(
|
||||||
.or_insert_with(|| (noqa::extract_noqa_directive(lines[noqa_lineno]), vec![]));
|
.or_insert_with(|| (noqa::extract_noqa_directive(lines[noqa_lineno]), vec![]));
|
||||||
|
|
||||||
match noqa {
|
match noqa {
|
||||||
(Directive::All(_), matches) => {
|
(Directive::All(_, _), matches) => {
|
||||||
matches.push(check.kind.code().as_str());
|
matches.push(check.kind.code().as_str());
|
||||||
ignored.push(index)
|
ignored.push(index)
|
||||||
}
|
}
|
||||||
(Directive::Codes(_, codes), matches) => {
|
(Directive::Codes(_, _, codes), matches) => {
|
||||||
if codes.contains(&check.kind.code().as_str()) {
|
if codes.contains(&check.kind.code().as_str()) {
|
||||||
matches.push(check.kind.code().as_str());
|
matches.push(check.kind.code().as_str());
|
||||||
ignored.push(index);
|
ignored.push(index);
|
||||||
|
|
@ -89,14 +90,17 @@ pub fn check_lines(
|
||||||
|
|
||||||
let check = Check::new(
|
let check = Check::new(
|
||||||
CheckKind::LineTooLong(line_length, settings.line_length),
|
CheckKind::LineTooLong(line_length, settings.line_length),
|
||||||
Location::new(lineno + 1, settings.line_length + 1),
|
Range {
|
||||||
|
location: Location::new(lineno + 1, 1),
|
||||||
|
end_location: Location::new(lineno + 1, line_length + 1),
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
match noqa {
|
match noqa {
|
||||||
(Directive::All(_), matches) => {
|
(Directive::All(_, _), matches) => {
|
||||||
matches.push(check.kind.code().as_str());
|
matches.push(check.kind.code().as_str());
|
||||||
}
|
}
|
||||||
(Directive::Codes(_, codes), matches) => {
|
(Directive::Codes(_, _, codes), matches) => {
|
||||||
if codes.contains(&check.kind.code().as_str()) {
|
if codes.contains(&check.kind.code().as_str()) {
|
||||||
matches.push(check.kind.code().as_str());
|
matches.push(check.kind.code().as_str());
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -113,24 +117,30 @@ pub fn check_lines(
|
||||||
if enforce_noqa {
|
if enforce_noqa {
|
||||||
for (row, (directive, matches)) in noqa_directives {
|
for (row, (directive, matches)) in noqa_directives {
|
||||||
match directive {
|
match directive {
|
||||||
Directive::All(column) => {
|
Directive::All(start, end) => {
|
||||||
if matches.is_empty() {
|
if matches.is_empty() {
|
||||||
let mut check = Check::new(
|
let mut check = Check::new(
|
||||||
CheckKind::UnusedNOQA(None),
|
CheckKind::UnusedNOQA(None),
|
||||||
Location::new(row + 1, column + 1),
|
Range {
|
||||||
|
location: Location::new(row + 1, start + 1),
|
||||||
|
end_location: Location::new(row + 1, end + 1),
|
||||||
|
},
|
||||||
);
|
);
|
||||||
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
||||||
check.amend(Fix {
|
check.amend(Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start: Location::new(row + 1, column + 1),
|
location: Location::new(row + 1, start + 1),
|
||||||
end: Location::new(row + 1, lines[row].chars().count() + 1),
|
end_location: Location::new(
|
||||||
|
row + 1,
|
||||||
|
lines[row].chars().count() + 1,
|
||||||
|
),
|
||||||
applied: false,
|
applied: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
line_checks.push(check);
|
line_checks.push(check);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Directive::Codes(column, codes) => {
|
Directive::Codes(start, end, codes) => {
|
||||||
let mut invalid_codes = vec![];
|
let mut invalid_codes = vec![];
|
||||||
let mut valid_codes = vec![];
|
let mut valid_codes = vec![];
|
||||||
for code in codes {
|
for code in codes {
|
||||||
|
|
@ -144,21 +154,30 @@ pub fn check_lines(
|
||||||
if !invalid_codes.is_empty() {
|
if !invalid_codes.is_empty() {
|
||||||
let mut check = Check::new(
|
let mut check = Check::new(
|
||||||
CheckKind::UnusedNOQA(Some(invalid_codes.join(", "))),
|
CheckKind::UnusedNOQA(Some(invalid_codes.join(", "))),
|
||||||
Location::new(row + 1, column + 1),
|
Range {
|
||||||
|
location: Location::new(row + 1, start + 1),
|
||||||
|
end_location: Location::new(row + 1, end + 1),
|
||||||
|
},
|
||||||
);
|
);
|
||||||
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
if matches!(autofix, fixer::Mode::Generate | fixer::Mode::Apply) {
|
||||||
if valid_codes.is_empty() {
|
if valid_codes.is_empty() {
|
||||||
check.amend(Fix {
|
check.amend(Fix {
|
||||||
content: "".to_string(),
|
content: "".to_string(),
|
||||||
start: Location::new(row + 1, column + 1),
|
location: Location::new(row + 1, start + 1),
|
||||||
end: Location::new(row + 1, lines[row].chars().count() + 1),
|
end_location: Location::new(
|
||||||
|
row + 1,
|
||||||
|
lines[row].chars().count() + 1,
|
||||||
|
),
|
||||||
applied: false,
|
applied: false,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
check.amend(Fix {
|
check.amend(Fix {
|
||||||
content: format!(" # noqa: {}", valid_codes.join(", ")),
|
content: format!(" # noqa: {}", valid_codes.join(", ")),
|
||||||
start: Location::new(row + 1, column + 1),
|
location: Location::new(row + 1, start + 1),
|
||||||
end: Location::new(row + 1, lines[row].chars().count() + 1),
|
end_location: Location::new(
|
||||||
|
row + 1,
|
||||||
|
lines[row].chars().count() + 1,
|
||||||
|
),
|
||||||
applied: false,
|
applied: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
|
use crate::ast::types::Range;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use rustpython_parser::ast::Location;
|
use rustpython_parser::ast::Location;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
@ -718,8 +719,8 @@ impl CheckKind {
|
||||||
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
pub struct Fix {
|
pub struct Fix {
|
||||||
pub content: String,
|
pub content: String,
|
||||||
pub start: Location,
|
pub location: Location,
|
||||||
pub end: Location,
|
pub end_location: Location,
|
||||||
pub applied: bool,
|
pub applied: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -727,14 +728,16 @@ pub struct Fix {
|
||||||
pub struct Check {
|
pub struct Check {
|
||||||
pub kind: CheckKind,
|
pub kind: CheckKind,
|
||||||
pub location: Location,
|
pub location: Location,
|
||||||
|
pub end_location: Location,
|
||||||
pub fix: Option<Fix>,
|
pub fix: Option<Fix>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Check {
|
impl Check {
|
||||||
pub fn new(kind: CheckKind, location: Location) -> Self {
|
pub fn new(kind: CheckKind, span: Range) -> Self {
|
||||||
Self {
|
Self {
|
||||||
kind,
|
kind,
|
||||||
location,
|
location: span.location,
|
||||||
|
end_location: span.end_location,
|
||||||
fix: None,
|
fix: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ pub fn check(path: &Path, contents: &str) -> Result<Vec<Message>> {
|
||||||
kind: check.kind,
|
kind: check.kind,
|
||||||
fixed: check.fix.map(|fix| fix.applied).unwrap_or_default(),
|
fixed: check.fix.map(|fix| fix.applied).unwrap_or_default(),
|
||||||
location: check.location,
|
location: check.location,
|
||||||
|
end_location: check.end_location,
|
||||||
filename: path.to_string_lossy().to_string(),
|
filename: path.to_string_lossy().to_string(),
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ use log::debug;
|
||||||
use rustpython_parser::lexer::LexResult;
|
use rustpython_parser::lexer::LexResult;
|
||||||
use rustpython_parser::{lexer, parser};
|
use rustpython_parser::{lexer, parser};
|
||||||
|
|
||||||
|
use crate::ast::types::Range;
|
||||||
use crate::autofix::fixer;
|
use crate::autofix::fixer;
|
||||||
use crate::autofix::fixer::fix_file;
|
use crate::autofix::fixer::fix_file;
|
||||||
use crate::check_ast::check_ast;
|
use crate::check_ast::check_ast;
|
||||||
|
|
@ -53,7 +54,10 @@ pub(crate) fn check_path(
|
||||||
if settings.select.contains(&CheckCode::E999) {
|
if settings.select.contains(&CheckCode::E999) {
|
||||||
checks.push(Check::new(
|
checks.push(Check::new(
|
||||||
CheckKind::SyntaxError(parse_error.error.to_string()),
|
CheckKind::SyntaxError(parse_error.error.to_string()),
|
||||||
parse_error.location,
|
Range {
|
||||||
|
location: parse_error.location,
|
||||||
|
end_location: parse_error.location,
|
||||||
|
},
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -115,6 +119,7 @@ pub fn lint_path(
|
||||||
kind: check.kind,
|
kind: check.kind,
|
||||||
fixed: check.fix.map(|fix| fix.applied).unwrap_or_default(),
|
fixed: check.fix.map(|fix| fix.applied).unwrap_or_default(),
|
||||||
location: check.location,
|
location: check.location,
|
||||||
|
end_location: check.end_location,
|
||||||
filename: path.to_string_lossy().to_string(),
|
filename: path.to_string_lossy().to_string(),
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,7 @@ fn run_once(
|
||||||
kind: CheckKind::IOError(message),
|
kind: CheckKind::IOError(message),
|
||||||
fixed: false,
|
fixed: false,
|
||||||
location: Default::default(),
|
location: Default::default(),
|
||||||
|
end_location: Default::default(),
|
||||||
filename: path.to_string_lossy().to_string(),
|
filename: path.to_string_lossy().to_string(),
|
||||||
}]
|
}]
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ pub struct Message {
|
||||||
pub kind: CheckKind,
|
pub kind: CheckKind,
|
||||||
pub fixed: bool,
|
pub fixed: bool,
|
||||||
pub location: Location,
|
pub location: Location,
|
||||||
|
pub end_location: Location,
|
||||||
pub filename: String,
|
pub filename: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
37
src/noqa.rs
37
src/noqa.rs
|
|
@ -19,8 +19,8 @@ static SPLIT_COMMA_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"[,\s]").expect
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Directive<'a> {
|
pub enum Directive<'a> {
|
||||||
None,
|
None,
|
||||||
All(usize),
|
All(usize, usize),
|
||||||
Codes(usize, Vec<&'a str>),
|
Codes(usize, usize, Vec<&'a str>),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn extract_noqa_directive(line: &str) -> Directive {
|
pub fn extract_noqa_directive(line: &str) -> Directive {
|
||||||
|
|
@ -29,13 +29,14 @@ pub fn extract_noqa_directive(line: &str) -> Directive {
|
||||||
Some(noqa) => match caps.name("codes") {
|
Some(noqa) => match caps.name("codes") {
|
||||||
Some(codes) => Directive::Codes(
|
Some(codes) => Directive::Codes(
|
||||||
noqa.start(),
|
noqa.start(),
|
||||||
|
noqa.end(),
|
||||||
SPLIT_COMMA_REGEX
|
SPLIT_COMMA_REGEX
|
||||||
.split(codes.as_str())
|
.split(codes.as_str())
|
||||||
.map(|code| code.trim())
|
.map(|code| code.trim())
|
||||||
.filter(|code| !code.is_empty())
|
.filter(|code| !code.is_empty())
|
||||||
.collect(),
|
.collect(),
|
||||||
),
|
),
|
||||||
None => Directive::All(noqa.start()),
|
None => Directive::All(noqa.start(), noqa.end()),
|
||||||
},
|
},
|
||||||
None => Directive::None,
|
None => Directive::None,
|
||||||
},
|
},
|
||||||
|
|
@ -133,8 +134,8 @@ fn add_noqa_inner(
|
||||||
Directive::None => {
|
Directive::None => {
|
||||||
output.push_str(line);
|
output.push_str(line);
|
||||||
}
|
}
|
||||||
Directive::All(start) => output.push_str(&line[..start]),
|
Directive::All(start, _) => output.push_str(&line[..start]),
|
||||||
Directive::Codes(start, _) => output.push_str(&line[..start]),
|
Directive::Codes(start, _, _) => output.push_str(&line[..start]),
|
||||||
};
|
};
|
||||||
let codes: Vec<&str> = codes.iter().map(|code| code.as_str()).collect();
|
let codes: Vec<&str> = codes.iter().map(|code| code.as_str()).collect();
|
||||||
output.push_str(" # noqa: ");
|
output.push_str(" # noqa: ");
|
||||||
|
|
@ -161,6 +162,7 @@ pub fn add_noqa(
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
use crate::ast::types::Range;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use rustpython_parser::ast::Location;
|
use rustpython_parser::ast::Location;
|
||||||
use rustpython_parser::lexer;
|
use rustpython_parser::lexer;
|
||||||
|
|
@ -236,7 +238,10 @@ z = x + 1",
|
||||||
|
|
||||||
let checks = vec![Check::new(
|
let checks = vec![Check::new(
|
||||||
CheckKind::UnusedVariable("x".to_string()),
|
CheckKind::UnusedVariable("x".to_string()),
|
||||||
Location::new(1, 1),
|
Range {
|
||||||
|
location: Location::new(1, 1),
|
||||||
|
end_location: Location::new(1, 1),
|
||||||
|
},
|
||||||
)];
|
)];
|
||||||
let contents = "x = 1";
|
let contents = "x = 1";
|
||||||
let noqa_line_for = vec![1];
|
let noqa_line_for = vec![1];
|
||||||
|
|
@ -247,11 +252,17 @@ z = x + 1",
|
||||||
let checks = vec![
|
let checks = vec![
|
||||||
Check::new(
|
Check::new(
|
||||||
CheckKind::AmbiguousVariableName("x".to_string()),
|
CheckKind::AmbiguousVariableName("x".to_string()),
|
||||||
Location::new(1, 1),
|
Range {
|
||||||
|
location: Location::new(1, 1),
|
||||||
|
end_location: Location::new(1, 1),
|
||||||
|
},
|
||||||
),
|
),
|
||||||
Check::new(
|
Check::new(
|
||||||
CheckKind::UnusedVariable("x".to_string()),
|
CheckKind::UnusedVariable("x".to_string()),
|
||||||
Location::new(1, 1),
|
Range {
|
||||||
|
location: Location::new(1, 1),
|
||||||
|
end_location: Location::new(1, 1),
|
||||||
|
},
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
let contents = "x = 1 # noqa: E741";
|
let contents = "x = 1 # noqa: E741";
|
||||||
|
|
@ -263,11 +274,17 @@ z = x + 1",
|
||||||
let checks = vec![
|
let checks = vec![
|
||||||
Check::new(
|
Check::new(
|
||||||
CheckKind::AmbiguousVariableName("x".to_string()),
|
CheckKind::AmbiguousVariableName("x".to_string()),
|
||||||
Location::new(1, 1),
|
Range {
|
||||||
|
location: Location::new(1, 1),
|
||||||
|
end_location: Location::new(1, 1),
|
||||||
|
},
|
||||||
),
|
),
|
||||||
Check::new(
|
Check::new(
|
||||||
CheckKind::UnusedVariable("x".to_string()),
|
CheckKind::UnusedVariable("x".to_string()),
|
||||||
Location::new(1, 1),
|
Range {
|
||||||
|
location: Location::new(1, 1),
|
||||||
|
end_location: Location::new(1, 1),
|
||||||
|
},
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
let contents = "x = 1 # noqa";
|
let contents = "x = 1 # noqa";
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ struct ExpandedMessage<'a> {
|
||||||
message: String,
|
message: String,
|
||||||
fixed: bool,
|
fixed: bool,
|
||||||
location: Location,
|
location: Location,
|
||||||
|
end_location: Location,
|
||||||
filename: &'a String,
|
filename: &'a String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -55,6 +56,7 @@ impl Printer {
|
||||||
message: m.kind.body(),
|
message: m.kind.body(),
|
||||||
fixed: m.fixed,
|
fixed: m.fixed,
|
||||||
location: m.location,
|
location: m.location,
|
||||||
|
end_location: m.end_location,
|
||||||
filename: &m.filename,
|
filename: &m.filename,
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
|
|
|
||||||
|
|
@ -7,106 +7,161 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 19
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: int
|
BuiltinVariableShadowing: int
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 30
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: print
|
BuiltinVariableShadowing: print
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: copyright
|
BuiltinVariableShadowing: copyright
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: complex
|
BuiltinVariableShadowing: complex
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 2
|
column: 2
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: float
|
BuiltinVariableShadowing: float
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: object
|
BuiltinVariableShadowing: object
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: min
|
BuiltinVariableShadowing: min
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 4
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: max
|
BuiltinVariableShadowing: max
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 6
|
column: 6
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: bytes
|
BuiltinVariableShadowing: bytes
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 13
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: slice
|
BuiltinVariableShadowing: slice
|
||||||
location:
|
location:
|
||||||
row: 13
|
row: 13
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: ValueError
|
BuiltinVariableShadowing: ValueError
|
||||||
location:
|
location:
|
||||||
row: 18
|
row: 18
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: memoryview
|
BuiltinVariableShadowing: memoryview
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: bytearray
|
BuiltinVariableShadowing: bytearray
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 27
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: str
|
BuiltinVariableShadowing: str
|
||||||
location:
|
location:
|
||||||
row: 24
|
row: 24
|
||||||
column: 22
|
column: 22
|
||||||
|
end_location:
|
||||||
|
row: 24
|
||||||
|
column: 25
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: all
|
BuiltinVariableShadowing: all
|
||||||
location:
|
location:
|
||||||
row: 24
|
row: 24
|
||||||
column: 45
|
column: 45
|
||||||
|
end_location:
|
||||||
|
row: 24
|
||||||
|
column: 48
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: any
|
BuiltinVariableShadowing: any
|
||||||
location:
|
location:
|
||||||
row: 24
|
row: 24
|
||||||
column: 50
|
column: 50
|
||||||
|
end_location:
|
||||||
|
row: 24
|
||||||
|
column: 53
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinVariableShadowing: sum
|
BuiltinVariableShadowing: sum
|
||||||
location:
|
location:
|
||||||
row: 27
|
row: 27
|
||||||
column: 8
|
column: 8
|
||||||
|
end_location:
|
||||||
|
row: 27
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,40 +7,62 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinArgumentShadowing: type
|
BuiltinArgumentShadowing: type
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 19
|
column: 19
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 23
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinArgumentShadowing: complex
|
BuiltinArgumentShadowing: complex
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 26
|
column: 26
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 33
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinArgumentShadowing: Exception
|
BuiltinArgumentShadowing: Exception
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 35
|
column: 35
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 44
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinArgumentShadowing: getattr
|
BuiltinArgumentShadowing: getattr
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 48
|
column: 48
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 55
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinArgumentShadowing: bytes
|
BuiltinArgumentShadowing: bytes
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 17
|
column: 17
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 22
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinArgumentShadowing: float
|
BuiltinArgumentShadowing: float
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 16
|
column: 16
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 21
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
---
|
---
|
||||||
source: src/linter.rs
|
source: src/linter.rs
|
||||||
assertion_line: 762
|
|
||||||
expression: checks
|
expression: checks
|
||||||
---
|
---
|
||||||
- kind:
|
- kind:
|
||||||
|
|
@ -8,11 +7,17 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
BuiltinAttributeShadowing: str
|
BuiltinAttributeShadowing: str
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 24
|
row: 24
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 24
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ expression: checks
|
||||||
- 88
|
- 88
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 89
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 124
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,47 +7,71 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: NotEq
|
NoneComparison: NotEq
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: Eq
|
NoneComparison: Eq
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: NotEq
|
NoneComparison: NotEq
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 11
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: Eq
|
NoneComparison: Eq
|
||||||
location:
|
location:
|
||||||
row: 14
|
row: 14
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 14
|
||||||
|
column: 18
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: NotEq
|
NoneComparison: NotEq
|
||||||
location:
|
location:
|
||||||
row: 17
|
row: 17
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 17
|
||||||
|
column: 18
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: NotEq
|
NoneComparison: NotEq
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
NoneComparison: Eq
|
NoneComparison: Eq
|
||||||
location:
|
location:
|
||||||
row: 23
|
row: 23
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 23
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -17,6 +20,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -25,6 +31,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -33,6 +42,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 11
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -41,6 +53,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 14
|
row: 14
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 14
|
||||||
|
column: 18
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -49,6 +64,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 17
|
row: 17
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 17
|
||||||
|
column: 19
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -57,6 +75,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 20
|
column: 20
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 24
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -65,6 +86,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 44
|
column: 44
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 49
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
TrueFalseComparison:
|
TrueFalseComparison:
|
||||||
|
|
@ -73,5 +97,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 22
|
row: 22
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 22
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,25 +6,40 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: NotInTest
|
- kind: NotInTest
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 12
|
column: 12
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: NotInTest
|
- kind: NotInTest
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: NotInTest
|
- kind: NotInTest
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 25
|
column: 25
|
||||||
|
end_location:
|
||||||
|
row: 11
|
||||||
|
column: 29
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: NotInTest
|
- kind: NotInTest
|
||||||
location:
|
location:
|
||||||
row: 14
|
row: 14
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 14
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: NotIsTest
|
- kind: NotIsTest
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 12
|
column: 12
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: NotIsTest
|
- kind: NotIsTest
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 23
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,80 +6,128 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 25
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 25
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 8
|
column: 8
|
||||||
|
end_location:
|
||||||
|
row: 10
|
||||||
|
column: 24
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 15
|
row: 15
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 15
|
||||||
|
column: 35
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 18
|
row: 18
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 18
|
||||||
|
column: 32
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 18
|
row: 18
|
||||||
column: 46
|
column: 46
|
||||||
|
end_location:
|
||||||
|
row: 18
|
||||||
|
column: 59
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 29
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 22
|
row: 22
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 22
|
||||||
|
column: 29
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 24
|
row: 24
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 24
|
||||||
|
column: 31
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 26
|
row: 26
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 26
|
||||||
|
column: 30
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 28
|
row: 28
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 28
|
||||||
|
column: 31
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 30
|
row: 30
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 30
|
||||||
|
column: 31
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 32
|
row: 32
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 32
|
||||||
|
column: 35
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 34
|
row: 34
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 38
|
||||||
|
column: 2
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 40
|
row: 40
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 40
|
||||||
|
column: 29
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: TypeComparison
|
- kind: TypeComparison
|
||||||
location:
|
location:
|
||||||
row: 42
|
row: 42
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 42
|
||||||
|
column: 31
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DoNotUseBareExcept
|
- kind: DoNotUseBareExcept
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 14
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DoNotUseBareExcept
|
- kind: DoNotUseBareExcept
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 19
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,25 +6,40 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 20
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DoNotAssignLambda
|
- kind: DoNotAssignLambda
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 20
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DoNotAssignLambda
|
- kind: DoNotAssignLambda
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 30
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DoNotAssignLambda
|
- kind: DoNotAssignLambda
|
||||||
location:
|
location:
|
||||||
row: 12
|
row: 12
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 12
|
||||||
|
column: 28
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DoNotAssignLambda
|
- kind: DoNotAssignLambda
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 26
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,149 +7,224 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 3
|
||||||
|
column: 2
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: I
|
AmbiguousVariableName: I
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 2
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: O
|
AmbiguousVariableName: O
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 2
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 2
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 5
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 10
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 11
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 8
|
column: 8
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 25
|
row: 25
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 25
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 26
|
row: 26
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 26
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 30
|
row: 30
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 30
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 33
|
row: 33
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 33
|
||||||
|
column: 19
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 34
|
row: 34
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 34
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 40
|
row: 40
|
||||||
column: 8
|
column: 8
|
||||||
|
end_location:
|
||||||
|
row: 40
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: I
|
AmbiguousVariableName: I
|
||||||
location:
|
location:
|
||||||
row: 40
|
row: 40
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 40
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 44
|
row: 44
|
||||||
column: 8
|
column: 8
|
||||||
|
end_location:
|
||||||
|
row: 44
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: I
|
AmbiguousVariableName: I
|
||||||
location:
|
location:
|
||||||
row: 44
|
row: 44
|
||||||
column: 16
|
column: 16
|
||||||
|
end_location:
|
||||||
|
row: 44
|
||||||
|
column: 17
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 48
|
row: 48
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 48
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: I
|
AmbiguousVariableName: I
|
||||||
location:
|
location:
|
||||||
row: 48
|
row: 48
|
||||||
column: 14
|
column: 14
|
||||||
|
end_location:
|
||||||
|
row: 48
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 57
|
row: 57
|
||||||
column: 16
|
column: 16
|
||||||
|
end_location:
|
||||||
|
row: 57
|
||||||
|
column: 17
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 66
|
row: 66
|
||||||
column: 20
|
column: 20
|
||||||
|
end_location:
|
||||||
|
row: 66
|
||||||
|
column: 21
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 71
|
row: 71
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 74
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousVariableName: l
|
AmbiguousVariableName: l
|
||||||
location:
|
location:
|
||||||
row: 74
|
row: 74
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 74
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,26 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousClassName: I
|
AmbiguousClassName: I
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousClassName: O
|
AmbiguousClassName: O
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 13
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,26 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousFunctionName: I
|
AmbiguousFunctionName: I
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
AmbiguousFunctionName: O
|
AmbiguousFunctionName: O
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 14
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,26 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 3
|
||||||
|
column: 17
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedImport: collections.OrderedDict
|
UnusedImport: collections.OrderedDict
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 2
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedImport: logging.handlers
|
UnusedImport: logging.handlers
|
||||||
location:
|
location:
|
||||||
row: 13
|
row: 13
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 13
|
||||||
|
column: 24
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 7
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
ImportShadowedByLoopVar:
|
ImportShadowedByLoopVar:
|
||||||
|
|
@ -17,5 +20,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 8
|
row: 8
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 8
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,17 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 19
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
ImportStarUsed: F634
|
ImportStarUsed: F634
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 19
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 38
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
ImportStarUsage:
|
ImportStarUsage:
|
||||||
|
|
@ -17,5 +20,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 11
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,17 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 23
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
ImportStarNotPermitted: F634
|
ImportStarNotPermitted: F634
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 23
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 44
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 7
|
column: 7
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: FStringMissingPlaceholders
|
- kind: FStringMissingPlaceholders
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 7
|
column: 7
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: FStringMissingPlaceholders
|
- kind: FStringMissingPlaceholders
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 7
|
column: 7
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 6
|
column: 6
|
||||||
|
end_location:
|
||||||
|
row: 3
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: MultiValueRepeatedKeyLiteral
|
- kind: MultiValueRepeatedKeyLiteral
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: MultiValueRepeatedKeyLiteral
|
- kind: MultiValueRepeatedKeyLiteral
|
||||||
location:
|
location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 7
|
column: 7
|
||||||
|
end_location:
|
||||||
|
row: 11
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,16 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 20
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: AssertTuple
|
- kind: AssertTuple
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,16 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 6
|
column: 6
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: IsLiteral
|
- kind: IsLiteral
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 8
|
column: 8
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,16 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: IfTuple
|
- kind: IfTuple
|
||||||
location:
|
location:
|
||||||
row: 7
|
row: 7
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 5
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,32 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: BreakOutsideLoop
|
- kind: BreakOutsideLoop
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: BreakOutsideLoop
|
- kind: BreakOutsideLoop
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: BreakOutsideLoop
|
- kind: BreakOutsideLoop
|
||||||
location:
|
location:
|
||||||
row: 23
|
row: 23
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 23
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,32 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 4
|
row: 4
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 4
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: ContinueOutsideLoop
|
- kind: ContinueOutsideLoop
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: ContinueOutsideLoop
|
- kind: ContinueOutsideLoop
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: ContinueOutsideLoop
|
- kind: ContinueOutsideLoop
|
||||||
location:
|
location:
|
||||||
row: 23
|
row: 23
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 23
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 12
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: YieldOutsideFunction
|
- kind: YieldOutsideFunction
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: YieldOutsideFunction
|
- kind: YieldOutsideFunction
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 10
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,16 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: ReturnOutsideFunction
|
- kind: ReturnOutsideFunction
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DefaultExceptNotLast
|
- kind: DefaultExceptNotLast
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 12
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DefaultExceptNotLast
|
- kind: DefaultExceptNotLast
|
||||||
location:
|
location:
|
||||||
row: 19
|
row: 19
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 13
|
column: 13
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 17
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,47 +7,71 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 12
|
column: 12
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 16
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: self
|
UndefinedName: self
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 13
|
column: 13
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 17
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: self
|
UndefinedName: self
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 10
|
||||||
|
column: 13
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: numeric_string
|
UndefinedName: numeric_string
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 12
|
column: 12
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 26
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: Bar
|
UndefinedName: Bar
|
||||||
location:
|
location:
|
||||||
row: 58
|
row: 58
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 58
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: TOMATO
|
UndefinedName: TOMATO
|
||||||
location:
|
location:
|
||||||
row: 83
|
row: 83
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 83
|
||||||
|
column: 17
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: B
|
UndefinedName: B
|
||||||
location:
|
location:
|
||||||
row: 87
|
row: 87
|
||||||
column: 7
|
column: 7
|
||||||
|
end_location:
|
||||||
|
row: 87
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: B
|
UndefinedName: B
|
||||||
location:
|
location:
|
||||||
row: 89
|
row: 89
|
||||||
column: 7
|
column: 7
|
||||||
|
end_location:
|
||||||
|
row: 89
|
||||||
|
column: 9
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 3
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 11
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 25
|
column: 25
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 31
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DuplicateArgumentName
|
- kind: DuplicateArgumentName
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 28
|
column: 28
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 34
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: DuplicateArgumentName
|
- kind: DuplicateArgumentName
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 27
|
column: 27
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 33
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,29 +7,44 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: z
|
UnusedVariable: z
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: foo
|
UnusedVariable: foo
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: a
|
UnusedVariable: a
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 6
|
column: 6
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 7
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: b
|
UnusedVariable: b
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,41 +7,62 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 3
|
row: 3
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 7
|
||||||
|
column: 1
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: foo
|
UnusedVariable: foo
|
||||||
location:
|
location:
|
||||||
row: 20
|
row: 20
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 20
|
||||||
|
column: 8
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: a
|
UnusedVariable: a
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 6
|
column: 6
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 7
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: b
|
UnusedVariable: b
|
||||||
location:
|
location:
|
||||||
row: 21
|
row: 21
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 21
|
||||||
|
column: 10
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: _
|
UnusedVariable: _
|
||||||
location:
|
location:
|
||||||
row: 35
|
row: 35
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 35
|
||||||
|
column: 6
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: __
|
UnusedVariable: __
|
||||||
location:
|
location:
|
||||||
row: 36
|
row: 36
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 36
|
||||||
|
column: 7
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UnusedVariable: _discarded
|
UnusedVariable: _discarded
|
||||||
location:
|
location:
|
||||||
row: 37
|
row: 37
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 37
|
||||||
|
column: 15
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,16 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 27
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: RaiseNotImplemented
|
- kind: RaiseNotImplemented
|
||||||
location:
|
location:
|
||||||
row: 6
|
row: 6
|
||||||
column: 11
|
column: 11
|
||||||
|
end_location:
|
||||||
|
row: 6
|
||||||
|
column: 25
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,17 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 30
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind:
|
- kind:
|
||||||
UndefinedName: Bar
|
UndefinedName: Bar
|
||||||
location:
|
location:
|
||||||
row: 22
|
row: 22
|
||||||
column: 19
|
column: 19
|
||||||
|
end_location:
|
||||||
|
row: 22
|
||||||
|
column: 22
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 9
|
||||||
|
column: 18
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 10
|
column: 10
|
||||||
end:
|
end_location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 18
|
column: 18
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -21,12 +24,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 13
|
row: 13
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 13
|
||||||
|
column: 24
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 13
|
row: 13
|
||||||
column: 10
|
column: 10
|
||||||
end:
|
end_location:
|
||||||
row: 13
|
row: 13
|
||||||
column: 24
|
column: 24
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -35,12 +41,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 10
|
column: 10
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 30
|
||||||
fix:
|
fix:
|
||||||
content: " # noqa: F841"
|
content: " # noqa: F841"
|
||||||
start:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 10
|
column: 10
|
||||||
end:
|
end_location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 30
|
column: 30
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -49,12 +58,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 41
|
row: 41
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 41
|
||||||
|
column: 24
|
||||||
fix:
|
fix:
|
||||||
content: " # noqa: E501"
|
content: " # noqa: E501"
|
||||||
start:
|
location:
|
||||||
row: 41
|
row: 41
|
||||||
column: 4
|
column: 4
|
||||||
end:
|
end_location:
|
||||||
row: 41
|
row: 41
|
||||||
column: 24
|
column: 24
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -63,12 +75,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 49
|
row: 49
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 49
|
||||||
|
column: 18
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 49
|
row: 49
|
||||||
column: 4
|
column: 4
|
||||||
end:
|
end_location:
|
||||||
row: 49
|
row: 49
|
||||||
column: 18
|
column: 18
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -77,12 +92,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 57
|
row: 57
|
||||||
column: 4
|
column: 4
|
||||||
|
end_location:
|
||||||
|
row: 57
|
||||||
|
column: 12
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 57
|
row: 57
|
||||||
column: 4
|
column: 4
|
||||||
end:
|
end_location:
|
||||||
row: 57
|
row: 57
|
||||||
column: 12
|
column: 12
|
||||||
applied: false
|
applied: false
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 5
|
||||||
|
column: 15
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 5
|
row: 5
|
||||||
column: 16
|
column: 16
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -21,12 +24,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 10
|
row: 10
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 10
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 9
|
row: 9
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 11
|
row: 11
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -35,12 +41,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 16
|
row: 16
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 16
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 15
|
row: 15
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 18
|
row: 18
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -49,12 +58,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 24
|
row: 24
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 24
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 22
|
row: 22
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 25
|
row: 25
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -63,12 +75,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 31
|
row: 31
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 31
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 29
|
row: 29
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 32
|
row: 32
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -77,12 +92,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 37
|
row: 37
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 37
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 36
|
row: 36
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 39
|
row: 39
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -91,12 +109,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 45
|
row: 45
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 45
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 43
|
row: 43
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 47
|
row: 47
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -105,12 +126,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 53
|
row: 53
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 53
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 51
|
row: 51
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 55
|
row: 55
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -119,12 +143,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 61
|
row: 61
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 61
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 59
|
row: 59
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 63
|
row: 63
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -133,12 +160,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 69
|
row: 69
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 69
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 67
|
row: 67
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 71
|
row: 71
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -147,12 +177,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 75
|
row: 75
|
||||||
column: 12
|
column: 12
|
||||||
|
end_location:
|
||||||
|
row: 75
|
||||||
|
column: 18
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 75
|
row: 75
|
||||||
column: 10
|
column: 10
|
||||||
end:
|
end_location:
|
||||||
row: 75
|
row: 75
|
||||||
column: 18
|
column: 18
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -161,12 +194,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 79
|
row: 79
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 79
|
||||||
|
column: 15
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 79
|
row: 79
|
||||||
column: 9
|
column: 9
|
||||||
end:
|
end_location:
|
||||||
row: 79
|
row: 79
|
||||||
column: 17
|
column: 17
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -175,12 +211,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 84
|
row: 84
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 84
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 84
|
row: 84
|
||||||
column: 5
|
column: 5
|
||||||
end:
|
end_location:
|
||||||
row: 85
|
row: 85
|
||||||
column: 5
|
column: 5
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -189,12 +228,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 92
|
row: 92
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 92
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 91
|
row: 91
|
||||||
column: 6
|
column: 6
|
||||||
end:
|
end_location:
|
||||||
row: 92
|
row: 92
|
||||||
column: 11
|
column: 11
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -203,12 +245,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 98
|
row: 98
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 98
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 98
|
row: 98
|
||||||
column: 5
|
column: 5
|
||||||
end:
|
end_location:
|
||||||
row: 100
|
row: 100
|
||||||
column: 5
|
column: 5
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -217,12 +262,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 108
|
row: 108
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 108
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 107
|
row: 107
|
||||||
column: 6
|
column: 6
|
||||||
end:
|
end_location:
|
||||||
row: 108
|
row: 108
|
||||||
column: 11
|
column: 11
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -231,12 +279,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 114
|
row: 114
|
||||||
column: 13
|
column: 13
|
||||||
|
end_location:
|
||||||
|
row: 114
|
||||||
|
column: 19
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 114
|
row: 114
|
||||||
column: 12
|
column: 12
|
||||||
end:
|
end_location:
|
||||||
row: 114
|
row: 114
|
||||||
column: 20
|
column: 20
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -245,12 +296,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 119
|
row: 119
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 119
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 118
|
row: 118
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 120
|
row: 120
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -259,12 +313,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 125
|
row: 125
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 125
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 124
|
row: 124
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 126
|
row: 126
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -273,12 +330,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 131
|
row: 131
|
||||||
column: 5
|
column: 5
|
||||||
|
end_location:
|
||||||
|
row: 131
|
||||||
|
column: 11
|
||||||
fix:
|
fix:
|
||||||
content: ""
|
content: ""
|
||||||
start:
|
location:
|
||||||
row: 130
|
row: 130
|
||||||
column: 8
|
column: 8
|
||||||
end:
|
end_location:
|
||||||
row: 133
|
row: 133
|
||||||
column: 2
|
column: 2
|
||||||
applied: false
|
applied: false
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 1
|
||||||
|
column: 18
|
||||||
fix:
|
fix:
|
||||||
content: assertEqual
|
content: assertEqual
|
||||||
start:
|
location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 2
|
column: 2
|
||||||
end:
|
end_location:
|
||||||
row: 1
|
row: 1
|
||||||
column: 14
|
column: 14
|
||||||
applied: false
|
applied: false
|
||||||
|
|
@ -19,12 +22,15 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 1
|
column: 1
|
||||||
|
end_location:
|
||||||
|
row: 2
|
||||||
|
column: 18
|
||||||
fix:
|
fix:
|
||||||
content: assertEqual
|
content: assertEqual
|
||||||
start:
|
location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 2
|
column: 2
|
||||||
end:
|
end_location:
|
||||||
row: 2
|
row: 2
|
||||||
column: 14
|
column: 14
|
||||||
applied: false
|
applied: false
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,24 @@ expression: checks
|
||||||
location:
|
location:
|
||||||
row: 17
|
row: 17
|
||||||
column: 18
|
column: 18
|
||||||
|
end_location:
|
||||||
|
row: 17
|
||||||
|
column: 23
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: SuperCallWithParameters
|
- kind: SuperCallWithParameters
|
||||||
location:
|
location:
|
||||||
row: 18
|
row: 18
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 18
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
- kind: SuperCallWithParameters
|
- kind: SuperCallWithParameters
|
||||||
location:
|
location:
|
||||||
row: 19
|
row: 19
|
||||||
column: 9
|
column: 9
|
||||||
|
end_location:
|
||||||
|
row: 19
|
||||||
|
column: 14
|
||||||
fix: ~
|
fix: ~
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue