Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var NoArrayDeleteRule = rule.CreateRule(rule.Rule{ Name: "no-array-delete", Run: func(ctx rule.RuleContext, options any) rule.RuleListeners { isUnderlyingTypeArray := func(t *checker.Type) bool { if utils.IsTypeFlagSet(t, checker.TypeFlagsUnion) { for _, t := range t.Types() { if !checker.Checker_isArrayOrTupleType(ctx.TypeChecker, t) { return false } } return true } if utils.IsTypeFlagSet(t, checker.TypeFlagsIntersection) { for _, t := range t.Types() { if checker.Checker_isArrayOrTupleType(ctx.TypeChecker, t) { return true } } return false } return checker.Checker_isArrayOrTupleType(ctx.TypeChecker, t) } return rule.RuleListeners{ ast.KindDeleteExpression: func(node *ast.Node) { if node.Kind != ast.KindDeleteExpression { return } deleteExpression := ast.SkipParentheses(node.AsDeleteExpression().Expression) if !ast.IsElementAccessExpression(deleteExpression) { return } expression := deleteExpression.AsElementAccessExpression() argType := utils.GetConstrainedTypeAtLocation(ctx.TypeChecker, expression.Expression) if !isUnderlyingTypeArray(argType) { return } expressionRange := utils.TrimNodeTextRange(ctx.SourceFile, expression.Expression) argumentRange := utils.TrimNodeTextRange(ctx.SourceFile, expression.ArgumentExpression) deleteTokenRange := scanner.GetRangeOfTokenAtPosition(ctx.SourceFile, node.Pos()) leftBracketTokenRange := scanner.GetRangeOfTokenAtPosition(ctx.SourceFile, expressionRange.End()) rightBracketTokenRange := scanner.GetRangeOfTokenAtPosition(ctx.SourceFile, argumentRange.End()) ctx.ReportNodeWithSuggestions(node, buildNoArrayDeleteMessage(), rule.RuleSuggestion{ Message: buildUseSpliceMessage(), FixesArr: []rule.RuleFix{ rule.RuleFixRemoveRange(deleteTokenRange), rule.RuleFixReplaceRange(leftBracketTokenRange, ".splice("), rule.RuleFixReplaceRange(rightBracketTokenRange, ", 1)"), }, }) }, } }, })
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.