Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var NoUselessCallRule = rule.Rule{ Name: "no-useless-call", Run: func(ctx rule.RuleContext, options any) rule.RuleListeners { return rule.RuleListeners{ ast.KindCallExpression: func(node *ast.Node) { callee, methodName := isCallOrNonVariadicApply(node) if callee == nil { return } applied := ast.SkipParentheses(callee.AsPropertyAccessExpression().Expression) // expectedThis is the receiver implied by `applied`. ESLint // treats only MemberExpression receivers as having an // implied `this`; tsgo splits that into PropertyAccessExpression // and ElementAccessExpression. var expectedThis *ast.Node switch applied.Kind { case ast.KindPropertyAccessExpression: expectedThis = applied.AsPropertyAccessExpression().Expression case ast.KindElementAccessExpression: expectedThis = applied.AsElementAccessExpression().Expression } thisArg := node.AsCallExpression().Arguments.Nodes[0] var matches bool if expectedThis == nil { matches = utils.IsNullOrUndefined(thisArg) } else { matches = utils.HasSameTokens(ctx.SourceFile, expectedThis, thisArg) } if !matches { return } ctx.ReportNode(node, rule.RuleMessage{ Id: "unnecessaryCall", Description: "Unnecessary '." + methodName + "()'.", }) }, } }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.