default_case_last

package
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultCaseLastRule = rule.Rule{
	Name: "default-case-last",
	Run: func(ctx rule.RuleContext, options any) rule.RuleListeners {
		return rule.RuleListeners{
			ast.KindSwitchStatement: func(node *ast.Node) {
				switchStmt := node.AsSwitchStatement()
				if switchStmt == nil {
					return
				}

				caseBlockNode := switchStmt.CaseBlock
				if caseBlockNode == nil {
					return
				}

				caseBlock := caseBlockNode.AsCaseBlock()
				if caseBlock == nil || caseBlock.Clauses == nil {
					return
				}

				clauseNodes := caseBlock.Clauses.Nodes
				if len(clauseNodes) == 0 {
					return
				}

				for i, clause := range clauseNodes {
					if clause.Kind == ast.KindDefaultClause {

						if i != len(clauseNodes)-1 {
							ctx.ReportNode(clause, rule.RuleMessage{
								Id:          "notLast",
								Description: "Default clause should be the last clause.",
							})
						}
						return
					}
				}
			},
		}
	},
}

https://eslint.org/docs/latest/rules/default-case-last

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL