mirror of https://github.com/astral-sh/ruff
Try to extend visitor
This commit is contained in:
parent
9ad82a6127
commit
21d39a9b44
|
|
@ -1,22 +1,212 @@
|
|||
use libcst_native::{CompoundStatement, Expression, SimpleStatementLine, Statement};
|
||||
use libcst_native::{Expr, SmallStatement};
|
||||
use libcst_native::{
|
||||
AnnAssign, Annotation, Arg, AsName, Assert, Assign, AssignEqual, AssignTarget, Asynchronous,
|
||||
Attribute, AugAssign, AugOp, Await, BinaryOperation, BitAnd, BitAndAssign, BitInvert,
|
||||
BitOrAssign, BitXor, BitXorAssign, BooleanOperation, Break, Call, ClassDef, Colon, Comma,
|
||||
Comment, CompFor, CompIf, Comparison, ComparisonTarget, CompoundStatement, ConcatenatedString,
|
||||
Continue, Decorator, Del, Dict, DictComp, DictElement, Divide, DivideAssign, Dot, Element,
|
||||
Ellipsis, Else, EmptyLine, Equal, ExceptHandler, ExceptStarHandler, Expr, Expression, Finally,
|
||||
Float, FloorDivide, FloorDivideAssign, For, FormattedString, FormattedStringExpression,
|
||||
FormattedStringText, From, FunctionDef, GeneratorExp, Global, GreaterThan, GreaterThanEqual,
|
||||
If, IfExp, Imaginary, Import, ImportAlias, ImportFrom, ImportStar, In, IndentedBlock, Index,
|
||||
Integer, Is, IsNot, Lambda, LeftCurlyBrace, LeftParen, LeftShift, LeftShiftAssign,
|
||||
LeftSquareBracket, LessThan, LessThanEqual, List, ListComp, Match, MatchAs, MatchCase,
|
||||
MatchClass, MatchKeywordElement, MatchList, MatchMapping, MatchMappingElement, MatchOr,
|
||||
MatchOrElement, MatchPattern, MatchSequence, MatchSequenceElement, MatchSingleton, MatchStar,
|
||||
MatchTuple, MatchValue, MatrixMultiply, MatrixMultiplyAssign, Minus, Module, Modulo,
|
||||
ModuloAssign, Multiply, MultiplyAssign, Name, NameItem, NamedExpr, Newline, Nonlocal, Not,
|
||||
NotEqual, NotIn, Or, Param, ParamSlash, ParamStar, Parameters, ParenthesizedWhitespace, Pass,
|
||||
Plus, Power, PowerAssign, Raise, Return, RightCurlyBrace, RightParen, RightShift,
|
||||
RightShiftAssign, RightSquareBracket, Semicolon, Set, SetComp, SimpleStatementLine,
|
||||
SimpleStatementSuite, SimpleString, SimpleWhitespace, Slice, SmallStatement,
|
||||
StarredDictElement, StarredElement, Statement, Subscript, SubscriptElement, Subtract,
|
||||
SubtractAssign, TrailingWhitespace, Try, TryStar, Tuple, UnaryOperation, While, With, WithItem,
|
||||
Yield,
|
||||
};
|
||||
|
||||
pub trait CSTVisitor {
|
||||
fn visit_statement(&mut self, statement: &Statement) {
|
||||
walk_statement(self, statement);
|
||||
}
|
||||
fn visit_simple_statement_line(&mut self, simple_statement_line: &SimpleStatementLine) {
|
||||
walk_simple_statement_line(self, simple_statement_line);
|
||||
}
|
||||
fn visit_compound_statement(&mut self, compound_statement: &CompoundStatement) {
|
||||
walk_compound_statement(self, compound_statement);
|
||||
}
|
||||
fn visit_small_statement(&mut self, small_statement: &SmallStatement) {
|
||||
walk_small_statement(self, small_statement);
|
||||
}
|
||||
fn visit_expression(&mut self, expression: &Expression) {
|
||||
walk_expression(self, expression);
|
||||
}
|
||||
// fn visit_statement(&mut self, statement: &Statement) {
|
||||
// walk_statement(self, statement);
|
||||
// }
|
||||
// fn visit_simple_statement_line(&mut self, simple_statement_line: &SimpleStatementLine) {
|
||||
// walk_simple_statement_line(self, simple_statement_line);
|
||||
// }
|
||||
// fn visit_compound_statement(&mut self, compound_statement: &CompoundStatement) {
|
||||
// walk_compound_statement(self, compound_statement);
|
||||
// }
|
||||
// fn visit_small_statement(&mut self, small_statement: &SmallStatement) {
|
||||
// walk_small_statement(self, small_statement);
|
||||
// }
|
||||
// fn visit_expression(&mut self, expression: &Expression) {
|
||||
// walk_expression(self, expression);
|
||||
// }
|
||||
// fn visit_Add(&mut self, node: &Add) {}
|
||||
// fn visit_AddAssign(&mut self, node: &AddAssign) {}
|
||||
// fn visit_And(&mut self, node: &And) {}
|
||||
fn visit_AnnAssign(&mut self, node: &AnnAssign) {}
|
||||
fn visit_Annotation(&mut self, node: &Annotation) {}
|
||||
fn visit_Arg(&mut self, node: &Arg) {}
|
||||
fn visit_AsName(&mut self, node: &AsName) {}
|
||||
fn visit_Assert(&mut self, node: &Assert) {}
|
||||
fn visit_Assign(&mut self, node: &Assign) {}
|
||||
fn visit_AssignEqual(&mut self, node: &AssignEqual) {}
|
||||
fn visit_AssignTarget(&mut self, node: &AssignTarget) {}
|
||||
fn visit_Asynchronous(&mut self, node: &Asynchronous) {}
|
||||
fn visit_Attribute(&mut self, node: &Attribute) {}
|
||||
fn visit_AugAssign(&mut self, node: &AugAssign) {}
|
||||
fn visit_AugOp(&mut self, node: &AugOp) {}
|
||||
fn visit_Await(&mut self, node: &Await) {}
|
||||
fn visit_BinaryOperation(&mut self, node: &BinaryOperation) {}
|
||||
// fn visit_BitAnd(&mut self, node: &BitAnd) {}
|
||||
// fn visit_BitAndAssign(&mut self, node: &BitAndAssign) {}
|
||||
// fn visit_BitInvert(&mut self, node: &BitInvert) {}
|
||||
// fn visit_BitOr(&mut self, node: &BitOr) {}
|
||||
// fn visit_BitOrAssign(&mut self, node: &BitOrAssign) {}
|
||||
// fn visit_BitXor(&mut self, node: &BitXor) {}
|
||||
// fn visit_BitXorAssign(&mut self, node: &BitXorAssign) {}
|
||||
fn visit_BooleanOperation(&mut self, node: &BooleanOperation) {}
|
||||
fn visit_Break(&mut self, node: &Break) {}
|
||||
fn visit_Call(&mut self, node: &Call) {}
|
||||
fn visit_ClassDef(&mut self, node: &ClassDef) {}
|
||||
fn visit_Colon(&mut self, node: &Colon) {}
|
||||
fn visit_Comma(&mut self, node: &Comma) {}
|
||||
fn visit_Comment(&mut self, node: &Comment) {}
|
||||
fn visit_CompFor(&mut self, node: &CompFor) {}
|
||||
fn visit_CompIf(&mut self, node: &CompIf) {}
|
||||
fn visit_Comparison(&mut self, node: &Comparison) {}
|
||||
fn visit_ComparisonTarget(&mut self, node: &ComparisonTarget) {}
|
||||
fn visit_ConcatenatedString(&mut self, node: &ConcatenatedString) {}
|
||||
fn visit_Continue(&mut self, node: &Continue) {}
|
||||
fn visit_Decorator(&mut self, node: &Decorator) {}
|
||||
fn visit_Del(&mut self, node: &Del) {}
|
||||
fn visit_Dict(&mut self, node: &Dict) {}
|
||||
fn visit_DictComp(&mut self, node: &DictComp) {}
|
||||
fn visit_DictElement(&mut self, node: &DictElement) {}
|
||||
fn visit_Divide(&mut self, node: &Divide) {}
|
||||
fn visit_DivideAssign(&mut self, node: &DivideAssign) {}
|
||||
fn visit_Dot(&mut self, node: &Dot) {}
|
||||
fn visit_Element(&mut self, node: &Element) {}
|
||||
fn visit_Ellipsis(&mut self, node: &Ellipsis) {}
|
||||
fn visit_Else(&mut self, node: &Else) {}
|
||||
fn visit_EmptyLine(&mut self, node: &EmptyLine) {}
|
||||
fn visit_Equal(&mut self, node: &Equal) {}
|
||||
fn visit_ExceptHandler(&mut self, node: &ExceptHandler) {}
|
||||
fn visit_ExceptStarHandler(&mut self, node: &ExceptStarHandler) {}
|
||||
fn visit_Expr(&mut self, node: &Expr) {}
|
||||
fn visit_Finally(&mut self, node: &Finally) {}
|
||||
fn visit_Float(&mut self, node: &Float) {}
|
||||
fn visit_FloorDivide(&mut self, node: &FloorDivide) {}
|
||||
fn visit_FloorDivideAssign(&mut self, node: &FloorDivideAssign) {}
|
||||
fn visit_For(&mut self, node: &For) {}
|
||||
fn visit_FormattedString(&mut self, node: &FormattedString) {}
|
||||
|
||||
fn visit_FormattedStringExpression(&mut self, node: &FormattedStringExpression) {}
|
||||
fn visit_FormattedStringText(&mut self, node: &FormattedStringText) {}
|
||||
fn visit_From(&mut self, node: &From) {}
|
||||
fn visit_FunctionDef(&mut self, node: &FunctionDef) {}
|
||||
fn visit_GeneratorExp(&mut self, node: &GeneratorExp) {}
|
||||
fn visit_Global(&mut self, node: &Global) {}
|
||||
fn visit_GreaterThan(&mut self, node: &GreaterThan) {}
|
||||
fn visit_GreaterThanEqual(&mut self, node: &GreaterThanEqual) {}
|
||||
fn visit_If(&mut self, node: &If) {}
|
||||
fn visit_IfExp(&mut self, node: &IfExp) {}
|
||||
fn visit_Imaginary(&mut self, node: &Imaginary) {}
|
||||
fn visit_Import(&mut self, node: &Import) {}
|
||||
fn visit_ImportAlias(&mut self, node: &ImportAlias) {}
|
||||
fn visit_ImportFrom(&mut self, node: &ImportFrom) {}
|
||||
fn visit_ImportStar(&mut self, node: &ImportStar) {}
|
||||
fn visit_In(&mut self, node: &In) {}
|
||||
fn visit_IndentedBlock(&mut self, node: &IndentedBlock) {}
|
||||
fn visit_Index(&mut self, node: &Index) {}
|
||||
fn visit_Integer(&mut self, node: &Integer) {}
|
||||
fn visit_Is(&mut self, node: &Is) {}
|
||||
fn visit_IsNot(&mut self, node: &IsNot) {}
|
||||
fn visit_Lambda(&mut self, node: &Lambda) {}
|
||||
fn visit_LeftCurlyBrace(&mut self, node: &LeftCurlyBrace) {}
|
||||
fn visit_LeftParen(&mut self, node: &LeftParen) {}
|
||||
fn visit_LeftShift(&mut self, node: &LeftShift) {}
|
||||
fn visit_LeftShiftAssign(&mut self, node: &LeftShiftAssign) {}
|
||||
fn visit_LeftSquareBracket(&mut self, node: &LeftSquareBracket) {}
|
||||
fn visit_LessThan(&mut self, node: &LessThan) {}
|
||||
fn visit_LessThanEqual(&mut self, node: &LessThanEqual) {}
|
||||
fn visit_List(&mut self, node: &List) {}
|
||||
fn visit_ListComp(&mut self, node: &ListComp) {}
|
||||
fn visit_Match(&mut self, node: &Match) {}
|
||||
fn visit_MatchAs(&mut self, node: &MatchAs) {}
|
||||
fn visit_MatchCase(&mut self, node: &MatchCase) {}
|
||||
fn visit_MatchClass(&mut self, node: &MatchClass) {}
|
||||
fn visit_MatchKeywordElement(&mut self, node: &MatchKeywordElement) {}
|
||||
fn visit_MatchList(&mut self, node: &MatchList) {}
|
||||
fn visit_MatchMapping(&mut self, node: &MatchMapping) {}
|
||||
fn visit_MatchMappingElement(&mut self, node: &MatchMappingElement) {}
|
||||
fn visit_MatchOr(&mut self, node: &MatchOr) {}
|
||||
fn visit_MatchOrElement(&mut self, node: &MatchOrElement) {}
|
||||
fn visit_MatchPattern(&mut self, node: &MatchPattern) {}
|
||||
fn visit_MatchSequence(&mut self, node: &MatchSequence) {}
|
||||
|
||||
fn visit_MatchSequenceElement(&mut self, node: &MatchSequenceElement) {}
|
||||
fn visit_MatchSingleton(&mut self, node: &MatchSingleton) {}
|
||||
fn visit_MatchStar(&mut self, node: &MatchStar) {}
|
||||
fn visit_MatchTuple(&mut self, node: &MatchTuple) {}
|
||||
fn visit_MatchValue(&mut self, node: &MatchValue) {}
|
||||
fn visit_MatrixMultiply(&mut self, node: &MatrixMultiply) {}
|
||||
|
||||
fn visit_MatrixMultiplyAssign(&mut self, node: &MatrixMultiplyAssign) {}
|
||||
fn visit_Minus(&mut self, node: &Minus) {}
|
||||
fn visit_Module(&mut self, node: &Module) {}
|
||||
fn visit_Modulo(&mut self, node: &Modulo) {}
|
||||
fn visit_ModuloAssign(&mut self, node: &ModuloAssign) {}
|
||||
fn visit_Multiply(&mut self, node: &Multiply) {}
|
||||
fn visit_MultiplyAssign(&mut self, node: &MultiplyAssign) {}
|
||||
fn visit_Name(&mut self, node: &Name) {}
|
||||
fn visit_NameItem(&mut self, node: &NameItem) {}
|
||||
fn visit_NamedExpr(&mut self, node: &NamedExpr) {}
|
||||
fn visit_Newline(&mut self, node: &Newline) {}
|
||||
fn visit_Nonlocal(&mut self, node: &Nonlocal) {}
|
||||
fn visit_Not(&mut self, node: &Not) {}
|
||||
fn visit_NotEqual(&mut self, node: &NotEqual) {}
|
||||
fn visit_NotIn(&mut self, node: &NotIn) {}
|
||||
fn visit_Or(&mut self, node: &Or) {}
|
||||
fn visit_Param(&mut self, node: &Param) {}
|
||||
fn visit_ParamSlash(&mut self, node: &ParamSlash) {}
|
||||
fn visit_ParamStar(&mut self, node: &ParamStar) {}
|
||||
fn visit_Parameters(&mut self, node: &Parameters) {}
|
||||
|
||||
fn visit_ParenthesizedWhitespace(&mut self, node: &ParenthesizedWhitespace) {}
|
||||
fn visit_Pass(&mut self, node: &Pass) {}
|
||||
fn visit_Plus(&mut self, node: &Plus) {}
|
||||
fn visit_Power(&mut self, node: &Power) {}
|
||||
fn visit_PowerAssign(&mut self, node: &PowerAssign) {}
|
||||
fn visit_Raise(&mut self, node: &Raise) {}
|
||||
fn visit_Return(&mut self, node: &Return) {}
|
||||
fn visit_RightCurlyBrace(&mut self, node: &RightCurlyBrace) {}
|
||||
fn visit_RightParen(&mut self, node: &RightParen) {}
|
||||
fn visit_RightShift(&mut self, node: &RightShift) {}
|
||||
fn visit_RightShiftAssign(&mut self, node: &RightShiftAssign) {}
|
||||
fn visit_RightSquareBracket(&mut self, node: &RightSquareBracket) {}
|
||||
fn visit_Semicolon(&mut self, node: &Semicolon) {}
|
||||
fn visit_Set(&mut self, node: &Set) {}
|
||||
fn visit_SetComp(&mut self, node: &SetComp) {}
|
||||
fn visit_SimpleStatementLine(&mut self, node: &SimpleStatementLine) {}
|
||||
|
||||
fn visit_SimpleStatementSuite(&mut self, node: &SimpleStatementSuite) {}
|
||||
fn visit_SimpleString(&mut self, node: &SimpleString) {}
|
||||
fn visit_SimpleWhitespace(&mut self, node: &SimpleWhitespace) {}
|
||||
fn visit_Slice(&mut self, node: &Slice) {}
|
||||
fn visit_StarredDictElement(&mut self, node: &StarredDictElement) {}
|
||||
fn visit_StarredElement(&mut self, node: &StarredElement) {}
|
||||
fn visit_Subscript(&mut self, node: &Subscript) {}
|
||||
fn visit_SubscriptElement(&mut self, node: &SubscriptElement) {}
|
||||
fn visit_Subtract(&mut self, node: &Subtract) {}
|
||||
fn visit_SubtractAssign(&mut self, node: &SubtractAssign) {}
|
||||
fn visit_TrailingWhitespace(&mut self, node: &TrailingWhitespace) {}
|
||||
fn visit_Try(&mut self, node: &Try) {}
|
||||
fn visit_TryStar(&mut self, node: &TryStar) {}
|
||||
fn visit_Tuple(&mut self, node: &Tuple) {}
|
||||
fn visit_UnaryOperation(&mut self, node: &UnaryOperation) {}
|
||||
fn visit_While(&mut self, node: &While) {}
|
||||
fn visit_With(&mut self, node: &With) {}
|
||||
fn visit_WithItem(&mut self, node: &WithItem) {}
|
||||
fn visit_Yield(&mut self, node: &Yield) {}
|
||||
}
|
||||
|
||||
pub fn walk_statement<V: CSTVisitor + ?Sized>(visitor: &mut V, statement: &Statement) {
|
||||
|
|
@ -78,8 +268,18 @@ pub fn walk_small_statement<V: CSTVisitor + ?Sized>(
|
|||
visitor.visit_expression(expression);
|
||||
}
|
||||
}
|
||||
SmallStatement::Import(_) => {}
|
||||
SmallStatement::ImportFrom(_) => {}
|
||||
SmallStatement::Import(inner) => {
|
||||
// Do I really need to recurse here?
|
||||
for name in &inner.names {
|
||||
visitor.visit_ImportAlias(name);
|
||||
}
|
||||
}
|
||||
SmallStatement::ImportFrom(inner) => {
|
||||
// Do I really need to recurse here?
|
||||
for name in &inner.names {
|
||||
visitor.visit_Name(name);
|
||||
}
|
||||
}
|
||||
SmallStatement::Assign(_) => {}
|
||||
SmallStatement::AnnAssign(_) => {}
|
||||
SmallStatement::Raise(_) => {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue