Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var NoUselessConstructorRule = rule.Rule{ Name: "no-useless-constructor", Run: func(ctx rule.RuleContext, options any) rule.RuleListeners { return rule.RuleListeners{ ast.KindConstructor: func(node *ast.Node) { constructor := node.AsConstructorDeclaration() if constructor == nil || constructor.Body == nil { return } if ast.IsStatic(node) { return } classNode := ast.GetContainingClass(node) if classNode == nil { return } hasSuper := ast.GetExtendsHeritageClauseElement(classNode) != nil if !checkAccessibility(node, hasSuper) { return } var params []*ast.Node if constructor.Parameters != nil { params = constructor.Parameters.Nodes } if !checkParams(node, params) { return } body := constructor.Body.Statements() var useless bool if hasSuper { useless = isRedundantSuperCall(body, params) } else { useless = len(body) == 0 } if !useless { return } var fix rule.RuleFix if needsLeadingSemicolon(ctx.SourceFile, classNode, node) { fix = rule.RuleFixReplace(ctx.SourceFile, node, ";") } else { fix = rule.RuleFixRemove(ctx.SourceFile, node) } ctx.ReportRangeWithSuggestions( reportRange(ctx, node, constructor), buildNoUselessConstructorMessage(), rule.RuleSuggestion{ Message: buildRemoveConstructorMessage(), FixesArr: []rule.RuleFix{fix}, }, ) }, } }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.