org.sonar.l10n.go.rules.go.S1151.html Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sonar-go-plugin Show documentation
Show all versions of sonar-go-plugin Show documentation
SonarQube analyzer for Go language
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