Duplicated string literals make the process of refactoring complex and error-prone, as any change would need to be propagated on all occurrences.
No issue will be raised on:
log.Println, slog.Info, logrus.Info etc. (standard and 3rd
party libraries are supported)fmt.Errorf, errors.New, xerrors.New, etc. (standard and 3rd
party libraries are supported)Use constants to replace the duplicated string literals. Constants can be referenced from many places, but only need to be updated in a single place.
With the default threshold of 3:
func run() {
prepare("This should be a constant") // Noncompliant; 'This should ...' is duplicated 3 times
execute("This should be a constant")
release("This should be a constant")
}
const ACTION = "This should be a constant"
func run() {
prepare(ACTION)
execute(ACTION)
release(ACTION)
}