All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.go.rules.go.S1151.html Maven / Gradle / Ivy

There is a newer version: 1.24.0.3049
Show newest version

Why is this an issue?

The switch statement should be used only to clearly define some new branches in the control flow. As soon as a case clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of the case clause should be extracted into a dedicated method.

Noncompliant code example

With the default threshold of 5:

func foo(tag int) {
	switch tag {
	case 0:
		methodCall1()
		methodCall2()
		methodCall3()
		methodCall4()
                methodCall5()
                methodCall6()
	case 1:
		bar()
	}
}

Compliant solution

func foo(tag int) {
	switch tag {
	case 0:
		executeAll()
	case 1:
		bar()
	}
}

func executeAll() {
	methodCall1()
	methodCall2()
	methodCall3()
	methodCall4()
        methodCall5()
        methodCall6()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy