Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
72 lines
1.1 KiB
Go
72 lines
1.1 KiB
Go
package golang
|
|
|
|
func escape(s string) string {
|
|
if IsReserved(s) {
|
|
return s + "_"
|
|
}
|
|
return s
|
|
}
|
|
|
|
func IsReserved(s string) bool {
|
|
switch s {
|
|
// Not a keyword, but generated code refers to the predeclared type
|
|
// `any`, so a package-scope identifier with that name would shadow it.
|
|
case "any":
|
|
return true
|
|
case "break":
|
|
return true
|
|
case "default":
|
|
return true
|
|
case "func":
|
|
return true
|
|
case "interface":
|
|
return true
|
|
case "select":
|
|
return true
|
|
case "case":
|
|
return true
|
|
case "defer":
|
|
return true
|
|
case "go":
|
|
return true
|
|
case "map":
|
|
return true
|
|
case "struct":
|
|
return true
|
|
case "chan":
|
|
return true
|
|
case "else":
|
|
return true
|
|
case "goto":
|
|
return true
|
|
case "package":
|
|
return true
|
|
case "switch":
|
|
return true
|
|
case "const":
|
|
return true
|
|
case "fallthrough":
|
|
return true
|
|
case "if":
|
|
return true
|
|
case "range":
|
|
return true
|
|
case "type":
|
|
return true
|
|
case "continue":
|
|
return true
|
|
case "for":
|
|
return true
|
|
case "import":
|
|
return true
|
|
case "return":
|
|
return true
|
|
case "var":
|
|
return true
|
|
case "q":
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|