gochecknoglobals icon indicating copy to clipboard operation
gochecknoglobals copied to clipboard

Add exception for template.Must

Open zemanlx opened this issue 3 years ago • 3 comments

Hello,

First, thank you for providing this linter! I am using it as part of golangci-lint. I am now working on a project that have some regex.Must in global variables and have noticed that these are excluded from linter when used as global variables.

I assume that is because they are in this case compile-time errors if something goes wrong.

Now I also need to do same thing with templates for policy documents which are part of HTTP request body. Template documents are defined as consts and in global variable I am doing following:

	adminPolicyTemplate        = template.Must(template.New("AdminPolicy").Parse(AdminPolicy))
	readerPolicyTemplate       = template.Must(template.New("ReaderPolicy").Parse(ReaderPolicy))

which if anything is wrong with AdminPolicy template document or ReaderPolicy template document are compiler-ime errors, same as for regex. Therefore I think it would be nice to have same exception for template.Must as we have for regex.Must.

zemanlx avatar Mar 03 '22 09:03 zemanlx

@leighmcculloch I can also do the PR if you agree that it is a good idea.

zemanlx avatar Mar 03 '22 09:03 zemanlx

I'm on the fence on this one. I have seen this be a somewhat common pattern to store these values in global variables, but it continues to perpetuate the idea of using global variables. I don't use templates a whole lot myself though, are there ways that aren't obtuse to using them without globals?

leighmcculloch avatar Jan 15 '23 00:01 leighmcculloch

Not sure I understand what you mean. There are always ways around it, but they would be consts if they could :wink:, so the next best thing is global variables. They never change in my package and are the same use case as the regex. Right now, I am disabling your linter for those lines, but I see no harm in allowing them by default as regex-es are.

zemanlx avatar Jan 16 '23 14:01 zemanlx