diff --git a/go.mod b/go.mod
index 46d440ae37..7a6910d85e 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ toolchain go1.22.0
require (
github.com/client9/misspell v0.3.4
- github.com/golangci/golangci-lint v1.57.2
+ github.com/golangci/golangci-lint v1.58.0
github.com/google/go-github/v57 v57.0.0
github.com/google/uuid v1.6.0
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320
@@ -14,7 +14,7 @@ require (
github.com/shurcooL/githubv4 v0.0.0-20221126192849-0b5c4c7994eb
github.com/stretchr/testify v1.9.0
golang.org/x/crypto v0.22.0
- golang.org/x/oauth2 v0.19.0
+ golang.org/x/oauth2 v0.20.0
gopkg.in/square/go-jose.v2 v2.6.0
)
@@ -23,13 +23,14 @@ require (
4d63.com/gochecknoglobals v0.2.1 // indirect
github.com/4meepo/tagalign v1.3.3 // indirect
github.com/Abirdcfly/dupword v0.0.14 // indirect
- github.com/Antonboom/errname v0.1.12 // indirect
- github.com/Antonboom/nilnil v0.1.7 // indirect
+ github.com/Antonboom/errname v0.1.13 // indirect
+ github.com/Antonboom/nilnil v0.1.8 // indirect
github.com/Antonboom/testifylint v1.2.0 // indirect
github.com/BurntSushi/toml v1.3.2 // indirect
+ github.com/Crocmagnon/fatcontext v0.2.2 // indirect
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect
- github.com/Masterminds/semver v1.5.0 // indirect
+ github.com/Masterminds/semver/v3 v3.2.1 // indirect
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
github.com/ProtonMail/go-crypto v1.1.0-alpha.0 // indirect
github.com/agext/levenshtein v1.2.2 // indirect
@@ -47,26 +48,26 @@ require (
github.com/breml/bidichk v0.2.7 // indirect
github.com/breml/errchkjson v0.3.6 // indirect
github.com/butuzov/ireturn v0.3.0 // indirect
- github.com/butuzov/mirror v1.1.0 // indirect
+ github.com/butuzov/mirror v1.2.0 // indirect
github.com/catenacyber/perfsprint v0.7.1 // indirect
github.com/ccojocar/zxcvbn-go v1.0.2 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/charithe/durationcheck v0.0.10 // indirect
github.com/chavacava/garif v0.1.0 // indirect
- github.com/ckaznocha/intrange v0.1.1 // indirect
+ github.com/ckaznocha/intrange v0.1.2 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/curioswitch/go-reassign v0.2.0 // indirect
- github.com/daixiang0/gci v0.12.3 // indirect
+ github.com/daixiang0/gci v0.13.4 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/denis-tingaikin/go-header v0.5.0 // indirect
github.com/ettle/strcase v0.2.0 // indirect
github.com/fatih/color v1.16.0 // indirect
github.com/fatih/structtag v1.2.0 // indirect
- github.com/firefart/nonamedreturns v1.0.4 // indirect
+ github.com/firefart/nonamedreturns v1.0.5 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
github.com/fzipp/gocyclo v0.6.0 // indirect
github.com/ghostiam/protogetter v0.3.5 // indirect
- github.com/go-critic/go-critic v0.11.2 // indirect
+ github.com/go-critic/go-critic v0.11.3 // indirect
github.com/go-toolsmith/astcast v1.1.0 // indirect
github.com/go-toolsmith/astcopy v1.1.0 // indirect
github.com/go-toolsmith/astequal v1.2.0 // indirect
@@ -81,9 +82,10 @@ require (
github.com/golang/protobuf v1.5.3 // indirect
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
- github.com/golangci/misspell v0.4.1 // indirect
+ github.com/golangci/misspell v0.5.1 // indirect
+ github.com/golangci/modinfo v0.3.4 // indirect
github.com/golangci/plugin-module-register v0.1.1 // indirect
- github.com/golangci/revgrep v0.5.2 // indirect
+ github.com/golangci/revgrep v0.5.3 // indirect
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
@@ -116,17 +118,18 @@ require (
github.com/jgautheron/goconst v1.7.1 // indirect
github.com/jingyugao/rowserrcheck v1.1.1 // indirect
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect
- github.com/jjti/go-spancheck v0.5.3 // indirect
+ github.com/jjti/go-spancheck v0.6.1 // indirect
github.com/julz/importas v0.1.0 // indirect
- github.com/karamaru-alpha/copyloopvar v1.0.10 // indirect
+ github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect
github.com/kisielk/errcheck v1.7.0 // indirect
github.com/kkHAIKE/contextcheck v1.1.5 // indirect
github.com/kulti/thelper v0.6.3 // indirect
github.com/kunwardeep/paralleltest v1.0.10 // indirect
github.com/kyoh86/exportloopref v0.1.11 // indirect
+ github.com/lasiar/canonicalheader v1.0.6 // indirect
github.com/ldez/gomoddirectives v0.2.4 // indirect
github.com/ldez/tagliatelle v0.5.0 // indirect
- github.com/leonklingele/grouper v1.1.1 // indirect
+ github.com/leonklingele/grouper v1.1.2 // indirect
github.com/lufeee/execinquery v1.2.1 // indirect
github.com/macabu/inamedparam v0.1.3 // indirect
github.com/magiconair/properties v1.8.6 // indirect
@@ -153,18 +156,19 @@ require (
github.com/oklog/run v1.0.0 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
- github.com/pelletier/go-toml/v2 v2.2.0 // indirect
+ github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/polyfloyd/go-errorlint v1.4.8 // indirect
+ github.com/polyfloyd/go-errorlint v1.5.1 // indirect
github.com/prometheus/client_golang v1.12.1 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.32.1 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/quasilyte/go-ruleguard v0.4.2 // indirect
+ github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect
github.com/quasilyte/gogrep v0.5.0 // indirect
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
- github.com/ryancurrah/gomodguard v1.3.1 // indirect
+ github.com/ryancurrah/gomodguard v1.3.2 // indirect
github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
@@ -196,31 +200,31 @@ require (
github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
github.com/ultraware/funlen v0.1.0 // indirect
- github.com/ultraware/whitespace v0.1.0 // indirect
+ github.com/ultraware/whitespace v0.1.1 // indirect
github.com/uudashr/gocognit v1.1.2 // indirect
github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/xen0n/gosmopolitan v1.2.2 // indirect
github.com/yagipy/maintidx v1.0.0 // indirect
- github.com/yeya24/promlinter v0.2.0 // indirect
+ github.com/yeya24/promlinter v0.3.0 // indirect
github.com/ykadowak/zerologlint v0.1.5 // indirect
github.com/zclconf/go-cty v1.14.2 // indirect
- gitlab.com/bosi/decorder v0.4.1 // indirect
- go-simpler.org/musttag v0.9.0 // indirect
- go-simpler.org/sloglint v0.5.0 // indirect
+ gitlab.com/bosi/decorder v0.4.2 // indirect
+ go-simpler.org/musttag v0.12.1 // indirect
+ go-simpler.org/sloglint v0.6.0 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/automaxprocs v1.5.3 // indirect
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc // indirect
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
- golang.org/x/mod v0.16.0 // indirect
- golang.org/x/net v0.23.0 // indirect
- golang.org/x/sync v0.6.0 // indirect
+ golang.org/x/mod v0.17.0 // indirect
+ golang.org/x/net v0.24.0 // indirect
+ golang.org/x/sync v0.7.0 // indirect
golang.org/x/sys v0.19.0 // indirect
golang.org/x/text v0.14.0 // indirect
- golang.org/x/tools v0.19.0 // indirect
+ golang.org/x/tools v0.20.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/grpc v1.61.1 // indirect
@@ -231,5 +235,5 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
honnef.co/go/tools v0.4.7 // indirect
mvdan.cc/gofumpt v0.6.0 // indirect
- mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 // indirect
+ mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 // indirect
)
diff --git a/go.sum b/go.sum
index 8cbc7d14af..e8d6ace556 100644
--- a/go.sum
+++ b/go.sum
@@ -41,22 +41,24 @@ github.com/4meepo/tagalign v1.3.3 h1:ZsOxcwGD/jP4U/aw7qeWu58i7dwYemfy5Y+IF1ACoNw
github.com/4meepo/tagalign v1.3.3/go.mod h1:Q9c1rYMZJc9dPRkbQPpcBNCLEmY2njbAsXhQOZFE2dE=
github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8=
github.com/Abirdcfly/dupword v0.0.14/go.mod h1:VKDAbxdY8YbKUByLGg8EETzYSuC4crm9WwI6Y3S0cLI=
-github.com/Antonboom/errname v0.1.12 h1:oh9ak2zUtsLp5oaEd/erjB4GPu9w19NyoIskZClDcQY=
-github.com/Antonboom/errname v0.1.12/go.mod h1:bK7todrzvlaZoQagP1orKzWXv59X/x0W0Io2XT1Ssro=
-github.com/Antonboom/nilnil v0.1.7 h1:ofgL+BA7vlA1K2wNQOsHzLJ2Pw5B5DpWRLdDAVvvTow=
-github.com/Antonboom/nilnil v0.1.7/go.mod h1:TP+ScQWVEq0eSIxqU8CbdT5DFWoHp0MbP+KMUO1BKYQ=
+github.com/Antonboom/errname v0.1.13 h1:JHICqsewj/fNckzrfVSe+T33svwQxmjC+1ntDsHOVvM=
+github.com/Antonboom/errname v0.1.13/go.mod h1:uWyefRYRN54lBg6HseYCFhs6Qjcy41Y3Jl/dVhA87Ns=
+github.com/Antonboom/nilnil v0.1.8 h1:97QG7xrLq4TBK2U9aFq/I8Mcgz67pwMIiswnTA9gIn0=
+github.com/Antonboom/nilnil v0.1.8/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ=
github.com/Antonboom/testifylint v1.2.0 h1:015bxD8zc5iY8QwTp4+RG9I4kIbqwvGX9TrBbb7jGdM=
github.com/Antonboom/testifylint v1.2.0/go.mod h1:rkmEqjqVnHDRNsinyN6fPSLnoajzFwsCcguJgwADBkw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
+github.com/Crocmagnon/fatcontext v0.2.2 h1:OrFlsDdOj9hW/oBEJBNSuH7QWf+E9WPVHw+x52bXVbk=
+github.com/Crocmagnon/fatcontext v0.2.2/go.mod h1:WSn/c/+MMNiD8Pri0ahRj0o9jVpeowzavOQplBJw6u0=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0/go.mod h1:Nl76DrGNJTA1KJ0LePKBw/vznBX1EHbAZX8mwjR82nI=
-github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
-github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
+github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
+github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA=
@@ -109,8 +111,8 @@ github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZ
github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0=
github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA=
-github.com/butuzov/mirror v1.1.0 h1:ZqX54gBVMXu78QLoiqdwpl2mgmoOJTk7s4p4o+0avZI=
-github.com/butuzov/mirror v1.1.0/go.mod h1:8Q0BdQU6rC6WILDiBM60DBfvV78OLJmMmixe7GF45AE=
+github.com/butuzov/mirror v1.2.0 h1:9YVK1qIjNspaqWutSv8gsge2e/Xpq1eqEkslEUHy5cs=
+github.com/butuzov/mirror v1.2.0/go.mod h1:DqZZDtzm42wIAIyHXeN8W/qb1EPlb9Qn/if9icBOpdQ=
github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc=
github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50=
github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg=
@@ -127,8 +129,8 @@ github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+U
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/ckaznocha/intrange v0.1.1 h1:gHe4LfqCspWkh8KpJFs20fJz3XRHFBFUV9yI7Itu83Q=
-github.com/ckaznocha/intrange v0.1.1/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE=
+github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI=
+github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE=
github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
@@ -139,8 +141,8 @@ github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDU
github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
-github.com/daixiang0/gci v0.12.3 h1:yOZI7VAxAGPQmkb1eqt5g/11SUlwoat1fSblGLmdiQc=
-github.com/daixiang0/gci v0.12.3/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI=
+github.com/daixiang0/gci v0.13.4 h1:61UGkmpoAcxHM2hhNkZEf5SzwQtWJXTSws7jaPyqwlw=
+github.com/daixiang0/gci v0.13.4/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -159,8 +161,8 @@ github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
-github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y=
-github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI=
+github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA=
+github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
@@ -169,8 +171,8 @@ github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=
github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA=
github.com/ghostiam/protogetter v0.3.5 h1:+f7UiF8XNd4w3a//4DnusQ2SZjPkUjxkMEfjbxOK4Ug=
github.com/ghostiam/protogetter v0.3.5/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw=
-github.com/go-critic/go-critic v0.11.2 h1:81xH/2muBphEgPtcwH1p6QD+KzXl2tMSi3hXjBSxDnM=
-github.com/go-critic/go-critic v0.11.2/go.mod h1:OePaicfjsf+KPy33yq4gzv6CO7TEQ9Rom6ns1KsJnl8=
+github.com/go-critic/go-critic v0.11.3 h1:SJbYD/egY1noYjTMNTlhGaYlfQ77rQmrNH7h+gtn0N0=
+github.com/go-critic/go-critic v0.11.3/go.mod h1:Je0h5Obm1rR5hAGA9mP2PDiOOk53W+n7pyvXErFKIgI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
@@ -257,14 +259,16 @@ github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g=
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM=
-github.com/golangci/golangci-lint v1.57.2 h1:NNhxfZyL5He1WWDrIvl1a4n5bvWZBcgAqBwlJAAgLTw=
-github.com/golangci/golangci-lint v1.57.2/go.mod h1:ApiG3S3Ca23QyfGp5BmsorTiVxJpr5jGiNS0BkdSidg=
-github.com/golangci/misspell v0.4.1 h1:+y73iSicVy2PqyX7kmUefHusENlrP9YwuHZHPLGQj/g=
-github.com/golangci/misspell v0.4.1/go.mod h1:9mAN1quEo3DlpbaIKKyEvRxK1pwqR9s/Sea1bJCtlNI=
+github.com/golangci/golangci-lint v1.58.0 h1:r8duFARMJ0VdSM9tDXAdt2+f57dfZQmagvYX6kmkUKQ=
+github.com/golangci/golangci-lint v1.58.0/go.mod h1:WAY3BnSLvTUEv41Q0v3ZFzNybLRF+a7Vd9Da8Jx9Eqo=
+github.com/golangci/misspell v0.5.1 h1:/SjR1clj5uDjNLwYzCahHwIOPmQgoH04AyQIiWGbhCM=
+github.com/golangci/misspell v0.5.1/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo=
+github.com/golangci/modinfo v0.3.4 h1:oU5huX3fbxqQXdfspamej74DFX0kyGLkw1ppvXoJ8GA=
+github.com/golangci/modinfo v0.3.4/go.mod h1:wytF1M5xl9u0ij8YSvhkEVPP3M5Mc7XLl1pxH3B2aUM=
github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c=
github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc=
-github.com/golangci/revgrep v0.5.2 h1:EndcWoRhcnfj2NHQ+28hyuXpLMF+dQmCN+YaeeIl4FU=
-github.com/golangci/revgrep v0.5.2/go.mod h1:bjAMA+Sh/QUfTDcHzxfyHxr4xKvllVr/0sCv2e7jJHA=
+github.com/golangci/revgrep v0.5.3 h1:3tL7c1XBMtWHHqVpS5ChmiAAoe4PF/d5+ULzV9sLAzs=
+github.com/golangci/revgrep v0.5.3/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k=
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs=
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -380,8 +384,8 @@ github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjz
github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c=
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48=
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
-github.com/jjti/go-spancheck v0.5.3 h1:vfq4s2IB8T3HvbpiwDTYgVPj1Ze/ZSXrTtaZRTc7CuM=
-github.com/jjti/go-spancheck v0.5.3/go.mod h1:eQdOX1k3T+nAKvZDyLC3Eby0La4dZ+I19iOl5NzSPFE=
+github.com/jjti/go-spancheck v0.6.1 h1:ZK/wE5Kyi1VX3PJpUO2oEgeoI4FWOUm7Shb2Gbv5obI=
+github.com/jjti/go-spancheck v0.6.1/go.mod h1:vF1QkOO159prdo6mHRxak2CpzDpHAfKiPUDP/NeRnX8=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -393,8 +397,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY=
github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0=
-github.com/karamaru-alpha/copyloopvar v1.0.10 h1:8HYDy6KQYqTmD7JuhZMWS1nwPru9889XI24ROd/+WXI=
-github.com/karamaru-alpha/copyloopvar v1.0.10/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k=
+github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos=
+github.com/karamaru-alpha/copyloopvar v1.1.0/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0=
@@ -420,12 +424,14 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ=
github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA=
+github.com/lasiar/canonicalheader v1.0.6 h1:LJiiZ/MzkqibXOL2v+J8+WZM21pM0ivrBY/jbm9f5fo=
+github.com/lasiar/canonicalheader v1.0.6/go.mod h1:GfXTLQb3O1qF5qcSTyXTnfNUggUNyzbkOSpzZ0dpUJo=
github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJZ3alg=
github.com/ldez/gomoddirectives v0.2.4/go.mod h1:oWu9i62VcQDYp9EQ0ONTfqLNh+mDLWWDO+SO0qSQw5g=
github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo=
github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4=
-github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU=
-github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY=
+github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY=
+github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA=
github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM=
github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM=
github.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV1Mk=
@@ -503,8 +509,8 @@ github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT9
github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
-github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo=
-github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
+github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -513,8 +519,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/polyfloyd/go-errorlint v1.4.8 h1:jiEjKDH33ouFktyez7sckv6pHWif9B7SuS8cutDXFHw=
-github.com/polyfloyd/go-errorlint v1.4.8/go.mod h1:NNCxFcFjZcw3xNjVdCchERkEM6Oz7wta2XJVxRftwO4=
+github.com/polyfloyd/go-errorlint v1.5.1 h1:5gHxDjLyyWij7fhfrjYNNlHsUNQeyx0LFQKUelO3RBo=
+github.com/polyfloyd/go-errorlint v1.5.1/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs=
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
@@ -541,6 +547,8 @@ github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs=
github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI=
+github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
+github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo=
github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng=
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU=
@@ -551,8 +559,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryancurrah/gomodguard v1.3.1 h1:fH+fUg+ngsQO0ruZXXHnA/2aNllWA1whly4a6UvyzGE=
-github.com/ryancurrah/gomodguard v1.3.1/go.mod h1:DGFHzEhi6iJ0oIDfMuo3TgrS+L9gZvrEfmjjuelnRU0=
+github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3IXxM18=
+github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o=
github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU=
github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ=
github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc=
@@ -645,8 +653,8 @@ github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+
github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=
github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI=
github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4=
-github.com/ultraware/whitespace v0.1.0 h1:O1HKYoh0kIeqE8sFqZf1o0qbORXUCOQFrlaQyZsczZw=
-github.com/ultraware/whitespace v0.1.0/go.mod h1:/se4r3beMFNmewJ4Xmz0nMQ941GJt+qmSHGP9emHYe0=
+github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ=
+github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8=
github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI=
github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k=
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
@@ -662,8 +670,8 @@ github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HH
github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg=
github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM=
github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk=
-github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o=
-github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA=
+github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs=
+github.com/yeya24/promlinter v0.3.0/go.mod h1:cDfJQQYv9uYciW60QT0eeHlFodotkYZlL+YcPQN+mW4=
github.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoolgdiw=
github.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -675,14 +683,14 @@ github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zclconf/go-cty v1.14.2 h1:kTG7lqmBou0Zkx35r6HJHUQTvaRPr5bIAf3AoHS0izI=
github.com/zclconf/go-cty v1.14.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
-gitlab.com/bosi/decorder v0.4.1 h1:VdsdfxhstabyhZovHafFw+9eJ6eU0d2CkFNJcZz/NU4=
-gitlab.com/bosi/decorder v0.4.1/go.mod h1:jecSqWUew6Yle1pCr2eLWTensJMmsxHsBwt+PVbkAqA=
+gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo=
+gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8=
go-simpler.org/assert v0.7.0 h1:OzWWZqfNxt8cLS+MlUp6Tgk1HjPkmgdKBq9qvy8lZsA=
go-simpler.org/assert v0.7.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28=
-go-simpler.org/musttag v0.9.0 h1:Dzt6/tyP9ONr5g9h9P3cnYWCxeBFRkd0uJL/w+1Mxos=
-go-simpler.org/musttag v0.9.0/go.mod h1:gA9nThnalvNSKpEoyp3Ko4/vCX2xTpqKoUtNqXOnVR4=
-go-simpler.org/sloglint v0.5.0 h1:2YCcd+YMuYpuqthCgubcF5lBSjb6berc5VMOYUHKrpY=
-go-simpler.org/sloglint v0.5.0/go.mod h1:EUknX5s8iXqf18KQxKnaBHUPVriiPnOrPjjJcsaTcSQ=
+go-simpler.org/musttag v0.12.1 h1:yaMcjl/uyVnd1z6GqIhBiFH/PoqNN9f2IgtU7bp7W/0=
+go-simpler.org/musttag v0.12.1/go.mod h1:46HKu04A3Am9Lne5kKP0ssgwY3AeIlqsDzz3UxKROpY=
+go-simpler.org/sloglint v0.6.0 h1:0YcqSVG7LI9EVBfRPhgPec79BH6X6mwjFuUR5Mr7j1M=
+go-simpler.org/sloglint v0.6.0/go.mod h1:+kJJtebtPePWyG5boFwY46COydAggADDOHM22zOvzBk=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -752,8 +760,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
-golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
+golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -792,16 +800,16 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
-golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
+golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg=
-golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8=
+golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo=
+golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -815,8 +823,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
+golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -962,8 +970,8 @@ golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
-golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
+golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
+golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1085,8 +1093,8 @@ honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs=
honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0=
mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo=
mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA=
-mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 h1:zCr3iRRgdk5eIikZNDphGcM6KGVTx3Yu+/Uu9Es254w=
-mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14/go.mod h1:ZzZjEpJDOmx8TdVU6umamY3Xy0UAQUI2DHbf05USVbI=
+mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 h1:Nykk7fggxChwLK4rUPYESzeIwqsuxXXlFEAh5YhaMRo=
+mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1/go.mod h1:ZzZjEpJDOmx8TdVU6umamY3Xy0UAQUI2DHbf05USVbI=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/vendor/github.com/Crocmagnon/fatcontext/LICENSE b/vendor/github.com/Crocmagnon/fatcontext/LICENSE
new file mode 100644
index 0000000000..96f153ca42
--- /dev/null
+++ b/vendor/github.com/Crocmagnon/fatcontext/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Gabriel Augendre
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/Crocmagnon/fatcontext/pkg/analyzer/analyzer.go b/vendor/github.com/Crocmagnon/fatcontext/pkg/analyzer/analyzer.go
new file mode 100644
index 0000000000..7bb8fd4282
--- /dev/null
+++ b/vendor/github.com/Crocmagnon/fatcontext/pkg/analyzer/analyzer.go
@@ -0,0 +1,113 @@
+package analyzer
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "go/ast"
+ "go/printer"
+ "go/token"
+ "golang.org/x/tools/go/analysis"
+ "golang.org/x/tools/go/analysis/passes/inspect"
+ "golang.org/x/tools/go/ast/inspector"
+)
+
+var Analyzer = &analysis.Analyzer{
+ Name: "fatcontext",
+ Doc: "detects nested contexts in loops",
+ Run: run,
+ Requires: []*analysis.Analyzer{inspect.Analyzer},
+}
+
+var errUnknown = errors.New("unknown node type")
+
+func run(pass *analysis.Pass) (interface{}, error) {
+ inspctr := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
+
+ nodeFilter := []ast.Node{
+ (*ast.ForStmt)(nil),
+ (*ast.RangeStmt)(nil),
+ }
+
+ inspctr.Preorder(nodeFilter, func(node ast.Node) {
+ body, err := getBody(node)
+ if err != nil {
+ return
+ }
+
+ for _, stmt := range body.List {
+ assignStmt, ok := stmt.(*ast.AssignStmt)
+ if !ok {
+ continue
+ }
+
+ t := pass.TypesInfo.TypeOf(assignStmt.Lhs[0])
+ if t == nil {
+ continue
+ }
+
+ if t.String() != "context.Context" {
+ continue
+ }
+
+ if assignStmt.Tok == token.DEFINE {
+ break
+ }
+
+ suggestedStmt := ast.AssignStmt{
+ Lhs: assignStmt.Lhs,
+ TokPos: assignStmt.TokPos,
+ Tok: token.DEFINE,
+ Rhs: assignStmt.Rhs,
+ }
+ suggested, err := render(pass.Fset, &suggestedStmt)
+
+ var fixes []analysis.SuggestedFix
+ if err == nil {
+ fixes = append(fixes, analysis.SuggestedFix{
+ Message: "replace `=` with `:=`",
+ TextEdits: []analysis.TextEdit{
+ {
+ Pos: assignStmt.Pos(),
+ End: assignStmt.End(),
+ NewText: []byte(suggested),
+ },
+ },
+ })
+ }
+
+ pass.Report(analysis.Diagnostic{
+ Pos: assignStmt.Pos(),
+ Message: "nested context in loop",
+ SuggestedFixes: fixes,
+ })
+
+ break
+ }
+ })
+
+ return nil, nil
+}
+
+func getBody(node ast.Node) (*ast.BlockStmt, error) {
+ forStmt, ok := node.(*ast.ForStmt)
+ if ok {
+ return forStmt.Body, nil
+ }
+
+ rangeStmt, ok := node.(*ast.RangeStmt)
+ if ok {
+ return rangeStmt.Body, nil
+ }
+
+ return nil, errUnknown
+}
+
+// render returns the pretty-print of the given node
+func render(fset *token.FileSet, x interface{}) (string, error) {
+ var buf bytes.Buffer
+ if err := printer.Fprint(&buf, fset, x); err != nil {
+ return "", fmt.Errorf("printing node: %w", err)
+ }
+ return buf.String(), nil
+}
diff --git a/vendor/github.com/Masterminds/semver/.travis.yml b/vendor/github.com/Masterminds/semver/.travis.yml
deleted file mode 100644
index 096369d44d..0000000000
--- a/vendor/github.com/Masterminds/semver/.travis.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-language: go
-
-go:
- - 1.6.x
- - 1.7.x
- - 1.8.x
- - 1.9.x
- - 1.10.x
- - 1.11.x
- - 1.12.x
- - tip
-
-# Setting sudo access to false will let Travis CI use containers rather than
-# VMs to run the tests. For more details see:
-# - http://docs.travis-ci.com/user/workers/container-based-infrastructure/
-# - http://docs.travis-ci.com/user/workers/standard-infrastructure/
-sudo: false
-
-script:
- - make setup
- - make test
-
-notifications:
- webhooks:
- urls:
- - https://webhooks.gitter.im/e/06e3328629952dabe3e0
- on_success: change # options: [always|never|change] default: always
- on_failure: always # options: [always|never|change] default: always
- on_start: never # options: [always|never|change] default: always
diff --git a/vendor/github.com/Masterminds/semver/CHANGELOG.md b/vendor/github.com/Masterminds/semver/CHANGELOG.md
deleted file mode 100644
index e405c9a84d..0000000000
--- a/vendor/github.com/Masterminds/semver/CHANGELOG.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# 1.5.0 (2019-09-11)
-
-## Added
-
-- #103: Add basic fuzzing for `NewVersion()` (thanks @jesse-c)
-
-## Changed
-
-- #82: Clarify wildcard meaning in range constraints and update tests for it (thanks @greysteil)
-- #83: Clarify caret operator range for pre-1.0.0 dependencies (thanks @greysteil)
-- #72: Adding docs comment pointing to vert for a cli
-- #71: Update the docs on pre-release comparator handling
-- #89: Test with new go versions (thanks @thedevsaddam)
-- #87: Added $ to ValidPrerelease for better validation (thanks @jeremycarroll)
-
-## Fixed
-
-- #78: Fix unchecked error in example code (thanks @ravron)
-- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
-- #97: Fixed copyright file for proper display on GitHub
-- #107: Fix handling prerelease when sorting alphanum and num
-- #109: Fixed where Validate sometimes returns wrong message on error
-
-# 1.4.2 (2018-04-10)
-
-## Changed
-- #72: Updated the docs to point to vert for a console appliaction
-- #71: Update the docs on pre-release comparator handling
-
-## Fixed
-- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
-
-# 1.4.1 (2018-04-02)
-
-## Fixed
-- Fixed #64: Fix pre-release precedence issue (thanks @uudashr)
-
-# 1.4.0 (2017-10-04)
-
-## Changed
-- #61: Update NewVersion to parse ints with a 64bit int size (thanks @zknill)
-
-# 1.3.1 (2017-07-10)
-
-## Fixed
-- Fixed #57: number comparisons in prerelease sometimes inaccurate
-
-# 1.3.0 (2017-05-02)
-
-## Added
-- #45: Added json (un)marshaling support (thanks @mh-cbon)
-- Stability marker. See https://masterminds.github.io/stability/
-
-## Fixed
-- #51: Fix handling of single digit tilde constraint (thanks @dgodd)
-
-## Changed
-- #55: The godoc icon moved from png to svg
-
-# 1.2.3 (2017-04-03)
-
-## Fixed
-- #46: Fixed 0.x.x and 0.0.x in constraints being treated as *
-
-# Release 1.2.2 (2016-12-13)
-
-## Fixed
-- #34: Fixed issue where hyphen range was not working with pre-release parsing.
-
-# Release 1.2.1 (2016-11-28)
-
-## Fixed
-- #24: Fixed edge case issue where constraint "> 0" does not handle "0.0.1-alpha"
- properly.
-
-# Release 1.2.0 (2016-11-04)
-
-## Added
-- #20: Added MustParse function for versions (thanks @adamreese)
-- #15: Added increment methods on versions (thanks @mh-cbon)
-
-## Fixed
-- Issue #21: Per the SemVer spec (section 9) a pre-release is unstable and
- might not satisfy the intended compatibility. The change here ignores pre-releases
- on constraint checks (e.g., ~ or ^) when a pre-release is not part of the
- constraint. For example, `^1.2.3` will ignore pre-releases while
- `^1.2.3-alpha` will include them.
-
-# Release 1.1.1 (2016-06-30)
-
-## Changed
-- Issue #9: Speed up version comparison performance (thanks @sdboyer)
-- Issue #8: Added benchmarks (thanks @sdboyer)
-- Updated Go Report Card URL to new location
-- Updated Readme to add code snippet formatting (thanks @mh-cbon)
-- Updating tagging to v[SemVer] structure for compatibility with other tools.
-
-# Release 1.1.0 (2016-03-11)
-
-- Issue #2: Implemented validation to provide reasons a versions failed a
- constraint.
-
-# Release 1.0.1 (2015-12-31)
-
-- Fixed #1: * constraint failing on valid versions.
-
-# Release 1.0.0 (2015-10-20)
-
-- Initial release
diff --git a/vendor/github.com/Masterminds/semver/Makefile b/vendor/github.com/Masterminds/semver/Makefile
deleted file mode 100644
index a7a1b4e36d..0000000000
--- a/vendor/github.com/Masterminds/semver/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-.PHONY: setup
-setup:
- go get -u gopkg.in/alecthomas/gometalinter.v1
- gometalinter.v1 --install
-
-.PHONY: test
-test: validate lint
- @echo "==> Running tests"
- go test -v
-
-.PHONY: validate
-validate:
- @echo "==> Running static validations"
- @gometalinter.v1 \
- --disable-all \
- --enable deadcode \
- --severity deadcode:error \
- --enable gofmt \
- --enable gosimple \
- --enable ineffassign \
- --enable misspell \
- --enable vet \
- --tests \
- --vendor \
- --deadline 60s \
- ./... || exit_code=1
-
-.PHONY: lint
-lint:
- @echo "==> Running linters"
- @gometalinter.v1 \
- --disable-all \
- --enable golint \
- --vendor \
- --deadline 60s \
- ./... || :
diff --git a/vendor/github.com/Masterminds/semver/README.md b/vendor/github.com/Masterminds/semver/README.md
deleted file mode 100644
index 1b52d2f436..0000000000
--- a/vendor/github.com/Masterminds/semver/README.md
+++ /dev/null
@@ -1,194 +0,0 @@
-# SemVer
-
-The `semver` package provides the ability to work with [Semantic Versions](http://semver.org) in Go. Specifically it provides the ability to:
-
-* Parse semantic versions
-* Sort semantic versions
-* Check if a semantic version fits within a set of constraints
-* Optionally work with a `v` prefix
-
-[![Stability:
-Active](https://masterminds.github.io/stability/active.svg)](https://masterminds.github.io/stability/active.html)
-[![Build Status](https://travis-ci.org/Masterminds/semver.svg)](https://travis-ci.org/Masterminds/semver) [![Build status](https://ci.appveyor.com/api/projects/status/jfk66lib7hb985k8/branch/master?svg=true&passingText=windows%20build%20passing&failingText=windows%20build%20failing)](https://ci.appveyor.com/project/mattfarina/semver/branch/master) [![GoDoc](https://godoc.org/github.com/Masterminds/semver?status.svg)](https://godoc.org/github.com/Masterminds/semver) [![Go Report Card](https://goreportcard.com/badge/github.com/Masterminds/semver)](https://goreportcard.com/report/github.com/Masterminds/semver)
-
-If you are looking for a command line tool for version comparisons please see
-[vert](https://github.com/Masterminds/vert) which uses this library.
-
-## Parsing Semantic Versions
-
-To parse a semantic version use the `NewVersion` function. For example,
-
-```go
- v, err := semver.NewVersion("1.2.3-beta.1+build345")
-```
-
-If there is an error the version wasn't parseable. The version object has methods
-to get the parts of the version, compare it to other versions, convert the
-version back into a string, and get the original string. For more details
-please see the [documentation](https://godoc.org/github.com/Masterminds/semver).
-
-## Sorting Semantic Versions
-
-A set of versions can be sorted using the [`sort`](https://golang.org/pkg/sort/)
-package from the standard library. For example,
-
-```go
- raw := []string{"1.2.3", "1.0", "1.3", "2", "0.4.2",}
- vs := make([]*semver.Version, len(raw))
- for i, r := range raw {
- v, err := semver.NewVersion(r)
- if err != nil {
- t.Errorf("Error parsing version: %s", err)
- }
-
- vs[i] = v
- }
-
- sort.Sort(semver.Collection(vs))
-```
-
-## Checking Version Constraints
-
-Checking a version against version constraints is one of the most featureful
-parts of the package.
-
-```go
- c, err := semver.NewConstraint(">= 1.2.3")
- if err != nil {
- // Handle constraint not being parseable.
- }
-
- v, _ := semver.NewVersion("1.3")
- if err != nil {
- // Handle version not being parseable.
- }
- // Check if the version meets the constraints. The a variable will be true.
- a := c.Check(v)
-```
-
-## Basic Comparisons
-
-There are two elements to the comparisons. First, a comparison string is a list
-of comma separated and comparisons. These are then separated by || separated or
-comparisons. For example, `">= 1.2, < 3.0.0 || >= 4.2.3"` is looking for a
-comparison that's greater than or equal to 1.2 and less than 3.0.0 or is
-greater than or equal to 4.2.3.
-
-The basic comparisons are:
-
-* `=`: equal (aliased to no operator)
-* `!=`: not equal
-* `>`: greater than
-* `<`: less than
-* `>=`: greater than or equal to
-* `<=`: less than or equal to
-
-## Working With Pre-release Versions
-
-Pre-releases, for those not familiar with them, are used for software releases
-prior to stable or generally available releases. Examples of pre-releases include
-development, alpha, beta, and release candidate releases. A pre-release may be
-a version such as `1.2.3-beta.1` while the stable release would be `1.2.3`. In the
-order of precidence, pre-releases come before their associated releases. In this
-example `1.2.3-beta.1 < 1.2.3`.
-
-According to the Semantic Version specification pre-releases may not be
-API compliant with their release counterpart. It says,
-
-> A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version.
-
-SemVer comparisons without a pre-release comparator will skip pre-release versions.
-For example, `>=1.2.3` will skip pre-releases when looking at a list of releases
-while `>=1.2.3-0` will evaluate and find pre-releases.
-
-The reason for the `0` as a pre-release version in the example comparison is
-because pre-releases can only contain ASCII alphanumerics and hyphens (along with
-`.` separators), per the spec. Sorting happens in ASCII sort order, again per the spec. The lowest character is a `0` in ASCII sort order (see an [ASCII Table](http://www.asciitable.com/))
-
-Understanding ASCII sort ordering is important because A-Z comes before a-z. That
-means `>=1.2.3-BETA` will return `1.2.3-alpha`. What you might expect from case
-sensitivity doesn't apply here. This is due to ASCII sort ordering which is what
-the spec specifies.
-
-## Hyphen Range Comparisons
-
-There are multiple methods to handle ranges and the first is hyphens ranges.
-These look like:
-
-* `1.2 - 1.4.5` which is equivalent to `>= 1.2, <= 1.4.5`
-* `2.3.4 - 4.5` which is equivalent to `>= 2.3.4, <= 4.5`
-
-## Wildcards In Comparisons
-
-The `x`, `X`, and `*` characters can be used as a wildcard character. This works
-for all comparison operators. When used on the `=` operator it falls
-back to the pack level comparison (see tilde below). For example,
-
-* `1.2.x` is equivalent to `>= 1.2.0, < 1.3.0`
-* `>= 1.2.x` is equivalent to `>= 1.2.0`
-* `<= 2.x` is equivalent to `< 3`
-* `*` is equivalent to `>= 0.0.0`
-
-## Tilde Range Comparisons (Patch)
-
-The tilde (`~`) comparison operator is for patch level ranges when a minor
-version is specified and major level changes when the minor number is missing.
-For example,
-
-* `~1.2.3` is equivalent to `>= 1.2.3, < 1.3.0`
-* `~1` is equivalent to `>= 1, < 2`
-* `~2.3` is equivalent to `>= 2.3, < 2.4`
-* `~1.2.x` is equivalent to `>= 1.2.0, < 1.3.0`
-* `~1.x` is equivalent to `>= 1, < 2`
-
-## Caret Range Comparisons (Major)
-
-The caret (`^`) comparison operator is for major level changes. This is useful
-when comparisons of API versions as a major change is API breaking. For example,
-
-* `^1.2.3` is equivalent to `>= 1.2.3, < 2.0.0`
-* `^0.0.1` is equivalent to `>= 0.0.1, < 1.0.0`
-* `^1.2.x` is equivalent to `>= 1.2.0, < 2.0.0`
-* `^2.3` is equivalent to `>= 2.3, < 3`
-* `^2.x` is equivalent to `>= 2.0.0, < 3`
-
-# Validation
-
-In addition to testing a version against a constraint, a version can be validated
-against a constraint. When validation fails a slice of errors containing why a
-version didn't meet the constraint is returned. For example,
-
-```go
- c, err := semver.NewConstraint("<= 1.2.3, >= 1.4")
- if err != nil {
- // Handle constraint not being parseable.
- }
-
- v, _ := semver.NewVersion("1.3")
- if err != nil {
- // Handle version not being parseable.
- }
-
- // Validate a version against a constraint.
- a, msgs := c.Validate(v)
- // a is false
- for _, m := range msgs {
- fmt.Println(m)
-
- // Loops over the errors which would read
- // "1.3 is greater than 1.2.3"
- // "1.3 is less than 1.4"
- }
-```
-
-# Fuzzing
-
- [dvyukov/go-fuzz](https://github.com/dvyukov/go-fuzz) is used for fuzzing.
-
-1. `go-fuzz-build`
-2. `go-fuzz -workdir=fuzz`
-
-# Contribute
-
-If you find an issue or want to contribute please file an [issue](https://github.com/Masterminds/semver/issues)
-or [create a pull request](https://github.com/Masterminds/semver/pulls).
diff --git a/vendor/github.com/Masterminds/semver/appveyor.yml b/vendor/github.com/Masterminds/semver/appveyor.yml
deleted file mode 100644
index b2778df15a..0000000000
--- a/vendor/github.com/Masterminds/semver/appveyor.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-version: build-{build}.{branch}
-
-clone_folder: C:\gopath\src\github.com\Masterminds\semver
-shallow_clone: true
-
-environment:
- GOPATH: C:\gopath
-
-platform:
- - x64
-
-install:
- - go version
- - go env
- - go get -u gopkg.in/alecthomas/gometalinter.v1
- - set PATH=%PATH%;%GOPATH%\bin
- - gometalinter.v1.exe --install
-
-build_script:
- - go install -v ./...
-
-test_script:
- - "gometalinter.v1 \
- --disable-all \
- --enable deadcode \
- --severity deadcode:error \
- --enable gofmt \
- --enable gosimple \
- --enable ineffassign \
- --enable misspell \
- --enable vet \
- --tests \
- --vendor \
- --deadline 60s \
- ./... || exit_code=1"
- - "gometalinter.v1 \
- --disable-all \
- --enable golint \
- --vendor \
- --deadline 60s \
- ./... || :"
- - go test -v
-
-deploy: off
diff --git a/vendor/github.com/Masterminds/semver/constraints.go b/vendor/github.com/Masterminds/semver/constraints.go
deleted file mode 100644
index b94b93413f..0000000000
--- a/vendor/github.com/Masterminds/semver/constraints.go
+++ /dev/null
@@ -1,423 +0,0 @@
-package semver
-
-import (
- "errors"
- "fmt"
- "regexp"
- "strings"
-)
-
-// Constraints is one or more constraint that a semantic version can be
-// checked against.
-type Constraints struct {
- constraints [][]*constraint
-}
-
-// NewConstraint returns a Constraints instance that a Version instance can
-// be checked against. If there is a parse error it will be returned.
-func NewConstraint(c string) (*Constraints, error) {
-
- // Rewrite - ranges into a comparison operation.
- c = rewriteRange(c)
-
- ors := strings.Split(c, "||")
- or := make([][]*constraint, len(ors))
- for k, v := range ors {
- cs := strings.Split(v, ",")
- result := make([]*constraint, len(cs))
- for i, s := range cs {
- pc, err := parseConstraint(s)
- if err != nil {
- return nil, err
- }
-
- result[i] = pc
- }
- or[k] = result
- }
-
- o := &Constraints{constraints: or}
- return o, nil
-}
-
-// Check tests if a version satisfies the constraints.
-func (cs Constraints) Check(v *Version) bool {
- // loop over the ORs and check the inner ANDs
- for _, o := range cs.constraints {
- joy := true
- for _, c := range o {
- if !c.check(v) {
- joy = false
- break
- }
- }
-
- if joy {
- return true
- }
- }
-
- return false
-}
-
-// Validate checks if a version satisfies a constraint. If not a slice of
-// reasons for the failure are returned in addition to a bool.
-func (cs Constraints) Validate(v *Version) (bool, []error) {
- // loop over the ORs and check the inner ANDs
- var e []error
-
- // Capture the prerelease message only once. When it happens the first time
- // this var is marked
- var prerelesase bool
- for _, o := range cs.constraints {
- joy := true
- for _, c := range o {
- // Before running the check handle the case there the version is
- // a prerelease and the check is not searching for prereleases.
- if c.con.pre == "" && v.pre != "" {
- if !prerelesase {
- em := fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
- e = append(e, em)
- prerelesase = true
- }
- joy = false
-
- } else {
-
- if !c.check(v) {
- em := fmt.Errorf(c.msg, v, c.orig)
- e = append(e, em)
- joy = false
- }
- }
- }
-
- if joy {
- return true, []error{}
- }
- }
-
- return false, e
-}
-
-var constraintOps map[string]cfunc
-var constraintMsg map[string]string
-var constraintRegex *regexp.Regexp
-
-func init() {
- constraintOps = map[string]cfunc{
- "": constraintTildeOrEqual,
- "=": constraintTildeOrEqual,
- "!=": constraintNotEqual,
- ">": constraintGreaterThan,
- "<": constraintLessThan,
- ">=": constraintGreaterThanEqual,
- "=>": constraintGreaterThanEqual,
- "<=": constraintLessThanEqual,
- "=<": constraintLessThanEqual,
- "~": constraintTilde,
- "~>": constraintTilde,
- "^": constraintCaret,
- }
-
- constraintMsg = map[string]string{
- "": "%s is not equal to %s",
- "=": "%s is not equal to %s",
- "!=": "%s is equal to %s",
- ">": "%s is less than or equal to %s",
- "<": "%s is greater than or equal to %s",
- ">=": "%s is less than %s",
- "=>": "%s is less than %s",
- "<=": "%s is greater than %s",
- "=<": "%s is greater than %s",
- "~": "%s does not have same major and minor version as %s",
- "~>": "%s does not have same major and minor version as %s",
- "^": "%s does not have same major version as %s",
- }
-
- ops := make([]string, 0, len(constraintOps))
- for k := range constraintOps {
- ops = append(ops, regexp.QuoteMeta(k))
- }
-
- constraintRegex = regexp.MustCompile(fmt.Sprintf(
- `^\s*(%s)\s*(%s)\s*$`,
- strings.Join(ops, "|"),
- cvRegex))
-
- constraintRangeRegex = regexp.MustCompile(fmt.Sprintf(
- `\s*(%s)\s+-\s+(%s)\s*`,
- cvRegex, cvRegex))
-}
-
-// An individual constraint
-type constraint struct {
- // The callback function for the restraint. It performs the logic for
- // the constraint.
- function cfunc
-
- msg string
-
- // The version used in the constraint check. For example, if a constraint
- // is '<= 2.0.0' the con a version instance representing 2.0.0.
- con *Version
-
- // The original parsed version (e.g., 4.x from != 4.x)
- orig string
-
- // When an x is used as part of the version (e.g., 1.x)
- minorDirty bool
- dirty bool
- patchDirty bool
-}
-
-// Check if a version meets the constraint
-func (c *constraint) check(v *Version) bool {
- return c.function(v, c)
-}
-
-type cfunc func(v *Version, c *constraint) bool
-
-func parseConstraint(c string) (*constraint, error) {
- m := constraintRegex.FindStringSubmatch(c)
- if m == nil {
- return nil, fmt.Errorf("improper constraint: %s", c)
- }
-
- ver := m[2]
- orig := ver
- minorDirty := false
- patchDirty := false
- dirty := false
- if isX(m[3]) {
- ver = "0.0.0"
- dirty = true
- } else if isX(strings.TrimPrefix(m[4], ".")) || m[4] == "" {
- minorDirty = true
- dirty = true
- ver = fmt.Sprintf("%s.0.0%s", m[3], m[6])
- } else if isX(strings.TrimPrefix(m[5], ".")) {
- dirty = true
- patchDirty = true
- ver = fmt.Sprintf("%s%s.0%s", m[3], m[4], m[6])
- }
-
- con, err := NewVersion(ver)
- if err != nil {
-
- // The constraintRegex should catch any regex parsing errors. So,
- // we should never get here.
- return nil, errors.New("constraint Parser Error")
- }
-
- cs := &constraint{
- function: constraintOps[m[1]],
- msg: constraintMsg[m[1]],
- con: con,
- orig: orig,
- minorDirty: minorDirty,
- patchDirty: patchDirty,
- dirty: dirty,
- }
- return cs, nil
-}
-
-// Constraint functions
-func constraintNotEqual(v *Version, c *constraint) bool {
- if c.dirty {
-
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- if c.con.Major() != v.Major() {
- return true
- }
- if c.con.Minor() != v.Minor() && !c.minorDirty {
- return true
- } else if c.minorDirty {
- return false
- }
-
- return false
- }
-
- return !v.Equal(c.con)
-}
-
-func constraintGreaterThan(v *Version, c *constraint) bool {
-
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- return v.Compare(c.con) == 1
-}
-
-func constraintLessThan(v *Version, c *constraint) bool {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- if !c.dirty {
- return v.Compare(c.con) < 0
- }
-
- if v.Major() > c.con.Major() {
- return false
- } else if v.Minor() > c.con.Minor() && !c.minorDirty {
- return false
- }
-
- return true
-}
-
-func constraintGreaterThanEqual(v *Version, c *constraint) bool {
-
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- return v.Compare(c.con) >= 0
-}
-
-func constraintLessThanEqual(v *Version, c *constraint) bool {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- if !c.dirty {
- return v.Compare(c.con) <= 0
- }
-
- if v.Major() > c.con.Major() {
- return false
- } else if v.Minor() > c.con.Minor() && !c.minorDirty {
- return false
- }
-
- return true
-}
-
-// ~*, ~>* --> >= 0.0.0 (any)
-// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0, <3.0.0
-// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0, <2.1.0
-// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0, <1.3.0
-// ~1.2.3, ~>1.2.3 --> >=1.2.3, <1.3.0
-// ~1.2.0, ~>1.2.0 --> >=1.2.0, <1.3.0
-func constraintTilde(v *Version, c *constraint) bool {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- if v.LessThan(c.con) {
- return false
- }
-
- // ~0.0.0 is a special case where all constraints are accepted. It's
- // equivalent to >= 0.0.0.
- if c.con.Major() == 0 && c.con.Minor() == 0 && c.con.Patch() == 0 &&
- !c.minorDirty && !c.patchDirty {
- return true
- }
-
- if v.Major() != c.con.Major() {
- return false
- }
-
- if v.Minor() != c.con.Minor() && !c.minorDirty {
- return false
- }
-
- return true
-}
-
-// When there is a .x (dirty) status it automatically opts in to ~. Otherwise
-// it's a straight =
-func constraintTildeOrEqual(v *Version, c *constraint) bool {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- if c.dirty {
- c.msg = constraintMsg["~"]
- return constraintTilde(v, c)
- }
-
- return v.Equal(c.con)
-}
-
-// ^* --> (any)
-// ^2, ^2.x, ^2.x.x --> >=2.0.0, <3.0.0
-// ^2.0, ^2.0.x --> >=2.0.0, <3.0.0
-// ^1.2, ^1.2.x --> >=1.2.0, <2.0.0
-// ^1.2.3 --> >=1.2.3, <2.0.0
-// ^1.2.0 --> >=1.2.0, <2.0.0
-func constraintCaret(v *Version, c *constraint) bool {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false
- }
-
- if v.LessThan(c.con) {
- return false
- }
-
- if v.Major() != c.con.Major() {
- return false
- }
-
- return true
-}
-
-var constraintRangeRegex *regexp.Regexp
-
-const cvRegex string = `v?([0-9|x|X|\*]+)(\.[0-9|x|X|\*]+)?(\.[0-9|x|X|\*]+)?` +
- `(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?` +
- `(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?`
-
-func isX(x string) bool {
- switch x {
- case "x", "*", "X":
- return true
- default:
- return false
- }
-}
-
-func rewriteRange(i string) string {
- m := constraintRangeRegex.FindAllStringSubmatch(i, -1)
- if m == nil {
- return i
- }
- o := i
- for _, v := range m {
- t := fmt.Sprintf(">= %s, <= %s", v[1], v[11])
- o = strings.Replace(o, v[0], t, 1)
- }
-
- return o
-}
diff --git a/vendor/github.com/Masterminds/semver/doc.go b/vendor/github.com/Masterminds/semver/doc.go
deleted file mode 100644
index 6a6c24c6d6..0000000000
--- a/vendor/github.com/Masterminds/semver/doc.go
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-Package semver provides the ability to work with Semantic Versions (http://semver.org) in Go.
-
-Specifically it provides the ability to:
-
- * Parse semantic versions
- * Sort semantic versions
- * Check if a semantic version fits within a set of constraints
- * Optionally work with a `v` prefix
-
-Parsing Semantic Versions
-
-To parse a semantic version use the `NewVersion` function. For example,
-
- v, err := semver.NewVersion("1.2.3-beta.1+build345")
-
-If there is an error the version wasn't parseable. The version object has methods
-to get the parts of the version, compare it to other versions, convert the
-version back into a string, and get the original string. For more details
-please see the documentation at https://godoc.org/github.com/Masterminds/semver.
-
-Sorting Semantic Versions
-
-A set of versions can be sorted using the `sort` package from the standard library.
-For example,
-
- raw := []string{"1.2.3", "1.0", "1.3", "2", "0.4.2",}
- vs := make([]*semver.Version, len(raw))
- for i, r := range raw {
- v, err := semver.NewVersion(r)
- if err != nil {
- t.Errorf("Error parsing version: %s", err)
- }
-
- vs[i] = v
- }
-
- sort.Sort(semver.Collection(vs))
-
-Checking Version Constraints
-
-Checking a version against version constraints is one of the most featureful
-parts of the package.
-
- c, err := semver.NewConstraint(">= 1.2.3")
- if err != nil {
- // Handle constraint not being parseable.
- }
-
- v, err := semver.NewVersion("1.3")
- if err != nil {
- // Handle version not being parseable.
- }
- // Check if the version meets the constraints. The a variable will be true.
- a := c.Check(v)
-
-Basic Comparisons
-
-There are two elements to the comparisons. First, a comparison string is a list
-of comma separated and comparisons. These are then separated by || separated or
-comparisons. For example, `">= 1.2, < 3.0.0 || >= 4.2.3"` is looking for a
-comparison that's greater than or equal to 1.2 and less than 3.0.0 or is
-greater than or equal to 4.2.3.
-
-The basic comparisons are:
-
- * `=`: equal (aliased to no operator)
- * `!=`: not equal
- * `>`: greater than
- * `<`: less than
- * `>=`: greater than or equal to
- * `<=`: less than or equal to
-
-Hyphen Range Comparisons
-
-There are multiple methods to handle ranges and the first is hyphens ranges.
-These look like:
-
- * `1.2 - 1.4.5` which is equivalent to `>= 1.2, <= 1.4.5`
- * `2.3.4 - 4.5` which is equivalent to `>= 2.3.4, <= 4.5`
-
-Wildcards In Comparisons
-
-The `x`, `X`, and `*` characters can be used as a wildcard character. This works
-for all comparison operators. When used on the `=` operator it falls
-back to the pack level comparison (see tilde below). For example,
-
- * `1.2.x` is equivalent to `>= 1.2.0, < 1.3.0`
- * `>= 1.2.x` is equivalent to `>= 1.2.0`
- * `<= 2.x` is equivalent to `<= 3`
- * `*` is equivalent to `>= 0.0.0`
-
-Tilde Range Comparisons (Patch)
-
-The tilde (`~`) comparison operator is for patch level ranges when a minor
-version is specified and major level changes when the minor number is missing.
-For example,
-
- * `~1.2.3` is equivalent to `>= 1.2.3, < 1.3.0`
- * `~1` is equivalent to `>= 1, < 2`
- * `~2.3` is equivalent to `>= 2.3, < 2.4`
- * `~1.2.x` is equivalent to `>= 1.2.0, < 1.3.0`
- * `~1.x` is equivalent to `>= 1, < 2`
-
-Caret Range Comparisons (Major)
-
-The caret (`^`) comparison operator is for major level changes. This is useful
-when comparisons of API versions as a major change is API breaking. For example,
-
- * `^1.2.3` is equivalent to `>= 1.2.3, < 2.0.0`
- * `^1.2.x` is equivalent to `>= 1.2.0, < 2.0.0`
- * `^2.3` is equivalent to `>= 2.3, < 3`
- * `^2.x` is equivalent to `>= 2.0.0, < 3`
-*/
-package semver
diff --git a/vendor/github.com/Masterminds/semver/v3/.gitignore b/vendor/github.com/Masterminds/semver/v3/.gitignore
new file mode 100644
index 0000000000..6b061e6174
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/.gitignore
@@ -0,0 +1 @@
+_fuzz/
\ No newline at end of file
diff --git a/vendor/github.com/Masterminds/semver/v3/.golangci.yml b/vendor/github.com/Masterminds/semver/v3/.golangci.yml
new file mode 100644
index 0000000000..fbc6332592
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/.golangci.yml
@@ -0,0 +1,27 @@
+run:
+ deadline: 2m
+
+linters:
+ disable-all: true
+ enable:
+ - misspell
+ - govet
+ - staticcheck
+ - errcheck
+ - unparam
+ - ineffassign
+ - nakedret
+ - gocyclo
+ - dupl
+ - goimports
+ - revive
+ - gosec
+ - gosimple
+ - typecheck
+ - unused
+
+linters-settings:
+ gofmt:
+ simplify: true
+ dupl:
+ threshold: 600
diff --git a/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md b/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
new file mode 100644
index 0000000000..f12626423a
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
@@ -0,0 +1,214 @@
+# Changelog
+
+## 3.2.0 (2022-11-28)
+
+### Added
+
+- #190: Added text marshaling and unmarshaling
+- #167: Added JSON marshalling for constraints (thanks @SimonTheLeg)
+- #173: Implement encoding.TextMarshaler and encoding.TextUnmarshaler on Version (thanks @MarkRosemaker)
+- #179: Added New() version constructor (thanks @kazhuravlev)
+
+### Changed
+
+- #182/#183: Updated CI testing setup
+
+### Fixed
+
+- #186: Fixing issue where validation of constraint section gave false positives
+- #176: Fix constraints check with *-0 (thanks @mtt0)
+- #181: Fixed Caret operator (^) gives unexpected results when the minor version in constraint is 0 (thanks @arshchimni)
+- #161: Fixed godoc (thanks @afirth)
+
+## 3.1.1 (2020-11-23)
+
+### Fixed
+
+- #158: Fixed issue with generated regex operation order that could cause problem
+
+## 3.1.0 (2020-04-15)
+
+### Added
+
+- #131: Add support for serializing/deserializing SQL (thanks @ryancurrah)
+
+### Changed
+
+- #148: More accurate validation messages on constraints
+
+## 3.0.3 (2019-12-13)
+
+### Fixed
+
+- #141: Fixed issue with <= comparison
+
+## 3.0.2 (2019-11-14)
+
+### Fixed
+
+- #134: Fixed broken constraint checking with ^0.0 (thanks @krmichelos)
+
+## 3.0.1 (2019-09-13)
+
+### Fixed
+
+- #125: Fixes issue with module path for v3
+
+## 3.0.0 (2019-09-12)
+
+This is a major release of the semver package which includes API changes. The Go
+API is compatible with ^1. The Go API was not changed because many people are using
+`go get` without Go modules for their applications and API breaking changes cause
+errors which we have or would need to support.
+
+The changes in this release are the handling based on the data passed into the
+functions. These are described in the added and changed sections below.
+
+### Added
+
+- StrictNewVersion function. This is similar to NewVersion but will return an
+ error if the version passed in is not a strict semantic version. For example,
+ 1.2.3 would pass but v1.2.3 or 1.2 would fail because they are not strictly
+ speaking semantic versions. This function is faster, performs fewer operations,
+ and uses fewer allocations than NewVersion.
+- Fuzzing has been performed on NewVersion, StrictNewVersion, and NewConstraint.
+ The Makefile contains the operations used. For more information on you can start
+ on Wikipedia at https://en.wikipedia.org/wiki/Fuzzing
+- Now using Go modules
+
+### Changed
+
+- NewVersion has proper prerelease and metadata validation with error messages
+ to signal an issue with either of them
+- ^ now operates using a similar set of rules to npm/js and Rust/Cargo. If the
+ version is >=1 the ^ ranges works the same as v1. For major versions of 0 the
+ rules have changed. The minor version is treated as the stable version unless
+ a patch is specified and then it is equivalent to =. One difference from npm/js
+ is that prereleases there are only to a specific version (e.g. 1.2.3).
+ Prereleases here look over multiple versions and follow semantic version
+ ordering rules. This pattern now follows along with the expected and requested
+ handling of this packaged by numerous users.
+
+## 1.5.0 (2019-09-11)
+
+### Added
+
+- #103: Add basic fuzzing for `NewVersion()` (thanks @jesse-c)
+
+### Changed
+
+- #82: Clarify wildcard meaning in range constraints and update tests for it (thanks @greysteil)
+- #83: Clarify caret operator range for pre-1.0.0 dependencies (thanks @greysteil)
+- #72: Adding docs comment pointing to vert for a cli
+- #71: Update the docs on pre-release comparator handling
+- #89: Test with new go versions (thanks @thedevsaddam)
+- #87: Added $ to ValidPrerelease for better validation (thanks @jeremycarroll)
+
+### Fixed
+
+- #78: Fix unchecked error in example code (thanks @ravron)
+- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
+- #97: Fixed copyright file for proper display on GitHub
+- #107: Fix handling prerelease when sorting alphanum and num
+- #109: Fixed where Validate sometimes returns wrong message on error
+
+## 1.4.2 (2018-04-10)
+
+### Changed
+
+- #72: Updated the docs to point to vert for a console appliaction
+- #71: Update the docs on pre-release comparator handling
+
+### Fixed
+
+- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
+
+## 1.4.1 (2018-04-02)
+
+### Fixed
+
+- Fixed #64: Fix pre-release precedence issue (thanks @uudashr)
+
+## 1.4.0 (2017-10-04)
+
+### Changed
+
+- #61: Update NewVersion to parse ints with a 64bit int size (thanks @zknill)
+
+## 1.3.1 (2017-07-10)
+
+### Fixed
+
+- Fixed #57: number comparisons in prerelease sometimes inaccurate
+
+## 1.3.0 (2017-05-02)
+
+### Added
+
+- #45: Added json (un)marshaling support (thanks @mh-cbon)
+- Stability marker. See https://masterminds.github.io/stability/
+
+### Fixed
+
+- #51: Fix handling of single digit tilde constraint (thanks @dgodd)
+
+### Changed
+
+- #55: The godoc icon moved from png to svg
+
+## 1.2.3 (2017-04-03)
+
+### Fixed
+
+- #46: Fixed 0.x.x and 0.0.x in constraints being treated as *
+
+## Release 1.2.2 (2016-12-13)
+
+### Fixed
+
+- #34: Fixed issue where hyphen range was not working with pre-release parsing.
+
+## Release 1.2.1 (2016-11-28)
+
+### Fixed
+
+- #24: Fixed edge case issue where constraint "> 0" does not handle "0.0.1-alpha"
+ properly.
+
+## Release 1.2.0 (2016-11-04)
+
+### Added
+
+- #20: Added MustParse function for versions (thanks @adamreese)
+- #15: Added increment methods on versions (thanks @mh-cbon)
+
+### Fixed
+
+- Issue #21: Per the SemVer spec (section 9) a pre-release is unstable and
+ might not satisfy the intended compatibility. The change here ignores pre-releases
+ on constraint checks (e.g., ~ or ^) when a pre-release is not part of the
+ constraint. For example, `^1.2.3` will ignore pre-releases while
+ `^1.2.3-alpha` will include them.
+
+## Release 1.1.1 (2016-06-30)
+
+### Changed
+
+- Issue #9: Speed up version comparison performance (thanks @sdboyer)
+- Issue #8: Added benchmarks (thanks @sdboyer)
+- Updated Go Report Card URL to new location
+- Updated Readme to add code snippet formatting (thanks @mh-cbon)
+- Updating tagging to v[SemVer] structure for compatibility with other tools.
+
+## Release 1.1.0 (2016-03-11)
+
+- Issue #2: Implemented validation to provide reasons a versions failed a
+ constraint.
+
+## Release 1.0.1 (2015-12-31)
+
+- Fixed #1: * constraint failing on valid versions.
+
+## Release 1.0.0 (2015-10-20)
+
+- Initial release
diff --git a/vendor/github.com/Masterminds/semver/LICENSE.txt b/vendor/github.com/Masterminds/semver/v3/LICENSE.txt
similarity index 100%
rename from vendor/github.com/Masterminds/semver/LICENSE.txt
rename to vendor/github.com/Masterminds/semver/v3/LICENSE.txt
diff --git a/vendor/github.com/Masterminds/semver/v3/Makefile b/vendor/github.com/Masterminds/semver/v3/Makefile
new file mode 100644
index 0000000000..0e7b5c7138
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/Makefile
@@ -0,0 +1,30 @@
+GOPATH=$(shell go env GOPATH)
+GOLANGCI_LINT=$(GOPATH)/bin/golangci-lint
+
+.PHONY: lint
+lint: $(GOLANGCI_LINT)
+ @echo "==> Linting codebase"
+ @$(GOLANGCI_LINT) run
+
+.PHONY: test
+test:
+ @echo "==> Running tests"
+ GO111MODULE=on go test -v
+
+.PHONY: test-cover
+test-cover:
+ @echo "==> Running Tests with coverage"
+ GO111MODULE=on go test -cover .
+
+.PHONY: fuzz
+fuzz:
+ @echo "==> Running Fuzz Tests"
+ go test -fuzz=FuzzNewVersion -fuzztime=15s .
+ go test -fuzz=FuzzStrictNewVersion -fuzztime=15s .
+ go test -fuzz=FuzzNewConstraint -fuzztime=15s .
+
+$(GOLANGCI_LINT):
+ # Install golangci-lint. The configuration for it is in the .golangci.yml
+ # file in the root of the repository
+ echo ${GOPATH}
+ curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(GOPATH)/bin v1.17.1
diff --git a/vendor/github.com/Masterminds/semver/v3/README.md b/vendor/github.com/Masterminds/semver/v3/README.md
new file mode 100644
index 0000000000..eab8cac3b7
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/README.md
@@ -0,0 +1,258 @@
+# SemVer
+
+The `semver` package provides the ability to work with [Semantic Versions](http://semver.org) in Go. Specifically it provides the ability to:
+
+* Parse semantic versions
+* Sort semantic versions
+* Check if a semantic version fits within a set of constraints
+* Optionally work with a `v` prefix
+
+[![Stability:
+Active](https://masterminds.github.io/stability/active.svg)](https://masterminds.github.io/stability/active.html)
+[![](https://github.com/Masterminds/semver/workflows/Tests/badge.svg)](https://github.com/Masterminds/semver/actions)
+[![GoDoc](https://img.shields.io/static/v1?label=godoc&message=reference&color=blue)](https://pkg.go.dev/github.com/Masterminds/semver/v3)
+[![Go Report Card](https://goreportcard.com/badge/github.com/Masterminds/semver)](https://goreportcard.com/report/github.com/Masterminds/semver)
+
+If you are looking for a command line tool for version comparisons please see
+[vert](https://github.com/Masterminds/vert) which uses this library.
+
+## Package Versions
+
+Note, import `github.com/github.com/Masterminds/semver/v3` to use the latest version.
+
+There are three major versions fo the `semver` package.
+
+* 3.x.x is the stable and active version. This version is focused on constraint
+ compatibility for range handling in other tools from other languages. It has
+ a similar API to the v1 releases. The development of this version is on the master
+ branch. The documentation for this version is below.
+* 2.x was developed primarily for [dep](https://github.com/golang/dep). There are
+ no tagged releases and the development was performed by [@sdboyer](https://github.com/sdboyer).
+ There are API breaking changes from v1. This version lives on the [2.x branch](https://github.com/Masterminds/semver/tree/2.x).
+* 1.x.x is the original release. It is no longer maintained. You should use the
+ v3 release instead. You can read the documentation for the 1.x.x release
+ [here](https://github.com/Masterminds/semver/blob/release-1/README.md).
+
+## Parsing Semantic Versions
+
+There are two functions that can parse semantic versions. The `StrictNewVersion`
+function only parses valid version 2 semantic versions as outlined in the
+specification. The `NewVersion` function attempts to coerce a version into a
+semantic version and parse it. For example, if there is a leading v or a version
+listed without all 3 parts (e.g. `v1.2`) it will attempt to coerce it into a valid
+semantic version (e.g., 1.2.0). In both cases a `Version` object is returned
+that can be sorted, compared, and used in constraints.
+
+When parsing a version an error is returned if there is an issue parsing the
+version. For example,
+
+ v, err := semver.NewVersion("1.2.3-beta.1+build345")
+
+The version object has methods to get the parts of the version, compare it to
+other versions, convert the version back into a string, and get the original
+string. Getting the original string is useful if the semantic version was coerced
+into a valid form.
+
+## Sorting Semantic Versions
+
+A set of versions can be sorted using the `sort` package from the standard library.
+For example,
+
+```go
+raw := []string{"1.2.3", "1.0", "1.3", "2", "0.4.2",}
+vs := make([]*semver.Version, len(raw))
+for i, r := range raw {
+ v, err := semver.NewVersion(r)
+ if err != nil {
+ t.Errorf("Error parsing version: %s", err)
+ }
+
+ vs[i] = v
+}
+
+sort.Sort(semver.Collection(vs))
+```
+
+## Checking Version Constraints
+
+There are two methods for comparing versions. One uses comparison methods on
+`Version` instances and the other uses `Constraints`. There are some important
+differences to notes between these two methods of comparison.
+
+1. When two versions are compared using functions such as `Compare`, `LessThan`,
+ and others it will follow the specification and always include prereleases
+ within the comparison. It will provide an answer that is valid with the
+ comparison section of the spec at https://semver.org/#spec-item-11
+2. When constraint checking is used for checks or validation it will follow a
+ different set of rules that are common for ranges with tools like npm/js
+ and Rust/Cargo. This includes considering prereleases to be invalid if the
+ ranges does not include one. If you want to have it include pre-releases a
+ simple solution is to include `-0` in your range.
+3. Constraint ranges can have some complex rules including the shorthand use of
+ ~ and ^. For more details on those see the options below.
+
+There are differences between the two methods or checking versions because the
+comparison methods on `Version` follow the specification while comparison ranges
+are not part of the specification. Different packages and tools have taken it
+upon themselves to come up with range rules. This has resulted in differences.
+For example, npm/js and Cargo/Rust follow similar patterns while PHP has a
+different pattern for ^. The comparison features in this package follow the
+npm/js and Cargo/Rust lead because applications using it have followed similar
+patters with their versions.
+
+Checking a version against version constraints is one of the most featureful
+parts of the package.
+
+```go
+c, err := semver.NewConstraint(">= 1.2.3")
+if err != nil {
+ // Handle constraint not being parsable.
+}
+
+v, err := semver.NewVersion("1.3")
+if err != nil {
+ // Handle version not being parsable.
+}
+// Check if the version meets the constraints. The a variable will be true.
+a := c.Check(v)
+```
+
+### Basic Comparisons
+
+There are two elements to the comparisons. First, a comparison string is a list
+of space or comma separated AND comparisons. These are then separated by || (OR)
+comparisons. For example, `">= 1.2 < 3.0.0 || >= 4.2.3"` is looking for a
+comparison that's greater than or equal to 1.2 and less than 3.0.0 or is
+greater than or equal to 4.2.3.
+
+The basic comparisons are:
+
+* `=`: equal (aliased to no operator)
+* `!=`: not equal
+* `>`: greater than
+* `<`: less than
+* `>=`: greater than or equal to
+* `<=`: less than or equal to
+
+### Working With Prerelease Versions
+
+Pre-releases, for those not familiar with them, are used for software releases
+prior to stable or generally available releases. Examples of prereleases include
+development, alpha, beta, and release candidate releases. A prerelease may be
+a version such as `1.2.3-beta.1` while the stable release would be `1.2.3`. In the
+order of precedence, prereleases come before their associated releases. In this
+example `1.2.3-beta.1 < 1.2.3`.
+
+According to the Semantic Version specification prereleases may not be
+API compliant with their release counterpart. It says,
+
+> A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version.
+
+SemVer comparisons using constraints without a prerelease comparator will skip
+prerelease versions. For example, `>=1.2.3` will skip prereleases when looking
+at a list of releases while `>=1.2.3-0` will evaluate and find prereleases.
+
+The reason for the `0` as a pre-release version in the example comparison is
+because pre-releases can only contain ASCII alphanumerics and hyphens (along with
+`.` separators), per the spec. Sorting happens in ASCII sort order, again per the
+spec. The lowest character is a `0` in ASCII sort order
+(see an [ASCII Table](http://www.asciitable.com/))
+
+Understanding ASCII sort ordering is important because A-Z comes before a-z. That
+means `>=1.2.3-BETA` will return `1.2.3-alpha`. What you might expect from case
+sensitivity doesn't apply here. This is due to ASCII sort ordering which is what
+the spec specifies.
+
+### Hyphen Range Comparisons
+
+There are multiple methods to handle ranges and the first is hyphens ranges.
+These look like:
+
+* `1.2 - 1.4.5` which is equivalent to `>= 1.2 <= 1.4.5`
+* `2.3.4 - 4.5` which is equivalent to `>= 2.3.4 <= 4.5`
+
+### Wildcards In Comparisons
+
+The `x`, `X`, and `*` characters can be used as a wildcard character. This works
+for all comparison operators. When used on the `=` operator it falls
+back to the patch level comparison (see tilde below). For example,
+
+* `1.2.x` is equivalent to `>= 1.2.0, < 1.3.0`
+* `>= 1.2.x` is equivalent to `>= 1.2.0`
+* `<= 2.x` is equivalent to `< 3`
+* `*` is equivalent to `>= 0.0.0`
+
+### Tilde Range Comparisons (Patch)
+
+The tilde (`~`) comparison operator is for patch level ranges when a minor
+version is specified and major level changes when the minor number is missing.
+For example,
+
+* `~1.2.3` is equivalent to `>= 1.2.3, < 1.3.0`
+* `~1` is equivalent to `>= 1, < 2`
+* `~2.3` is equivalent to `>= 2.3, < 2.4`
+* `~1.2.x` is equivalent to `>= 1.2.0, < 1.3.0`
+* `~1.x` is equivalent to `>= 1, < 2`
+
+### Caret Range Comparisons (Major)
+
+The caret (`^`) comparison operator is for major level changes once a stable
+(1.0.0) release has occurred. Prior to a 1.0.0 release the minor versions acts
+as the API stability level. This is useful when comparisons of API versions as a
+major change is API breaking. For example,
+
+* `^1.2.3` is equivalent to `>= 1.2.3, < 2.0.0`
+* `^1.2.x` is equivalent to `>= 1.2.0, < 2.0.0`
+* `^2.3` is equivalent to `>= 2.3, < 3`
+* `^2.x` is equivalent to `>= 2.0.0, < 3`
+* `^0.2.3` is equivalent to `>=0.2.3 <0.3.0`
+* `^0.2` is equivalent to `>=0.2.0 <0.3.0`
+* `^0.0.3` is equivalent to `>=0.0.3 <0.0.4`
+* `^0.0` is equivalent to `>=0.0.0 <0.1.0`
+* `^0` is equivalent to `>=0.0.0 <1.0.0`
+
+## Validation
+
+In addition to testing a version against a constraint, a version can be validated
+against a constraint. When validation fails a slice of errors containing why a
+version didn't meet the constraint is returned. For example,
+
+```go
+c, err := semver.NewConstraint("<= 1.2.3, >= 1.4")
+if err != nil {
+ // Handle constraint not being parseable.
+}
+
+v, err := semver.NewVersion("1.3")
+if err != nil {
+ // Handle version not being parseable.
+}
+
+// Validate a version against a constraint.
+a, msgs := c.Validate(v)
+// a is false
+for _, m := range msgs {
+ fmt.Println(m)
+
+ // Loops over the errors which would read
+ // "1.3 is greater than 1.2.3"
+ // "1.3 is less than 1.4"
+}
+```
+
+## Contribute
+
+If you find an issue or want to contribute please file an [issue](https://github.com/Masterminds/semver/issues)
+or [create a pull request](https://github.com/Masterminds/semver/pulls).
+
+## Security
+
+Security is an important consideration for this project. The project currently
+uses the following tools to help discover security issues:
+
+* [CodeQL](https://github.com/Masterminds/semver)
+* [gosec](https://github.com/securego/gosec)
+* Daily Fuzz testing
+
+If you believe you have found a security vulnerability you can privately disclose
+it through the [GitHub security page](https://github.com/Masterminds/semver/security).
diff --git a/vendor/github.com/Masterminds/semver/v3/SECURITY.md b/vendor/github.com/Masterminds/semver/v3/SECURITY.md
new file mode 100644
index 0000000000..a30a66b1f7
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/SECURITY.md
@@ -0,0 +1,19 @@
+# Security Policy
+
+## Supported Versions
+
+The following versions of semver are currently supported:
+
+| Version | Supported |
+| ------- | ------------------ |
+| 3.x | :white_check_mark: |
+| 2.x | :x: |
+| 1.x | :x: |
+
+Fixes are only released for the latest minor version in the form of a patch release.
+
+## Reporting a Vulnerability
+
+You can privately disclose a vulnerability through GitHubs
+[private vulnerability reporting](https://github.com/Masterminds/semver/security/advisories)
+mechanism.
diff --git a/vendor/github.com/Masterminds/semver/collection.go b/vendor/github.com/Masterminds/semver/v3/collection.go
similarity index 100%
rename from vendor/github.com/Masterminds/semver/collection.go
rename to vendor/github.com/Masterminds/semver/v3/collection.go
diff --git a/vendor/github.com/Masterminds/semver/v3/constraints.go b/vendor/github.com/Masterminds/semver/v3/constraints.go
new file mode 100644
index 0000000000..8461c7ed90
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/constraints.go
@@ -0,0 +1,594 @@
+package semver
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "regexp"
+ "strings"
+)
+
+// Constraints is one or more constraint that a semantic version can be
+// checked against.
+type Constraints struct {
+ constraints [][]*constraint
+}
+
+// NewConstraint returns a Constraints instance that a Version instance can
+// be checked against. If there is a parse error it will be returned.
+func NewConstraint(c string) (*Constraints, error) {
+
+ // Rewrite - ranges into a comparison operation.
+ c = rewriteRange(c)
+
+ ors := strings.Split(c, "||")
+ or := make([][]*constraint, len(ors))
+ for k, v := range ors {
+
+ // TODO: Find a way to validate and fetch all the constraints in a simpler form
+
+ // Validate the segment
+ if !validConstraintRegex.MatchString(v) {
+ return nil, fmt.Errorf("improper constraint: %s", v)
+ }
+
+ cs := findConstraintRegex.FindAllString(v, -1)
+ if cs == nil {
+ cs = append(cs, v)
+ }
+ result := make([]*constraint, len(cs))
+ for i, s := range cs {
+ pc, err := parseConstraint(s)
+ if err != nil {
+ return nil, err
+ }
+
+ result[i] = pc
+ }
+ or[k] = result
+ }
+
+ o := &Constraints{constraints: or}
+ return o, nil
+}
+
+// Check tests if a version satisfies the constraints.
+func (cs Constraints) Check(v *Version) bool {
+ // TODO(mattfarina): For v4 of this library consolidate the Check and Validate
+ // functions as the underlying functions make that possible now.
+ // loop over the ORs and check the inner ANDs
+ for _, o := range cs.constraints {
+ joy := true
+ for _, c := range o {
+ if check, _ := c.check(v); !check {
+ joy = false
+ break
+ }
+ }
+
+ if joy {
+ return true
+ }
+ }
+
+ return false
+}
+
+// Validate checks if a version satisfies a constraint. If not a slice of
+// reasons for the failure are returned in addition to a bool.
+func (cs Constraints) Validate(v *Version) (bool, []error) {
+ // loop over the ORs and check the inner ANDs
+ var e []error
+
+ // Capture the prerelease message only once. When it happens the first time
+ // this var is marked
+ var prerelesase bool
+ for _, o := range cs.constraints {
+ joy := true
+ for _, c := range o {
+ // Before running the check handle the case there the version is
+ // a prerelease and the check is not searching for prereleases.
+ if c.con.pre == "" && v.pre != "" {
+ if !prerelesase {
+ em := fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ e = append(e, em)
+ prerelesase = true
+ }
+ joy = false
+
+ } else {
+
+ if _, err := c.check(v); err != nil {
+ e = append(e, err)
+ joy = false
+ }
+ }
+ }
+
+ if joy {
+ return true, []error{}
+ }
+ }
+
+ return false, e
+}
+
+func (cs Constraints) String() string {
+ buf := make([]string, len(cs.constraints))
+ var tmp bytes.Buffer
+
+ for k, v := range cs.constraints {
+ tmp.Reset()
+ vlen := len(v)
+ for kk, c := range v {
+ tmp.WriteString(c.string())
+
+ // Space separate the AND conditions
+ if vlen > 1 && kk < vlen-1 {
+ tmp.WriteString(" ")
+ }
+ }
+ buf[k] = tmp.String()
+ }
+
+ return strings.Join(buf, " || ")
+}
+
+// UnmarshalText implements the encoding.TextUnmarshaler interface.
+func (cs *Constraints) UnmarshalText(text []byte) error {
+ temp, err := NewConstraint(string(text))
+ if err != nil {
+ return err
+ }
+
+ *cs = *temp
+
+ return nil
+}
+
+// MarshalText implements the encoding.TextMarshaler interface.
+func (cs Constraints) MarshalText() ([]byte, error) {
+ return []byte(cs.String()), nil
+}
+
+var constraintOps map[string]cfunc
+var constraintRegex *regexp.Regexp
+var constraintRangeRegex *regexp.Regexp
+
+// Used to find individual constraints within a multi-constraint string
+var findConstraintRegex *regexp.Regexp
+
+// Used to validate an segment of ANDs is valid
+var validConstraintRegex *regexp.Regexp
+
+const cvRegex string = `v?([0-9|x|X|\*]+)(\.[0-9|x|X|\*]+)?(\.[0-9|x|X|\*]+)?` +
+ `(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?` +
+ `(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?`
+
+func init() {
+ constraintOps = map[string]cfunc{
+ "": constraintTildeOrEqual,
+ "=": constraintTildeOrEqual,
+ "!=": constraintNotEqual,
+ ">": constraintGreaterThan,
+ "<": constraintLessThan,
+ ">=": constraintGreaterThanEqual,
+ "=>": constraintGreaterThanEqual,
+ "<=": constraintLessThanEqual,
+ "=<": constraintLessThanEqual,
+ "~": constraintTilde,
+ "~>": constraintTilde,
+ "^": constraintCaret,
+ }
+
+ ops := `=||!=|>|<|>=|=>|<=|=<|~|~>|\^`
+
+ constraintRegex = regexp.MustCompile(fmt.Sprintf(
+ `^\s*(%s)\s*(%s)\s*$`,
+ ops,
+ cvRegex))
+
+ constraintRangeRegex = regexp.MustCompile(fmt.Sprintf(
+ `\s*(%s)\s+-\s+(%s)\s*`,
+ cvRegex, cvRegex))
+
+ findConstraintRegex = regexp.MustCompile(fmt.Sprintf(
+ `(%s)\s*(%s)`,
+ ops,
+ cvRegex))
+
+ // The first time a constraint shows up will look slightly different from
+ // future times it shows up due to a leading space or comma in a given
+ // string.
+ validConstraintRegex = regexp.MustCompile(fmt.Sprintf(
+ `^(\s*(%s)\s*(%s)\s*)((?:\s+|,\s*)(%s)\s*(%s)\s*)*$`,
+ ops,
+ cvRegex,
+ ops,
+ cvRegex))
+}
+
+// An individual constraint
+type constraint struct {
+ // The version used in the constraint check. For example, if a constraint
+ // is '<= 2.0.0' the con a version instance representing 2.0.0.
+ con *Version
+
+ // The original parsed version (e.g., 4.x from != 4.x)
+ orig string
+
+ // The original operator for the constraint
+ origfunc string
+
+ // When an x is used as part of the version (e.g., 1.x)
+ minorDirty bool
+ dirty bool
+ patchDirty bool
+}
+
+// Check if a version meets the constraint
+func (c *constraint) check(v *Version) (bool, error) {
+ return constraintOps[c.origfunc](v, c)
+}
+
+// String prints an individual constraint into a string
+func (c *constraint) string() string {
+ return c.origfunc + c.orig
+}
+
+type cfunc func(v *Version, c *constraint) (bool, error)
+
+func parseConstraint(c string) (*constraint, error) {
+ if len(c) > 0 {
+ m := constraintRegex.FindStringSubmatch(c)
+ if m == nil {
+ return nil, fmt.Errorf("improper constraint: %s", c)
+ }
+
+ cs := &constraint{
+ orig: m[2],
+ origfunc: m[1],
+ }
+
+ ver := m[2]
+ minorDirty := false
+ patchDirty := false
+ dirty := false
+ if isX(m[3]) || m[3] == "" {
+ ver = fmt.Sprintf("0.0.0%s", m[6])
+ dirty = true
+ } else if isX(strings.TrimPrefix(m[4], ".")) || m[4] == "" {
+ minorDirty = true
+ dirty = true
+ ver = fmt.Sprintf("%s.0.0%s", m[3], m[6])
+ } else if isX(strings.TrimPrefix(m[5], ".")) || m[5] == "" {
+ dirty = true
+ patchDirty = true
+ ver = fmt.Sprintf("%s%s.0%s", m[3], m[4], m[6])
+ }
+
+ con, err := NewVersion(ver)
+ if err != nil {
+
+ // The constraintRegex should catch any regex parsing errors. So,
+ // we should never get here.
+ return nil, errors.New("constraint Parser Error")
+ }
+
+ cs.con = con
+ cs.minorDirty = minorDirty
+ cs.patchDirty = patchDirty
+ cs.dirty = dirty
+
+ return cs, nil
+ }
+
+ // The rest is the special case where an empty string was passed in which
+ // is equivalent to * or >=0.0.0
+ con, err := StrictNewVersion("0.0.0")
+ if err != nil {
+
+ // The constraintRegex should catch any regex parsing errors. So,
+ // we should never get here.
+ return nil, errors.New("constraint Parser Error")
+ }
+
+ cs := &constraint{
+ con: con,
+ orig: c,
+ origfunc: "",
+ minorDirty: false,
+ patchDirty: false,
+ dirty: true,
+ }
+ return cs, nil
+}
+
+// Constraint functions
+func constraintNotEqual(v *Version, c *constraint) (bool, error) {
+ if c.dirty {
+
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ if c.con.Major() != v.Major() {
+ return true, nil
+ }
+ if c.con.Minor() != v.Minor() && !c.minorDirty {
+ return true, nil
+ } else if c.minorDirty {
+ return false, fmt.Errorf("%s is equal to %s", v, c.orig)
+ } else if c.con.Patch() != v.Patch() && !c.patchDirty {
+ return true, nil
+ } else if c.patchDirty {
+ // Need to handle prereleases if present
+ if v.Prerelease() != "" || c.con.Prerelease() != "" {
+ eq := comparePrerelease(v.Prerelease(), c.con.Prerelease()) != 0
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is equal to %s", v, c.orig)
+ }
+ return false, fmt.Errorf("%s is equal to %s", v, c.orig)
+ }
+ }
+
+ eq := v.Equal(c.con)
+ if eq {
+ return false, fmt.Errorf("%s is equal to %s", v, c.orig)
+ }
+
+ return true, nil
+}
+
+func constraintGreaterThan(v *Version, c *constraint) (bool, error) {
+
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ var eq bool
+
+ if !c.dirty {
+ eq = v.Compare(c.con) == 1
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is less than or equal to %s", v, c.orig)
+ }
+
+ if v.Major() > c.con.Major() {
+ return true, nil
+ } else if v.Major() < c.con.Major() {
+ return false, fmt.Errorf("%s is less than or equal to %s", v, c.orig)
+ } else if c.minorDirty {
+ // This is a range case such as >11. When the version is something like
+ // 11.1.0 is it not > 11. For that we would need 12 or higher
+ return false, fmt.Errorf("%s is less than or equal to %s", v, c.orig)
+ } else if c.patchDirty {
+ // This is for ranges such as >11.1. A version of 11.1.1 is not greater
+ // which one of 11.2.1 is greater
+ eq = v.Minor() > c.con.Minor()
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is less than or equal to %s", v, c.orig)
+ }
+
+ // If we have gotten here we are not comparing pre-preleases and can use the
+ // Compare function to accomplish that.
+ eq = v.Compare(c.con) == 1
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is less than or equal to %s", v, c.orig)
+}
+
+func constraintLessThan(v *Version, c *constraint) (bool, error) {
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ eq := v.Compare(c.con) < 0
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is greater than or equal to %s", v, c.orig)
+}
+
+func constraintGreaterThanEqual(v *Version, c *constraint) (bool, error) {
+
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ eq := v.Compare(c.con) >= 0
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is less than %s", v, c.orig)
+}
+
+func constraintLessThanEqual(v *Version, c *constraint) (bool, error) {
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ var eq bool
+
+ if !c.dirty {
+ eq = v.Compare(c.con) <= 0
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s is greater than %s", v, c.orig)
+ }
+
+ if v.Major() > c.con.Major() {
+ return false, fmt.Errorf("%s is greater than %s", v, c.orig)
+ } else if v.Major() == c.con.Major() && v.Minor() > c.con.Minor() && !c.minorDirty {
+ return false, fmt.Errorf("%s is greater than %s", v, c.orig)
+ }
+
+ return true, nil
+}
+
+// ~*, ~>* --> >= 0.0.0 (any)
+// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0, <3.0.0
+// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0, <2.1.0
+// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0, <1.3.0
+// ~1.2.3, ~>1.2.3 --> >=1.2.3, <1.3.0
+// ~1.2.0, ~>1.2.0 --> >=1.2.0, <1.3.0
+func constraintTilde(v *Version, c *constraint) (bool, error) {
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ if v.LessThan(c.con) {
+ return false, fmt.Errorf("%s is less than %s", v, c.orig)
+ }
+
+ // ~0.0.0 is a special case where all constraints are accepted. It's
+ // equivalent to >= 0.0.0.
+ if c.con.Major() == 0 && c.con.Minor() == 0 && c.con.Patch() == 0 &&
+ !c.minorDirty && !c.patchDirty {
+ return true, nil
+ }
+
+ if v.Major() != c.con.Major() {
+ return false, fmt.Errorf("%s does not have same major version as %s", v, c.orig)
+ }
+
+ if v.Minor() != c.con.Minor() && !c.minorDirty {
+ return false, fmt.Errorf("%s does not have same major and minor version as %s", v, c.orig)
+ }
+
+ return true, nil
+}
+
+// When there is a .x (dirty) status it automatically opts in to ~. Otherwise
+// it's a straight =
+func constraintTildeOrEqual(v *Version, c *constraint) (bool, error) {
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ if c.dirty {
+ return constraintTilde(v, c)
+ }
+
+ eq := v.Equal(c.con)
+ if eq {
+ return true, nil
+ }
+
+ return false, fmt.Errorf("%s is not equal to %s", v, c.orig)
+}
+
+// ^* --> (any)
+// ^1.2.3 --> >=1.2.3 <2.0.0
+// ^1.2 --> >=1.2.0 <2.0.0
+// ^1 --> >=1.0.0 <2.0.0
+// ^0.2.3 --> >=0.2.3 <0.3.0
+// ^0.2 --> >=0.2.0 <0.3.0
+// ^0.0.3 --> >=0.0.3 <0.0.4
+// ^0.0 --> >=0.0.0 <0.1.0
+// ^0 --> >=0.0.0 <1.0.0
+func constraintCaret(v *Version, c *constraint) (bool, error) {
+ // If there is a pre-release on the version but the constraint isn't looking
+ // for them assume that pre-releases are not compatible. See issue 21 for
+ // more details.
+ if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+
+ // This less than handles prereleases
+ if v.LessThan(c.con) {
+ return false, fmt.Errorf("%s is less than %s", v, c.orig)
+ }
+
+ var eq bool
+
+ // ^ when the major > 0 is >=x.y.z < x+1
+ if c.con.Major() > 0 || c.minorDirty {
+
+ // ^ has to be within a major range for > 0. Everything less than was
+ // filtered out with the LessThan call above. This filters out those
+ // that greater but not within the same major range.
+ eq = v.Major() == c.con.Major()
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s does not have same major version as %s", v, c.orig)
+ }
+
+ // ^ when the major is 0 and minor > 0 is >=0.y.z < 0.y+1
+ if c.con.Major() == 0 && v.Major() > 0 {
+ return false, fmt.Errorf("%s does not have same major version as %s", v, c.orig)
+ }
+ // If the con Minor is > 0 it is not dirty
+ if c.con.Minor() > 0 || c.patchDirty {
+ eq = v.Minor() == c.con.Minor()
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s does not have same minor version as %s. Expected minor versions to match when constraint major version is 0", v, c.orig)
+ }
+ // ^ when the minor is 0 and minor > 0 is =0.0.z
+ if c.con.Minor() == 0 && v.Minor() > 0 {
+ return false, fmt.Errorf("%s does not have same minor version as %s", v, c.orig)
+ }
+
+ // At this point the major is 0 and the minor is 0 and not dirty. The patch
+ // is not dirty so we need to check if they are equal. If they are not equal
+ eq = c.con.Patch() == v.Patch()
+ if eq {
+ return true, nil
+ }
+ return false, fmt.Errorf("%s does not equal %s. Expect version and constraint to equal when major and minor versions are 0", v, c.orig)
+}
+
+func isX(x string) bool {
+ switch x {
+ case "x", "*", "X":
+ return true
+ default:
+ return false
+ }
+}
+
+func rewriteRange(i string) string {
+ m := constraintRangeRegex.FindAllStringSubmatch(i, -1)
+ if m == nil {
+ return i
+ }
+ o := i
+ for _, v := range m {
+ t := fmt.Sprintf(">= %s, <= %s ", v[1], v[11])
+ o = strings.Replace(o, v[0], t, 1)
+ }
+
+ return o
+}
diff --git a/vendor/github.com/Masterminds/semver/v3/doc.go b/vendor/github.com/Masterminds/semver/v3/doc.go
new file mode 100644
index 0000000000..74f97caa57
--- /dev/null
+++ b/vendor/github.com/Masterminds/semver/v3/doc.go
@@ -0,0 +1,184 @@
+/*
+Package semver provides the ability to work with Semantic Versions (http://semver.org) in Go.
+
+Specifically it provides the ability to:
+
+ - Parse semantic versions
+ - Sort semantic versions
+ - Check if a semantic version fits within a set of constraints
+ - Optionally work with a `v` prefix
+
+# Parsing Semantic Versions
+
+There are two functions that can parse semantic versions. The `StrictNewVersion`
+function only parses valid version 2 semantic versions as outlined in the
+specification. The `NewVersion` function attempts to coerce a version into a
+semantic version and parse it. For example, if there is a leading v or a version
+listed without all 3 parts (e.g. 1.2) it will attempt to coerce it into a valid
+semantic version (e.g., 1.2.0). In both cases a `Version` object is returned
+that can be sorted, compared, and used in constraints.
+
+When parsing a version an optional error can be returned if there is an issue
+parsing the version. For example,
+
+ v, err := semver.NewVersion("1.2.3-beta.1+b345")
+
+The version object has methods to get the parts of the version, compare it to
+other versions, convert the version back into a string, and get the original
+string. For more details please see the documentation
+at https://godoc.org/github.com/Masterminds/semver.
+
+# Sorting Semantic Versions
+
+A set of versions can be sorted using the `sort` package from the standard library.
+For example,
+
+ raw := []string{"1.2.3", "1.0", "1.3", "2", "0.4.2",}
+ vs := make([]*semver.Version, len(raw))
+ for i, r := range raw {
+ v, err := semver.NewVersion(r)
+ if err != nil {
+ t.Errorf("Error parsing version: %s", err)
+ }
+
+ vs[i] = v
+ }
+
+ sort.Sort(semver.Collection(vs))
+
+# Checking Version Constraints and Comparing Versions
+
+There are two methods for comparing versions. One uses comparison methods on
+`Version` instances and the other is using Constraints. There are some important
+differences to notes between these two methods of comparison.
+
+ 1. When two versions are compared using functions such as `Compare`, `LessThan`,
+ and others it will follow the specification and always include prereleases
+ within the comparison. It will provide an answer valid with the comparison
+ spec section at https://semver.org/#spec-item-11
+ 2. When constraint checking is used for checks or validation it will follow a
+ different set of rules that are common for ranges with tools like npm/js
+ and Rust/Cargo. This includes considering prereleases to be invalid if the
+ ranges does not include on. If you want to have it include pre-releases a
+ simple solution is to include `-0` in your range.
+ 3. Constraint ranges can have some complex rules including the shorthard use of
+ ~ and ^. For more details on those see the options below.
+
+There are differences between the two methods or checking versions because the
+comparison methods on `Version` follow the specification while comparison ranges
+are not part of the specification. Different packages and tools have taken it
+upon themselves to come up with range rules. This has resulted in differences.
+For example, npm/js and Cargo/Rust follow similar patterns which PHP has a
+different pattern for ^. The comparison features in this package follow the
+npm/js and Cargo/Rust lead because applications using it have followed similar
+patters with their versions.
+
+Checking a version against version constraints is one of the most featureful
+parts of the package.
+
+ c, err := semver.NewConstraint(">= 1.2.3")
+ if err != nil {
+ // Handle constraint not being parsable.
+ }
+
+ v, err := semver.NewVersion("1.3")
+ if err != nil {
+ // Handle version not being parsable.
+ }
+ // Check if the version meets the constraints. The a variable will be true.
+ a := c.Check(v)
+
+# Basic Comparisons
+
+There are two elements to the comparisons. First, a comparison string is a list
+of comma or space separated AND comparisons. These are then separated by || (OR)
+comparisons. For example, `">= 1.2 < 3.0.0 || >= 4.2.3"` is looking for a
+comparison that's greater than or equal to 1.2 and less than 3.0.0 or is
+greater than or equal to 4.2.3. This can also be written as
+`">= 1.2, < 3.0.0 || >= 4.2.3"`
+
+The basic comparisons are:
+
+ - `=`: equal (aliased to no operator)
+ - `!=`: not equal
+ - `>`: greater than
+ - `<`: less than
+ - `>=`: greater than or equal to
+ - `<=`: less than or equal to
+
+# Hyphen Range Comparisons
+
+There are multiple methods to handle ranges and the first is hyphens ranges.
+These look like:
+
+ - `1.2 - 1.4.5` which is equivalent to `>= 1.2, <= 1.4.5`
+ - `2.3.4 - 4.5` which is equivalent to `>= 2.3.4 <= 4.5`
+
+# Wildcards In Comparisons
+
+The `x`, `X`, and `*` characters can be used as a wildcard character. This works
+for all comparison operators. When used on the `=` operator it falls
+back to the tilde operation. For example,
+
+ - `1.2.x` is equivalent to `>= 1.2.0 < 1.3.0`
+ - `>= 1.2.x` is equivalent to `>= 1.2.0`
+ - `<= 2.x` is equivalent to `<= 3`
+ - `*` is equivalent to `>= 0.0.0`
+
+Tilde Range Comparisons (Patch)
+
+The tilde (`~`) comparison operator is for patch level ranges when a minor
+version is specified and major level changes when the minor number is missing.
+For example,
+
+ - `~1.2.3` is equivalent to `>= 1.2.3 < 1.3.0`
+ - `~1` is equivalent to `>= 1, < 2`
+ - `~2.3` is equivalent to `>= 2.3 < 2.4`
+ - `~1.2.x` is equivalent to `>= 1.2.0 < 1.3.0`
+ - `~1.x` is equivalent to `>= 1 < 2`
+
+Caret Range Comparisons (Major)
+
+The caret (`^`) comparison operator is for major level changes once a stable
+(1.0.0) release has occurred. Prior to a 1.0.0 release the minor versions acts
+as the API stability level. This is useful when comparisons of API versions as a
+major change is API breaking. For example,
+
+ - `^1.2.3` is equivalent to `>= 1.2.3, < 2.0.0`
+ - `^1.2.x` is equivalent to `>= 1.2.0, < 2.0.0`
+ - `^2.3` is equivalent to `>= 2.3, < 3`
+ - `^2.x` is equivalent to `>= 2.0.0, < 3`
+ - `^0.2.3` is equivalent to `>=0.2.3 <0.3.0`
+ - `^0.2` is equivalent to `>=0.2.0 <0.3.0`
+ - `^0.0.3` is equivalent to `>=0.0.3 <0.0.4`
+ - `^0.0` is equivalent to `>=0.0.0 <0.1.0`
+ - `^0` is equivalent to `>=0.0.0 <1.0.0`
+
+# Validation
+
+In addition to testing a version against a constraint, a version can be validated
+against a constraint. When validation fails a slice of errors containing why a
+version didn't meet the constraint is returned. For example,
+
+ c, err := semver.NewConstraint("<= 1.2.3, >= 1.4")
+ if err != nil {
+ // Handle constraint not being parseable.
+ }
+
+ v, _ := semver.NewVersion("1.3")
+ if err != nil {
+ // Handle version not being parseable.
+ }
+
+ // Validate a version against a constraint.
+ a, msgs := c.Validate(v)
+ // a is false
+ for _, m := range msgs {
+ fmt.Println(m)
+
+ // Loops over the errors which would read
+ // "1.3 is greater than 1.2.3"
+ // "1.3 is less than 1.4"
+ }
+*/
+package semver
diff --git a/vendor/github.com/Masterminds/semver/version.go b/vendor/github.com/Masterminds/semver/v3/version.go
similarity index 55%
rename from vendor/github.com/Masterminds/semver/version.go
rename to vendor/github.com/Masterminds/semver/v3/version.go
index 400d4f9341..7c4bed3347 100644
--- a/vendor/github.com/Masterminds/semver/version.go
+++ b/vendor/github.com/Masterminds/semver/v3/version.go
@@ -2,6 +2,7 @@ package semver
import (
"bytes"
+ "database/sql/driver"
"encoding/json"
"errors"
"fmt"
@@ -13,13 +14,23 @@ import (
// The compiled version of the regex created at init() is cached here so it
// only needs to be created once.
var versionRegex *regexp.Regexp
-var validPrereleaseRegex *regexp.Regexp
var (
// ErrInvalidSemVer is returned a version is found to be invalid when
// being parsed.
ErrInvalidSemVer = errors.New("Invalid Semantic Version")
+ // ErrEmptyString is returned when an empty string is passed in for parsing.
+ ErrEmptyString = errors.New("Version string empty")
+
+ // ErrInvalidCharacters is returned when invalid characters are found as
+ // part of a version
+ ErrInvalidCharacters = errors.New("Invalid characters in version")
+
+ // ErrSegmentStartsZero is returned when a version segment starts with 0.
+ // This is invalid in SemVer.
+ ErrSegmentStartsZero = errors.New("Version segment starts with 0")
+
// ErrInvalidMetadata is returned when the metadata is an invalid format
ErrInvalidMetadata = errors.New("Invalid Metadata string")
@@ -27,30 +38,123 @@ var (
ErrInvalidPrerelease = errors.New("Invalid Prerelease string")
)
-// SemVerRegex is the regular expression used to parse a semantic version.
-const SemVerRegex string = `v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?` +
+// semVerRegex is the regular expression used to parse a semantic version.
+const semVerRegex string = `v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?` +
`(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?` +
`(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?`
-// ValidPrerelease is the regular expression which validates
-// both prerelease and metadata values.
-const ValidPrerelease string = `^([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*)$`
-
// Version represents a single semantic version.
type Version struct {
- major, minor, patch int64
+ major, minor, patch uint64
pre string
metadata string
original string
}
func init() {
- versionRegex = regexp.MustCompile("^" + SemVerRegex + "$")
- validPrereleaseRegex = regexp.MustCompile(ValidPrerelease)
+ versionRegex = regexp.MustCompile("^" + semVerRegex + "$")
+}
+
+const (
+ num string = "0123456789"
+ allowed string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-" + num
+)
+
+// StrictNewVersion parses a given version and returns an instance of Version or
+// an error if unable to parse the version. Only parses valid semantic versions.
+// Performs checking that can find errors within the version.
+// If you want to coerce a version such as 1 or 1.2 and parse it as the 1.x
+// releases of semver did, use the NewVersion() function.
+func StrictNewVersion(v string) (*Version, error) {
+ // Parsing here does not use RegEx in order to increase performance and reduce
+ // allocations.
+
+ if len(v) == 0 {
+ return nil, ErrEmptyString
+ }
+
+ // Split the parts into [0]major, [1]minor, and [2]patch,prerelease,build
+ parts := strings.SplitN(v, ".", 3)
+ if len(parts) != 3 {
+ return nil, ErrInvalidSemVer
+ }
+
+ sv := &Version{
+ original: v,
+ }
+
+ // check for prerelease or build metadata
+ var extra []string
+ if strings.ContainsAny(parts[2], "-+") {
+ // Start with the build metadata first as it needs to be on the right
+ extra = strings.SplitN(parts[2], "+", 2)
+ if len(extra) > 1 {
+ // build metadata found
+ sv.metadata = extra[1]
+ parts[2] = extra[0]
+ }
+
+ extra = strings.SplitN(parts[2], "-", 2)
+ if len(extra) > 1 {
+ // prerelease found
+ sv.pre = extra[1]
+ parts[2] = extra[0]
+ }
+ }
+
+ // Validate the number segments are valid. This includes only having positive
+ // numbers and no leading 0's.
+ for _, p := range parts {
+ if !containsOnly(p, num) {
+ return nil, ErrInvalidCharacters
+ }
+
+ if len(p) > 1 && p[0] == '0' {
+ return nil, ErrSegmentStartsZero
+ }
+ }
+
+ // Extract the major, minor, and patch elements onto the returned Version
+ var err error
+ sv.major, err = strconv.ParseUint(parts[0], 10, 64)
+ if err != nil {
+ return nil, err
+ }
+
+ sv.minor, err = strconv.ParseUint(parts[1], 10, 64)
+ if err != nil {
+ return nil, err
+ }
+
+ sv.patch, err = strconv.ParseUint(parts[2], 10, 64)
+ if err != nil {
+ return nil, err
+ }
+
+ // No prerelease or build metadata found so returning now as a fastpath.
+ if sv.pre == "" && sv.metadata == "" {
+ return sv, nil
+ }
+
+ if sv.pre != "" {
+ if err = validatePrerelease(sv.pre); err != nil {
+ return nil, err
+ }
+ }
+
+ if sv.metadata != "" {
+ if err = validateMetadata(sv.metadata); err != nil {
+ return nil, err
+ }
+ }
+
+ return sv, nil
}
// NewVersion parses a given version and returns an instance of Version or
-// an error if unable to parse the version.
+// an error if unable to parse the version. If the version is SemVer-ish it
+// attempts to convert it to SemVer. If you want to validate it was a strict
+// semantic version at parse time see StrictNewVersion().
func NewVersion(v string) (*Version, error) {
m := versionRegex.FindStringSubmatch(v)
if m == nil {
@@ -63,36 +167,65 @@ func NewVersion(v string) (*Version, error) {
original: v,
}
- var temp int64
- temp, err := strconv.ParseInt(m[1], 10, 64)
+ var err error
+ sv.major, err = strconv.ParseUint(m[1], 10, 64)
if err != nil {
return nil, fmt.Errorf("Error parsing version segment: %s", err)
}
- sv.major = temp
if m[2] != "" {
- temp, err = strconv.ParseInt(strings.TrimPrefix(m[2], "."), 10, 64)
+ sv.minor, err = strconv.ParseUint(strings.TrimPrefix(m[2], "."), 10, 64)
if err != nil {
return nil, fmt.Errorf("Error parsing version segment: %s", err)
}
- sv.minor = temp
} else {
sv.minor = 0
}
if m[3] != "" {
- temp, err = strconv.ParseInt(strings.TrimPrefix(m[3], "."), 10, 64)
+ sv.patch, err = strconv.ParseUint(strings.TrimPrefix(m[3], "."), 10, 64)
if err != nil {
return nil, fmt.Errorf("Error parsing version segment: %s", err)
}
- sv.patch = temp
} else {
sv.patch = 0
}
+ // Perform some basic due diligence on the extra parts to ensure they are
+ // valid.
+
+ if sv.pre != "" {
+ if err = validatePrerelease(sv.pre); err != nil {
+ return nil, err
+ }
+ }
+
+ if sv.metadata != "" {
+ if err = validateMetadata(sv.metadata); err != nil {
+ return nil, err
+ }
+ }
+
return sv, nil
}
+// New creates a new instance of Version with each of the parts passed in as
+// arguments instead of parsing a version string.
+func New(major, minor, patch uint64, pre, metadata string) *Version {
+ v := Version{
+ major: major,
+ minor: minor,
+ patch: patch,
+ pre: pre,
+ metadata: metadata,
+ original: "",
+ }
+
+ v.original = v.String()
+
+ return &v
+}
+
// MustParse parses a given version and panics on error.
func MustParse(v string) *Version {
sv, err := NewVersion(v)
@@ -107,7 +240,7 @@ func MustParse(v string) *Version {
// See the Original() method to retrieve the original value. Semantic Versions
// don't contain a leading v per the spec. Instead it's optional on
// implementation.
-func (v *Version) String() string {
+func (v Version) String() string {
var buf bytes.Buffer
fmt.Fprintf(&buf, "%d.%d.%d", v.major, v.minor, v.patch)
@@ -127,33 +260,32 @@ func (v *Version) Original() string {
}
// Major returns the major version.
-func (v *Version) Major() int64 {
+func (v Version) Major() uint64 {
return v.major
}
// Minor returns the minor version.
-func (v *Version) Minor() int64 {
+func (v Version) Minor() uint64 {
return v.minor
}
// Patch returns the patch version.
-func (v *Version) Patch() int64 {
+func (v Version) Patch() uint64 {
return v.patch
}
// Prerelease returns the pre-release version.
-func (v *Version) Prerelease() string {
+func (v Version) Prerelease() string {
return v.pre
}
// Metadata returns the metadata on the version.
-func (v *Version) Metadata() string {
+func (v Version) Metadata() string {
return v.metadata
}
// originalVPrefix returns the original 'v' prefix if any.
-func (v *Version) originalVPrefix() string {
-
+func (v Version) originalVPrefix() string {
// Note, only lowercase v is supported as a prefix by the parser.
if v.original != "" && v.original[:1] == "v" {
return v.original[:1]
@@ -165,7 +297,7 @@ func (v *Version) originalVPrefix() string {
// If the current version does not have prerelease/metadata information,
// it unsets metadata and prerelease values, increments patch number.
// If the current version has any of prerelease or metadata information,
-// it unsets both values and keeps curent patch value
+// it unsets both values and keeps current patch value
func (v Version) IncPatch() Version {
vNext := v
// according to http://semver.org/#spec-item-9
@@ -217,11 +349,13 @@ func (v Version) IncMajor() Version {
}
// SetPrerelease defines the prerelease value.
-// Value must not include the required 'hypen' prefix.
+// Value must not include the required 'hyphen' prefix.
func (v Version) SetPrerelease(prerelease string) (Version, error) {
vNext := v
- if len(prerelease) > 0 && !validPrereleaseRegex.MatchString(prerelease) {
- return vNext, ErrInvalidPrerelease
+ if len(prerelease) > 0 {
+ if err := validatePrerelease(prerelease); err != nil {
+ return vNext, err
+ }
}
vNext.pre = prerelease
vNext.original = v.originalVPrefix() + "" + vNext.String()
@@ -232,8 +366,10 @@ func (v Version) SetPrerelease(prerelease string) (Version, error) {
// Value must not include the required 'plus' prefix.
func (v Version) SetMetadata(metadata string) (Version, error) {
vNext := v
- if len(metadata) > 0 && !validPrereleaseRegex.MatchString(metadata) {
- return vNext, ErrInvalidMetadata
+ if len(metadata) > 0 {
+ if err := validateMetadata(metadata); err != nil {
+ return vNext, err
+ }
}
vNext.metadata = metadata
vNext.original = v.originalVPrefix() + "" + vNext.String()
@@ -261,7 +397,9 @@ func (v *Version) Equal(o *Version) bool {
// the version smaller, equal, or larger than the other version.
//
// Versions are compared by X.Y.Z. Build metadata is ignored. Prerelease is
-// lower than the version without a prerelease.
+// lower than the version without a prerelease. Compare always takes into account
+// prereleases. If you want to work with ranges using typical range syntaxes that
+// skip prereleases if the range is not looking for them use constraints.
func (v *Version) Compare(o *Version) int {
// Compare the major, minor, and patch version for differences. If a
// difference is found return the comparison.
@@ -308,16 +446,54 @@ func (v *Version) UnmarshalJSON(b []byte) error {
v.pre = temp.pre
v.metadata = temp.metadata
v.original = temp.original
- temp = nil
return nil
}
// MarshalJSON implements JSON.Marshaler interface.
-func (v *Version) MarshalJSON() ([]byte, error) {
+func (v Version) MarshalJSON() ([]byte, error) {
return json.Marshal(v.String())
}
-func compareSegment(v, o int64) int {
+// UnmarshalText implements the encoding.TextUnmarshaler interface.
+func (v *Version) UnmarshalText(text []byte) error {
+ temp, err := NewVersion(string(text))
+ if err != nil {
+ return err
+ }
+
+ *v = *temp
+
+ return nil
+}
+
+// MarshalText implements the encoding.TextMarshaler interface.
+func (v Version) MarshalText() ([]byte, error) {
+ return []byte(v.String()), nil
+}
+
+// Scan implements the SQL.Scanner interface.
+func (v *Version) Scan(value interface{}) error {
+ var s string
+ s, _ = value.(string)
+ temp, err := NewVersion(s)
+ if err != nil {
+ return err
+ }
+ v.major = temp.major
+ v.minor = temp.minor
+ v.patch = temp.patch
+ v.pre = temp.pre
+ v.metadata = temp.metadata
+ v.original = temp.original
+ return nil
+}
+
+// Value implements the Driver.Valuer interface.
+func (v Version) Value() (driver.Value, error) {
+ return v.String(), nil
+}
+
+func compareSegment(v, o uint64) int {
if v < o {
return -1
}
@@ -329,7 +505,6 @@ func compareSegment(v, o int64) int {
}
func comparePrerelease(v, o string) int {
-
// split the prelease versions by their part. The separator, per the spec,
// is a .
sparts := strings.Split(v, ".")
@@ -421,5 +596,44 @@ func comparePrePart(s, o string) int {
return 1
}
return -1
+}
+
+// Like strings.ContainsAny but does an only instead of any.
+func containsOnly(s string, comp string) bool {
+ return strings.IndexFunc(s, func(r rune) bool {
+ return !strings.ContainsRune(comp, r)
+ }) == -1
+}
+
+// From the spec, "Identifiers MUST comprise only
+// ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty.
+// Numeric identifiers MUST NOT include leading zeroes.". These segments can
+// be dot separated.
+func validatePrerelease(p string) error {
+ eparts := strings.Split(p, ".")
+ for _, p := range eparts {
+ if containsOnly(p, num) {
+ if len(p) > 1 && p[0] == '0' {
+ return ErrSegmentStartsZero
+ }
+ } else if !containsOnly(p, allowed) {
+ return ErrInvalidPrerelease
+ }
+ }
+ return nil
+}
+
+// From the spec, "Build metadata MAY be denoted by
+// appending a plus sign and a series of dot separated identifiers immediately
+// following the patch or pre-release version. Identifiers MUST comprise only
+// ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty."
+func validateMetadata(m string) error {
+ eparts := strings.Split(m, ".")
+ for _, p := range eparts {
+ if !containsOnly(p, allowed) {
+ return ErrInvalidMetadata
+ }
+ }
+ return nil
}
diff --git a/vendor/github.com/Masterminds/semver/version_fuzz.go b/vendor/github.com/Masterminds/semver/version_fuzz.go
deleted file mode 100644
index b42bcd62b9..0000000000
--- a/vendor/github.com/Masterminds/semver/version_fuzz.go
+++ /dev/null
@@ -1,10 +0,0 @@
-// +build gofuzz
-
-package semver
-
-func Fuzz(data []byte) int {
- if _, err := NewVersion(string(data)); err != nil {
- return 0
- }
- return 1
-}
diff --git a/vendor/github.com/butuzov/mirror/.act b/vendor/github.com/butuzov/mirror/.act
deleted file mode 100644
index 8182d703ae..0000000000
--- a/vendor/github.com/butuzov/mirror/.act
+++ /dev/null
@@ -1,2 +0,0 @@
---platform ubuntu-latest=butuzov/act-go:latest
---env DRY_RUN=1
diff --git a/vendor/github.com/butuzov/mirror/.goreleaser.yaml b/vendor/github.com/butuzov/mirror/.goreleaser.yaml
index 11749ed2b3..fa91fa97e2 100644
--- a/vendor/github.com/butuzov/mirror/.goreleaser.yaml
+++ b/vendor/github.com/butuzov/mirror/.goreleaser.yaml
@@ -5,33 +5,17 @@ builds:
- binary: mirror
env:
- CGO_ENABLED=0
+ main: ./cmd/mirror/
+ flags:
+ - -trimpath
+ ldflags: -s -w
goos:
- - darwin
- linux
+ - darwin
- windows
goarch:
- amd64
- - 386
- arm64
- - arm
- goarm:
- - 6
- ignore:
- - goos: windows
- goarm: 6
- - goos: windows
- goarch: arm64
- - goos: linux
- goarm: 6
- - goos: darwin
- goarch: 386
- main: ./cmd/mirror/
- flags:
- - -trimpath
- ldflags: -s -w
-
-checksum:
- name_template: 'checksums.txt'
changelog:
sort: asc
@@ -45,14 +29,15 @@ changelog:
- Merge pull request
- Merge branch
+
+checksum:
+ name_template: 'checksums.txt'
+
+
archives:
- - name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}'
- replacements:
- darwin: darwin
- linux: linux
- windows: windows
- 386: i386
- amd64: x86_64
+ - format: tar.gz
+ name_template: >-
+ {{ .ProjectName }}_{{- tolower .Os }}_{{ .Arch }}
format_overrides:
- goos: windows
format: zip
diff --git a/vendor/github.com/butuzov/mirror/MIRROR_FUNCS.md b/vendor/github.com/butuzov/mirror/MIRROR_FUNCS.md
index 776816e514..3dcc01e960 100644
--- a/vendor/github.com/butuzov/mirror/MIRROR_FUNCS.md
+++ b/vendor/github.com/butuzov/mirror/MIRROR_FUNCS.md
@@ -1,150 +1,201 @@
-
-func (b *bufio.Writer) WriteString(s string) (int, error) |
-
- func (b *bufio.Writer) Write(p []byte) (int, error)
- func (b *bufio.Writer) WriteRune(r rune) (int, error)
- |
+
+func (*bufio.Writer) Write([]byte) (int, error) |
+func (*bufio.Writer) WriteString(string) (int, error) |
+
+
+func (*bufio.Writer) WriteRune(rune) (int, error) |
+func (*bufio.Writer) WriteString(string) (int, error) |
+
+
+func (*bytes.Buffer) Write([]byte) (int, error) |
+func (*bytes.Buffer) WriteString(string) (int, error) |
+
+
+func (*bytes.Buffer) WriteRune(rune) (int, error) |
+func (*bytes.Buffer) WriteString(string) (int, error) |
+
+
+func bytes.Compare([]byte, []byte) int |
+func strings.Compare(string, string) int |
+
+
+func bytes.Contains([]byte, []byte) bool |
+func strings.Contains(string, string) bool |
+
+
+func bytes.ContainsAny([]byte, string) bool |
+func strings.ContainsAny(string, string) bool |
+
+
+func bytes.ContainsRune([]byte, byte) bool |
+func strings.ContainsRune(string, byte) bool |
+
+
+func bytes.Count([]byte, []byte) int |
+func strings.Count(string, string) int |
+
+
+func bytes.EqualFold([]byte, []byte) bool |
+func strings.EqualFold(string, string) bool |
+
+
+func bytes.HasPrefix([]byte, []byte) bool |
+func strings.HasPrefix(string, string) bool |
+
+
+func bytes.HasSuffix([]byte, []byte) bool |
+func strings.HasSuffix(string, string) bool |
+
+
+func bytes.Index([]byte, []byte) int |
+func strings.Index(string, string) int |
+
+
+func bytes.IndexAny([]byte, string) int |
+func strings.IndexAny(string, string) int |
+
+
+func bytes.IndexByte([]byte, byte) int |
+func strings.IndexByte(string, byte) int |
+
+
+func bytes.IndexFunc([]byte, func(rune) bool) int |
+func strings.IndexFunc(string, func(rune) bool) int |
-func (b *bytes.Buffer) WriteString(s string) (int, error) |
-
- func (b *bytes.Buffer) Write(p []byte) (int, error)
- func (b *bytes.Buffer) WriteRune(r rune) (int, error)
- |
+func bytes.IndexRune([]byte, rune) int |
+func strings.IndexRune(string, rune) int |
-func strings.Compare(a, b string) int |
-func bytes.Compare(a, b []byte) int |
+func bytes.LastIndex([]byte, []byte) int |
+func strings.LastIndex(string, string) int |
-func strings.Contains(s, substr string) bool |
-func bytes.Contains(b, subslice []byte) bool |
+func bytes.LastIndexAny([]byte, string) int |
+func strings.LastIndexAny(string, string) int |
-func strings.ContainsAny(s, chars string) bool |
-func bytes.ContainsAny(b []byte, chars string) bool |
+func bytes.LastIndexByte([]byte, byte) int |
+func strings.LastIndexByte(string, byte) int |
-func strings.ContainsRune(s string, r rune) bool |
-func bytes.ContainsRune(b []byte, r rune) bool |
+func bytes.LastIndexFunc([]byte, func(rune) bool) int |
+func strings.LastIndexFunc(string, func(rune) bool) int |
-func strings.Count(s, substr string) int |
-func bytes.Count(s, sep []byte) int |
+func bytes.NewBuffer([]byte) *bytes.Buffer |
+func bytes.NewBufferString(string) *bytes.Buffer |
-func strings.EqualFold(s, t string) bool |
-func bytes.EqualFold(s, t []byte) bool |
+func (*httptest.ResponseRecorder) Write([]byte) (int, error) |
+func (*httptest.ResponseRecorder) WriteString(string) (int, error) |
-func strings.HasPrefix(s, prefix string) bool |
-func bytes.HasPrefix(s, prefix []byte) bool |
+func (*maphash.Hash) Write([]byte) (int, error) |
+func (*maphash.Hash) WriteString(string) (int, error) |
-func strings.HasSuffix(s, suffix string) bool |
-func bytes.HasSuffix(s, suffix []byte) bool |
+func (*os.File) Write([]byte) (int, error) |
+func (*os.File) WriteString(string) (int, error) |
-func strings.Index(s, substr string) int |
-func bytes.Index(s, sep []byte) int |
+func regexp.Match(string, []byte) (bool, error) |
+func regexp.MatchString(string, string) (bool, error) |
-func strings.IndexAny(s, chars string) int |
-func bytes.IndexAny(s []byte, chars string) int |
+func (*regexp.Regexp) FindAllIndex([]byte, int) [][]int |
+func (*regexp.Regexp) FindAllStringIndex(string, int) [][]int |
-func strings.IndexByte(s string, c byte) int |
-func bytes.IndexByte(b []byte, c byte) int |
+func (*regexp.Regexp) FindAllSubmatchIndex([]byte, int) [][]int |
+func (*regexp.Regexp) FindAllStringSubmatchIndex(string, int) [][]int |
-func strings.IndexFunc(s string, f func(rune) bool) int |
-func bytes.IndexFunc(s []byte, f func(r rune) bool) int |
+func (*regexp.Regexp) FindIndex([]byte) []int |
+func (*regexp.Regexp) FindStringIndex(string) []int |
-func strings.IndexRune(s string, r rune) int |
-func bytes.IndexRune(s []byte, r rune) int |
+func (*regexp.Regexp) FindSubmatchIndex([]byte) []int |
+func (*regexp.Regexp) FindStringSubmatchIndex(string) []int |
-func strings.LastIndex(s, sep string) int |
-func bytes.LastIndex(s, sep []byte) int |
+func (*regexp.Regexp) Match([]byte) bool |
+func (*regexp.Regexp) MatchString(string) bool |
-func strings.LastIndexAny(s, chars string) int |
-func bytes.LastIndexAny(s []byte, chars string) int |
+func (*strings.Builder) Write([]byte) (int, error) |
+func (*strings.Builder) WriteString(string) (int, error) |
-func strings.LastIndexByte(s string, c byte) int |
-func bytes.LastIndexByte(s []byte, c byte) int |
+func (*strings.Builder) WriteRune(rune) (int, error) |
+func (*strings.Builder) WriteString(string) (int, error) |
-func strings.LastIndexFunc(s string, f func(rune) bool) int |
-func bytes.LastIndexFunc(s []byte, f func(r rune) bool) int |
+func strings.Compare(string) int |
+func bytes.Compare([]byte) int |
-func bytes.NewBufferString(s string) *bytes.Buffer |
-func bytes.NewBuffer(buf []byte *bytes.Buffer |
+func strings.Contains(string) bool |
+func bytes.Contains([]byte) bool |
-func (h *hash/maphash.Hash) WriteString(s string) (int, error) |
-func (h *hash/maphash.Hash) Write(b []byte) (int, error) |
+func strings.ContainsAny(string) bool |
+func bytes.ContainsAny([]byte) bool |
-func (rw *net/http/httptest.ResponseRecorder) WriteString(str string) (int, error) |
-func (rw *net/http/httptest.ResponseRecorder) Write(buf []byte) (int, error) |
+func strings.ContainsRune(string) bool |
+func bytes.ContainsRune([]byte) bool |
-func (f *os.File) WriteString(s string) (n int, err error) |
-func (f *os.File) Write(b []byte) (n int, err error) |
+func strings.EqualFold(string) bool |
+func bytes.EqualFold([]byte) bool |
-func regexp.MatchString(pattern string, s string) (bool, error) |
-func regexp.Match(pattern string, b []byte) (bool, error) |
+func strings.HasPrefix(string) bool |
+func bytes.HasPrefix([]byte) bool |
-func (re *regexp.Regexp) FindAllStringIndex(s string, n int) [][]int |
-func (re *regexp.Regexp) FindAllIndex(b []byte, n int) [][]int |
+func strings.HasSuffix(string) bool |
+func bytes.HasSuffix([]byte) bool |
-func (re *regexp.Regexp) FindAllStringSubmatch(s string, n int) [][]string |
-func (re *regexp.Regexp) FindAllSubmatch(b []byte, n int) [][][]byte |
+func strings.Index(string) int |
+func bytes.Index([]byte) int |
-func (re *regexp.Regexp) FindStringIndex(s string) (loc []int) |
-func (re *regexp.Regexp) FindIndex(b []byte) (loc []int) |
+func strings.IndexFunc(string, func(r rune) bool) int |
+func bytes.IndexFunc([]byte, func(r rune) bool) int |
-func (re *regexp.Regexp) FindStringSubmatchIndex(s string) []int |
-func (re *regexp.Regexp) FindSubmatchIndex(b []byte) []int |
+func strings.LastIndex(string) int |
+func bytes.LastIndex([]byte) int |
-func (re *regexp.Regexp) MatchString(s string) bool |
-func (re *regexp.Regexp) Match(b []byte) bool |
+func strings.LastIndexAny(string) int |
+func bytes.LastIndexAny([]byte) int |
-func (b *strings.Builder) WriteString(s string) error |
-
- func (b *strings.Builder) Write(p []byte) (int, error)
- func (b *strings.Builder) WriteRune(r rune) (int, error)
- |
+func strings.LastIndexFunc(string, func(r rune) bool) int |
+func bytes.LastIndexFunc([]byte, func(r rune) bool) int |
-func utf8.ValidString(s string) bool |
-func utf8.Valid(p []byte) bool |
+func utf8.DecodeLastRune([]byte) (rune, int) |
+func utf8.DecodeLastRuneInString(string) (rune, int) |
-func utf8.FullRuneInString(s string) bool |
-func utf8.FullRune(p []byte) bool |
+func utf8.DecodeRune([]byte) (rune, int) |
+func utf8.DecodeRuneInString(string) (rune, int) |
-func utf8.RuneCountInString(s string) (n int) |
-func utf8.RuneCount(p []byte) int |
+func utf8.FullRune([]byte) bool |
+func utf8.FullRuneInString(string) bool |
-func utf8.DecodeLastRuneInString(s string) (rune, int) |
-func utf8.DecodeLastRune(p []byte) (rune, int) |
+func utf8.RuneCount([]byte) int |
+func utf8.RuneCountInString(string) int |
-func utf8.DecodeRuneInString(s string) (une, int) |
-func utf8.DecodeRune(p []byte) (rune, int) |
+func utf8.Valid([]byte) bool |
+func utf8.ValidString(string) bool |
-
+
diff --git a/vendor/github.com/butuzov/mirror/Makefile b/vendor/github.com/butuzov/mirror/Makefile
index b4b952b012..ac267208fb 100644
--- a/vendor/github.com/butuzov/mirror/Makefile
+++ b/vendor/github.com/butuzov/mirror/Makefile
@@ -2,57 +2,130 @@
export PATH := $(PWD)/bin:$(PATH) # ./bin to $PATH
export SHELL := bash # Default Shell
-GOPKGS := $(shell go list ./... | grep -vE "(cmd|sandbox|testdata)" | tr -s '\n' ',' | sed 's/.\{1\}$$//' )
+define install_go_bin
+ @ which $(1) 2>&1 1>/dev/null || GOBIN=$(PWD)/bin go install $(2)
+endef
+.DEFAULT_GOAL := help
-build:
- @ go build -trimpath -ldflags="-w -s" \
- -o bin/mirror ./cmd/mirror/
+# Generate Artifacts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+generate: ## Generate Assets
+ $(MAKE)
-build-race:
- @ go build -race -trimpath -ldflags="-w -s" \
- -o bin/mirror ./cmd/mirror/
+generate-tests: ## Generates Assets at testdata
+ go run ./cmd/internal/tests/ "$(PWD)/testdata"
-tests:
- go test -v -count=1 -race \
+generate-mirror-table: ## Generate Asset MIRROR_FUNCS.md
+ go run ./cmd/internal/mirror-table/ > "$(PWD)/MIRROR_FUNCS.md"
+
+
+# Build Artifacts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+build: ## Build binary
+ @ go build -trimpath -ldflags="-w -s" -o bin/mirror ./cmd/mirror/
+
+build-race: ## Build binary with race flag
+ @ go build -race -trimpath -ldflags="-w -s" -o bin/mirror ./cmd/mirror/
+
+install: ## Installs binary
+ @ go install -trimpath -v -ldflags="-w -s" ./cmd/mirror
+
+# Run Tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+tests: ## Run Tests (Summary)
+ @ go test -v -count=1 -race \
-failfast \
-parallel=2 \
-timeout=1m \
-covermode=atomic \
- -coverpkg=$(GOPKGS) -coverprofile=coverage.cov ./...
+ -coverprofile=coverage.cov ./...
-tests-summary:
- go test -v -count=1 -race \
+tests-summary: ## Run Tests, but shows summary
+tests-summary: bin/tparse
+ @ go test -v -count=1 -race \
-failfast \
-parallel=2 \
-timeout=1m \
-covermode=atomic \
- -coverpkg=$(GOPKGS) -coverprofile=coverage.cov --json ./... | tparse -all
+ -coverprofile=coverage.cov --json ./... | tparse -all
-test-generate:
- go run ./cmd/internal/generate-tests/ "$(PWD)/testdata"
+# Linter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+lints: ## Run golangci-lint
+lints: bin/golangci-lint
lints:
- golangci-lint run --no-config ./... -D deadcode --skip-dirs "^(cmd|sandbox|testdata)"
+ golangci-lint run --no-config ./... --skip-dirs "^(cmd|testdata)"
-cover:
- go tool cover -html=coverage.cov
+cover: ## Run Coverage
+ @ go tool cover -html=coverage.cov
+
+# Other ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+test-release: bin/goreleaser
+ goreleaser release --help
+ goreleaser release --skip=publish --skip=validate --clean
+
+# Install ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-install:
- go install -trimpath -v -ldflags="-w -s" \
- ./cmd/mirror
+bin/tparse: ## Installs tparse@v0.13.2 (if not exists)
+bin/tparse: INSTALL_URL=github.com/mfridman/tparse@v0.13.2
+bin/tparse:
+ $(call install_go_bin, tparse, $(INSTALL_URL))
-funcs:
- echo "" > "out/results.txt"
- go list std | grep -v "vendor" | grep -v "internal" | \
- xargs -I {} sh -c 'go doc -all {} > out/$(basename {}).txt'
+bin/golangci-lint: ## Installs golangci-lint@v1.55.2 (if not exists)
+bin/golangci-lint: INSTALL_URL=github.com/golangci/golangci-lint@v1.55.2
+bin/golangci-lint:
+ $(call install_go_bin, golangci-lint, $(INSTALL_URL))
+bin/goreleaser: ## Installs goreleaser@v1.24.0 (if not exists)
+bin/goreleaser: INSTALL_URL=github.com/goreleaser/goreleaser@v1.24.0
bin/goreleaser:
- @curl -Ls https://github.com/goreleaser/goreleaser/releases/download/v1.17.2/goreleaser_Darwin_all.tar.gz | tar -zOxf - goreleaser > ./bin/goreleaser
- chmod 0755 ./bin/goreleaser
+ $(call install_go_bin, goreleaser, $(INSTALL_URL))
-test-release: bin/goreleaser
- goreleaser release --help
- goreleaser release -f .goreleaser.yaml \
- --skip-validate --skip-publish --clean
+# Help ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+help: dep-gawk
+ @ echo "=============================================================================="
+ @ echo " Makefile: github.com/butuzov/mirror "
+ @ echo "=============================================================================="
+ @ cat $(MAKEFILE_LIST) | \
+ grep -E '^# ~~~ .*? [~]+$$|^[a-zA-Z0-9_-]+:.*?## .*$$' | \
+ gawk '{if ( $$1=="#" ) { \
+ match($$0, /^# ~~~ (.+?) [~]+$$/, a);\
+ {print "\n", a[1], ""}\
+ } else { \
+ match($$0, /^([a-zA-Z/_-]+):.*?## (.*)$$/, a); \
+ {printf " - \033[32m%-20s\033[0m %s\n", a[1], a[2]} \
+ }}'
+ @ echo ""
+
+
+# Helper Mehtods ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+dep-gawk:
+ @ if [ -z "$(shell command -v gawk)" ]; then \
+ if [ -x /usr/local/bin/brew ]; then $(MAKE) _brew_gawk_install; exit 0; fi; \
+ if [ -x /usr/bin/apt-get ]; then $(MAKE) _ubuntu_gawk_install; exit 0; fi; \
+ if [ -x /usr/bin/yum ]; then $(MAKE) _centos_gawk_install; exit 0; fi; \
+ if [ -x /sbin/apk ]; then $(MAKE) _alpine_gawk_install; exit 0; fi; \
+ echo "GNU Awk Required.";\
+ exit 1; \
+ fi
+
+_brew_gawk_install:
+ @ echo "Instaling gawk using brew... "
+ @ brew install gawk --quiet
+ @ echo "done"
+
+_ubuntu_gawk_install:
+ @ echo "Instaling gawk using apt-get... "
+ @ apt-get -q install gawk -y
+ @ echo "done"
+
+_alpine_gawk_install:
+ @ echo "Instaling gawk using yum... "
+ @ apk add --update --no-cache gawk
+ @ echo "done"
+
+_centos_gawk_install:
+ @ echo "Instaling gawk using yum... "
+ @ yum install -q -y gawk;
+ @ echo "done"
diff --git a/vendor/github.com/butuzov/mirror/Taskfile.yml b/vendor/github.com/butuzov/mirror/Taskfile.yml
index 26c9ba2571..4bc7cfeda5 100644
--- a/vendor/github.com/butuzov/mirror/Taskfile.yml
+++ b/vendor/github.com/butuzov/mirror/Taskfile.yml
@@ -1,28 +1,73 @@
version: '3'
tasks:
- default:
- sources:
- - "./**/*.go"
- method: timestamp
- cmds:
- - clear
- - make build
- - make build-race
- - task: lints
- # - make test-generate
- - task: tests
- - cmd: go run ./cmd/mirror/ --with-tests --with-debug ./sandbox
- ignore_error: true
-
- testcase: go test -v -failfast -count=1 -run "TestAll/{{ .Case }}" ./...
-
- tests:
- cmds:
- - cmd: make tests
- ignore_error: true
-
- lints:
- cmds:
- - cmd: make lints
- ignore_error: true
+ default: task --list-all
+
+ # Continues Development ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ watcher:
+ desc: watcher
+ sources:
+ - ./**/*.go
+ method: timestamp
+ cmds:
+ - task: lints
+ - task: test-summary
+ - task: build-race
+
+ # Generating assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ generate:
+ desc: Generate Assets
+ sources:
+ - ./checkers_*.go
+ - ./cmd/internal/**/*.go
+ method: timestamp
+ cmds:
+ - task generate-mirror-table
+ - task generate-tests
+
+ generate-mirror-table:
+ desc: Generates Assets at testdata
+ cmd: make generate-mirror-table
+
+ generate-tests:
+ desc: Generate Asset MIRROR_FUNCS.md
+ cmd: make generate-tests
+
+ # Run Tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ tests:
+ desc: Run Tests
+ cmd: make tests
+ ignore_error: true
+
+ test-summary:
+ desc: Run Tests (Summary)
+ cmd: make tests-summary
+ ignore_error: true
+
+ testcase: go test -v -failfast -count=1 -run "TestAll/{{ .Case }}" ./...
+
+ # Build Artifacts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ build:
+ desc: Build binary
+ cmd: make build
+
+ build-race:
+ desc: Build binary with race flag
+ cmd: make build-race
+
+ install:
+ desc: Install binary
+ cmd: make install
+
+ # Linter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ lints:
+ cmd: make lints
+
+ # Other
+ cover:
+ desc: Run Coverage
+ cmd: make cover
+
+ test-release:
+ desc: Testing Release
+ cmd: make test-release
diff --git a/vendor/github.com/butuzov/mirror/checkers_bufio.go b/vendor/github.com/butuzov/mirror/checkers_bufio.go
index 292ed269aa..0985edad32 100644
--- a/vendor/github.com/butuzov/mirror/checkers_bufio.go
+++ b/vendor/github.com/butuzov/mirror/checkers_bufio.go
@@ -15,7 +15,7 @@ var BufioMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `b := bufio.Writer{}`,
Pattern: `Write($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*bufio.Writer).WriteString
@@ -30,7 +30,7 @@ var BufioMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `b := bufio.Writer{}`,
Pattern: `WriteString($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*bufio.Writer).WriteString -> (*bufio.Writer).WriteRune
@@ -42,15 +42,11 @@ var BufioMethods = []checker.Violation{
Args: []int{0},
ArgsType: checker.Rune,
AltCaller: "WriteRune",
+
+ Generate: &checker.Generate{
+ SkipGenerate: true,
+ Pattern: `WriteString($0)`,
+ Returns: []string{"int", "error"},
+ },
},
- // { // (*bufio.Writer).WriteString -> (*bufio.Writer).WriteByte
- // Targets: checker.Strings,
- // Type: checker.Method,
- // Package: "strings",
- // Struct: "Builder",
- // Caller: "WriteString",
- // Args: []int{0},
- // ArgsType: checker.Byte,
- // AltCaller: "WriteByte", // byte
- // },
}
diff --git a/vendor/github.com/butuzov/mirror/checkers_bytes.go b/vendor/github.com/butuzov/mirror/checkers_bytes.go
index c490a3784e..b8819879cc 100644
--- a/vendor/github.com/butuzov/mirror/checkers_bytes.go
+++ b/vendor/github.com/butuzov/mirror/checkers_bytes.go
@@ -14,7 +14,7 @@ var (
Generate: &checker.Generate{
Pattern: `NewBuffer($0)`,
- Returns: 1,
+ Returns: []string{"*bytes.Buffer"},
},
},
{ // bytes.NewBufferString
@@ -27,7 +27,7 @@ var (
Generate: &checker.Generate{
Pattern: `NewBufferString($0)`,
- Returns: 1,
+ Returns: []string{"*bytes.Buffer"},
},
},
{ // bytes.Compare:
@@ -41,7 +41,7 @@ var (
Generate: &checker.Generate{
Pattern: `Compare($0, $1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.Contains:
@@ -55,7 +55,7 @@ var (
Generate: &checker.Generate{
Pattern: `Contains($0, $1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // bytes.ContainsAny
@@ -69,7 +69,7 @@ var (
Generate: &checker.Generate{
Pattern: `ContainsAny($0, "f")`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // bytes.ContainsRune
@@ -83,7 +83,7 @@ var (
Generate: &checker.Generate{
Pattern: `ContainsRune($0, 'Ñ„')`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // bytes.Count
@@ -97,7 +97,7 @@ var (
Generate: &checker.Generate{
Pattern: `Count($0, $1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.EqualFold
@@ -111,7 +111,7 @@ var (
Generate: &checker.Generate{
Pattern: `EqualFold($0, $1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
@@ -126,7 +126,7 @@ var (
Generate: &checker.Generate{
Pattern: `HasPrefix($0, $1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // bytes.HasSuffix
@@ -140,7 +140,7 @@ var (
Generate: &checker.Generate{
Pattern: `HasSuffix($0, $1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // bytes.Index
@@ -154,7 +154,7 @@ var (
Generate: &checker.Generate{
Pattern: `Index($0, $1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.IndexAny
@@ -168,7 +168,7 @@ var (
Generate: &checker.Generate{
Pattern: `IndexAny($0, "f")`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.IndexByte
@@ -182,7 +182,7 @@ var (
Generate: &checker.Generate{
Pattern: `IndexByte($0, 'f')`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.IndexFunc
@@ -196,7 +196,7 @@ var (
Generate: &checker.Generate{
Pattern: `IndexFunc($0, func(rune) bool {return true })`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.IndexRune
@@ -210,7 +210,7 @@ var (
Generate: &checker.Generate{
Pattern: `IndexRune($0, rune('Ñ„'))`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.LastIndex
@@ -224,7 +224,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndex($0, $1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.LastIndexAny
@@ -238,7 +238,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndexAny($0, "Ñ„")`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.LastIndexByte
@@ -252,7 +252,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndexByte($0, 'f')`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.LastIndexFunc
@@ -266,7 +266,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndexFunc($0, func(rune) bool {return true })`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
}
@@ -284,7 +284,7 @@ var (
Generate: &checker.Generate{
PreCondition: `bb := bytes.Buffer{}`,
Pattern: `Write($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*bytes.Buffer).WriteString
@@ -299,7 +299,7 @@ var (
Generate: &checker.Generate{
PreCondition: `bb := bytes.Buffer{}`,
Pattern: `WriteString($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*bytes.Buffer).WriteString -> (*bytes.Buffer).WriteRune
@@ -311,6 +311,11 @@ var (
Args: []int{0},
ArgsType: checker.Rune,
AltCaller: "WriteRune",
+ Generate: &checker.Generate{
+ SkipGenerate: true,
+ Pattern: `WriteString($0)`,
+ Returns: []string{"int", "error"},
+ },
},
// { // (*bytes.Buffer).WriteString -> (*bytes.Buffer).WriteByte
// Targets: checker.Strings,
diff --git a/vendor/github.com/butuzov/mirror/checkers_httptest.go b/vendor/github.com/butuzov/mirror/checkers_httptest.go
index ae67509300..c28bb1ade4 100644
--- a/vendor/github.com/butuzov/mirror/checkers_httptest.go
+++ b/vendor/github.com/butuzov/mirror/checkers_httptest.go
@@ -15,7 +15,7 @@ var HTTPTestMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `h := httptest.ResponseRecorder{}`,
Pattern: `Write($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*net/http/httptest.ResponseRecorder).WriteString
@@ -30,7 +30,7 @@ var HTTPTestMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `h := httptest.ResponseRecorder{}`,
Pattern: `WriteString($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
}
diff --git a/vendor/github.com/butuzov/mirror/checkers_maphash.go b/vendor/github.com/butuzov/mirror/checkers_maphash.go
index 4d184d2a95..0aa43ff7bb 100644
--- a/vendor/github.com/butuzov/mirror/checkers_maphash.go
+++ b/vendor/github.com/butuzov/mirror/checkers_maphash.go
@@ -15,7 +15,7 @@ var MaphashMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `h := maphash.Hash{}`,
Pattern: `Write($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*hash/maphash).WriteString
@@ -30,7 +30,7 @@ var MaphashMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `h := maphash.Hash{}`,
Pattern: `WriteString($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
}
diff --git a/vendor/github.com/butuzov/mirror/checkers_os.go b/vendor/github.com/butuzov/mirror/checkers_os.go
index 09f5a18e58..40973576b6 100644
--- a/vendor/github.com/butuzov/mirror/checkers_os.go
+++ b/vendor/github.com/butuzov/mirror/checkers_os.go
@@ -15,7 +15,7 @@ var OsFileMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `f := &os.File{}`,
Pattern: `Write($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*os.File).WriteString
@@ -30,7 +30,7 @@ var OsFileMethods = []checker.Violation{
Generate: &checker.Generate{
PreCondition: `f := &os.File{}`,
Pattern: `WriteString($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
}
diff --git a/vendor/github.com/butuzov/mirror/checkers_regexp.go b/vendor/github.com/butuzov/mirror/checkers_regexp.go
index 17175e0286..2cd4dc9f80 100644
--- a/vendor/github.com/butuzov/mirror/checkers_regexp.go
+++ b/vendor/github.com/butuzov/mirror/checkers_regexp.go
@@ -14,7 +14,7 @@ var (
Generate: &checker.Generate{
Pattern: `Match("foo", $0)`,
- Returns: 2,
+ Returns: []string{"bool", "error"},
},
},
{ // regexp.MatchString
@@ -27,7 +27,7 @@ var (
Generate: &checker.Generate{
Pattern: `MatchString("foo", $0)`,
- Returns: 2,
+ Returns: []string{"bool", "error"},
},
},
}
@@ -45,7 +45,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `Match($0)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // (*regexp.Regexp).MatchString
@@ -60,7 +60,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `MatchString($0)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // (*regexp.Regexp).FindAllIndex
@@ -75,7 +75,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindAllIndex($0, 1)`,
- Returns: 1,
+ Returns: []string{"[][]int"},
},
},
{ // (*regexp.Regexp).FindAllStringIndex
@@ -90,7 +90,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindAllStringIndex($0, 1)`,
- Returns: 1,
+ Returns: []string{"[][]int"},
},
},
{ // (*regexp.Regexp).FindAllSubmatchIndex
@@ -105,7 +105,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindAllSubmatchIndex($0, 1)`,
- Returns: 1,
+ Returns: []string{"[][]int"},
},
},
{ // (*regexp.Regexp).FindAllStringSubmatchIndex
@@ -120,7 +120,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindAllStringSubmatchIndex($0, 1)`,
- Returns: 1,
+ Returns: []string{"[][]int"},
},
},
{ // (*regexp.Regexp).FindIndex
@@ -135,7 +135,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindIndex($0)`,
- Returns: 1,
+ Returns: []string{"[]int"},
},
},
{ // (*regexp.Regexp).FindStringIndex
@@ -150,7 +150,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindStringIndex($0)`,
- Returns: 1,
+ Returns: []string{"[]int"},
},
},
{ // (*regexp.Regexp).FindSubmatchIndex
@@ -165,7 +165,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindSubmatchIndex($0)`,
- Returns: 1,
+ Returns: []string{"[]int"},
},
},
{ // (*regexp.Regexp).FindStringSubmatchIndex
@@ -180,7 +180,7 @@ var (
Generate: &checker.Generate{
PreCondition: `re := regexp.MustCompile(".*")`,
Pattern: `FindStringSubmatchIndex($0)`,
- Returns: 1,
+ Returns: []string{"[]int"},
},
},
}
diff --git a/vendor/github.com/butuzov/mirror/checkers_strings.go b/vendor/github.com/butuzov/mirror/checkers_strings.go
index ead7e9cc7e..3bd59a62fa 100644
--- a/vendor/github.com/butuzov/mirror/checkers_strings.go
+++ b/vendor/github.com/butuzov/mirror/checkers_strings.go
@@ -15,7 +15,7 @@ var (
Generate: &checker.Generate{
Pattern: `Compare($0,$1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.Contains
@@ -29,7 +29,7 @@ var (
Generate: &checker.Generate{
Pattern: `Contains($0,$1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // strings.ContainsAny
@@ -43,7 +43,7 @@ var (
Generate: &checker.Generate{
Pattern: `ContainsAny($0,"foobar")`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // strings.ContainsRune
@@ -57,7 +57,7 @@ var (
Generate: &checker.Generate{
Pattern: `ContainsRune($0,'Ñ„')`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // strings.Count
@@ -71,7 +71,7 @@ var (
Generate: &checker.Generate{
Pattern: `Count($0, $1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.EqualFold
@@ -85,7 +85,7 @@ var (
Generate: &checker.Generate{
Pattern: `EqualFold($0,$1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // strings.HasPrefix
@@ -99,7 +99,7 @@ var (
Generate: &checker.Generate{
Pattern: `HasPrefix($0,$1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // strings.HasSuffix
@@ -113,7 +113,7 @@ var (
Generate: &checker.Generate{
Pattern: `HasSuffix($0,$1)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // strings.Index
@@ -127,7 +127,7 @@ var (
Generate: &checker.Generate{
Pattern: `Index($0,$1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.IndexAny
@@ -141,7 +141,7 @@ var (
Generate: &checker.Generate{
Pattern: `IndexAny($0, "f")`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.IndexByte
@@ -154,8 +154,8 @@ var (
AltCaller: "IndexByte",
Generate: &checker.Generate{
- Pattern: `IndexByte($0, byte('f'))`,
- Returns: 1,
+ Pattern: `IndexByte($0, 'f')`,
+ Returns: []string{"int"},
},
},
{ // strings.IndexFunc
@@ -168,8 +168,8 @@ var (
AltCaller: "IndexFunc",
Generate: &checker.Generate{
- Pattern: `IndexFunc($0,func(r rune) bool { return true })`,
- Returns: 1,
+ Pattern: `IndexFunc($0, func(r rune) bool { return true })`,
+ Returns: []string{"int"},
},
},
{ // strings.IndexRune
@@ -183,7 +183,7 @@ var (
Generate: &checker.Generate{
Pattern: `IndexRune($0, rune('Ñ„'))`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.LastIndex
@@ -197,7 +197,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndex($0,$1)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.LastIndexAny
@@ -211,7 +211,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndexAny($0,"f")`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // strings.LastIndexByte
@@ -224,8 +224,8 @@ var (
AltCaller: "LastIndexByte",
Generate: &checker.Generate{
- Pattern: `LastIndexByte($0, byte('f'))`,
- Returns: 1,
+ Pattern: `LastIndexByte($0, 'f')`,
+ Returns: []string{"int"},
},
},
{ // strings.LastIndexFunc
@@ -239,7 +239,7 @@ var (
Generate: &checker.Generate{
Pattern: `LastIndexFunc($0, func(r rune) bool { return true })`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
}
@@ -257,7 +257,7 @@ var (
Generate: &checker.Generate{
PreCondition: `builder := strings.Builder{}`,
Pattern: `Write($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*strings.Builder).WriteString
@@ -272,7 +272,7 @@ var (
Generate: &checker.Generate{
PreCondition: `builder := strings.Builder{}`,
Pattern: `WriteString($0)`,
- Returns: 2,
+ Returns: []string{"int", "error"},
},
},
{ // (*strings.Builder).WriteString -> (*strings.Builder).WriteRune
@@ -284,6 +284,11 @@ var (
Args: []int{0},
ArgsType: checker.Rune,
AltCaller: "WriteRune",
+ Generate: &checker.Generate{
+ SkipGenerate: true,
+ Pattern: `WriteString($0)`,
+ Returns: []string{"int", "error"},
+ },
},
// { // (*strings.Builder).WriteString -> (*strings.Builder).WriteByte
// Targets: checker.Strings,
diff --git a/vendor/github.com/butuzov/mirror/checkers_utf8.go b/vendor/github.com/butuzov/mirror/checkers_utf8.go
index e7c4d5ba4d..fd3010c37e 100644
--- a/vendor/github.com/butuzov/mirror/checkers_utf8.go
+++ b/vendor/github.com/butuzov/mirror/checkers_utf8.go
@@ -13,7 +13,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `Valid($0)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // utf8.ValidString
@@ -26,7 +26,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `ValidString($0)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // utf8.FullRune
@@ -39,7 +39,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `FullRune($0)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
{ // utf8.FullRuneInString
@@ -52,7 +52,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `FullRuneInString($0)`,
- Returns: 1,
+ Returns: []string{"bool"},
},
},
@@ -66,7 +66,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `RuneCount($0)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
{ // bytes.RuneCountInString
@@ -79,7 +79,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `RuneCountInString($0)`,
- Returns: 1,
+ Returns: []string{"int"},
},
},
@@ -93,7 +93,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `DecodeLastRune($0)`,
- Returns: 2,
+ Returns: []string{"rune", "int"},
},
},
{ // utf8.DecodeLastRuneInString
@@ -106,7 +106,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `DecodeLastRuneInString($0)`,
- Returns: 2,
+ Returns: []string{"rune", "int"},
},
},
{ // utf8.DecodeRune
@@ -119,7 +119,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `DecodeRune($0)`,
- Returns: 2,
+ Returns: []string{"rune", "int"},
},
},
{ // utf8.DecodeRuneInString
@@ -132,7 +132,7 @@ var UTF8Functions = []checker.Violation{
Generate: &checker.Generate{
Pattern: `DecodeRuneInString($0)`,
- Returns: 2,
+ Returns: []string{"rune", "int"},
},
},
}
diff --git a/vendor/github.com/butuzov/mirror/internal/checker/violation.go b/vendor/github.com/butuzov/mirror/internal/checker/violation.go
index 375d3c8e65..3d8acf1415 100644
--- a/vendor/github.com/butuzov/mirror/internal/checker/violation.go
+++ b/vendor/github.com/butuzov/mirror/internal/checker/violation.go
@@ -52,9 +52,10 @@ type Violation struct {
// Tests (generation) related struct.
type Generate struct {
- PreCondition string // Precondition we want to be generated
- Pattern string // Generate pattern (for the `want` message)
- Returns int // Expected to return n elements
+ SkipGenerate bool
+ PreCondition string // Precondition we want to be generated
+ Pattern string // Generate pattern (for the `want` message)
+ Returns []string // ReturnTypes as slice
}
func (v *Violation) With(base []byte, e *ast.CallExpr, args map[int]ast.Expr) *Violation {
@@ -165,7 +166,7 @@ type GolangIssue struct {
Original string
}
-// Issue inteanded to be used only with golangci-lint, bu you can use use it
+// Issue intended to be used only within `golangci-lint`, bu you can use use it
// alongside Diagnostic if you wish.
func (v *Violation) Issue(fSet *token.FileSet) GolangIssue {
issue := GolangIssue{
@@ -174,7 +175,7 @@ func (v *Violation) Issue(fSet *token.FileSet) GolangIssue {
Message: v.Message(),
}
- // original expression (useful for debug & requied for replace)
+ // original expression (useful for debug & required for replace)
var buf bytes.Buffer
printer.Fprint(&buf, fSet, v.callExpr)
issue.Original = buf.String()
diff --git a/vendor/github.com/butuzov/mirror/readme.md b/vendor/github.com/butuzov/mirror/readme.md
index fcfd1de11a..f830ea72ea 100644
--- a/vendor/github.com/butuzov/mirror/readme.md
+++ b/vendor/github.com/butuzov/mirror/readme.md
@@ -1,10 +1,7 @@
-# `mirror` [![Code Coverage](https://coveralls.io/repos/github/butuzov/mirror/badge.svg?branch=main)](https://coveralls.io/github/butuzov/mirror?branch=main) [![build status](https://github.com/butuzov/mirror/actions/workflows/main.yaml/badge.svg?branch=main)]()
+# `mirror` [![Stand with Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://u24.gov.ua/) [![Code Coverage](https://coveralls.io/repos/github/butuzov/mirror/badge.svg?branch=main)](https://coveralls.io/github/butuzov/mirror?branch=main) [![build status](https://github.com/butuzov/mirror/actions/workflows/main.yaml/badge.svg?branch=main)]()
`mirror` suggests use of alternative functions/methods in order to gain performance boosts by avoiding unnecessary `[]byte/string` conversion calls. See [MIRROR_FUNCS.md](MIRROR_FUNCS.md) list of mirror functions you can use in go's stdlib.
-## 🇺🇦 PLEASE HELP ME 🇺🇦
-Fundrise for scout drone **DJI Matrice 30T** for my squad (Ukrainian Forces). See more details at [butuzov/README.md](https://github.com/butuzov/butuzov/)
-
## Linter Use Cases
### `github.com/argoproj/argo-cd`
@@ -35,6 +32,10 @@ func IsValidHostname(hostname string, fqdn bool) bool {
go install github.com/butuzov/mirror/cmd/mirror@latest
```
+### `golangci-lint`
+`golangci-lint` supports `mirror` since `v1.53.0`
+
+
## How to use
You run `mirror` with [`go vet`](https://pkg.go.dev/cmd/vet):
@@ -55,6 +56,59 @@ mirror ./...
/air/runner/util.go:173:14: avoid allocations with (*os.File).WriteString
```
+With [`golangci-lint`](https://github.com/golangci/golangci-lint)
+
+```
+golangci-lint run --no-config --disable-all -Emirror
+# github.com/argoproj/argo-cd
+test/e2e/fixture/app/actions.go:83:11: avoid allocations with (*os.File).WriteString (mirror)
+ _, err = tmpFile.Write([]byte(data))
+ ^
+server/server.go:1166:9: avoid allocations with (*regexp.Regexp).MatchString (mirror)
+ return mainJsBundleRegex.Match([]byte(filename))
+ ^
+server/account/account.go:91:6: avoid allocations with (*regexp.Regexp).MatchString (mirror)
+ if !validPasswordRegexp.Match([]byte(q.NewPassword)) {
+ ^
+server/badge/badge.go:52:20: avoid allocations with (*regexp.Regexp).FindAllStringSubmatchIndex (mirror)
+ for _, v := range re.FindAllSubmatchIndex([]byte(str), -1) {
+ ^
+util/cert/cert.go:82:10: avoid allocations with (*regexp.Regexp).MatchString (mirror)
+ return validHostNameRegexp.Match([]byte(hostname)) || validIPv6Regexp.Match([]byte(hostname))
+```
+
## Command line
- You can add checks for `_test.go` files with cli option `--with-tests`
+
+### `golangci-lint`
+ With `golangci-lint` tests are checked by default and can be can be turned off by using the regular `golangci-lint` ways to do it:
+
+ - flag `--tests` (e.g. `--tests=false`)
+ - flag `--skip-files` (e.g. `--skip-files="_test.go"`)
+ - yaml confguration `run.skip-files`:
+ ```yaml
+ run:
+ skip-files:
+ - '(.+)_test\.go'
+ ```
+ - yaml confguration `issues.exclude-rules`:
+ ```yaml
+ issues:
+ exclude-rules:
+ - path: '(.+)_test\.go'
+ linters:
+ - mirror
+ ```
+
+
+## Contributing
+
+```shell
+# Update Assets (testdata/(strings|bytes|os|utf8|maphash|regexp|bufio).go)
+(task|make) generated
+# Run Tests
+(task|make) tests
+# Lint Code
+(task|make) lints
+```
diff --git a/vendor/github.com/ckaznocha/intrange/intrange.go b/vendor/github.com/ckaznocha/intrange/intrange.go
index f8d037dc49..fac4e3deae 100644
--- a/vendor/github.com/ckaznocha/intrange/intrange.go
+++ b/vendor/github.com/ckaznocha/intrange/intrange.go
@@ -234,21 +234,19 @@ func check(pass *analysis.Pass) func(node ast.Node) {
func findNExpr(expr ast.Expr) ast.Expr {
switch e := expr.(type) {
case *ast.CallExpr:
- if e.Fun.(*ast.Ident).Name != "len" {
- return nil
+ if fun, ok := e.Fun.(*ast.Ident); ok && fun.Name == "len" && len(e.Args) == 1 {
+ return findNExpr(e.Args[0])
}
- if len(e.Args) != 1 {
- return nil
- }
-
- return findNExpr(e.Args[0])
+ return nil
case *ast.BasicLit:
return nil
case *ast.Ident:
return e
case *ast.SelectorExpr:
return e
+ case *ast.IndexExpr:
+ return e
default:
return nil
}
@@ -297,7 +295,19 @@ func identEqual(a, b ast.Expr) bool {
return identEqual(aT.Sel, selectorB.Sel) && identEqual(aT.X, selectorB.X)
case *ast.IndexExpr:
+ indexB, ok := b.(*ast.IndexExpr)
+ if ok {
+ return identEqual(aT.X, indexB.X) && identEqual(aT.Index, indexB.Index)
+ }
+
return identEqual(aT.X, b)
+ case *ast.BasicLit:
+ litB, ok := b.(*ast.BasicLit)
+ if !ok {
+ return false
+ }
+
+ return aT.Value == litB.Value
default:
return false
}
diff --git a/vendor/github.com/daixiang0/gci/pkg/config/config.go b/vendor/github.com/daixiang0/gci/pkg/config/config.go
index 51f6ccf3b7..cc43f2fa07 100644
--- a/vendor/github.com/daixiang0/gci/pkg/config/config.go
+++ b/vendor/github.com/daixiang0/gci/pkg/config/config.go
@@ -10,12 +10,13 @@ import (
)
var defaultOrder = map[string]int{
- section.StandardType: 0,
- section.DefaultType: 1,
- section.CustomType: 2,
- section.BlankType: 3,
- section.DotType: 4,
- section.AliasType: 5,
+ section.StandardType: 0,
+ section.DefaultType: 1,
+ section.CustomType: 2,
+ section.BlankType: 3,
+ section.DotType: 4,
+ section.AliasType: 5,
+ section.LocalModuleType: 6,
}
type BoolConfig struct {
@@ -37,6 +38,10 @@ type YamlConfig struct {
Cfg BoolConfig `yaml:",inline"`
SectionStrings []string `yaml:"sections"`
SectionSeparatorStrings []string `yaml:"sectionseparators"`
+
+ // Since history issue, Golangci-lint needs Analyzer to run and GCI add an Analyzer layer to integrate.
+ // The ModPath param is only from analyzer.go, no need to set it in all other places.
+ ModPath string `yaml:"-"`
}
func (g YamlConfig) Parse() (*Config, error) {
@@ -49,6 +54,9 @@ func (g YamlConfig) Parse() (*Config, error) {
if sections == nil {
sections = section.DefaultSections()
}
+ if err := configureSections(sections, g.ModPath); err != nil {
+ return nil, err
+ }
// if default order sorted sections
if !g.Cfg.CustomOrder {
@@ -88,3 +96,18 @@ func ParseConfig(in string) (*Config, error) {
return gciCfg, nil
}
+
+// configureSections now only do golang module path finding.
+// Since history issue, Golangci-lint needs Analyzer to run and GCI add an Analyzer layer to integrate.
+// The path param is from analyzer.go, in all other places should pass empty string.
+func configureSections(sections section.SectionList, path string) error {
+ for _, sec := range sections {
+ switch s := sec.(type) {
+ case *section.LocalModule:
+ if err := s.Configure(path); err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/daixiang0/gci/pkg/gci/testdata.go b/vendor/github.com/daixiang0/gci/pkg/gci/testdata.go
index 4f60e88069..866ae84c49 100644
--- a/vendor/github.com/daixiang0/gci/pkg/gci/testdata.go
+++ b/vendor/github.com/daixiang0/gci/pkg/gci/testdata.go
@@ -421,7 +421,7 @@ import (
`,
},
{
- "comment-whithout-whitespace",
+ "comment-without-whitespace",
commonConfig,
diff --git a/vendor/github.com/daixiang0/gci/pkg/section/local_module.go b/vendor/github.com/daixiang0/gci/pkg/section/local_module.go
new file mode 100644
index 0000000000..50f41e5017
--- /dev/null
+++ b/vendor/github.com/daixiang0/gci/pkg/section/local_module.go
@@ -0,0 +1,59 @@
+package section
+
+import (
+ "fmt"
+ "os"
+ "strings"
+
+ "golang.org/x/mod/modfile"
+
+ "github.com/daixiang0/gci/pkg/parse"
+ "github.com/daixiang0/gci/pkg/specificity"
+)
+
+const LocalModuleType = "localmodule"
+
+type LocalModule struct {
+ Path string
+}
+
+func (m *LocalModule) MatchSpecificity(spec *parse.GciImports) specificity.MatchSpecificity {
+ if spec.Path == m.Path || strings.HasPrefix(spec.Path, m.Path+"/") {
+ return specificity.LocalModule{}
+ }
+
+ return specificity.MisMatch{}
+}
+
+func (m *LocalModule) String() string {
+ return LocalModuleType
+}
+
+func (m *LocalModule) Type() string {
+ return LocalModuleType
+}
+
+// Configure configures the module section by finding the module
+// for the current path
+func (m *LocalModule) Configure(path string) error {
+ if path != "" {
+ m.Path = path
+ } else {
+ path, err := findLocalModule()
+ if err != nil {
+ return fmt.Errorf("finding local modules for `localModule` configuration: %w", err)
+ }
+ m.Path = path
+ }
+
+ return nil
+}
+
+func findLocalModule() (string, error) {
+ b, err := os.ReadFile("go.mod")
+ if err != nil {
+ return "", fmt.Errorf("reading go.mod: %w", err)
+ }
+
+ return modfile.ModulePath(b), nil
+}
diff --git a/vendor/github.com/daixiang0/gci/pkg/section/parser.go b/vendor/github.com/daixiang0/gci/pkg/section/parser.go
index 38435f540e..62ed1582af 100644
--- a/vendor/github.com/daixiang0/gci/pkg/section/parser.go
+++ b/vendor/github.com/daixiang0/gci/pkg/section/parser.go
@@ -35,6 +35,9 @@ func Parse(data []string) (SectionList, error) {
list = append(list, Blank{})
} else if s == "alias" {
list = append(list, Alias{})
+ } else if s == "localmodule" {
+ // pointer because we need to mutate the section at configuration time
+ list = append(list, &LocalModule{})
} else {
errString += fmt.Sprintf(" %s", s)
}
diff --git a/vendor/github.com/daixiang0/gci/pkg/section/standard_list.go b/vendor/github.com/daixiang0/gci/pkg/section/standard_list.go
index 551bba4285..a2cd0a6dd2 100644
--- a/vendor/github.com/daixiang0/gci/pkg/section/standard_list.go
+++ b/vendor/github.com/daixiang0/gci/pkg/section/standard_list.go
@@ -1,6 +1,6 @@
package section
-// Code generated based on go1.22.0 X:arenas. DO NOT EDIT.
+// Code generated based on go1.22.0 X:boringcrypto,arenas. DO NOT EDIT.
var standardPackages = map[string]struct{}{
"archive/tar": {},
@@ -20,6 +20,7 @@ var standardPackages = map[string]struct{}{
"context": {},
"crypto": {},
"crypto/aes": {},
+ "crypto/boring": {},
"crypto/cipher": {},
"crypto/des": {},
"crypto/dsa": {},
@@ -37,6 +38,7 @@ var standardPackages = map[string]struct{}{
"crypto/sha512": {},
"crypto/subtle": {},
"crypto/tls": {},
+ "crypto/tls/fipsonly": {},
"crypto/x509": {},
"crypto/x509/pkix": {},
"database/sql": {},
diff --git a/vendor/github.com/daixiang0/gci/pkg/specificity/local_module.go b/vendor/github.com/daixiang0/gci/pkg/specificity/local_module.go
new file mode 100644
index 0000000000..ae482fec47
--- /dev/null
+++ b/vendor/github.com/daixiang0/gci/pkg/specificity/local_module.go
@@ -0,0 +1,15 @@
+package specificity
+
+type LocalModule struct{}
+
+func (m LocalModule) IsMoreSpecific(than MatchSpecificity) bool {
+ return isMoreSpecific(m, than)
+}
+
+func (m LocalModule) Equal(to MatchSpecificity) bool {
+ return equalSpecificity(m, to)
+}
+
+func (LocalModule) class() specificityClass {
+ return LocalModuleClass
+}
diff --git a/vendor/github.com/daixiang0/gci/pkg/specificity/specificity.go b/vendor/github.com/daixiang0/gci/pkg/specificity/specificity.go
index 842da18579..4a188b3bb4 100644
--- a/vendor/github.com/daixiang0/gci/pkg/specificity/specificity.go
+++ b/vendor/github.com/daixiang0/gci/pkg/specificity/specificity.go
@@ -3,11 +3,12 @@ package specificity
type specificityClass int
const (
- MisMatchClass = 0
- DefaultClass = 10
- StandardClass = 20
- MatchClass = 30
- NameClass = 40
+ MisMatchClass = 0
+ DefaultClass = 10
+ StandardClass = 20
+ MatchClass = 30
+ NameClass = 40
+ LocalModuleClass = 50
)
// MatchSpecificity is used to determine which section matches an import best
diff --git a/vendor/github.com/firefart/nonamedreturns/analyzer/analyzer.go b/vendor/github.com/firefart/nonamedreturns/analyzer/analyzer.go
index 6ad97ab491..ecd4915a8b 100644
--- a/vendor/github.com/firefart/nonamedreturns/analyzer/analyzer.go
+++ b/vendor/github.com/firefart/nonamedreturns/analyzer/analyzer.go
@@ -53,6 +53,11 @@ func run(pass *analysis.Pass) (interface{}, error) {
return
}
+ // Function without body, ex: https://github.com/golang/go/blob/master/src/internal/syscall/unix/net.go
+ if funcBody == nil {
+ return
+ }
+
// no return values
if funcResults == nil {
return
diff --git a/vendor/github.com/go-critic/go-critic/checkers/utils.go b/vendor/github.com/go-critic/go-critic/checkers/utils.go
index 4757bbf5f3..6e12cf9b30 100644
--- a/vendor/github.com/go-critic/go-critic/checkers/utils.go
+++ b/vendor/github.com/go-critic/go-critic/checkers/utils.go
@@ -223,6 +223,8 @@ var goBuiltins = map[string]bool{
"imag": true,
"len": true,
"make": true,
+ "min": true,
+ "max": true,
"new": true,
"panic": true,
"print": true,
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/cache.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/cache.go
index 4aa8130518..cc6c0eacd5 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/cache.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/cache.go
@@ -50,7 +50,7 @@ func newCacheCommand() *cacheCommand {
return c
}
-func (c *cacheCommand) executeClean(_ *cobra.Command, _ []string) error {
+func (*cacheCommand) executeClean(_ *cobra.Command, _ []string) error {
cacheDir := cache.DefaultDir()
if err := os.RemoveAll(cacheDir); err != nil {
@@ -60,7 +60,7 @@ func (c *cacheCommand) executeClean(_ *cobra.Command, _ []string) error {
return nil
}
-func (c *cacheCommand) executeStatus(_ *cobra.Command, _ []string) {
+func (*cacheCommand) executeStatus(_ *cobra.Command, _ []string) {
cacheDir := cache.DefaultDir()
_, _ = fmt.Fprintf(logutils.StdOut, "Dir: %s\n", cacheDir)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/config.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/config.go
index cfb7d67ac3..935ec5e864 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/config.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/config.go
@@ -49,6 +49,8 @@ func newConfigCommand(log logutils.Log, info BuildInfo) *configCommand {
Args: cobra.NoArgs,
ValidArgsFunction: cobra.NoFileCompletions,
RunE: c.executeVerify,
+ SilenceUsage: true,
+ SilenceErrors: true,
}
configCmd.AddCommand(
@@ -77,21 +79,15 @@ func newConfigCommand(log logutils.Log, info BuildInfo) *configCommand {
return c
}
-func (c *configCommand) preRunE(cmd *cobra.Command, _ []string) error {
+func (c *configCommand) preRunE(cmd *cobra.Command, args []string) error {
// The command doesn't depend on the real configuration.
// It only needs to know the path of the configuration file.
cfg := config.NewDefault()
- // Hack to hide deprecation messages related to `--skip-dirs-use-default`:
- // Flags are not bound then the default values, defined only through flags, are not applied.
- // In this command, file path and file information are the only requirements, i.e. it don't need flag values.
- //
- // TODO(ldez) add an option (check deprecation) to `Loader.Load()` but this require a dedicated PR.
- cfg.Run.UseDefaultSkipDirs = true
+ loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts, cfg, args)
- loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts, cfg)
-
- if err := loader.Load(); err != nil {
+ err := loader.Load(config.LoadOptions{})
+ if err != nil {
return fmt.Errorf("can't load config: %w", err)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/config_verify.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/config_verify.go
index 291c99a025..a44050b593 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/config_verify.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/config_verify.go
@@ -3,14 +3,16 @@ package commands
import (
"errors"
"fmt"
+ "net/http"
"os"
"path/filepath"
"strings"
+ "time"
hcversion "github.com/hashicorp/go-version"
"github.com/pelletier/go-toml/v2"
"github.com/santhosh-tekuri/jsonschema/v5"
- _ "github.com/santhosh-tekuri/jsonschema/v5/httploader"
+ "github.com/santhosh-tekuri/jsonschema/v5/httploader"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"gopkg.in/yaml.v3"
@@ -45,7 +47,7 @@ func (c *configCommand) executeVerify(cmd *cobra.Command, _ []string) error {
printValidationDetail(cmd, &detail)
- return fmt.Errorf("the configuration contains invalid elements")
+ return errors.New("the configuration contains invalid elements")
}
return nil
@@ -98,6 +100,8 @@ func createSchemaURL(flags *pflag.FlagSet, buildInfo BuildInfo) (string, error)
}
func validateConfiguration(schemaPath, targetFile string) error {
+ httploader.Client = &http.Client{Timeout: 2 * time.Second}
+
compiler := jsonschema.NewCompiler()
compiler.Draft = jsonschema.Draft7
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/flagsets.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/flagsets.go
index af5c351c5e..bcca2abf22 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/flagsets.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/flagsets.go
@@ -12,7 +12,7 @@ import (
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/exitcodes"
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
- "github.com/golangci/golangci-lint/pkg/packages"
+ "github.com/golangci/golangci-lint/pkg/result/processors"
)
func setupLintersFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
@@ -26,8 +26,11 @@ func setupLintersFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
color.GreenString("Enable only fast linters from enabled linters set (first run won't be fast)"))
internal.AddHackedStringSliceP(fs, "presets", "p",
- color.GreenString(fmt.Sprintf("Enable presets (%s) of linters. Run 'golangci-lint help linters' to see them. "+
- "This option implies option --disable-all", strings.Join(lintersdb.AllPresets(), "|"))))
+ color.GreenString(fmt.Sprintf("Enable presets (%s) of linters.\n"+
+ "Run 'golangci-lint help linters' to see them.\n"+
+ "This option implies option --disable-all",
+ strings.Join(lintersdb.AllPresets(), "|"),
+ )))
fs.StringSlice("enable-only", nil,
color.GreenString("Override linters configuration section to only run the specific linter(s)")) // Flags only.
@@ -53,11 +56,11 @@ func setupRunFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
internal.AddDeprecatedFlagAndBind(v, fs, fs.Bool, "skip-dirs-use-default", "run.skip-dirs-use-default", true,
getDefaultDirectoryExcludeHelp())
- const allowParallelDesc = "Allow multiple parallel golangci-lint instances running. " +
+ const allowParallelDesc = "Allow multiple parallel golangci-lint instances running.\n" +
"If false (default) - golangci-lint acquires file lock on start."
internal.AddFlagAndBind(v, fs, fs.Bool, "allow-parallel-runners", "run.allow-parallel-runners", false,
color.GreenString(allowParallelDesc))
- const allowSerialDesc = "Allow multiple golangci-lint instances running, but serialize them around a lock. " +
+ const allowSerialDesc = "Allow multiple golangci-lint instances running, but serialize them around a lock.\n" +
"If false (default) - golangci-lint exits with an error if it fails to acquire file lock on start."
internal.AddFlagAndBind(v, fs, fs.Bool, "allow-serial-runners", "run.allow-serial-runners", false, color.GreenString(allowSerialDesc))
}
@@ -117,19 +120,20 @@ func setupIssuesFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
func getDefaultIssueExcludeHelp() string {
parts := []string{color.GreenString("Use or not use default excludes:")}
+
for _, ep := range config.DefaultExcludePatterns {
parts = append(parts,
- fmt.Sprintf(" # %s %s: %s", ep.ID, ep.Linter, ep.Why),
- fmt.Sprintf(" - %s", color.YellowString(ep.Pattern)),
- "",
+ fmt.Sprintf(" - %s (%s): %s", color.BlueString(ep.ID), color.CyanString(ep.Linter), ep.Why),
+ fmt.Sprintf(` Pattern: %s`, color.YellowString(`'`+ep.Pattern+`'`)),
)
}
+
return strings.Join(parts, "\n")
}
func getDefaultDirectoryExcludeHelp() string {
parts := []string{color.GreenString("Use or not use default excluded directories:")}
- for _, dir := range packages.StdExcludeDirRegexps {
+ for _, dir := range processors.StdExcludeDirRegexps {
parts = append(parts, fmt.Sprintf(" - %s", color.YellowString(dir)))
}
parts = append(parts, "")
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/help.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/help.go
index 42da4a3dc9..094e5d1905 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/help.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/help.go
@@ -2,6 +2,7 @@ package commands
import (
"fmt"
+ "slices"
"sort"
"strings"
@@ -106,16 +107,23 @@ func (c *helpCommand) printPresets() {
}
func printLinters(lcs []*linter.Config) {
- sort.Slice(lcs, func(i, j int) bool {
- return lcs[i].Name() < lcs[j].Name()
- })
+ slices.SortFunc(lcs, func(a, b *linter.Config) int {
+ if a.IsDeprecated() && b.IsDeprecated() {
+ return strings.Compare(a.Name(), b.Name())
+ }
- for _, lc := range lcs {
- altNamesStr := ""
- if len(lc.AlternativeNames) != 0 {
- altNamesStr = fmt.Sprintf(" (%s)", strings.Join(lc.AlternativeNames, ", "))
+ if a.IsDeprecated() {
+ return 1
+ }
+
+ if b.IsDeprecated() {
+ return -1
}
+ return strings.Compare(a.Name(), b.Name())
+ })
+
+ for _, lc := range lcs {
// If the linter description spans multiple lines, truncate everything following the first newline
linterDescription := lc.Linter.Desc()
firstNewline := strings.IndexRune(linterDescription, '\n')
@@ -128,7 +136,7 @@ func printLinters(lcs []*linter.Config) {
deprecatedMark = " [" + color.RedString("deprecated") + "]"
}
- _, _ = fmt.Fprintf(logutils.StdOut, "%s%s%s: %s [fast: %t, auto-fix: %t]\n",
- color.YellowString(lc.Name()), altNamesStr, deprecatedMark, linterDescription, !lc.IsSlowLinter(), lc.CanAutoFix)
+ _, _ = fmt.Fprintf(logutils.StdOut, "%s%s: %s [fast: %t, auto-fix: %t]\n",
+ color.YellowString(lc.Name()), deprecatedMark, linterDescription, !lc.IsSlowLinter(), lc.CanAutoFix)
}
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/builder.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/builder.go
index 39ec2a251c..7253615a45 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/builder.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/builder.go
@@ -53,9 +53,9 @@ func (b Builder) Build(ctx context.Context) error {
b.log.Infof("Adding replace directives")
- err = b.addReplaceDirectives(ctx)
+ err = b.addToGoMod(ctx)
if err != nil {
- return fmt.Errorf("add replace directives: %w", err)
+ return fmt.Errorf("add to go.mod: %w", err)
}
b.log.Infof("Running go mod tidy")
@@ -103,25 +103,56 @@ func (b Builder) clone(ctx context.Context) error {
return nil
}
-func (b Builder) addReplaceDirectives(ctx context.Context) error {
+func (b Builder) addToGoMod(ctx context.Context) error {
for _, plugin := range b.cfg.Plugins {
- if plugin.Path == "" {
+ if plugin.Path != "" {
+ err := b.addReplaceDirective(ctx, plugin)
+ if err != nil {
+ return err
+ }
+
continue
}
- replace := fmt.Sprintf("%s=%s", plugin.Module, plugin.Path)
+ err := b.goGet(ctx, plugin)
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
- cmd := exec.CommandContext(ctx, "go", "mod", "edit", "-replace", replace)
- cmd.Dir = b.repo
+func (b Builder) goGet(ctx context.Context, plugin *Plugin) error {
+ //nolint:gosec // the variables are user related.
+ cmd := exec.CommandContext(ctx, "go", "get", plugin.Module+"@"+plugin.Version)
+ cmd.Dir = b.repo
- b.log.Infof("run: %s", strings.Join(cmd.Args, " "))
+ b.log.Infof("run: %s", strings.Join(cmd.Args, " "))
- output, err := cmd.CombinedOutput()
- if err != nil {
- b.log.Warnf(string(output))
+ output, err := cmd.CombinedOutput()
+ if err != nil {
+ b.log.Warnf(string(output))
- return fmt.Errorf("%s: %w", strings.Join(cmd.Args, " "), err)
- }
+ return fmt.Errorf("%s: %w", strings.Join(cmd.Args, " "), err)
+ }
+
+ return nil
+}
+
+func (b Builder) addReplaceDirective(ctx context.Context, plugin *Plugin) error {
+ replace := fmt.Sprintf("%s=%s", plugin.Module, plugin.Path)
+
+ cmd := exec.CommandContext(ctx, "go", "mod", "edit", "-replace", replace)
+ cmd.Dir = b.repo
+
+ b.log.Infof("run: %s", strings.Join(cmd.Args, " "))
+
+ output, err := cmd.CombinedOutput()
+ if err != nil {
+ b.log.Warnf(string(output))
+
+ return fmt.Errorf("%s: %w", strings.Join(cmd.Args, " "), err)
}
return nil
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/configuration.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/configuration.go
index 5327025946..f9de4c47a7 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/configuration.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/internal/configuration.go
@@ -103,6 +103,8 @@ func LoadConfiguration() (*Configuration, error) {
return nil, fmt.Errorf("file %s open: %w", configFilePath, err)
}
+ defer func() { _ = file.Close() }()
+
var cfg Configuration
err = yaml.NewDecoder(file).Decode(&cfg)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/linters.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/linters.go
index e9c1551868..a93814f0f8 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/linters.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/linters.go
@@ -58,17 +58,11 @@ func newLintersCommand(logger logutils.Log) *lintersCommand {
return c
}
-func (c *lintersCommand) preRunE(cmd *cobra.Command, _ []string) error {
- // Hack to hide deprecation messages related to `--skip-dirs-use-default`:
- // Flags are not bound then the default values, defined only through flags, are not applied.
- // In this command, linters information are the only requirements, i.e. it don't need flag values.
- //
- // TODO(ldez) add an option (check deprecation) to `Loader.Load()` but this require a dedicated PR.
- c.cfg.Run.UseDefaultSkipDirs = true
+func (c *lintersCommand) preRunE(cmd *cobra.Command, args []string) error {
+ loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
- loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg)
-
- if err := loader.Load(); err != nil {
+ err := loader.Load(config.LoadOptions{Validation: true})
+ if err != nil {
return fmt.Errorf("can't load config: %w", err)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/commands/run.go b/vendor/github.com/golangci/golangci-lint/pkg/commands/run.go
index 4240af2175..dc323f1017 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/commands/run.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/commands/run.go
@@ -147,14 +147,15 @@ func newRunCommand(logger logutils.Log, info BuildInfo) *runCommand {
return c
}
-func (c *runCommand) persistentPreRunE(cmd *cobra.Command, _ []string) error {
+func (c *runCommand) persistentPreRunE(cmd *cobra.Command, args []string) error {
if err := c.startTracing(); err != nil {
return err
}
- loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg)
+ loader := config.NewLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, cmd.Flags(), c.opts.LoaderOptions, c.cfg, args)
- if err := loader.Load(); err != nil {
+ err := loader.Load(config.LoadOptions{CheckDeprecation: true, Validation: true})
+ if err != nil {
return fmt.Errorf("can't load config: %w", err)
}
@@ -408,7 +409,7 @@ func (c *runCommand) setExitCodeIfIssuesFound(issues []result.Issue) {
}
func (c *runCommand) printDeprecatedLinterMessages(enabledLinters map[string]*linter.Config) {
- if c.cfg.InternalCmdTest {
+ if c.cfg.InternalCmdTest || os.Getenv(logutils.EnvTestRun) == "1" {
return
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/config/config.go b/vendor/github.com/golangci/golangci-lint/pkg/config/config.go
index af27a91b55..59f6eef0da 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/config/config.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/config/config.go
@@ -33,12 +33,12 @@ func (c *Config) GetConfigDir() string {
func (c *Config) Validate() error {
validators := []func() error{
- c.Issues.Validate,
- c.Severity.Validate,
+ c.Run.Validate,
+ c.Output.Validate,
c.LintersSettings.Validate,
c.Linters.Validate,
- c.Output.Validate,
- c.Run.Validate,
+ c.Issues.Validate,
+ c.Severity.Validate,
}
for _, v := range validators {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/config/issues.go b/vendor/github.com/golangci/golangci-lint/pkg/config/issues.go
index 45424b1793..6d48694948 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/config/issues.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/config/issues.go
@@ -14,93 +14,92 @@ var DefaultExcludePatterns = []ExcludePattern{
Pattern: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close" +
"|.*Flush|os\\.Remove(All)?|.*print(f|ln)?|os\\.(Un)?Setenv). is not checked",
Linter: "errcheck",
- Why: "Almost all programs ignore errors on these functions and in most cases it's ok",
+ Why: "Almost all programs ignore errors on these functions and in most cases it's ok.",
},
{
- ID: "EXC0002",
+ ID: "EXC0002", // TODO(ldez): should be remove in v2
Pattern: "(comment on exported (method|function|type|const)|" +
"should have( a package)? comment|comment should be of the form)",
Linter: "golint",
- Why: "Annoying issue about not having a comment. The rare codebase has such comments",
+ Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
- ID: "EXC0003",
+ ID: "EXC0003", // TODO(ldez): should be remove in v2
Pattern: "func name will be used as test\\.Test.* by other packages, and that stutters; consider calling this",
Linter: "golint",
- Why: "False positive when tests are defined in package 'test'",
+ Why: "False positive when tests are defined in package 'test'.",
},
{
ID: "EXC0004",
Pattern: "(possible misuse of unsafe.Pointer|should have signature)",
Linter: "govet",
- Why: "Common false positives",
+ Why: "Common false positives.",
},
{
ID: "EXC0005",
- Pattern: "ineffective break statement. Did you mean to break out of the outer loop",
+ Pattern: "SA4011", // CheckScopedBreak
Linter: "staticcheck",
- Why: "Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore",
+ Why: "Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore.",
},
{
ID: "EXC0006",
- Pattern: "Use of unsafe calls should be audited",
+ Pattern: "G103: Use of unsafe calls should be audited",
Linter: "gosec",
- Why: "Too many false-positives on 'unsafe' usage",
+ Why: "Too many false-positives on 'unsafe' usage.",
},
{
ID: "EXC0007",
- Pattern: "Subprocess launch(ed with variable|ing should be audited)",
+ Pattern: "G204: Subprocess launched with variable",
Linter: "gosec",
- Why: "Too many false-positives for parametrized shell calls",
+ Why: "Too many false-positives for parametrized shell calls.",
},
{
ID: "EXC0008",
- Pattern: "(G104)",
+ Pattern: "G104", // Errors unhandled.
Linter: "gosec",
- Why: "Duplicated errcheck checks",
+ Why: "Duplicated errcheck checks.",
},
{
ID: "EXC0009",
- Pattern: "(Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)",
+ Pattern: "(G301|G302|G307): Expect (directory permissions to be 0750|file permissions to be 0600) or less",
Linter: "gosec",
- Why: "Too many issues in popular repos",
+ Why: "Too many issues in popular repos.",
},
{
ID: "EXC0010",
- Pattern: "Potential file inclusion via variable",
+ Pattern: "G304: Potential file inclusion via variable",
Linter: "gosec",
- Why: "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'",
+ Why: "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'.",
},
{
- ID: "EXC0011",
- Pattern: "(comment on exported (method|function|type|const)|" +
- "should have( a package)? comment|comment should be of the form)",
- Linter: "stylecheck",
- Why: "Annoying issue about not having a comment. The rare codebase has such comments",
+ ID: "EXC0011",
+ Pattern: "(ST1000|ST1020|ST1021|ST1022)", // CheckPackageComment, CheckExportedFunctionDocs, CheckExportedTypeDocs, CheckExportedVarDocs
+ Linter: "stylecheck",
+ Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0012",
- Pattern: `exported (.+) should have comment( \(or a comment on this block\))? or be unexported`,
+ Pattern: `exported (.+) should have comment( \(or a comment on this block\))? or be unexported`, // rule: exported
Linter: "revive",
- Why: "Annoying issue about not having a comment. The rare codebase has such comments",
+ Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0013",
- Pattern: `package comment should be of the form "(.+)...`,
+ Pattern: `package comment should be of the form "(.+)..."`, // rule: package-comments
Linter: "revive",
- Why: "Annoying issue about not having a comment. The rare codebase has such comments",
+ Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0014",
- Pattern: `comment on exported (.+) should be of the form "(.+)..."`,
+ Pattern: `comment on exported (.+) should be of the form "(.+)..."`, // rule: exported
Linter: "revive",
- Why: "Annoying issue about not having a comment. The rare codebase has such comments",
+ Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0015",
- Pattern: `should have a package comment`,
+ Pattern: `should have a package comment`, // rule: package-comments
Linter: "revive",
- Why: "Annoying issue about not having a comment. The rare codebase has such comments",
+ Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/config/linters_settings.go b/vendor/github.com/golangci/golangci-lint/pkg/config/linters_settings.go
index 1ac90be1d3..d793ef9971 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/config/linters_settings.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/config/linters_settings.go
@@ -144,6 +144,8 @@ var defaultLintersSettings = LintersSettings{
NoMixedArgs: true,
KVOnly: false,
AttrOnly: false,
+ NoGlobal: "",
+ Context: "",
ContextOnly: false,
StaticMsg: false,
NoRawKeys: false,
@@ -243,6 +245,7 @@ type LintersSettings struct {
MaintIdx MaintIdxSettings
Makezero MakezeroSettings
Misspell MisspellSettings
+ Mnd MndSettings
MustTag MustTagSettings
Nakedret NakedretSettings
Nestif NestifSettings
@@ -314,7 +317,8 @@ type BiDiChkSettings struct {
}
type CopyLoopVarSettings struct {
- IgnoreAlias bool `mapstructure:"ignore-alias"`
+ IgnoreAlias bool `mapstructure:"ignore-alias"` // Deprecated: use CheckAlias
+ CheckAlias bool `mapstructure:"check-alias"`
}
type Cyclop struct {
@@ -380,10 +384,17 @@ type ErrChkJSONSettings struct {
}
type ErrorLintSettings struct {
- Errorf bool `mapstructure:"errorf"`
- ErrorfMulti bool `mapstructure:"errorf-multi"`
- Asserts bool `mapstructure:"asserts"`
- Comparison bool `mapstructure:"comparison"`
+ Errorf bool `mapstructure:"errorf"`
+ ErrorfMulti bool `mapstructure:"errorf-multi"`
+ Asserts bool `mapstructure:"asserts"`
+ Comparison bool `mapstructure:"comparison"`
+ AllowedErrors []ErrorLintAllowPair `mapstructure:"allowed-errors"`
+ AllowedErrorsWildcard []ErrorLintAllowPair `mapstructure:"allowed-errors-wildcard"`
+}
+
+type ErrorLintAllowPair struct {
+ Err string `mapstructure:"err"`
+ Fun string `mapstructure:"fun"`
}
type ExhaustiveSettings struct {
@@ -549,11 +560,9 @@ type GoImportsSettings struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
+// Deprecated: use MndSettings.
type GoMndSettings struct {
- Checks []string `mapstructure:"checks"`
- IgnoredNumbers []string `mapstructure:"ignored-numbers"`
- IgnoredFiles []string `mapstructure:"ignored-files"`
- IgnoredFunctions []string `mapstructure:"ignored-functions"`
+ MndSettings `mapstructure:",squash"`
// Deprecated: use root level settings instead.
Settings map[string]map[string]any
@@ -723,6 +732,13 @@ type NlreturnSettings struct {
BlockSize int `mapstructure:"block-size"`
}
+type MndSettings struct {
+ Checks []string `mapstructure:"checks"`
+ IgnoredNumbers []string `mapstructure:"ignored-numbers"`
+ IgnoredFiles []string `mapstructure:"ignored-files"`
+ IgnoredFunctions []string `mapstructure:"ignored-functions"`
+}
+
type NoLintLintSettings struct {
RequireExplanation bool `mapstructure:"require-explanation"`
RequireSpecific bool `mapstructure:"require-specific"`
@@ -803,9 +819,10 @@ type RowsErrCheckSettings struct {
type SlogLintSettings struct {
NoMixedArgs bool `mapstructure:"no-mixed-args"`
KVOnly bool `mapstructure:"kv-only"`
- NoGlobal string `mapstructure:"no-global"`
AttrOnly bool `mapstructure:"attr-only"`
- ContextOnly bool `mapstructure:"context-only"`
+ NoGlobal string `mapstructure:"no-global"`
+ Context string `mapstructure:"context"`
+ ContextOnly bool `mapstructure:"context-only"` // Deprecated: use Context instead.
StaticMsg bool `mapstructure:"static-msg"`
NoRawKeys bool `mapstructure:"no-raw-keys"`
KeyNamingCase string `mapstructure:"key-naming-case"`
@@ -813,8 +830,9 @@ type SlogLintSettings struct {
}
type SpancheckSettings struct {
- Checks []string `mapstructure:"checks"`
- IgnoreCheckSignatures []string `mapstructure:"ignore-check-signatures"`
+ Checks []string `mapstructure:"checks"`
+ IgnoreCheckSignatures []string `mapstructure:"ignore-check-signatures"`
+ ExtraStartSpanSignatures []string `mapstructure:"extra-start-span-signatures"`
}
type StaticCheckSettings struct {
@@ -898,11 +916,11 @@ type UseStdlibVarsSettings struct {
TimeLayout bool `mapstructure:"time-layout"`
CryptoHash bool `mapstructure:"crypto-hash"`
DefaultRPCPath bool `mapstructure:"default-rpc-path"`
- OSDevNull bool `mapstructure:"os-dev-null"`
+ OSDevNull bool `mapstructure:"os-dev-null"` // Deprecated
SQLIsolationLevel bool `mapstructure:"sql-isolation-level"`
TLSSignatureScheme bool `mapstructure:"tls-signature-scheme"`
ConstantKind bool `mapstructure:"constant-kind"`
- SyslogPriority bool `mapstructure:"syslog-priority"`
+ SyslogPriority bool `mapstructure:"syslog-priority"` // Deprecated
}
type UnconvertSettings struct {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/config/loader.go b/vendor/github.com/golangci/golangci-lint/pkg/config/loader.go
index 141137c21c..db23048b2d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/config/loader.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/config/loader.go
@@ -6,7 +6,6 @@ import (
"os"
"path/filepath"
"slices"
- "strings"
"github.com/go-viper/mapstructure/v2"
"github.com/mitchellh/go-homedir"
@@ -25,6 +24,11 @@ type LoaderOptions struct {
NoConfig bool // Flag only.
}
+type LoadOptions struct {
+ CheckDeprecation bool
+ Validation bool
+}
+
type Loader struct {
opts LoaderOptions
@@ -33,20 +37,22 @@ type Loader struct {
log logutils.Log
- cfg *Config
+ cfg *Config
+ args []string
}
-func NewLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config) *Loader {
+func NewLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config, args []string) *Loader {
return &Loader{
opts: opts,
viper: v,
fs: fs,
log: log,
cfg: cfg,
+ args: args,
}
}
-func (l *Loader) Load() error {
+func (l *Loader) Load(opts LoadOptions) error {
err := l.setConfigFile()
if err != nil {
return err
@@ -59,9 +65,11 @@ func (l *Loader) Load() error {
l.applyStringSliceHack()
- err = l.handleDeprecation()
- if err != nil {
- return err
+ if opts.CheckDeprecation {
+ err = l.handleDeprecation()
+ if err != nil {
+ return err
+ }
}
l.handleGoVersion()
@@ -71,6 +79,13 @@ func (l *Loader) Load() error {
return err
}
+ if opts.Validation {
+ err = l.cfg.Validate()
+ if err != nil {
+ return err
+ }
+ }
+
return nil
}
@@ -116,50 +131,59 @@ func (l *Loader) evaluateOptions() (string, error) {
}
func (l *Loader) setupConfigFileSearch() {
- firstArg := extractFirstPathArg()
+ l.viper.SetConfigName(".golangci")
+
+ configSearchPaths := l.getConfigSearchPaths()
- absStartPath, err := filepath.Abs(firstArg)
+ l.log.Infof("Config search paths: %s", configSearchPaths)
+
+ for _, p := range configSearchPaths {
+ l.viper.AddConfigPath(p)
+ }
+}
+
+func (l *Loader) getConfigSearchPaths() []string {
+ firstArg := "./..."
+ if len(l.args) > 0 {
+ firstArg = l.args[0]
+ }
+
+ absPath, err := filepath.Abs(firstArg)
if err != nil {
l.log.Warnf("Can't make abs path for %q: %s", firstArg, err)
- absStartPath = filepath.Clean(firstArg)
+ absPath = filepath.Clean(firstArg)
}
// start from it
- var curDir string
- if fsutils.IsDir(absStartPath) {
- curDir = absStartPath
+ var currentDir string
+ if fsutils.IsDir(absPath) {
+ currentDir = absPath
} else {
- curDir = filepath.Dir(absStartPath)
+ currentDir = filepath.Dir(absPath)
}
// find all dirs from it up to the root
- configSearchPaths := []string{"./"}
+ searchPaths := []string{"./"}
for {
- configSearchPaths = append(configSearchPaths, curDir)
+ searchPaths = append(searchPaths, currentDir)
- newCurDir := filepath.Dir(curDir)
- if curDir == newCurDir || newCurDir == "" {
+ parent := filepath.Dir(currentDir)
+ if currentDir == parent || parent == "" {
break
}
- curDir = newCurDir
+ currentDir = parent
}
// find home directory for global config
if home, err := homedir.Dir(); err != nil {
- l.log.Warnf("Can't get user's home directory: %s", err.Error())
- } else if !slices.Contains(configSearchPaths, home) {
- configSearchPaths = append(configSearchPaths, home)
+ l.log.Warnf("Can't get user's home directory: %v", err)
+ } else if !slices.Contains(searchPaths, home) {
+ searchPaths = append(searchPaths, home)
}
- l.log.Infof("Config search paths: %s", configSearchPaths)
-
- l.viper.SetConfigName(".golangci")
-
- for _, p := range configSearchPaths {
- l.viper.AddConfigPath(p)
- }
+ return searchPaths
}
func (l *Loader) parseConfig() error {
@@ -283,35 +307,39 @@ func (l *Loader) handleGoVersion() {
}
func (l *Loader) handleDeprecation() error {
+ if l.cfg.InternalTest || l.cfg.InternalCmdTest || os.Getenv(logutils.EnvTestRun) == "1" {
+ return nil
+ }
+
// Deprecated since v1.57.0
if len(l.cfg.Run.SkipFiles) > 0 {
- l.warn("The configuration option `run.skip-files` is deprecated, please use `issues.exclude-files`.")
+ l.log.Warnf("The configuration option `run.skip-files` is deprecated, please use `issues.exclude-files`.")
l.cfg.Issues.ExcludeFiles = l.cfg.Run.SkipFiles
}
// Deprecated since v1.57.0
if len(l.cfg.Run.SkipDirs) > 0 {
- l.warn("The configuration option `run.skip-dirs` is deprecated, please use `issues.exclude-dirs`.")
+ l.log.Warnf("The configuration option `run.skip-dirs` is deprecated, please use `issues.exclude-dirs`.")
l.cfg.Issues.ExcludeDirs = l.cfg.Run.SkipDirs
}
// The 2 options are true by default.
// Deprecated since v1.57.0
if !l.cfg.Run.UseDefaultSkipDirs {
- l.warn("The configuration option `run.skip-dirs-use-default` is deprecated, please use `issues.exclude-dirs-use-default`.")
+ l.log.Warnf("The configuration option `run.skip-dirs-use-default` is deprecated, please use `issues.exclude-dirs-use-default`.")
}
l.cfg.Issues.UseDefaultExcludeDirs = l.cfg.Run.UseDefaultSkipDirs && l.cfg.Issues.UseDefaultExcludeDirs
// The 2 options are false by default.
// Deprecated since v1.57.0
if l.cfg.Run.ShowStats {
- l.warn("The configuration option `run.show-stats` is deprecated, please use `output.show-stats`")
+ l.log.Warnf("The configuration option `run.show-stats` is deprecated, please use `output.show-stats`")
}
l.cfg.Output.ShowStats = l.cfg.Run.ShowStats || l.cfg.Output.ShowStats
// Deprecated since v1.57.0
if l.cfg.Output.Format != "" {
- l.warn("The configuration option `output.format` is deprecated, please use `output.formats`")
+ l.log.Warnf("The configuration option `output.format` is deprecated, please use `output.formats`")
var f OutputFormats
err := f.UnmarshalText([]byte(l.cfg.Output.Format))
@@ -331,49 +359,72 @@ func (l *Loader) handleLinterOptionDeprecations() {
// Deprecated since v1.57.0,
// but it was unofficially deprecated since v1.19 (2019) (https://github.com/golangci/golangci-lint/pull/697).
if l.cfg.LintersSettings.Govet.CheckShadowing {
- l.warn("The configuration option `linters.govet.check-shadowing` is deprecated. " +
+ l.log.Warnf("The configuration option `linters.govet.check-shadowing` is deprecated. " +
"Please enable `shadow` instead, if you are not using `enable-all`.")
}
+ if l.cfg.LintersSettings.CopyLoopVar.IgnoreAlias {
+ l.log.Warnf("The configuration option `linters.copyloopvar.ignore-alias` is deprecated and ignored," +
+ "please use `linters.copyloopvar.check-alias`.")
+ }
+
// Deprecated since v1.42.0.
if l.cfg.LintersSettings.Errcheck.Exclude != "" {
- l.warn("The configuration option `linters.errcheck.exclude` is deprecated, please use `linters.errcheck.exclude-functions`.")
+ l.log.Warnf("The configuration option `linters.errcheck.exclude` is deprecated, please use `linters.errcheck.exclude-functions`.")
}
// Deprecated since v1.44.0.
if l.cfg.LintersSettings.Gci.LocalPrefixes != "" {
- l.warn("The configuration option `linters.gci.local-prefixes` is deprecated, please use `prefix()` inside `linters.gci.sections`.")
+ l.log.Warnf("The configuration option `linters.gci.local-prefixes` is deprecated, please use `prefix()` inside `linters.gci.sections`.")
}
// Deprecated since v1.33.0.
if l.cfg.LintersSettings.Godot.CheckAll {
- l.warn("The configuration option `linters.godot.check-all` is deprecated, please use `linters.godot.scope: all`.")
+ l.log.Warnf("The configuration option `linters.godot.check-all` is deprecated, please use `linters.godot.scope: all`.")
}
// Deprecated since v1.44.0.
if len(l.cfg.LintersSettings.Gomnd.Settings) > 0 {
- l.warn("The configuration option `linters.gomnd.settings` is deprecated. Please use the options " +
+ l.log.Warnf("The configuration option `linters.gomnd.settings` is deprecated. Please use the options " +
"`linters.gomnd.checks`,`linters.gomnd.ignored-numbers`,`linters.gomnd.ignored-files`,`linters.gomnd.ignored-functions`.")
}
// Deprecated since v1.47.0
if l.cfg.LintersSettings.Gofumpt.LangVersion != "" {
- l.warn("The configuration option `linters.gofumpt.lang-version` is deprecated, please use global `run.go`.")
+ l.log.Warnf("The configuration option `linters.gofumpt.lang-version` is deprecated, please use global `run.go`.")
}
// Deprecated since v1.47.0
if l.cfg.LintersSettings.Staticcheck.GoVersion != "" {
- l.warn("The configuration option `linters.staticcheck.go` is deprecated, please use global `run.go`.")
+ l.log.Warnf("The configuration option `linters.staticcheck.go` is deprecated, please use global `run.go`.")
}
// Deprecated since v1.47.0
if l.cfg.LintersSettings.Gosimple.GoVersion != "" {
- l.warn("The configuration option `linters.gosimple.go` is deprecated, please use global `run.go`.")
+ l.log.Warnf("The configuration option `linters.gosimple.go` is deprecated, please use global `run.go`.")
}
// Deprecated since v1.47.0
if l.cfg.LintersSettings.Stylecheck.GoVersion != "" {
- l.warn("The configuration option `linters.stylecheck.go` is deprecated, please use global `run.go`.")
+ l.log.Warnf("The configuration option `linters.stylecheck.go` is deprecated, please use global `run.go`.")
+ }
+
+ // Deprecated since v1.58.0
+ if l.cfg.LintersSettings.SlogLint.ContextOnly {
+ l.log.Warnf("The configuration option `linters.sloglint.context-only` is deprecated, please use `linters.sloglint.context`.")
+ if l.cfg.LintersSettings.SlogLint.Context == "" {
+ l.cfg.LintersSettings.SlogLint.Context = "all"
+ }
+ }
+
+ // Deprecated since v1.51.0
+ if l.cfg.LintersSettings.UseStdlibVars.OSDevNull {
+ l.log.Warnf("The configuration option `linters.usestdlibvars.os-dev-null` is deprecated.")
+ }
+
+ // Deprecated since v1.51.0
+ if l.cfg.LintersSettings.UseStdlibVars.SyslogPriority {
+ l.log.Warnf("The configuration option `linters.usestdlibvars.syslog-priority` is deprecated.")
}
}
@@ -398,14 +449,6 @@ func (l *Loader) handleEnableOnlyOption() error {
return nil
}
-func (l *Loader) warn(format string) {
- if l.cfg.InternalTest || l.cfg.InternalCmdTest || os.Getenv(logutils.EnvTestRun) == "1" {
- return
- }
-
- l.log.Warnf(format)
-}
-
func customDecoderHook() viper.DecoderConfigOption {
return viper.DecodeHook(mapstructure.ComposeDecodeHookFunc(
// Default hooks (https://github.com/spf13/viper/blob/518241257478c557633ab36e474dfcaeb9a3c623/viper.go#L135-L138).
@@ -416,28 +459,3 @@ func customDecoderHook() viper.DecoderConfigOption {
mapstructure.TextUnmarshallerHookFunc(),
))
}
-
-func extractFirstPathArg() string {
- args := os.Args
-
- // skip all args ([golangci-lint, run/linters]) before files/dirs list
- for len(args) != 0 {
- if args[0] == "run" {
- args = args[1:]
- break
- }
-
- args = args[1:]
- }
-
- // find first file/dir arg
- firstArg := "./..."
- for _, arg := range args {
- if !strings.HasPrefix(arg, "-") {
- firstArg = arg
- break
- }
- }
-
- return firstArg
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/linter.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/linter.go
index f8ca2e7553..33f2254b02 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/linter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/linter.go
@@ -102,7 +102,7 @@ func (lnt *Linter) allAnalyzerNames() []string {
return ret
}
-func (lnt *Linter) configureAnalyzer(a *analysis.Analyzer, cfg map[string]any) error {
+func (*Linter) configureAnalyzer(a *analysis.Analyzer, cfg map[string]any) error {
for k, v := range cfg {
f := a.Flags.Lookup(k)
if f == nil {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/metalinter.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/metalinter.go
index 333ab20f1f..c2a7949974 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/metalinter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/metalinter.go
@@ -31,11 +31,11 @@ func (ml MetaLinter) Run(_ context.Context, lintCtx *linter.Context) ([]result.I
return runAnalyzers(ml, lintCtx)
}
-func (ml MetaLinter) Name() string {
+func (MetaLinter) Name() string {
return "goanalysis_metalinter"
}
-func (ml MetaLinter) Desc() string {
+func (MetaLinter) Desc() string {
return ""
}
@@ -57,11 +57,11 @@ func (ml MetaLinter) getAnalyzers() []*analysis.Analyzer {
return allAnalyzers
}
-func (ml MetaLinter) getName() string {
+func (MetaLinter) getName() string {
return "metalinter"
}
-func (ml MetaLinter) useOriginalPackages() bool {
+func (MetaLinter) useOriginalPackages() bool {
return false // `unused` can't be run by this metalinter
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/errors.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/errors.go
similarity index 60%
rename from vendor/github.com/golangci/golangci-lint/pkg/goanalysis/errors.go
rename to vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/errors.go
index f59e02cc64..91f6dd39d7 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/errors.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/errors.go
@@ -1,4 +1,4 @@
-package goanalysis
+package pkgerrors
import (
"errors"
@@ -7,7 +7,6 @@ import (
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/lint/linter"
- libpackages "github.com/golangci/golangci-lint/pkg/packages"
"github.com/golangci/golangci-lint/pkg/result"
)
@@ -19,7 +18,7 @@ func (e *IllTypedError) Error() string {
return fmt.Sprintf("errors in package: %v", e.Pkg.Errors)
}
-func buildIssuesFromIllTypedError(errs []error, lintCtx *linter.Context) ([]result.Issue, error) {
+func BuildIssuesFromIllTypedError(errs []error, lintCtx *linter.Context) ([]result.Issue, error) {
var issues []result.Issue
uniqReportedIssues := map[string]bool{}
@@ -36,8 +35,8 @@ func buildIssuesFromIllTypedError(errs []error, lintCtx *linter.Context) ([]resu
continue
}
- for _, err := range libpackages.ExtractErrors(ill.Pkg) {
- i, perr := parseError(err)
+ for _, err := range extractErrors(ill.Pkg) {
+ issue, perr := parseError(err)
if perr != nil { // failed to parse
if uniqReportedIssues[err.Msg] {
continue
@@ -45,8 +44,8 @@ func buildIssuesFromIllTypedError(errs []error, lintCtx *linter.Context) ([]resu
uniqReportedIssues[err.Msg] = true
lintCtx.Log.Errorf("typechecking error: %s", err.Msg)
} else {
- i.Pkg = ill.Pkg // to save to cache later
- issues = append(issues, *i)
+ issue.Pkg = ill.Pkg // to save to cache later
+ issues = append(issues, *issue)
}
}
}
@@ -57,16 +56,3 @@ func buildIssuesFromIllTypedError(errs []error, lintCtx *linter.Context) ([]resu
return issues, nil
}
-
-func parseError(srcErr packages.Error) (*result.Issue, error) {
- pos, err := libpackages.ParseErrorPosition(srcErr.Pos)
- if err != nil {
- return nil, err
- }
-
- return &result.Issue{
- Pos: *pos,
- Text: srcErr.Msg,
- FromLinter: "typecheck",
- }, nil
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/packages/util.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/extract.go
similarity index 93%
rename from vendor/github.com/golangci/golangci-lint/pkg/packages/util.go
rename to vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/extract.go
index 6a7789ebb7..d1257e6638 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/packages/util.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/extract.go
@@ -1,4 +1,4 @@
-package packages
+package pkgerrors
import (
"fmt"
@@ -12,7 +12,7 @@ import (
// ex: `/example/main.go:11:17: foobar`
var reFile = regexp.MustCompile(`^.+\.go:\d+:\d+: .+`)
-func ExtractErrors(pkg *packages.Package) []packages.Error {
+func extractErrors(pkg *packages.Package) []packages.Error {
errors := extractErrorsImpl(pkg, map[*packages.Package]bool{})
if len(errors) == 0 {
return errors
@@ -38,7 +38,7 @@ func ExtractErrors(pkg *packages.Package) []packages.Error {
if len(pkg.GoFiles) != 0 {
// errors were extracted from deps and have at least one file in package
for i := range uniqErrors {
- if _, parseErr := ParseErrorPosition(uniqErrors[i].Pos); parseErr == nil {
+ if _, parseErr := parseErrorPosition(uniqErrors[i].Pos); parseErr == nil {
continue
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/packages/errors.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/parse.go
similarity index 60%
rename from vendor/github.com/golangci/golangci-lint/pkg/packages/errors.go
rename to vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/parse.go
index ff37651aff..b25b50f713 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/packages/errors.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors/parse.go
@@ -1,4 +1,4 @@
-package packages
+package pkgerrors
import (
"errors"
@@ -6,9 +6,26 @@ import (
"go/token"
"strconv"
"strings"
+
+ "golang.org/x/tools/go/packages"
+
+ "github.com/golangci/golangci-lint/pkg/result"
)
-func ParseErrorPosition(pos string) (*token.Position, error) {
+func parseError(srcErr packages.Error) (*result.Issue, error) {
+ pos, err := parseErrorPosition(srcErr.Pos)
+ if err != nil {
+ return nil, err
+ }
+
+ return &result.Issue{
+ Pos: *pos,
+ Text: srcErr.Msg,
+ FromLinter: "typecheck",
+ }, nil
+}
+
+func parseErrorPosition(pos string) (*token.Position, error) {
// file:line(:colon)
parts := strings.Split(pos, ":")
if len(parts) == 1 {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go
index 6b57cb0c9a..58ea297ea9 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go
@@ -15,6 +15,7 @@ import (
"github.com/golangci/golangci-lint/internal/errorutil"
"github.com/golangci/golangci-lint/internal/pkgcache"
+ "github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors"
)
type actionAllocator struct {
@@ -184,7 +185,7 @@ func (act *action) analyze() {
// It looks like there should be !pass.Analyzer.RunDespiteErrors
// but govet's cgocall crashes on it. Govet itself contains !pass.Analyzer.RunDespiteErrors condition here,
// but it exits before it if packages.Load have failed.
- act.err = fmt.Errorf("analysis skipped: %w", &IllTypedError{Pkg: act.pkg})
+ act.err = fmt.Errorf("analysis skipped: %w", &pkgerrors.IllTypedError{Pkg: act.pkg})
} else {
startedAt = time.Now()
act.result, act.err = pass.Analyzer.Run(pass)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runners.go b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runners.go
index b832fc32da..c02d33b797 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runners.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/goanalysis/runners.go
@@ -13,6 +13,7 @@ import (
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/internal/pkgcache"
+ "github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
@@ -74,7 +75,7 @@ func runAnalyzers(cfg runAnalyzersConfig, lintCtx *linter.Context) ([]result.Iss
return retIssues
}
- errIssues, err := buildIssuesFromIllTypedError(errs, lintCtx)
+ errIssues, err := pkgerrors.BuildIssuesFromIllTypedError(errs, lintCtx)
if err != nil {
return nil, err
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/asasalint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/asasalint/asasalint.go
similarity index 88%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/asasalint.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/asasalint/asasalint.go
index d783d33653..653a2d5142 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/asasalint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/asasalint/asasalint.go
@@ -1,4 +1,4 @@
-package golinters
+package asasalint
import (
"github.com/alingse/asasalint"
@@ -9,7 +9,7 @@ import (
"github.com/golangci/golangci-lint/pkg/golinters/internal"
)
-func NewAsasalint(setting *config.AsasalintSettings) *goanalysis.Linter {
+func New(setting *config.AsasalintSettings) *goanalysis.Linter {
cfg := asasalint.LinterSetting{}
if setting != nil {
cfg.Exclude = setting.Exclude
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/asciicheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/asciicheck/asciicheck.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/asciicheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/asciicheck/asciicheck.go
index 64c2e1fb31..675dfc4780 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/asciicheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/asciicheck/asciicheck.go
@@ -1,4 +1,4 @@
-package golinters
+package asciicheck
import (
"github.com/tdakkota/asciicheck"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewAsciicheck() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := asciicheck.NewAnalyzer()
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/bidichk.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/bidichk/bidichk.go
similarity index 94%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/bidichk.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/bidichk/bidichk.go
index 62c60e8cec..4ced901e8f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/bidichk.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/bidichk/bidichk.go
@@ -1,4 +1,4 @@
-package golinters
+package bidichk
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewBiDiChk(cfg *config.BiDiChkSettings) *goanalysis.Linter {
+func New(cfg *config.BiDiChkSettings) *goanalysis.Linter {
a := bidichk.NewAnalyzer()
cfgMap := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/bodyclose.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/bodyclose/bodyclose.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/bodyclose.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/bodyclose/bodyclose.go
index 97c768de13..f39814edc5 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/bodyclose.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/bodyclose/bodyclose.go
@@ -1,4 +1,4 @@
-package golinters
+package bodyclose
import (
"github.com/timakin/bodyclose/passes/bodyclose"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewBodyclose() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := bodyclose.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/canonicalheader/canonicalheader.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/canonicalheader/canonicalheader.go
new file mode 100644
index 0000000000..d721916a49
--- /dev/null
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/canonicalheader/canonicalheader.go
@@ -0,0 +1,19 @@
+package canonicalheader
+
+import (
+ "github.com/lasiar/canonicalheader"
+ "golang.org/x/tools/go/analysis"
+
+ "github.com/golangci/golangci-lint/pkg/goanalysis"
+)
+
+func New() *goanalysis.Linter {
+ a := canonicalheader.Analyzer
+
+ return goanalysis.NewLinter(
+ a.Name,
+ a.Doc,
+ []*analysis.Analyzer{a},
+ nil,
+ ).WithLoadMode(goanalysis.LoadModeTypesInfo)
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/containedctx.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/containedctx/containedctx.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/containedctx.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/containedctx/containedctx.go
index ac2d96ef64..6fdb4ea6e1 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/containedctx.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/containedctx/containedctx.go
@@ -1,4 +1,4 @@
-package golinters
+package containedctx
import (
"github.com/sivchari/containedctx"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewContainedCtx() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := containedctx.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/contextcheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/contextcheck/contextcheck.go
similarity index 89%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/contextcheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/contextcheck/contextcheck.go
index 0ab5750dad..a34c518b2c 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/contextcheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/contextcheck/contextcheck.go
@@ -1,4 +1,4 @@
-package golinters
+package contextcheck
import (
"github.com/kkHAIKE/contextcheck"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-func NewContextCheck() *goanalysis.Linter {
+func New() *goanalysis.Linter {
analyzer := contextcheck.NewAnalyzer(contextcheck.Configuration{})
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/copyloopvar.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/copyloopvar/copyloopvar.go
similarity index 77%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/copyloopvar.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/copyloopvar/copyloopvar.go
index fa49cbd84b..adb4ee7284 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/copyloopvar.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/copyloopvar/copyloopvar.go
@@ -1,4 +1,4 @@
-package golinters
+package copyloopvar
import (
"github.com/karamaru-alpha/copyloopvar"
@@ -8,14 +8,14 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewCopyLoopVar(settings *config.CopyLoopVarSettings) *goanalysis.Linter {
+func New(settings *config.CopyLoopVarSettings) *goanalysis.Linter {
a := copyloopvar.NewAnalyzer()
var cfg map[string]map[string]any
if settings != nil {
cfg = map[string]map[string]any{
a.Name: {
- "ignore-alias": settings.IgnoreAlias,
+ "check-alias": settings.CheckAlias,
},
}
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/cyclop.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/cyclop/cyclop.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/cyclop.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/cyclop/cyclop.go
index 2b4a4a0ba4..eb8c0577a5 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/cyclop.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/cyclop/cyclop.go
@@ -1,4 +1,4 @@
-package golinters
+package cyclop
import (
"github.com/bkielbasa/cyclop/pkg/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewCyclop(settings *config.Cyclop) *goanalysis.Linter {
+func New(settings *config.Cyclop) *goanalysis.Linter {
a := analyzer.NewAnalyzer()
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/decorder.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/decorder/decorder.go
similarity index 93%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/decorder.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/decorder/decorder.go
index e41482ee10..a05f6a3257 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/decorder.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/decorder/decorder.go
@@ -1,4 +1,4 @@
-package golinters
+package decorder
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewDecorder(settings *config.DecorderSettings) *goanalysis.Linter {
+func New(settings *config.DecorderSettings) *goanalysis.Linter {
a := decorder.Analyzer
// disable all rules/checks by default
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/depguard.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/depguard/depguard.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/depguard.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/depguard/depguard.go
index 484d33d727..d2aedf2524 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/depguard.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/depguard/depguard.go
@@ -1,4 +1,4 @@
-package golinters
+package depguard
import (
"github.com/OpenPeeDeeP/depguard/v2"
@@ -9,7 +9,7 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-func NewDepguard(settings *config.DepGuardSettings) *goanalysis.Linter {
+func New(settings *config.DepGuardSettings) *goanalysis.Linter {
conf := depguard.LinterSettings{}
if settings != nil {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/dogsled.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/dogsled/dogsled.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/dogsled.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/dogsled/dogsled.go
index 11a3c3a9f4..02705eb1b3 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/dogsled.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/dogsled/dogsled.go
@@ -1,4 +1,4 @@
-package golinters
+package dogsled
import (
"fmt"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const dogsledName = "dogsled"
+const name = "dogsled"
-func NewDogsled(settings *config.DogsledSettings) *goanalysis.Linter {
+func New(settings *config.DogsledSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: dogsledName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runDogsled(pass, settings)
@@ -39,7 +39,7 @@ func NewDogsled(settings *config.DogsledSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- dogsledName,
+ name,
"Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f())",
[]*analysis.Analyzer{analyzer},
nil,
@@ -100,7 +100,7 @@ func (v *returnsVisitor) Visit(node ast.Node) ast.Visitor {
if numBlank > v.maxBlanks {
v.issues = append(v.issues, result.Issue{
- FromLinter: dogsledName,
+ FromLinter: name,
Text: fmt.Sprintf("declaration has %v blank identifiers", numBlank),
Pos: v.f.Position(assgnStmt.Pos()),
})
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupl.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupl/dupl.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/dupl.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/dupl/dupl.go
index 9ec5d38083..6268e04a31 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupl.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupl/dupl.go
@@ -1,4 +1,4 @@
-package golinters
+package dupl
import (
"fmt"
@@ -16,14 +16,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const duplName = "dupl"
+const name = "dupl"
-func NewDupl(settings *config.DuplSettings) *goanalysis.Linter {
+func New(settings *config.DuplSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: duplName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runDupl(pass, settings)
@@ -44,7 +44,7 @@ func NewDupl(settings *config.DuplSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- duplName,
+ name,
"Tool for code clone detection",
[]*analysis.Analyzer{analyzer},
nil,
@@ -88,7 +88,7 @@ func runDupl(pass *analysis.Pass, settings *config.DuplSettings) ([]goanalysis.I
To: i.From.LineEnd(),
},
Text: text,
- FromLinter: duplName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupword.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupword/dupword.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/dupword.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/dupword/dupword.go
index 3d5242696d..bba4fc9e19 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupword.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/dupword/dupword.go
@@ -1,4 +1,4 @@
-package golinters
+package dupword
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewDupWord(setting *config.DupWordSettings) *goanalysis.Linter {
+func New(setting *config.DupWordSettings) *goanalysis.Linter {
a := dupword.NewAnalyzer()
cfgMap := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/durationcheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/durationcheck/durationcheck.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/durationcheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/durationcheck/durationcheck.go
index c332477652..88f22c27c0 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/durationcheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/durationcheck/durationcheck.go
@@ -1,4 +1,4 @@
-package golinters
+package durationcheck
import (
"github.com/charithe/durationcheck"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewDurationCheck() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := durationcheck.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goerr113.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/err113/err113.go
similarity index 69%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/goerr113.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/err113/err113.go
index a304cbe54b..2600128be1 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goerr113.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/err113/err113.go
@@ -1,4 +1,4 @@
-package golinters
+package err113
import (
"github.com/Djarvur/go-err113"
@@ -7,11 +7,13 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGoerr113() *goanalysis.Linter {
+func New() *goanalysis.Linter {
+ a := err113.NewAnalyzer()
+
return goanalysis.NewLinter(
- "goerr113",
+ a.Name,
"Go linter to check the errors handling expressions",
- []*analysis.Analyzer{err113.NewAnalyzer()},
+ []*analysis.Analyzer{a},
nil,
).WithLoadMode(goanalysis.LoadModeTypesInfo)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errcheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errcheck/errcheck.go
similarity index 96%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/errcheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/errcheck/errcheck.go
index b945012edf..e757f61c1a 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errcheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errcheck/errcheck.go
@@ -1,4 +1,4 @@
-package golinters
+package errcheck
import (
"bufio"
@@ -22,20 +22,20 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const errcheckName = "errcheck"
+const name = "errcheck"
-func NewErrcheck(settings *config.ErrcheckSettings) *goanalysis.Linter {
+func New(settings *config.ErrcheckSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: errcheckName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
}
return goanalysis.NewLinter(
- errcheckName,
+ name,
"errcheck is a program for checking for unchecked errors in Go code. "+
"These unchecked errors can be critical bugs in some cases",
[]*analysis.Analyzer{analyzer},
@@ -100,7 +100,7 @@ func runErrCheck(lintCtx *linter.Context, pass *analysis.Pass, checker *errcheck
issues[i] = goanalysis.NewIssue(
&result.Issue{
- FromLinter: errcheckName,
+ FromLinter: name,
Text: text,
Pos: err.Pos,
},
@@ -254,6 +254,7 @@ func readExcludeFile(name string) ([]string, error) {
if fh == nil {
return nil, fmt.Errorf("failed reading exclude file: %s: %w", name, err)
}
+ defer func() { _ = fh.Close() }()
scanner := bufio.NewScanner(fh)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errchkjson.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errchkjson/errchkjson.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/errchkjson.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/errchkjson/errchkjson.go
index 641e870104..8389a750c6 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errchkjson.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errchkjson/errchkjson.go
@@ -1,4 +1,4 @@
-package golinters
+package errchkjson
import (
"github.com/breml/errchkjson"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewErrChkJSON(cfg *config.ErrChkJSONSettings) *goanalysis.Linter {
+func New(cfg *config.ErrChkJSONSettings) *goanalysis.Linter {
a := errchkjson.NewAnalyzer()
cfgMap := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errname.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errname/errname.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/errname.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/errname/errname.go
index ce64f374c8..f868854c12 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errname.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errname/errname.go
@@ -1,4 +1,4 @@
-package golinters
+package errname
import (
"github.com/Antonboom/errname/pkg/analyzer"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewErrName() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := analyzer.New()
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errorlint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errorlint/errorlint.go
similarity index 52%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/errorlint.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/errorlint/errorlint.go
index adc3eadf27..86db8552d0 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/errorlint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/errorlint/errorlint.go
@@ -1,4 +1,4 @@
-package golinters
+package errorlint
import (
"github.com/polyfloyd/go-errorlint/errorlint"
@@ -8,8 +8,22 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewErrorLint(cfg *config.ErrorLintSettings) *goanalysis.Linter {
- a := errorlint.NewAnalyzer()
+func New(cfg *config.ErrorLintSettings) *goanalysis.Linter {
+ var opts []errorlint.Option
+
+ if cfg != nil {
+ ae := toAllowPairs(cfg.AllowedErrors)
+ if len(ae) > 0 {
+ opts = append(opts, errorlint.WithAllowedErrors(ae))
+ }
+
+ aew := toAllowPairs(cfg.AllowedErrorsWildcard)
+ if len(aew) > 0 {
+ opts = append(opts, errorlint.WithAllowedWildcard(aew))
+ }
+ }
+
+ a := errorlint.NewAnalyzer(opts...)
cfgMap := map[string]map[string]any{}
@@ -30,3 +44,11 @@ func NewErrorLint(cfg *config.ErrorLintSettings) *goanalysis.Linter {
cfgMap,
).WithLoadMode(goanalysis.LoadModeTypesInfo)
}
+
+func toAllowPairs(data []config.ErrorLintAllowPair) []errorlint.AllowPair {
+ var pairs []errorlint.AllowPair
+ for _, allowedError := range data {
+ pairs = append(pairs, errorlint.AllowPair(allowedError))
+ }
+ return pairs
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/execinquery.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/execinquery/execinquery.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/execinquery.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/execinquery/execinquery.go
index 6c5bcb6312..3832873c63 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/execinquery.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/execinquery/execinquery.go
@@ -1,4 +1,4 @@
-package golinters
+package execinquery
import (
"github.com/lufeee/execinquery"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewExecInQuery() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := execinquery.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustive.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustive/exhaustive.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustive.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustive/exhaustive.go
index 6280cbb562..9249efb69a 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustive.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustive/exhaustive.go
@@ -1,4 +1,4 @@
-package golinters
+package exhaustive
import (
"github.com/nishanths/exhaustive"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewExhaustive(settings *config.ExhaustiveSettings) *goanalysis.Linter {
+func New(settings *config.ExhaustiveSettings) *goanalysis.Linter {
a := exhaustive.Analyzer
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustruct.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustruct/exhaustruct.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustruct.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustruct/exhaustruct.go
index 4621b7bf57..53ad87154f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustruct.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/exhaustruct/exhaustruct.go
@@ -1,4 +1,4 @@
-package golinters
+package exhaustruct
import (
"github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer"
@@ -9,7 +9,7 @@ import (
"github.com/golangci/golangci-lint/pkg/golinters/internal"
)
-func NewExhaustruct(settings *config.ExhaustructSettings) *goanalysis.Linter {
+func New(settings *config.ExhaustructSettings) *goanalysis.Linter {
var include, exclude []string
if settings != nil {
include = settings.Include
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/exportloopref.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/exportloopref/exportloopref.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/exportloopref.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/exportloopref/exportloopref.go
index 30bdeedaa9..e232f8045d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/exportloopref.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/exportloopref/exportloopref.go
@@ -1,4 +1,4 @@
-package golinters
+package exportloopref
import (
"github.com/kyoh86/exportloopref"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewExportLoopRef() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := exportloopref.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/fatcontext/fatcontext.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/fatcontext/fatcontext.go
new file mode 100644
index 0000000000..378025a8cc
--- /dev/null
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/fatcontext/fatcontext.go
@@ -0,0 +1,19 @@
+package fatcontext
+
+import (
+ "github.com/Crocmagnon/fatcontext/pkg/analyzer"
+ "golang.org/x/tools/go/analysis"
+
+ "github.com/golangci/golangci-lint/pkg/goanalysis"
+)
+
+func New() *goanalysis.Linter {
+ a := analyzer.Analyzer
+
+ return goanalysis.NewLinter(
+ a.Name,
+ a.Doc,
+ []*analysis.Analyzer{a},
+ nil,
+ ).WithLoadMode(goanalysis.LoadModeTypesInfo)
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/forbidigo.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/forbidigo/forbidigo.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/forbidigo.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/forbidigo/forbidigo.go
index 194d4fa033..c25b5d09af 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/forbidigo.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/forbidigo/forbidigo.go
@@ -1,4 +1,4 @@
-package golinters
+package forbidigo
import (
"fmt"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const forbidigoName = "forbidigo"
+const name = "forbidigo"
-func NewForbidigo(settings *config.ForbidigoSettings) *goanalysis.Linter {
+func New(settings *config.ForbidigoSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: forbidigoName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runForbidigo(pass, settings)
@@ -44,7 +44,7 @@ func NewForbidigo(settings *config.ForbidigoSettings) *goanalysis.Linter {
// But we cannot make this depend on the settings and have to mirror the mode chosen in GetAllSupportedLinterConfigs,
// therefore we have to use LoadModeTypesInfo in all cases.
return goanalysis.NewLinter(
- forbidigoName,
+ name,
"Forbids identifiers",
[]*analysis.Analyzer{analyzer},
nil,
@@ -73,7 +73,7 @@ func runForbidigo(pass *analysis.Pass, settings *config.ForbidigoSettings) ([]go
forbid, err := forbidigo.NewLinter(patterns, options...)
if err != nil {
- return nil, fmt.Errorf("failed to create linter %q: %w", forbidigoName, err)
+ return nil, fmt.Errorf("failed to create linter %q: %w", name, err)
}
var issues []goanalysis.Issue
@@ -94,7 +94,7 @@ func runForbidigo(pass *analysis.Pass, settings *config.ForbidigoSettings) ([]go
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: hint.Position(),
Text: hint.Details(),
- FromLinter: forbidigoName,
+ FromLinter: name,
}, pass))
}
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert/forcetypeassert.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert/forcetypeassert.go
index 574e53c719..741b57ceac 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert/forcetypeassert.go
@@ -1,4 +1,4 @@
-package golinters
+package forcetypeassert
import (
"github.com/gostaticanalysis/forcetypeassert"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewForceTypeAssert() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := forcetypeassert.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/funlen.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/funlen/funlen.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/funlen.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/funlen/funlen.go
index 084028a754..4039066762 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/funlen.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/funlen/funlen.go
@@ -1,4 +1,4 @@
-package golinters
+package funlen
import (
"go/token"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const funlenName = "funlen"
+const name = "funlen"
-func NewFunlen(settings *config.FunlenSettings) *goanalysis.Linter {
+func New(settings *config.FunlenSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: funlenName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runFunlen(pass, settings)
@@ -39,7 +39,7 @@ func NewFunlen(settings *config.FunlenSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- funlenName,
+ name,
"Tool for detection of long functions",
[]*analysis.Analyzer{analyzer},
nil,
@@ -67,7 +67,7 @@ func runFunlen(pass *analysis.Pass, settings *config.FunlenSettings) []goanalysi
Line: i.Pos.Line,
},
Text: strings.TrimRight(i.Message, "\n"),
- FromLinter: funlenName,
+ FromLinter: name,
}, pass)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gci.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gci/gci.go
similarity index 61%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gci.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gci/gci.go
index 7f869930c6..a132633fce 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gci.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gci/gci.go
@@ -1,13 +1,17 @@
-package golinters
+package gci
import (
"fmt"
+ "sort"
+ "strings"
"sync"
gcicfg "github.com/daixiang0/gci/pkg/config"
"github.com/daixiang0/gci/pkg/gci"
"github.com/daixiang0/gci/pkg/io"
"github.com/daixiang0/gci/pkg/log"
+ "github.com/daixiang0/gci/pkg/section"
+ "github.com/golangci/modinfo"
"github.com/hexops/gotextdiff"
"github.com/hexops/gotextdiff/myers"
"github.com/hexops/gotextdiff/span"
@@ -19,16 +23,19 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-const gciName = "gci"
+const name = "gci"
-func NewGci(settings *config.GciSettings) *goanalysis.Linter {
+func New(settings *config.GciSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: gciName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
+ Requires: []*analysis.Analyzer{
+ modinfo.Analyzer,
+ },
}
var cfg *gcicfg.Config
@@ -47,7 +54,7 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter {
}
var err error
- cfg, err = rawCfg.Parse()
+ cfg, err = YamlConfig{origin: rawCfg}.Parse()
if err != nil {
internal.LinterLogger.Fatalf("gci: configuration parsing: %v", err)
}
@@ -56,12 +63,18 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter {
var lock sync.Mutex
return goanalysis.NewLinter(
- gciName,
+ name,
"Gci controls Go package import order and makes it always deterministic.",
[]*analysis.Analyzer{analyzer},
nil,
).WithContextSetter(func(lintCtx *linter.Context) {
analyzer.Run = func(pass *analysis.Pass) (any, error) {
+ var err error
+ cfg.Sections, err = hackSectionList(pass, cfg)
+ if err != nil {
+ return nil, err
+ }
+
issues, err := runGci(pass, lintCtx, cfg, &lock)
if err != nil {
return nil, err
@@ -98,7 +111,7 @@ func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gcicfg.Config, lo
continue
}
- is, err := internal.ExtractIssuesFromPatch(diff, lintCtx, gciName, getIssuedTextGci)
+ is, err := internal.ExtractIssuesFromPatch(diff, lintCtx, name, getIssuedTextGci)
if err != nil {
return nil, fmt.Errorf("can't extract issues from gci diff output %s: %w", diff, err)
}
@@ -111,6 +124,57 @@ func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gcicfg.Config, lo
return issues, nil
}
+func getIssuedTextGci(settings *config.LintersSettings) string {
+ text := "File is not `gci`-ed"
+
+ hasOptions := settings.Gci.SkipGenerated || len(settings.Gci.Sections) > 0
+ if !hasOptions {
+ return text
+ }
+
+ text += " with"
+
+ if settings.Gci.SkipGenerated {
+ text += " --skip-generated"
+ }
+
+ if len(settings.Gci.Sections) > 0 {
+ for _, sect := range settings.Gci.Sections {
+ text += " -s " + sect
+ }
+ }
+
+ if settings.Gci.CustomOrder {
+ text += " --custom-order"
+ }
+
+ return text
+}
+
+func hackSectionList(pass *analysis.Pass, cfg *gcicfg.Config) (section.SectionList, error) {
+ var sections section.SectionList
+
+ for _, sect := range cfg.Sections {
+ // local module hack
+ if v, ok := sect.(*section.LocalModule); ok {
+ info, err := modinfo.FindModuleFromPass(pass)
+ if err != nil {
+ return nil, err
+ }
+
+ if info.Path == "" {
+ continue
+ }
+
+ v.Path = info.Path
+ }
+
+ sections = append(sections, sect)
+ }
+
+ return sections, nil
+}
+
// diffFormattedFilesToArray is a copy of gci.DiffFormattedFilesToArray without io.StdInGenerator.
// gci.DiffFormattedFilesToArray uses gci.processStdInAndGoFilesInPaths that uses io.StdInGenerator but stdin is not active on CI.
// https://github.com/daixiang0/gci/blob/6f5cb16718ba07f0342a58de9b830ec5a6d58790/pkg/gci/gci.go#L63-L75
@@ -130,29 +194,55 @@ func diffFormattedFilesToArray(paths []string, cfg gcicfg.Config, diffs *[]strin
})
}
-func getIssuedTextGci(settings *config.LintersSettings) string {
- text := "File is not `gci`-ed"
+// Code bellow this comment is borrowed and modified from gci.
+// https://github.com/daixiang0/gci/blob/4725b0c101801e7449530eee2ddb0c72592e3405/pkg/config/config.go
+
+var defaultOrder = map[string]int{
+ section.StandardType: 0,
+ section.DefaultType: 1,
+ section.CustomType: 2,
+ section.BlankType: 3,
+ section.DotType: 4,
+ section.AliasType: 5,
+ section.LocalModuleType: 6,
+}
- hasOptions := settings.Gci.SkipGenerated || len(settings.Gci.Sections) > 0
- if !hasOptions {
- return text
- }
+type YamlConfig struct {
+ origin gcicfg.YamlConfig
+}
- text += " with"
+//nolint:gocritic // code borrowed from gci and modified to fix LocalModule section behavior.
+func (g YamlConfig) Parse() (*gcicfg.Config, error) {
+ var err error
- if settings.Gci.SkipGenerated {
- text += " --skip-generated"
+ sections, err := section.Parse(g.origin.SectionStrings)
+ if err != nil {
+ return nil, err
}
- if len(settings.Gci.Sections) > 0 {
- for _, section := range settings.Gci.Sections {
- text += " -s " + section
- }
+ if sections == nil {
+ sections = section.DefaultSections()
}
- if settings.Gci.CustomOrder {
- text += " --custom-order"
+ // if default order sorted sections
+ if !g.origin.Cfg.CustomOrder {
+ sort.Slice(sections, func(i, j int) bool {
+ sectionI, sectionJ := sections[i].Type(), sections[j].Type()
+
+ if strings.Compare(sectionI, sectionJ) == 0 {
+ return strings.Compare(sections[i].String(), sections[j].String()) < 0
+ }
+ return defaultOrder[sectionI] < defaultOrder[sectionJ]
+ })
}
- return text
+ sectionSeparators, err := section.Parse(g.origin.SectionSeparatorStrings)
+ if err != nil {
+ return nil, err
+ }
+ if sectionSeparators == nil {
+ sectionSeparators = section.DefaultSectionSeparators()
+ }
+
+ return &gcicfg.Config{BoolConfig: g.origin.Cfg, Sections: sections, SectionSeparators: sectionSeparators}, nil
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter/ginkgolinter.go
similarity index 93%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter/ginkgolinter.go
index 182b001d51..54d2072570 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter/ginkgolinter.go
@@ -1,4 +1,4 @@
-package golinters
+package ginkgolinter
import (
"github.com/nunnatsa/ginkgolinter"
@@ -9,7 +9,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGinkgoLinter(settings *config.GinkgoLinterSettings) *goanalysis.Linter {
+func New(settings *config.GinkgoLinterSettings) *goanalysis.Linter {
cfg := &types.Config{}
if settings != nil {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives/gocheckcompilerdirectives.go
similarity index 81%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives/gocheckcompilerdirectives.go
index d2e302a285..be604d805b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives/gocheckcompilerdirectives.go
@@ -1,4 +1,4 @@
-package golinters
+package gocheckcompilerdirectives
import (
"4d63.com/gocheckcompilerdirectives/checkcompilerdirectives"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGoCheckCompilerDirectives() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := checkcompilerdirectives.Analyzer()
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals/gochecknoglobals.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals/gochecknoglobals.go
index a35876d995..af22b2f8e9 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals/gochecknoglobals.go
@@ -1,4 +1,4 @@
-package golinters
+package gochecknoglobals
import (
"4d63.com/gochecknoglobals/checknoglobals"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGochecknoglobals() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := checknoglobals.Analyzer()
// gochecknoglobals only lints test files if the `-t` flag is passed,
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits/gochecknoinits.go
similarity index 89%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits/gochecknoinits.go
index 28f0259431..9bce275577 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits/gochecknoinits.go
@@ -1,4 +1,4 @@
-package golinters
+package gochecknoinits
import (
"fmt"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const gochecknoinitsName = "gochecknoinits"
+const name = "gochecknoinits"
-func NewGochecknoinits() *goanalysis.Linter {
+func New() *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: gochecknoinitsName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
var res []goanalysis.Issue
@@ -44,7 +44,7 @@ func NewGochecknoinits() *goanalysis.Linter {
}
return goanalysis.NewLinter(
- gochecknoinitsName,
+ name,
"Checks that no init functions are present in Go code",
[]*analysis.Analyzer{analyzer},
nil,
@@ -66,7 +66,7 @@ func checkFileForInits(f *ast.File, fset *token.FileSet) []result.Issue {
res = append(res, result.Issue{
Pos: fset.Position(funcDecl.Pos()),
Text: fmt.Sprintf("don't use %s function", internal.FormatCode(name, nil)),
- FromLinter: gochecknoinitsName,
+ FromLinter: name,
})
}
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype/gochecksumtype.go
similarity index 89%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype/gochecksumtype.go
index a022abae97..2ce3b4c8fa 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype/gochecksumtype.go
@@ -1,4 +1,4 @@
-package golinters
+package gochecksumtype
import (
"strings"
@@ -13,14 +13,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const goCheckSumTypeName = "gochecksumtype"
+const name = "gochecksumtype"
-func NewGoCheckSumType() *goanalysis.Linter {
+func New() *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: goCheckSumTypeName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runGoCheckSumType(pass)
@@ -41,7 +41,7 @@ func NewGoCheckSumType() *goanalysis.Linter {
}
return goanalysis.NewLinter(
- goCheckSumTypeName,
+ name,
`Run exhaustiveness checks on Go "sum types"`,
[]*analysis.Analyzer{analyzer},
nil,
@@ -70,7 +70,7 @@ func runGoCheckSumType(pass *analysis.Pass) ([]goanalysis.Issue, error) {
}
resIssues = append(resIssues, goanalysis.NewIssue(&result.Issue{
- FromLinter: goCheckSumTypeName,
+ FromLinter: name,
Text: strings.TrimPrefix(err.Error(), err.Pos().String()+": "),
Pos: err.Pos(),
}, pass))
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocognit.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocognit/gocognit.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gocognit.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gocognit/gocognit.go
index 00cd26b091..d23c607950 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocognit.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocognit/gocognit.go
@@ -1,4 +1,4 @@
-package golinters
+package gocognit
import (
"fmt"
@@ -15,9 +15,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const gocognitName = "gocognit"
+const name = "gocognit"
-func NewGocognit(settings *config.GocognitSettings) *goanalysis.Linter {
+func New(settings *config.GocognitSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -40,7 +40,7 @@ func NewGocognit(settings *config.GocognitSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- gocognitName,
+ name,
"Computes and checks the cognitive complexity of functions",
[]*analysis.Analyzer{analyzer},
nil,
@@ -72,7 +72,7 @@ func runGocognit(pass *analysis.Pass, settings *config.GocognitSettings) []goana
Pos: s.Pos,
Text: fmt.Sprintf("cognitive complexity %d of func %s is high (> %d)",
s.Complexity, internal.FormatCode(s.FuncName, nil), settings.MinComplexity),
- FromLinter: gocognitName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goconst.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goconst/goconst.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/goconst.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/goconst/goconst.go
index 553f6be974..de52ba0547 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goconst.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goconst/goconst.go
@@ -1,4 +1,4 @@
-package golinters
+package goconst
import (
"fmt"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const goconstName = "goconst"
+const name = "goconst"
-func NewGoconst(settings *config.GoConstSettings) *goanalysis.Linter {
+func New(settings *config.GoConstSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: goconstName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runGoconst(pass, settings)
@@ -42,7 +42,7 @@ func NewGoconst(settings *config.GoConstSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- goconstName,
+ name,
"Finds repeated strings that could be replaced by a constant",
[]*analysis.Analyzer{analyzer},
nil,
@@ -90,7 +90,7 @@ func runGoconst(pass *analysis.Pass, settings *config.GoConstSettings) ([]goanal
res = append(res, goanalysis.NewIssue(&result.Issue{
Pos: i.Pos,
Text: text,
- FromLinter: goconstName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocritic.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocritic/gocritic.go
similarity index 81%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gocritic.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gocritic/gocritic.go
index 5f5d34393a..837f517ff9 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocritic.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocritic/gocritic.go
@@ -1,4 +1,4 @@
-package golinters
+package gocritic
import (
"errors"
@@ -14,6 +14,7 @@ import (
"github.com/go-critic/go-critic/checkers"
gocriticlinter "github.com/go-critic/go-critic/linter"
+ _ "github.com/quasilyte/go-ruleguard/dsl"
"golang.org/x/exp/maps"
"golang.org/x/exp/slices"
"golang.org/x/tools/go/analysis"
@@ -25,14 +26,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const goCriticName = "gocritic"
+const name = "gocritic"
var (
- goCriticDebugf = logutils.Debug(logutils.DebugKeyGoCritic)
- isGoCriticDebug = logutils.HaveDebugTag(logutils.DebugKeyGoCritic)
+ debugf = logutils.Debug(logutils.DebugKeyGoCritic)
+ isDebug = logutils.HaveDebugTag(logutils.DebugKeyGoCritic)
)
-func NewGoCritic(settings *config.GoCriticSettings) *goanalysis.Linter {
+func New(settings *config.GoCriticSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -41,7 +42,7 @@ func NewGoCritic(settings *config.GoCriticSettings) *goanalysis.Linter {
}
analyzer := &analysis.Analyzer{
- Name: goCriticName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := wrapper.run(pass)
@@ -62,7 +63,7 @@ func NewGoCritic(settings *config.GoCriticSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- goCriticName,
+ name,
`Provides diagnostics that check for bugs, performance and style issues.
Extensible without recompilation through dynamic rules.
Dynamic rules are written declaratively with AST patterns, filters, report message and optional suggestion.`,
@@ -81,7 +82,7 @@ Dynamic rules are written declaratively with AST patterns, filters, report messa
}
type goCriticWrapper struct {
- settingsWrapper *goCriticSettingsWrapper
+ settingsWrapper *settingsWrapper
configDir string
sizes types.Sizes
once sync.Once
@@ -95,16 +96,16 @@ func (w *goCriticWrapper) init(logger logutils.Log, settings *config.GoCriticSet
w.once.Do(func() {
err := checkers.InitEmbeddedRules()
if err != nil {
- logger.Fatalf("%s: %v: setting an explicit GOROOT can fix this problem", goCriticName, err)
+ logger.Fatalf("%s: %v: setting an explicit GOROOT can fix this problem", name, err)
}
})
- settingsWrapper := newGoCriticSettingsWrapper(settings, logger)
+ settingsWrapper := newSettingsWrapper(settings, logger)
settingsWrapper.InferEnabledChecks()
// Validate must be after InferEnabledChecks, not before.
// Because it uses gathered information about tags set and finally enabled checks.
if err := settingsWrapper.Validate(); err != nil {
- logger.Fatalf("%s: invalid settings: %s", goCriticName, err)
+ logger.Fatalf("%s: invalid settings: %s", name, err)
}
w.settingsWrapper = settingsWrapper
@@ -126,7 +127,7 @@ func (w *goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) {
linterCtx.SetPackageInfo(pass.TypesInfo, pass.Pkg)
- pkgIssues := runGoCriticOnPackage(linterCtx, enabledCheckers, pass.Files)
+ pkgIssues := runOnPackage(linterCtx, enabledCheckers, pass.Files)
issues := make([]goanalysis.Issue, 0, len(pkgIssues))
for i := range pkgIssues {
@@ -213,19 +214,19 @@ func (w *goCriticWrapper) normalizeCheckerParamsValue(p any) any {
}
}
-func runGoCriticOnPackage(linterCtx *gocriticlinter.Context, checks []*gocriticlinter.Checker, files []*ast.File) []result.Issue {
+func runOnPackage(linterCtx *gocriticlinter.Context, checks []*gocriticlinter.Checker, files []*ast.File) []result.Issue {
var res []result.Issue
for _, f := range files {
filename := filepath.Base(linterCtx.FileSet.Position(f.Pos()).Filename)
linterCtx.SetFileInfo(filename, f)
- issues := runGoCriticOnFile(linterCtx, f, checks)
+ issues := runOnFile(linterCtx, f, checks)
res = append(res, issues...)
}
return res
}
-func runGoCriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checks []*gocriticlinter.Checker) []result.Issue {
+func runOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checks []*gocriticlinter.Checker) []result.Issue {
var res []result.Issue
for _, c := range checks {
@@ -236,7 +237,7 @@ func runGoCriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checks []
issue := result.Issue{
Pos: pos,
Text: fmt.Sprintf("%s: %s", c.Info.Name, warn.Text),
- FromLinter: goCriticName,
+ FromLinter: name,
}
if warn.HasQuickFix() {
@@ -263,7 +264,7 @@ func (m goCriticChecks[T]) has(name string) bool {
return ok
}
-type goCriticSettingsWrapper struct {
+type settingsWrapper struct {
*config.GoCriticSettings
logger logutils.Log
@@ -281,7 +282,7 @@ type goCriticSettingsWrapper struct {
inferredEnabledChecksLowerCased goCriticChecks[struct{}]
}
-func newGoCriticSettingsWrapper(settings *config.GoCriticSettings, logger logutils.Log) *goCriticSettingsWrapper {
+func newSettingsWrapper(settings *config.GoCriticSettings, logger logutils.Log) *settingsWrapper {
allCheckers := gocriticlinter.GetCheckersInfo()
allChecks := make(goCriticChecks[struct{}], len(allCheckers))
@@ -299,7 +300,7 @@ func newGoCriticSettingsWrapper(settings *config.GoCriticSettings, logger loguti
allTagsSorted := maps.Keys(allChecksByTag)
sort.Strings(allTagsSorted)
- return &goCriticSettingsWrapper{
+ return &settingsWrapper{
GoCriticSettings: settings,
logger: logger,
allCheckers: allCheckers,
@@ -312,16 +313,16 @@ func newGoCriticSettingsWrapper(settings *config.GoCriticSettings, logger loguti
}
}
-func (s *goCriticSettingsWrapper) IsCheckEnabled(name string) bool {
+func (s *settingsWrapper) IsCheckEnabled(name string) bool {
return s.inferredEnabledChecks.has(name)
}
-func (s *goCriticSettingsWrapper) GetLowerCasedParams() map[string]config.GoCriticCheckSettings {
+func (s *settingsWrapper) GetLowerCasedParams() map[string]config.GoCriticCheckSettings {
return normalizeMap(s.SettingsPerCheck)
}
-// InferEnabledChecks tries to be consistent with (lintersdb.EnabledSet).build.
-func (s *goCriticSettingsWrapper) InferEnabledChecks() {
+// InferEnabledChecks tries to be consistent with (lintersdb.Manager).build.
+func (s *settingsWrapper) InferEnabledChecks() {
s.debugChecksInitialState()
enabledByDefaultChecks, disabledByDefaultChecks := s.buildEnabledAndDisabledByDefaultChecks()
@@ -357,7 +358,7 @@ func (s *goCriticSettingsWrapper) InferEnabledChecks() {
for _, check := range s.EnabledChecks {
if enabledChecks.has(check) {
- s.logger.Warnf("%s: no need to enable check %q: it's already enabled", goCriticName, check)
+ s.logger.Warnf("%s: no need to enable check %q: it's already enabled", name, check)
continue
}
enabledChecks[check] = struct{}{}
@@ -378,7 +379,7 @@ func (s *goCriticSettingsWrapper) InferEnabledChecks() {
for _, check := range s.DisabledChecks {
if !enabledChecks.has(check) {
- s.logger.Warnf("%s: no need to disable check %q: it's already disabled", goCriticName, check)
+ s.logger.Warnf("%s: no need to disable check %q: it's already disabled", name, check)
continue
}
delete(enabledChecks, check)
@@ -390,7 +391,7 @@ func (s *goCriticSettingsWrapper) InferEnabledChecks() {
s.debugChecksFinalState()
}
-func (s *goCriticSettingsWrapper) buildEnabledAndDisabledByDefaultChecks() (enabled, disabled []string) {
+func (s *settingsWrapper) buildEnabledAndDisabledByDefaultChecks() (enabled, disabled []string) {
for _, info := range s.allCheckers {
if enabledByDef := isEnabledByDefaultGoCriticChecker(info); enabledByDef {
enabled = append(enabled, info.Name)
@@ -401,7 +402,7 @@ func (s *goCriticSettingsWrapper) buildEnabledAndDisabledByDefaultChecks() (enab
return enabled, disabled
}
-func (s *goCriticSettingsWrapper) expandTagsToChecks(tags []string) []string {
+func (s *settingsWrapper) expandTagsToChecks(tags []string) []string {
var checks []string
for _, tag := range tags {
checks = append(checks, s.allChecksByTag[tag]...)
@@ -409,19 +410,19 @@ func (s *goCriticSettingsWrapper) expandTagsToChecks(tags []string) []string {
return checks
}
-func (s *goCriticSettingsWrapper) debugChecksInitialState() {
- if !isGoCriticDebug {
+func (s *settingsWrapper) debugChecksInitialState() {
+ if !isDebug {
return
}
- goCriticDebugf("All gocritic existing tags and checks:")
+ debugf("All gocritic existing tags and checks:")
for _, tag := range s.allTagsSorted {
debugChecksListf(s.allChecksByTag[tag], " tag %q", tag)
}
}
-func (s *goCriticSettingsWrapper) debugChecksFinalState() {
- if !isGoCriticDebug {
+func (s *settingsWrapper) debugChecksFinalState() {
+ if !isDebug {
return
}
@@ -429,25 +430,25 @@ func (s *goCriticSettingsWrapper) debugChecksFinalState() {
var disabledChecks []string
for _, checker := range s.allCheckers {
- name := checker.Name
- if s.inferredEnabledChecks.has(name) {
- enabledChecks = append(enabledChecks, name)
+ check := checker.Name
+ if s.inferredEnabledChecks.has(check) {
+ enabledChecks = append(enabledChecks, check)
} else {
- disabledChecks = append(disabledChecks, name)
+ disabledChecks = append(disabledChecks, check)
}
}
debugChecksListf(enabledChecks, "Final used")
if len(disabledChecks) == 0 {
- goCriticDebugf("All checks are enabled")
+ debugf("All checks are enabled")
} else {
debugChecksListf(disabledChecks, "Final not used")
}
}
// Validate tries to be consistent with (lintersdb.Validator).validateEnabledDisabledLintersConfig.
-func (s *goCriticSettingsWrapper) Validate() error {
+func (s *settingsWrapper) Validate() error {
for _, v := range []func() error{
s.validateOptionsCombinations,
s.validateCheckerTags,
@@ -462,7 +463,7 @@ func (s *goCriticSettingsWrapper) Validate() error {
return nil
}
-func (s *goCriticSettingsWrapper) validateOptionsCombinations() error {
+func (s *settingsWrapper) validateOptionsCombinations() error {
if s.EnableAll {
if s.DisableAll {
return errors.New("enable-all and disable-all options must not be combined")
@@ -494,49 +495,49 @@ func (s *goCriticSettingsWrapper) validateOptionsCombinations() error {
return nil
}
-func (s *goCriticSettingsWrapper) validateCheckerTags() error {
+func (s *settingsWrapper) validateCheckerTags() error {
for _, tag := range s.EnabledTags {
if !s.allChecksByTag.has(tag) {
- return fmt.Errorf("enabled tag %q doesn't exist, see %s's documentation", tag, goCriticName)
+ return fmt.Errorf("enabled tag %q doesn't exist, see %s's documentation", tag, name)
}
}
for _, tag := range s.DisabledTags {
if !s.allChecksByTag.has(tag) {
- return fmt.Errorf("disabled tag %q doesn't exist, see %s's documentation", tag, goCriticName)
+ return fmt.Errorf("disabled tag %q doesn't exist, see %s's documentation", tag, name)
}
}
return nil
}
-func (s *goCriticSettingsWrapper) validateCheckerNames() error {
- for _, name := range s.EnabledChecks {
- if !s.allChecks.has(name) {
- return fmt.Errorf("enabled check %q doesn't exist, see %s's documentation", name, goCriticName)
+func (s *settingsWrapper) validateCheckerNames() error {
+ for _, check := range s.EnabledChecks {
+ if !s.allChecks.has(check) {
+ return fmt.Errorf("enabled check %q doesn't exist, see %s's documentation", check, name)
}
}
- for _, name := range s.DisabledChecks {
- if !s.allChecks.has(name) {
- return fmt.Errorf("disabled check %q doesn't exist, see %s documentation", name, goCriticName)
+ for _, check := range s.DisabledChecks {
+ if !s.allChecks.has(check) {
+ return fmt.Errorf("disabled check %q doesn't exist, see %s documentation", check, name)
}
}
- for name := range s.SettingsPerCheck {
- lcName := strings.ToLower(name)
+ for check := range s.SettingsPerCheck {
+ lcName := strings.ToLower(check)
if !s.allChecksLowerCased.has(lcName) {
- return fmt.Errorf("invalid check settings: check %q doesn't exist, see %s documentation", name, goCriticName)
+ return fmt.Errorf("invalid check settings: check %q doesn't exist, see %s documentation", check, name)
}
if !s.inferredEnabledChecksLowerCased.has(lcName) {
- s.logger.Warnf("%s: settings were provided for disabled check %q", goCriticName, name)
+ s.logger.Warnf("%s: settings were provided for disabled check %q", check, name)
}
}
return nil
}
-func (s *goCriticSettingsWrapper) validateDisabledAndEnabledAtOneMoment() error {
+func (s *settingsWrapper) validateDisabledAndEnabledAtOneMoment() error {
for _, tag := range s.DisabledTags {
if slices.Contains(s.EnabledTags, tag) {
return fmt.Errorf("tag %q disabled and enabled at one moment", tag)
@@ -552,7 +553,7 @@ func (s *goCriticSettingsWrapper) validateDisabledAndEnabledAtOneMoment() error
return nil
}
-func (s *goCriticSettingsWrapper) validateAtLeastOneCheckerEnabled() error {
+func (s *settingsWrapper) validateAtLeastOneCheckerEnabled() error {
if len(s.inferredEnabledChecks) == 0 {
return errors.New("eventually all checks were disabled: at least one must be enabled")
}
@@ -576,11 +577,11 @@ func isEnabledByDefaultGoCriticChecker(info *gocriticlinter.CheckerInfo) bool {
}
func debugChecksListf(checks []string, format string, args ...any) {
- if !isGoCriticDebug {
+ if !isDebug {
return
}
- goCriticDebugf("%s checks (%d): %s", fmt.Sprintf(format, args...), len(checks), sprintSortedStrings(checks))
+ debugf("%s checks (%d): %s", fmt.Sprintf(format, args...), len(checks), sprintSortedStrings(checks))
}
func sprintSortedStrings(v []string) string {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocyclo.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocyclo/gocyclo.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gocyclo.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gocyclo/gocyclo.go
index cbf05fff0c..385a141d6d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocyclo.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gocyclo/gocyclo.go
@@ -1,4 +1,4 @@
-package golinters
+package gocyclo
import (
"fmt"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const gocycloName = "gocyclo"
+const name = "gocyclo"
-func NewGocyclo(settings *config.GoCycloSettings) *goanalysis.Linter {
+func New(settings *config.GoCycloSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: gocycloName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runGoCyclo(pass, settings)
@@ -39,7 +39,7 @@ func NewGocyclo(settings *config.GoCycloSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- gocycloName,
+ name,
"Computes and checks the cyclomatic complexity of functions",
[]*analysis.Analyzer{analyzer},
nil,
@@ -68,7 +68,7 @@ func runGoCyclo(pass *analysis.Pass, settings *config.GoCycloSettings) []goanaly
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: s.Pos,
Text: text,
- FromLinter: gocycloName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/godot.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/godot/godot.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/godot.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/godot/godot.go
index 614ea41024..fc3584c48a 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/godot.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/godot/godot.go
@@ -1,4 +1,4 @@
-package golinters
+package godot
import (
"sync"
@@ -12,9 +12,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const godotName = "godot"
+const name = "godot"
-func NewGodot(settings *config.GodotSettings) *goanalysis.Linter {
+func New(settings *config.GodotSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -39,7 +39,7 @@ func NewGodot(settings *config.GodotSettings) *goanalysis.Linter {
}
analyzer := &analysis.Analyzer{
- Name: godotName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runGodot(pass, dotSettings)
@@ -60,7 +60,7 @@ func NewGodot(settings *config.GodotSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- godotName,
+ name,
"Check if comments end in a period",
[]*analysis.Analyzer{analyzer},
nil,
@@ -88,7 +88,7 @@ func runGodot(pass *analysis.Pass, settings godot.Settings) ([]goanalysis.Issue,
issue := result.Issue{
Pos: i.Pos,
Text: i.Message,
- FromLinter: godotName,
+ FromLinter: name,
Replacement: &result.Replacement{
NewLines: []string{i.Replacement},
},
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/godox.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/godox/godox.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/godox.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/godox/godox.go
index afe997bd28..e3bc471814 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/godox.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/godox/godox.go
@@ -1,4 +1,4 @@
-package golinters
+package godox
import (
"go/token"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const godoxName = "godox"
+const name = "godox"
-func NewGodox(settings *config.GodoxSettings) *goanalysis.Linter {
+func New(settings *config.GodoxSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: godoxName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runGodox(pass, settings)
@@ -39,7 +39,7 @@ func NewGodox(settings *config.GodoxSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- godoxName,
+ name,
"Tool for detection of FIXME, TODO and other comment keywords",
[]*analysis.Analyzer{analyzer},
nil,
@@ -67,7 +67,7 @@ func runGodox(pass *analysis.Pass, settings *config.GodoxSettings) []goanalysis.
Line: i.Pos.Line,
},
Text: strings.TrimRight(i.Message, "\n"),
- FromLinter: godoxName,
+ FromLinter: name,
}, pass)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofmt.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofmt/gofmt.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gofmt.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gofmt/gofmt.go
index 9a00694440..bcdf833637 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofmt.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofmt/gofmt.go
@@ -1,4 +1,4 @@
-package golinters
+package gofmt
import (
"fmt"
@@ -13,20 +13,20 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-const gofmtName = "gofmt"
+const name = "gofmt"
-func NewGofmt(settings *config.GoFmtSettings) *goanalysis.Linter {
+func New(settings *config.GoFmtSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: gofmtName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
}
return goanalysis.NewLinter(
- gofmtName,
+ name,
"Gofmt checks whether code was gofmt-ed. By default "+
"this tool runs with -s option to check for code simplification",
[]*analysis.Analyzer{analyzer},
@@ -72,7 +72,7 @@ func runGofmt(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoF
continue
}
- is, err := internal.ExtractIssuesFromPatch(string(diff), lintCtx, gofmtName, getIssuedTextGoFmt)
+ is, err := internal.ExtractIssuesFromPatch(string(diff), lintCtx, name, getIssuedTextGoFmt)
if err != nil {
return nil, fmt.Errorf("can't extract issues from gofmt diff output %q: %w", string(diff), err)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofumpt.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofumpt/gofumpt.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gofumpt.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gofumpt/gofumpt.go
index 4c6a9cec10..a31cd573b7 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofumpt.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gofumpt/gofumpt.go
@@ -1,4 +1,4 @@
-package golinters
+package gofumpt
import (
"bytes"
@@ -17,13 +17,13 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-const gofumptName = "gofumpt"
+const name = "gofumpt"
type differ interface {
Diff(out io.Writer, a io.ReadSeeker, b io.ReadSeeker) error
}
-func NewGofumpt(settings *config.GofumptSettings) *goanalysis.Linter {
+func New(settings *config.GofumptSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -40,13 +40,13 @@ func NewGofumpt(settings *config.GofumptSettings) *goanalysis.Linter {
}
analyzer := &analysis.Analyzer{
- Name: gofumptName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
}
return goanalysis.NewLinter(
- gofumptName,
+ name,
"Gofumpt checks whether code was gofumpt-ed.",
[]*analysis.Analyzer{analyzer},
nil,
@@ -97,7 +97,7 @@ func runGofumpt(lintCtx *linter.Context, pass *analysis.Pass, diff differ, optio
}
diff := out.String()
- is, err := internal.ExtractIssuesFromPatch(diff, lintCtx, gofumptName, getIssuedTextGoFumpt)
+ is, err := internal.ExtractIssuesFromPatch(diff, lintCtx, name, getIssuedTextGoFumpt)
if err != nil {
return nil, fmt.Errorf("can't extract issues from gofumpt diff output %q: %w", diff, err)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goheader.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goheader/goheader.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/goheader.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/goheader/goheader.go
index b47f0304e6..bb6e404062 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goheader.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goheader/goheader.go
@@ -1,4 +1,4 @@
-package golinters
+package goheader
import (
"go/token"
@@ -13,9 +13,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const goHeaderName = "goheader"
+const name = "goheader"
-func NewGoHeader(settings *config.GoHeaderSettings) *goanalysis.Linter {
+func New(settings *config.GoHeaderSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -29,7 +29,7 @@ func NewGoHeader(settings *config.GoHeaderSettings) *goanalysis.Linter {
}
analyzer := &analysis.Analyzer{
- Name: goHeaderName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runGoHeader(pass, conf)
@@ -50,7 +50,7 @@ func NewGoHeader(settings *config.GoHeaderSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- goHeaderName,
+ name,
"Checks is file header matches to pattern",
[]*analysis.Analyzer{analyzer},
nil,
@@ -94,7 +94,7 @@ func runGoHeader(pass *analysis.Pass, conf *goheader.Configuration) ([]goanalysi
Filename: path,
},
Text: i.Message(),
- FromLinter: goHeaderName,
+ FromLinter: name,
}
if fix := i.Fix(); fix != nil {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goimports.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goimports/goimports.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/goimports.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/goimports/goimports.go
index 224970f5ca..8be5062914 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goimports.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goimports/goimports.go
@@ -1,4 +1,4 @@
-package golinters
+package goimports
import (
"fmt"
@@ -14,20 +14,20 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-const goimportsName = "goimports"
+const name = "goimports"
-func NewGoimports(settings *config.GoImportsSettings) *goanalysis.Linter {
+func New(settings *config.GoImportsSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: goimportsName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
}
return goanalysis.NewLinter(
- goimportsName,
+ name,
"Check import statements are formatted according to the 'goimport' command. "+
"Reformat imports in autofix mode.",
[]*analysis.Analyzer{analyzer},
@@ -70,7 +70,7 @@ func runGoImports(lintCtx *linter.Context, pass *analysis.Pass) ([]goanalysis.Is
continue
}
- is, err := internal.ExtractIssuesFromPatch(string(diff), lintCtx, goimportsName, getIssuedTextGoImports)
+ is, err := internal.ExtractIssuesFromPatch(string(diff), lintCtx, name, getIssuedTextGoImports)
if err != nil {
return nil, fmt.Errorf("can't extract issues from gofmt diff output %q: %w", string(diff), err)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomnd.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomnd.go
deleted file mode 100644
index b4bf957a70..0000000000
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomnd.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package golinters
-
-import (
- mnd "github.com/tommy-muehle/go-mnd/v2"
- "golang.org/x/tools/go/analysis"
-
- "github.com/golangci/golangci-lint/pkg/config"
- "github.com/golangci/golangci-lint/pkg/goanalysis"
-)
-
-func NewGoMND(settings *config.GoMndSettings) *goanalysis.Linter {
- var linterCfg map[string]map[string]any
-
- if settings != nil {
- // TODO(ldez) For compatibility only, must be drop in v2.
- if len(settings.Settings) > 0 {
- linterCfg = settings.Settings
- } else {
- cfg := make(map[string]any)
- if len(settings.Checks) > 0 {
- cfg["checks"] = settings.Checks
- }
- if len(settings.IgnoredNumbers) > 0 {
- cfg["ignored-numbers"] = settings.IgnoredNumbers
- }
- if len(settings.IgnoredFiles) > 0 {
- cfg["ignored-files"] = settings.IgnoredFiles
- }
- if len(settings.IgnoredFunctions) > 0 {
- cfg["ignored-functions"] = settings.IgnoredFunctions
- }
-
- linterCfg = map[string]map[string]any{
- "mnd": cfg,
- }
- }
- }
-
- return goanalysis.NewLinter(
- "gomnd",
- "An analyzer to detect magic numbers.",
- []*analysis.Analyzer{mnd.Analyzer},
- linterCfg,
- ).WithLoadMode(goanalysis.LoadModeSyntax)
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives/gomoddirectives.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives/gomoddirectives.go
index 6902b3207e..253faa0170 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives/gomoddirectives.go
@@ -1,4 +1,4 @@
-package golinters
+package gomoddirectives
import (
"sync"
@@ -12,10 +12,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const goModDirectivesName = "gomoddirectives"
+const name = "gomoddirectives"
-// NewGoModDirectives returns a new gomoddirectives linter.
-func NewGoModDirectives(settings *config.GoModDirectivesSettings) *goanalysis.Linter {
+func New(settings *config.GoModDirectivesSettings) *goanalysis.Linter {
var issues []goanalysis.Issue
var once sync.Once
@@ -34,7 +33,7 @@ func NewGoModDirectives(settings *config.GoModDirectivesSettings) *goanalysis.Li
}
return goanalysis.NewLinter(
- goModDirectivesName,
+ name,
"Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod.",
[]*analysis.Analyzer{analyzer},
nil,
@@ -44,13 +43,13 @@ func NewGoModDirectives(settings *config.GoModDirectivesSettings) *goanalysis.Li
results, err := gomoddirectives.Analyze(opts)
if err != nil {
lintCtx.Log.Warnf("running %s failed: %s: "+
- "if you are not using go modules it is suggested to disable this linter", goModDirectivesName, err)
+ "if you are not using go modules it is suggested to disable this linter", name, err)
return
}
for _, p := range results {
issues = append(issues, goanalysis.NewIssue(&result.Issue{
- FromLinter: goModDirectivesName,
+ FromLinter: name,
Pos: p.Start,
Text: p.Reason,
}, pass))
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomodguard.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomodguard/gomodguard.go
similarity index 88%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gomodguard.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gomodguard/gomodguard.go
index fe880b57fe..8f1036b0f1 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomodguard.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gomodguard/gomodguard.go
@@ -1,4 +1,4 @@
-package golinters
+package gomodguard
import (
"sync"
@@ -14,14 +14,13 @@ import (
)
const (
- gomodguardName = "gomodguard"
- gomodguardDesc = "Allow and block list linter for direct Go module dependencies. " +
+ name = "gomodguard"
+ desc = "Allow and block list linter for direct Go module dependencies. " +
"This is different from depguard where there are different block " +
"types for example version constraints and module recommendations."
)
-// NewGomodguard returns a new Gomodguard linter.
-func NewGomodguard(settings *config.GoModGuardSettings) *goanalysis.Linter {
+func New(settings *config.GoModGuardSettings) *goanalysis.Linter {
var issues []goanalysis.Issue
var mu sync.Mutex
@@ -61,8 +60,8 @@ func NewGomodguard(settings *config.GoModGuardSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- gomodguardName,
- gomodguardDesc,
+ name,
+ desc,
[]*analysis.Analyzer{analyzer},
nil,
).WithContextSetter(func(lintCtx *linter.Context) {
@@ -81,7 +80,7 @@ func NewGomodguard(settings *config.GoModGuardSettings) *goanalysis.Linter {
for _, gomodguardIssue := range gomodguardIssues {
issues = append(issues, goanalysis.NewIssue(&result.Issue{
- FromLinter: gomodguardName,
+ FromLinter: name,
Pos: gomodguardIssue.Position,
Text: gomodguardIssue.Reason,
}, pass))
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname/goprintffuncname.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname/goprintffuncname.go
index 97df64051b..85154a9b38 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname/goprintffuncname.go
@@ -1,4 +1,4 @@
-package golinters
+package goprintffuncname
import (
"github.com/jirfag/go-printf-func-name/pkg/analyzer"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGoPrintfFuncName() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := analyzer.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosec.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosec/gosec.go
similarity index 97%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gosec.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gosec/gosec.go
index 3ce37cac48..d824090b57 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosec.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosec/gosec.go
@@ -1,4 +1,4 @@
-package golinters
+package gosec
import (
"fmt"
@@ -21,9 +21,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const gosecName = "gosec"
+const name = "gosec"
-func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter {
+func New(settings *config.GoSecSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -39,13 +39,13 @@ func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter {
ruleDefinitions := rules.Generate(false, filters...)
analyzer := &analysis.Analyzer{
- Name: gosecName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
}
return goanalysis.NewLinter(
- gosecName,
+ name,
"Inspects source code for security problems",
[]*analysis.Analyzer{analyzer},
nil,
@@ -126,7 +126,7 @@ func runGoSec(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoS
},
Text: text,
LineRange: r,
- FromLinter: gosecName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosimple.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosimple/gosimple.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gosimple.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gosimple/gosimple.go
index b7930f0ee0..6a0d967232 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosimple.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosimple/gosimple.go
@@ -1,4 +1,4 @@
-package golinters
+package gosimple
import (
"honnef.co/go/tools/simple"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/golinters/internal"
)
-func NewGosimple(settings *config.StaticCheckSettings) *goanalysis.Linter {
+func New(settings *config.StaticCheckSettings) *goanalysis.Linter {
cfg := internal.StaticCheckConfig(settings)
analyzers := internal.SetupStaticCheckAnalyzers(simple.Analyzers, internal.GetGoVersion(settings), cfg.Checks)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan/gosmopolitan.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan/gosmopolitan.go
index f4c2114706..4f6fb80358 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan/gosmopolitan.go
@@ -1,4 +1,4 @@
-package golinters
+package gosmopolitan
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGosmopolitan(s *config.GosmopolitanSettings) *goanalysis.Linter {
+func New(s *config.GosmopolitanSettings) *goanalysis.Linter {
a := gosmopolitan.NewAnalyzer()
cfgMap := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/govet.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/govet/govet.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/govet.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/govet/govet.go
index 30410abae1..1211a8833b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/govet.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/govet/govet.go
@@ -1,4 +1,4 @@
-package golinters
+package govet
import (
"slices"
@@ -139,11 +139,11 @@ var (
)
var (
- govetDebugf = logutils.Debug(logutils.DebugKeyGovet)
- isGovetDebug = logutils.HaveDebugTag(logutils.DebugKeyGovet)
+ debugf = logutils.Debug(logutils.DebugKeyGovet)
+ isDebug = logutils.HaveDebugTag(logutils.DebugKeyGovet)
)
-func NewGovet(settings *config.GovetSettings) *goanalysis.Linter {
+func New(settings *config.GovetSettings) *goanalysis.Linter {
var conf map[string]map[string]any
if settings != nil {
conf = settings.Settings
@@ -184,12 +184,6 @@ func isAnalyzerEnabled(name string, cfg *config.GovetSettings, defaultAnalyzers
return false
}
- // TODO(ldez) re-enable httpresponse once https://github.com/golangci/golangci-lint/issues/4482 is fixed.
- if name == httpresponse.Analyzer.Name {
- govetDebugf("httpresponse is disabled due to panic. See https://github.com/golang/go/issues/66259")
- return false
- }
-
// Keeping for backward compatibility.
if cfg.CheckShadowing && name == shadow.Analyzer.Name {
return true
@@ -214,7 +208,7 @@ func isAnalyzerEnabled(name string, cfg *config.GovetSettings, defaultAnalyzers
}
func debugAnalyzersListf(analyzers []*analysis.Analyzer, message string) {
- if !isGovetDebug {
+ if !isDebug {
return
}
@@ -225,5 +219,5 @@ func debugAnalyzersListf(analyzers []*analysis.Analyzer, message string) {
sort.Strings(analyzerNames)
- govetDebugf("%s (%d): %s", message, len(analyzerNames), analyzerNames)
+ debugf("%s (%d): %s", message, len(analyzerNames), analyzerNames)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/grouper.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/grouper/grouper.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/grouper.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/grouper/grouper.go
index f4eb3c4271..aa6ce1cebb 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/grouper.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/grouper/grouper.go
@@ -1,4 +1,4 @@
-package golinters
+package grouper
import (
grouper "github.com/leonklingele/grouper/pkg/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewGrouper(settings *config.GrouperSettings) *goanalysis.Linter {
+func New(settings *config.GrouperSettings) *goanalysis.Linter {
a := grouper.New()
linterCfg := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/importas.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/importas/importas.go
similarity index 95%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/importas.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/importas/importas.go
index f699edfc87..45117c9a48 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/importas.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/importas/importas.go
@@ -1,4 +1,4 @@
-package golinters
+package importas
import (
"fmt"
@@ -13,7 +13,7 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
-func NewImportAs(settings *config.ImportAsSettings) *goanalysis.Linter {
+func New(settings *config.ImportAsSettings) *goanalysis.Linter {
analyzer := importas.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/inamedparam.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/inamedparam/inamedparam.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/inamedparam.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/inamedparam/inamedparam.go
index 293716dfd3..5cf06a08cc 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/inamedparam.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/inamedparam/inamedparam.go
@@ -1,4 +1,4 @@
-package golinters
+package inamedparam
import (
"github.com/macabu/inamedparam"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewINamedParam(settings *config.INamedParamSettings) *goanalysis.Linter {
+func New(settings *config.INamedParamSettings) *goanalysis.Linter {
a := inamedparam.Analyzer
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/ineffassign.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/ineffassign/ineffassign.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/ineffassign.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/ineffassign/ineffassign.go
index e4c2abf711..ba86fb90e3 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/ineffassign.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/ineffassign/ineffassign.go
@@ -1,4 +1,4 @@
-package golinters
+package ineffassign
import (
"github.com/gordonklaus/ineffassign/pkg/ineffassign"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewIneffassign() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := ineffassign.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/interfacebloat.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/interfacebloat/interfacebloat.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/interfacebloat.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/interfacebloat/interfacebloat.go
index 93dfe338e9..88927a3d9b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/interfacebloat.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/interfacebloat/interfacebloat.go
@@ -1,4 +1,4 @@
-package golinters
+package interfacebloat
import (
"github.com/sashamelentyev/interfacebloat/pkg/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewInterfaceBloat(settings *config.InterfaceBloatSettings) *goanalysis.Linter {
+func New(settings *config.InterfaceBloatSettings) *goanalysis.Linter {
a := analyzer.New()
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/intrange.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/intrange/intrange.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/intrange.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/intrange/intrange.go
index e204087f3d..a27569ebbc 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/intrange.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/intrange/intrange.go
@@ -1,4 +1,4 @@
-package golinters
+package intrange
import (
"github.com/ckaznocha/intrange"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewIntrange() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := intrange.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/ireturn.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/ireturn/ireturn.go
similarity index 86%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/ireturn.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/ireturn/ireturn.go
index 44a72e83f9..57de57111e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/ireturn.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/ireturn/ireturn.go
@@ -1,4 +1,4 @@
-package golinters
+package ireturn
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewIreturn(settings *config.IreturnSettings) *goanalysis.Linter {
+func New(settings *config.IreturnSettings) *goanalysis.Linter {
a := analyzer.NewAnalyzer()
cfg := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/lll.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/lll/lll.go
similarity index 95%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/lll.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/lll/lll.go
index 2c9ae98328..f055691523 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/lll.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/lll/lll.go
@@ -1,4 +1,4 @@
-package golinters
+package lll
import (
"bufio"
@@ -19,16 +19,16 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const lllName = "lll"
+const name = "lll"
const goCommentDirectivePrefix = "//go:"
-func NewLLL(settings *config.LllSettings) *goanalysis.Linter {
+func New(settings *config.LllSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: lllName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runLll(pass, settings)
@@ -49,7 +49,7 @@ func NewLLL(settings *config.LllSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- lllName,
+ name,
"Reports long lines",
[]*analysis.Analyzer{analyzer},
nil,
@@ -122,7 +122,7 @@ func getLLLIssuesForFile(filename string, maxLineLen int, tabSpaces string) ([]r
Line: lineNumber,
},
Text: fmt.Sprintf("line is %d characters", lineLen),
- FromLinter: lllName,
+ FromLinter: name,
})
}
}
@@ -146,7 +146,7 @@ func getLLLIssuesForFile(filename string, maxLineLen int, tabSpaces string) ([]r
Column: 1,
},
Text: fmt.Sprintf("line is more than %d characters", bufio.MaxScanTokenSize),
- FromLinter: lllName,
+ FromLinter: name,
})
} else {
return nil, fmt.Errorf("can't scan file %s: %w", filename, err)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/loggercheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/loggercheck/loggercheck.go
similarity index 90%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/loggercheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/loggercheck/loggercheck.go
index a4a63722c8..077e8a512f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/loggercheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/loggercheck/loggercheck.go
@@ -1,4 +1,4 @@
-package golinters
+package loggercheck
import (
"github.com/timonwong/loggercheck"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewLoggerCheck(settings *config.LoggerCheckSettings) *goanalysis.Linter {
+func New(settings *config.LoggerCheckSettings) *goanalysis.Linter {
var opts []loggercheck.Option
if settings != nil {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/maintidx.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/maintidx/maintidx.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/maintidx.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/maintidx/maintidx.go
index b5751227bc..08f12369e6 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/maintidx.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/maintidx/maintidx.go
@@ -1,4 +1,4 @@
-package golinters
+package maintidx
import (
"github.com/yagipy/maintidx"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewMaintIdx(cfg *config.MaintIdxSettings) *goanalysis.Linter {
+func New(cfg *config.MaintIdxSettings) *goanalysis.Linter {
analyzer := maintidx.Analyzer
cfgMap := map[string]map[string]any{
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/makezero.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/makezero/makezero.go
similarity index 89%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/makezero.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/makezero/makezero.go
index 9aeb08a60b..a77ed30a13 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/makezero.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/makezero/makezero.go
@@ -1,4 +1,4 @@
-package golinters
+package makezero
import (
"fmt"
@@ -13,14 +13,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const makezeroName = "makezero"
+const name = "makezero"
-func NewMakezero(settings *config.MakezeroSettings) *goanalysis.Linter {
+func New(settings *config.MakezeroSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: makezeroName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues, err := runMakeZero(pass, settings)
@@ -41,7 +41,7 @@ func NewMakezero(settings *config.MakezeroSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- makezeroName,
+ name,
"Finds slice declarations with non-zero initial length",
[]*analysis.Analyzer{analyzer},
nil,
@@ -65,7 +65,7 @@ func runMakeZero(pass *analysis.Pass, settings *config.MakezeroSettings) ([]goan
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: hint.Position(),
Text: hint.Details(),
- FromLinter: makezeroName,
+ FromLinter: name,
}, pass))
}
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/mirror.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/mirror/mirror.go
similarity index 96%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/mirror.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/mirror/mirror.go
index 3d5766fe8e..34b880b529 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/mirror.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/mirror/mirror.go
@@ -1,4 +1,4 @@
-package golinters
+package mirror
import (
"sync"
@@ -11,7 +11,7 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-func NewMirror() *goanalysis.Linter {
+func New() *goanalysis.Linter {
var (
mu sync.Mutex
issues []goanalysis.Issue
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/misspell.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/misspell/misspell.go
similarity index 96%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/misspell.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/misspell/misspell.go
index 70ee5602c0..5d07817cd2 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/misspell.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/misspell/misspell.go
@@ -1,4 +1,4 @@
-package golinters
+package misspell
import (
"fmt"
@@ -17,20 +17,20 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const misspellName = "misspell"
+const name = "misspell"
-func NewMisspell(settings *config.MisspellSettings) *goanalysis.Linter {
+func New(settings *config.MisspellSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: misspellName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: goanalysis.DummyRun,
}
return goanalysis.NewLinter(
- misspellName,
+ name,
"Finds commonly misspelled English words",
[]*analysis.Analyzer{analyzer},
nil,
@@ -153,7 +153,7 @@ func runMisspellOnFile(lintCtx *linter.Context, filename string, replacer *missp
res = append(res, result.Issue{
Pos: pos,
Text: text,
- FromLinter: misspellName,
+ FromLinter: name,
Replacement: replacement,
})
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/mnd/mnd.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/mnd/mnd.go
new file mode 100644
index 0000000000..ee73c535b6
--- /dev/null
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/mnd/mnd.go
@@ -0,0 +1,61 @@
+package mnd
+
+import (
+ mnd "github.com/tommy-muehle/go-mnd/v2"
+ "golang.org/x/tools/go/analysis"
+
+ "github.com/golangci/golangci-lint/pkg/config"
+ "github.com/golangci/golangci-lint/pkg/goanalysis"
+)
+
+func New(settings *config.MndSettings) *goanalysis.Linter {
+ return newMND(mnd.Analyzer, settings, nil)
+}
+
+func NewGoMND(settings *config.GoMndSettings) *goanalysis.Linter {
+ // shallow copy because mnd.Analyzer is a global variable.
+ a := new(analysis.Analyzer)
+ *a = *mnd.Analyzer
+
+ // Used to force the analyzer name to use the same name as the linter.
+ // This is required to avoid displaying the analyzer name inside the issue text.
+ a.Name = "gomnd"
+
+ var linterCfg map[string]map[string]any
+
+ if settings != nil && len(settings.Settings) > 0 {
+ // Convert deprecated setting.
+ linterCfg = settings.Settings
+ }
+
+ return newMND(a, &settings.MndSettings, linterCfg)
+}
+
+func newMND(a *analysis.Analyzer, settings *config.MndSettings, linterCfg map[string]map[string]any) *goanalysis.Linter {
+ if len(linterCfg) == 0 && settings != nil {
+ cfg := make(map[string]any)
+ if len(settings.Checks) > 0 {
+ cfg["checks"] = settings.Checks
+ }
+ if len(settings.IgnoredNumbers) > 0 {
+ cfg["ignored-numbers"] = settings.IgnoredNumbers
+ }
+ if len(settings.IgnoredFiles) > 0 {
+ cfg["ignored-files"] = settings.IgnoredFiles
+ }
+ if len(settings.IgnoredFunctions) > 0 {
+ cfg["ignored-functions"] = settings.IgnoredFunctions
+ }
+
+ linterCfg = map[string]map[string]any{
+ a.Name: cfg,
+ }
+ }
+
+ return goanalysis.NewLinter(
+ a.Name,
+ "An analyzer to detect magic numbers.",
+ []*analysis.Analyzer{a},
+ linterCfg,
+ ).WithLoadMode(goanalysis.LoadModeSyntax)
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/musttag.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/musttag/musttag.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/musttag.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/musttag/musttag.go
index 9b97ed4f3a..30047abfc2 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/musttag.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/musttag/musttag.go
@@ -1,4 +1,4 @@
-package golinters
+package musttag
import (
"go-simpler.org/musttag"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewMustTag(setting *config.MustTagSettings) *goanalysis.Linter {
+func New(setting *config.MustTagSettings) *goanalysis.Linter {
var funcs []musttag.Func
if setting != nil {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nakedret.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nakedret/nakedret.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nakedret.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nakedret/nakedret.go
index 0831458042..4dd3fd4c3f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nakedret.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nakedret/nakedret.go
@@ -1,4 +1,4 @@
-package golinters
+package nakedret
import (
"github.com/alexkohler/nakedret/v2"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNakedret(settings *config.NakedretSettings) *goanalysis.Linter {
+func New(settings *config.NakedretSettings) *goanalysis.Linter {
var maxLines int
if settings != nil {
maxLines = settings.MaxFuncLines
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nestif.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nestif/nestif.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nestif.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nestif/nestif.go
index 4daad31cde..2ee3d500e7 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nestif.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nestif/nestif.go
@@ -1,4 +1,4 @@
-package golinters
+package nestif
import (
"sort"
@@ -13,9 +13,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const nestifName = "nestif"
+const name = "nestif"
-func NewNestif(settings *config.NestifSettings) *goanalysis.Linter {
+func New(settings *config.NestifSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -38,7 +38,7 @@ func NewNestif(settings *config.NestifSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- nestifName,
+ name,
"Reports deeply nested if statements",
[]*analysis.Analyzer{analyzer},
nil,
@@ -70,7 +70,7 @@ func runNestIf(pass *analysis.Pass, settings *config.NestifSettings) []goanalysi
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: i.Pos,
Text: i.Message,
- FromLinter: nestifName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilerr.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilerr/nilerr.go
similarity index 86%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nilerr.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nilerr/nilerr.go
index 79d86b55a4..c9e466905e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilerr.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilerr/nilerr.go
@@ -1,4 +1,4 @@
-package golinters
+package nilerr
import (
"github.com/gostaticanalysis/nilerr"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNilErr() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := nilerr.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilnil.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilnil/nilnil.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nilnil.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nilnil/nilnil.go
index 539a657681..c9237035d3 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilnil.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nilnil/nilnil.go
@@ -1,4 +1,4 @@
-package golinters
+package nilnil
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNilNil(cfg *config.NilNilSettings) *goanalysis.Linter {
+func New(cfg *config.NilNilSettings) *goanalysis.Linter {
a := analyzer.New()
cfgMap := make(map[string]map[string]any)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nlreturn.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nlreturn/nlreturn.go
similarity index 86%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nlreturn.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nlreturn/nlreturn.go
index a7a65e2a37..5092188085 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nlreturn.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nlreturn/nlreturn.go
@@ -1,4 +1,4 @@
-package golinters
+package nlreturn
import (
"github.com/ssgreg/nlreturn/v2/pkg/nlreturn"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNLReturn(settings *config.NlreturnSettings) *goanalysis.Linter {
+func New(settings *config.NlreturnSettings) *goanalysis.Linter {
a := nlreturn.NewAnalyzer()
cfg := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/noctx.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/noctx/noctx.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/noctx.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/noctx/noctx.go
index e62f6cbf37..8a063c613c 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/noctx.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/noctx/noctx.go
@@ -1,4 +1,4 @@
-package golinters
+package noctx
import (
"github.com/sonatard/noctx"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNoctx() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := noctx.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint.go
deleted file mode 100644
index 8ed2dceb93..0000000000
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint.go
+++ /dev/null
@@ -1,104 +0,0 @@
-package golinters
-
-import (
- "fmt"
- "go/ast"
- "sync"
-
- "golang.org/x/tools/go/analysis"
-
- "github.com/golangci/golangci-lint/pkg/config"
- "github.com/golangci/golangci-lint/pkg/goanalysis"
- "github.com/golangci/golangci-lint/pkg/golinters/nolintlint"
- "github.com/golangci/golangci-lint/pkg/lint/linter"
- "github.com/golangci/golangci-lint/pkg/result"
-)
-
-const NoLintLintName = "nolintlint"
-
-func NewNoLintLint(settings *config.NoLintLintSettings) *goanalysis.Linter {
- var mu sync.Mutex
- var resIssues []goanalysis.Issue
-
- analyzer := &analysis.Analyzer{
- Name: NoLintLintName,
- Doc: goanalysis.TheOnlyanalyzerDoc,
- Run: func(pass *analysis.Pass) (any, error) {
- issues, err := runNoLintLint(pass, settings)
- if err != nil {
- return nil, err
- }
-
- if len(issues) == 0 {
- return nil, nil
- }
-
- mu.Lock()
- resIssues = append(resIssues, issues...)
- mu.Unlock()
-
- return nil, nil
- },
- }
-
- return goanalysis.NewLinter(
- NoLintLintName,
- "Reports ill-formed or insufficient nolint directives",
- []*analysis.Analyzer{analyzer},
- nil,
- ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue {
- return resIssues
- }).WithLoadMode(goanalysis.LoadModeSyntax)
-}
-
-func runNoLintLint(pass *analysis.Pass, settings *config.NoLintLintSettings) ([]goanalysis.Issue, error) {
- var needs nolintlint.Needs
- if settings.RequireExplanation {
- needs |= nolintlint.NeedsExplanation
- }
- if settings.RequireSpecific {
- needs |= nolintlint.NeedsSpecific
- }
- if !settings.AllowUnused {
- needs |= nolintlint.NeedsUnused
- }
-
- lnt, err := nolintlint.NewLinter(needs, settings.AllowNoExplanation)
- if err != nil {
- return nil, err
- }
-
- nodes := make([]ast.Node, 0, len(pass.Files))
- for _, n := range pass.Files {
- nodes = append(nodes, n)
- }
-
- lintIssues, err := lnt.Run(pass.Fset, nodes...)
- if err != nil {
- return nil, fmt.Errorf("linter failed to run: %w", err)
- }
-
- var issues []goanalysis.Issue
-
- for _, i := range lintIssues {
- expectNoLint := false
- var expectedNolintLinter string
- if ii, ok := i.(nolintlint.UnusedCandidate); ok {
- expectedNolintLinter = ii.ExpectedLinter
- expectNoLint = true
- }
-
- issue := &result.Issue{
- FromLinter: NoLintLintName,
- Text: i.Details(),
- Pos: i.Position(),
- ExpectNoLint: expectNoLint,
- ExpectedNoLintLinter: expectedNolintLinter,
- Replacement: i.Replacement(),
- }
-
- issues = append(issues, goanalysis.NewIssue(issue, pass))
- }
-
- return issues, nil
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/README.md b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal/README.md
similarity index 100%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/README.md
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal/README.md
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal/nolintlint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal/nolintlint.go
new file mode 100644
index 0000000000..5fed41cfdf
--- /dev/null
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal/nolintlint.go
@@ -0,0 +1,304 @@
+// Package internal provides a linter to ensure that all //nolint directives are followed by explanations
+package internal
+
+import (
+ "fmt"
+ "go/ast"
+ "go/token"
+ "regexp"
+ "strings"
+ "unicode"
+
+ "github.com/golangci/golangci-lint/pkg/result"
+)
+
+type BaseIssue struct {
+ fullDirective string
+ directiveWithOptionalLeadingSpace string
+ position token.Position
+ replacement *result.Replacement
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (b BaseIssue) Position() token.Position {
+ return b.position
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (b BaseIssue) Replacement() *result.Replacement {
+ return b.replacement
+}
+
+type ExtraLeadingSpace struct {
+ BaseIssue
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (i ExtraLeadingSpace) Details() string {
+ return fmt.Sprintf("directive `%s` should not have more than one leading space", i.fullDirective)
+}
+
+func (i ExtraLeadingSpace) String() string { return toString(i) }
+
+type NotMachine struct {
+ BaseIssue
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (i NotMachine) Details() string {
+ expected := i.fullDirective[:2] + strings.TrimLeftFunc(i.fullDirective[2:], unicode.IsSpace)
+ return fmt.Sprintf("directive `%s` should be written without leading space as `%s`",
+ i.fullDirective, expected)
+}
+
+func (i NotMachine) String() string { return toString(i) }
+
+type NotSpecific struct {
+ BaseIssue
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (i NotSpecific) Details() string {
+ return fmt.Sprintf("directive `%s` should mention specific linter such as `%s:my-linter`",
+ i.fullDirective, i.directiveWithOptionalLeadingSpace)
+}
+
+func (i NotSpecific) String() string { return toString(i) }
+
+type ParseError struct {
+ BaseIssue
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (i ParseError) Details() string {
+ return fmt.Sprintf("directive `%s` should match `%s[:] [// ]`",
+ i.fullDirective,
+ i.directiveWithOptionalLeadingSpace)
+}
+
+func (i ParseError) String() string { return toString(i) }
+
+type NoExplanation struct {
+ BaseIssue
+ fullDirectiveWithoutExplanation string
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (i NoExplanation) Details() string {
+ return fmt.Sprintf("directive `%s` should provide explanation such as `%s // this is why`",
+ i.fullDirective, i.fullDirectiveWithoutExplanation)
+}
+
+func (i NoExplanation) String() string { return toString(i) }
+
+type UnusedCandidate struct {
+ BaseIssue
+ ExpectedLinter string
+}
+
+//nolint:gocritic // TODO(ldez) must be change in the future.
+func (i UnusedCandidate) Details() string {
+ details := fmt.Sprintf("directive `%s` is unused", i.fullDirective)
+ if i.ExpectedLinter != "" {
+ details += fmt.Sprintf(" for linter %q", i.ExpectedLinter)
+ }
+ return details
+}
+
+func (i UnusedCandidate) String() string { return toString(i) }
+
+func toString(issue Issue) string {
+ return fmt.Sprintf("%s at %s", issue.Details(), issue.Position())
+}
+
+type Issue interface {
+ Details() string
+ Position() token.Position
+ String() string
+ Replacement() *result.Replacement
+}
+
+type Needs uint
+
+const (
+ NeedsMachineOnly Needs = 1 << iota
+ NeedsSpecific
+ NeedsExplanation
+ NeedsUnused
+ NeedsAll = NeedsMachineOnly | NeedsSpecific | NeedsExplanation
+)
+
+var commentPattern = regexp.MustCompile(`^//\s*(nolint)(:\s*[\w-]+\s*(?:,\s*[\w-]+\s*)*)?\b`)
+
+// matches a complete nolint directive
+var fullDirectivePattern = regexp.MustCompile(`^//\s*nolint(?::(\s*[\w-]+\s*(?:,\s*[\w-]+\s*)*))?\s*(//.*)?\s*\n?$`)
+
+type Linter struct {
+ needs Needs // indicates which linter checks to perform
+ excludeByLinter map[string]bool
+}
+
+// NewLinter creates a linter that enforces that the provided directives fulfill the provided requirements
+func NewLinter(needs Needs, excludes []string) (*Linter, error) {
+ excludeByName := make(map[string]bool)
+ for _, e := range excludes {
+ excludeByName[e] = true
+ }
+
+ return &Linter{
+ needs: needs | NeedsMachineOnly,
+ excludeByLinter: excludeByName,
+ }, nil
+}
+
+var (
+ leadingSpacePattern = regexp.MustCompile(`^//(\s*)`)
+ trailingBlankExplanation = regexp.MustCompile(`\s*(//\s*)?$`)
+)
+
+//nolint:funlen,gocyclo // the function is going to be refactored in the future
+func (l Linter) Run(fset *token.FileSet, nodes ...ast.Node) ([]Issue, error) {
+ var issues []Issue
+
+ for _, node := range nodes {
+ file, ok := node.(*ast.File)
+ if !ok {
+ continue
+ }
+
+ for _, c := range file.Comments {
+ for _, comment := range c.List {
+ if !commentPattern.MatchString(comment.Text) {
+ continue
+ }
+
+ // check for a space between the "//" and the directive
+ leadingSpaceMatches := leadingSpacePattern.FindStringSubmatch(comment.Text)
+
+ var leadingSpace string
+ if len(leadingSpaceMatches) > 0 {
+ leadingSpace = leadingSpaceMatches[1]
+ }
+
+ directiveWithOptionalLeadingSpace := "//"
+ if leadingSpace != "" {
+ directiveWithOptionalLeadingSpace += " "
+ }
+
+ split := strings.Split(strings.SplitN(comment.Text, ":", 2)[0], "//")
+ directiveWithOptionalLeadingSpace += strings.TrimSpace(split[1])
+
+ pos := fset.Position(comment.Pos())
+ end := fset.Position(comment.End())
+
+ base := BaseIssue{
+ fullDirective: comment.Text,
+ directiveWithOptionalLeadingSpace: directiveWithOptionalLeadingSpace,
+ position: pos,
+ }
+
+ // check for, report and eliminate leading spaces, so we can check for other issues
+ if leadingSpace != "" {
+ removeWhitespace := &result.Replacement{
+ Inline: &result.InlineFix{
+ StartCol: pos.Column + 1,
+ Length: len(leadingSpace),
+ NewString: "",
+ },
+ }
+ if (l.needs & NeedsMachineOnly) != 0 {
+ issue := NotMachine{BaseIssue: base}
+ issue.BaseIssue.replacement = removeWhitespace
+ issues = append(issues, issue)
+ } else if len(leadingSpace) > 1 {
+ issue := ExtraLeadingSpace{BaseIssue: base}
+ issue.BaseIssue.replacement = removeWhitespace
+ issue.BaseIssue.replacement.Inline.NewString = " " // assume a single space was intended
+ issues = append(issues, issue)
+ }
+ }
+
+ fullMatches := fullDirectivePattern.FindStringSubmatch(comment.Text)
+ if len(fullMatches) == 0 {
+ issues = append(issues, ParseError{BaseIssue: base})
+ continue
+ }
+
+ lintersText, explanation := fullMatches[1], fullMatches[2]
+
+ var linters []string
+ if lintersText != "" && !strings.HasPrefix(lintersText, "all") {
+ lls := strings.Split(lintersText, ",")
+ linters = make([]string, 0, len(lls))
+ rangeStart := (pos.Column - 1) + len("//") + len(leadingSpace) + len("nolint:")
+ for i, ll := range lls {
+ rangeEnd := rangeStart + len(ll)
+ if i < len(lls)-1 {
+ rangeEnd++ // include trailing comma
+ }
+ trimmedLinterName := strings.TrimSpace(ll)
+ if trimmedLinterName != "" {
+ linters = append(linters, trimmedLinterName)
+ }
+ rangeStart = rangeEnd
+ }
+ }
+
+ if (l.needs & NeedsSpecific) != 0 {
+ if len(linters) == 0 {
+ issues = append(issues, NotSpecific{BaseIssue: base})
+ }
+ }
+
+ // when detecting unused directives, we send all the directives through and filter them out in the nolint processor
+ if (l.needs & NeedsUnused) != 0 {
+ removeNolintCompletely := &result.Replacement{
+ Inline: &result.InlineFix{
+ StartCol: pos.Column - 1,
+ Length: end.Column - pos.Column,
+ NewString: "",
+ },
+ }
+
+ if len(linters) == 0 {
+ issue := UnusedCandidate{BaseIssue: base}
+ issue.replacement = removeNolintCompletely
+ issues = append(issues, issue)
+ } else {
+ for _, linter := range linters {
+ issue := UnusedCandidate{BaseIssue: base, ExpectedLinter: linter}
+ // only offer replacement if there is a single linter
+ // because of issues around commas and the possibility of all
+ // linters being removed
+ if len(linters) == 1 {
+ issue.replacement = removeNolintCompletely
+ }
+ issues = append(issues, issue)
+ }
+ }
+ }
+
+ if (l.needs&NeedsExplanation) != 0 && (explanation == "" || strings.TrimSpace(explanation) == "//") {
+ needsExplanation := len(linters) == 0 // if no linters are mentioned, we must have explanation
+ // otherwise, check if we are excluding all the mentioned linters
+ for _, ll := range linters {
+ if !l.excludeByLinter[ll] { // if a linter does require explanation
+ needsExplanation = true
+ break
+ }
+ }
+
+ if needsExplanation {
+ fullDirectiveWithoutExplanation := trailingBlankExplanation.ReplaceAllString(comment.Text, "")
+ issues = append(issues, NoExplanation{
+ BaseIssue: base,
+ fullDirectiveWithoutExplanation: fullDirectiveWithoutExplanation,
+ })
+ }
+ }
+ }
+ }
+ }
+
+ return issues, nil
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/nolintlint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/nolintlint.go
index 1bce5ef5d2..507d65ab8f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/nolintlint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nolintlint/nolintlint.go
@@ -1,303 +1,103 @@
-// Package nolintlint provides a linter to ensure that all //nolint directives are followed by explanations
package nolintlint
import (
"fmt"
"go/ast"
- "go/token"
- "regexp"
- "strings"
- "unicode"
+ "sync"
+ "golang.org/x/tools/go/analysis"
+
+ "github.com/golangci/golangci-lint/pkg/config"
+ "github.com/golangci/golangci-lint/pkg/goanalysis"
+ "github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal"
+ "github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)
-type BaseIssue struct {
- fullDirective string
- directiveWithOptionalLeadingSpace string
- position token.Position
- replacement *result.Replacement
-}
+const Name = "nolintlint"
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (b BaseIssue) Position() token.Position {
- return b.position
-}
-
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (b BaseIssue) Replacement() *result.Replacement {
- return b.replacement
-}
-
-type ExtraLeadingSpace struct {
- BaseIssue
-}
-
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (i ExtraLeadingSpace) Details() string {
- return fmt.Sprintf("directive `%s` should not have more than one leading space", i.fullDirective)
-}
-
-func (i ExtraLeadingSpace) String() string { return toString(i) }
-
-type NotMachine struct {
- BaseIssue
-}
-
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (i NotMachine) Details() string {
- expected := i.fullDirective[:2] + strings.TrimLeftFunc(i.fullDirective[2:], unicode.IsSpace)
- return fmt.Sprintf("directive `%s` should be written without leading space as `%s`",
- i.fullDirective, expected)
-}
-
-func (i NotMachine) String() string { return toString(i) }
-
-type NotSpecific struct {
- BaseIssue
-}
+func New(settings *config.NoLintLintSettings) *goanalysis.Linter {
+ var mu sync.Mutex
+ var resIssues []goanalysis.Issue
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (i NotSpecific) Details() string {
- return fmt.Sprintf("directive `%s` should mention specific linter such as `%s:my-linter`",
- i.fullDirective, i.directiveWithOptionalLeadingSpace)
-}
-
-func (i NotSpecific) String() string { return toString(i) }
-
-type ParseError struct {
- BaseIssue
-}
-
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (i ParseError) Details() string {
- return fmt.Sprintf("directive `%s` should match `%s[:] [// ]`",
- i.fullDirective,
- i.directiveWithOptionalLeadingSpace)
-}
-
-func (i ParseError) String() string { return toString(i) }
-
-type NoExplanation struct {
- BaseIssue
- fullDirectiveWithoutExplanation string
-}
-
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (i NoExplanation) Details() string {
- return fmt.Sprintf("directive `%s` should provide explanation such as `%s // this is why`",
- i.fullDirective, i.fullDirectiveWithoutExplanation)
-}
+ analyzer := &analysis.Analyzer{
+ Name: Name,
+ Doc: goanalysis.TheOnlyanalyzerDoc,
+ Run: func(pass *analysis.Pass) (any, error) {
+ issues, err := runNoLintLint(pass, settings)
+ if err != nil {
+ return nil, err
+ }
-func (i NoExplanation) String() string { return toString(i) }
+ if len(issues) == 0 {
+ return nil, nil
+ }
-type UnusedCandidate struct {
- BaseIssue
- ExpectedLinter string
-}
+ mu.Lock()
+ resIssues = append(resIssues, issues...)
+ mu.Unlock()
-//nolint:gocritic // TODO(ldez) must be change in the future.
-func (i UnusedCandidate) Details() string {
- details := fmt.Sprintf("directive `%s` is unused", i.fullDirective)
- if i.ExpectedLinter != "" {
- details += fmt.Sprintf(" for linter %q", i.ExpectedLinter)
+ return nil, nil
+ },
}
- return details
-}
-
-func (i UnusedCandidate) String() string { return toString(i) }
-func toString(issue Issue) string {
- return fmt.Sprintf("%s at %s", issue.Details(), issue.Position())
+ return goanalysis.NewLinter(
+ Name,
+ "Reports ill-formed or insufficient nolint directives",
+ []*analysis.Analyzer{analyzer},
+ nil,
+ ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue {
+ return resIssues
+ }).WithLoadMode(goanalysis.LoadModeSyntax)
}
-type Issue interface {
- Details() string
- Position() token.Position
- String() string
- Replacement() *result.Replacement
-}
-
-type Needs uint
-
-const (
- NeedsMachineOnly Needs = 1 << iota
- NeedsSpecific
- NeedsExplanation
- NeedsUnused
- NeedsAll = NeedsMachineOnly | NeedsSpecific | NeedsExplanation
-)
-
-var commentPattern = regexp.MustCompile(`^//\s*(nolint)(:\s*[\w-]+\s*(?:,\s*[\w-]+\s*)*)?\b`)
-
-// matches a complete nolint directive
-var fullDirectivePattern = regexp.MustCompile(`^//\s*nolint(?::(\s*[\w-]+\s*(?:,\s*[\w-]+\s*)*))?\s*(//.*)?\s*\n?$`)
-
-type Linter struct {
- needs Needs // indicates which linter checks to perform
- excludeByLinter map[string]bool
-}
+func runNoLintLint(pass *analysis.Pass, settings *config.NoLintLintSettings) ([]goanalysis.Issue, error) {
+ var needs internal.Needs
+ if settings.RequireExplanation {
+ needs |= internal.NeedsExplanation
+ }
+ if settings.RequireSpecific {
+ needs |= internal.NeedsSpecific
+ }
+ if !settings.AllowUnused {
+ needs |= internal.NeedsUnused
+ }
-// NewLinter creates a linter that enforces that the provided directives fulfill the provided requirements
-func NewLinter(needs Needs, excludes []string) (*Linter, error) {
- excludeByName := make(map[string]bool)
- for _, e := range excludes {
- excludeByName[e] = true
+ lnt, err := internal.NewLinter(needs, settings.AllowNoExplanation)
+ if err != nil {
+ return nil, err
}
- return &Linter{
- needs: needs | NeedsMachineOnly,
- excludeByLinter: excludeByName,
- }, nil
-}
+ nodes := make([]ast.Node, 0, len(pass.Files))
+ for _, n := range pass.Files {
+ nodes = append(nodes, n)
+ }
-var (
- leadingSpacePattern = regexp.MustCompile(`^//(\s*)`)
- trailingBlankExplanation = regexp.MustCompile(`\s*(//\s*)?$`)
-)
+ lintIssues, err := lnt.Run(pass.Fset, nodes...)
+ if err != nil {
+ return nil, fmt.Errorf("linter failed to run: %w", err)
+ }
-//nolint:funlen,gocyclo // the function is going to be refactored in the future
-func (l Linter) Run(fset *token.FileSet, nodes ...ast.Node) ([]Issue, error) {
- var issues []Issue
+ var issues []goanalysis.Issue
- for _, node := range nodes {
- file, ok := node.(*ast.File)
- if !ok {
- continue
+ for _, i := range lintIssues {
+ expectNoLint := false
+ var expectedNolintLinter string
+ if ii, ok := i.(internal.UnusedCandidate); ok {
+ expectedNolintLinter = ii.ExpectedLinter
+ expectNoLint = true
}
- for _, c := range file.Comments {
- for _, comment := range c.List {
- if !commentPattern.MatchString(comment.Text) {
- continue
- }
-
- // check for a space between the "//" and the directive
- leadingSpaceMatches := leadingSpacePattern.FindStringSubmatch(comment.Text)
-
- var leadingSpace string
- if len(leadingSpaceMatches) > 0 {
- leadingSpace = leadingSpaceMatches[1]
- }
-
- directiveWithOptionalLeadingSpace := "//"
- if leadingSpace != "" {
- directiveWithOptionalLeadingSpace += " "
- }
-
- split := strings.Split(strings.SplitN(comment.Text, ":", 2)[0], "//")
- directiveWithOptionalLeadingSpace += strings.TrimSpace(split[1])
-
- pos := fset.Position(comment.Pos())
- end := fset.Position(comment.End())
-
- base := BaseIssue{
- fullDirective: comment.Text,
- directiveWithOptionalLeadingSpace: directiveWithOptionalLeadingSpace,
- position: pos,
- }
-
- // check for, report and eliminate leading spaces, so we can check for other issues
- if leadingSpace != "" {
- removeWhitespace := &result.Replacement{
- Inline: &result.InlineFix{
- StartCol: pos.Column + 1,
- Length: len(leadingSpace),
- NewString: "",
- },
- }
- if (l.needs & NeedsMachineOnly) != 0 {
- issue := NotMachine{BaseIssue: base}
- issue.BaseIssue.replacement = removeWhitespace
- issues = append(issues, issue)
- } else if len(leadingSpace) > 1 {
- issue := ExtraLeadingSpace{BaseIssue: base}
- issue.BaseIssue.replacement = removeWhitespace
- issue.BaseIssue.replacement.Inline.NewString = " " // assume a single space was intended
- issues = append(issues, issue)
- }
- }
-
- fullMatches := fullDirectivePattern.FindStringSubmatch(comment.Text)
- if len(fullMatches) == 0 {
- issues = append(issues, ParseError{BaseIssue: base})
- continue
- }
-
- lintersText, explanation := fullMatches[1], fullMatches[2]
-
- var linters []string
- if lintersText != "" && !strings.HasPrefix(lintersText, "all") {
- lls := strings.Split(lintersText, ",")
- linters = make([]string, 0, len(lls))
- rangeStart := (pos.Column - 1) + len("//") + len(leadingSpace) + len("nolint:")
- for i, ll := range lls {
- rangeEnd := rangeStart + len(ll)
- if i < len(lls)-1 {
- rangeEnd++ // include trailing comma
- }
- trimmedLinterName := strings.TrimSpace(ll)
- if trimmedLinterName != "" {
- linters = append(linters, trimmedLinterName)
- }
- rangeStart = rangeEnd
- }
- }
-
- if (l.needs & NeedsSpecific) != 0 {
- if len(linters) == 0 {
- issues = append(issues, NotSpecific{BaseIssue: base})
- }
- }
-
- // when detecting unused directives, we send all the directives through and filter them out in the nolint processor
- if (l.needs & NeedsUnused) != 0 {
- removeNolintCompletely := &result.Replacement{
- Inline: &result.InlineFix{
- StartCol: pos.Column - 1,
- Length: end.Column - pos.Column,
- NewString: "",
- },
- }
-
- if len(linters) == 0 {
- issue := UnusedCandidate{BaseIssue: base}
- issue.replacement = removeNolintCompletely
- issues = append(issues, issue)
- } else {
- for _, linter := range linters {
- issue := UnusedCandidate{BaseIssue: base, ExpectedLinter: linter}
- // only offer replacement if there is a single linter
- // because of issues around commas and the possibility of all
- // linters being removed
- if len(linters) == 1 {
- issue.replacement = removeNolintCompletely
- }
- issues = append(issues, issue)
- }
- }
- }
-
- if (l.needs&NeedsExplanation) != 0 && (explanation == "" || strings.TrimSpace(explanation) == "//") {
- needsExplanation := len(linters) == 0 // if no linters are mentioned, we must have explanation
- // otherwise, check if we are excluding all the mentioned linters
- for _, ll := range linters {
- if !l.excludeByLinter[ll] { // if a linter does require explanation
- needsExplanation = true
- break
- }
- }
-
- if needsExplanation {
- fullDirectiveWithoutExplanation := trailingBlankExplanation.ReplaceAllString(comment.Text, "")
- issues = append(issues, NoExplanation{
- BaseIssue: base,
- fullDirectiveWithoutExplanation: fullDirectiveWithoutExplanation,
- })
- }
- }
- }
+ issue := &result.Issue{
+ FromLinter: Name,
+ Text: i.Details(),
+ Pos: i.Position(),
+ ExpectNoLint: expectNoLint,
+ ExpectedNoLintLinter: expectedNolintLinter,
+ Replacement: i.Replacement(),
}
+
+ issues = append(issues, goanalysis.NewIssue(issue, pass))
}
return issues, nil
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns/nonamedreturns.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns/nonamedreturns.go
index ccfd5d6827..42a618e641 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns/nonamedreturns.go
@@ -1,4 +1,4 @@
-package golinters
+package nonamedreturns
import (
"github.com/firefart/nonamedreturns/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNoNamedReturns(settings *config.NoNamedReturnsSettings) *goanalysis.Linter {
+func New(settings *config.NoNamedReturnsSettings) *goanalysis.Linter {
a := analyzer.Analyzer
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport/nosprintfhostport.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport/nosprintfhostport.go
index a4fdcb859a..8f06ae1f6d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport/nosprintfhostport.go
@@ -1,4 +1,4 @@
-package golinters
+package nosprintfhostport
import (
"github.com/stbenjam/no-sprintf-host-port/pkg/analyzer"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewNoSprintfHostPort() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := analyzer.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/paralleltest.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/paralleltest/paralleltest.go
similarity index 88%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/paralleltest.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/paralleltest/paralleltest.go
index 55fc7548d8..0c908fa38f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/paralleltest.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/paralleltest/paralleltest.go
@@ -1,4 +1,4 @@
-package golinters
+package paralleltest
import (
"github.com/kunwardeep/paralleltest/pkg/paralleltest"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewParallelTest(settings *config.ParallelTestSettings) *goanalysis.Linter {
+func New(settings *config.ParallelTestSettings) *goanalysis.Linter {
a := paralleltest.NewAnalyzer()
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/perfsprint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/perfsprint/perfsprint.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/perfsprint.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/perfsprint/perfsprint.go
index 8dc3e56aac..a4ead1914d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/perfsprint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/perfsprint/perfsprint.go
@@ -1,4 +1,4 @@
-package golinters
+package perfsprint
import (
"github.com/catenacyber/perfsprint/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewPerfSprint(settings *config.PerfSprintSettings) *goanalysis.Linter {
+func New(settings *config.PerfSprintSettings) *goanalysis.Linter {
a := analyzer.New()
cfg := map[string]map[string]any{
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/prealloc.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/prealloc/prealloc.go
similarity index 88%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/prealloc.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/prealloc/prealloc.go
index 944286ee09..28116aa2a5 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/prealloc.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/prealloc/prealloc.go
@@ -1,4 +1,4 @@
-package golinters
+package prealloc
import (
"fmt"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const preallocName = "prealloc"
+const name = "prealloc"
-func NewPreAlloc(settings *config.PreallocSettings) *goanalysis.Linter {
+func New(settings *config.PreallocSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: preallocName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runPreAlloc(pass, settings)
@@ -39,7 +39,7 @@ func NewPreAlloc(settings *config.PreallocSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- preallocName,
+ name,
"Finds slice declarations that could potentially be pre-allocated",
[]*analysis.Analyzer{analyzer},
nil,
@@ -57,7 +57,7 @@ func runPreAlloc(pass *analysis.Pass, settings *config.PreallocSettings) []goana
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: pass.Fset.Position(hint.Pos),
Text: fmt.Sprintf("Consider pre-allocating %s", internal.FormatCode(hint.DeclaredSliceName, nil)),
- FromLinter: preallocName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/predeclared.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/predeclared/predeclared.go
similarity index 85%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/predeclared.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/predeclared/predeclared.go
index e9afa792af..b8d189fd55 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/predeclared.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/predeclared/predeclared.go
@@ -1,4 +1,4 @@
-package golinters
+package predeclared
import (
"github.com/nishanths/predeclared/passes/predeclared"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewPredeclared(settings *config.PredeclaredSettings) *goanalysis.Linter {
+func New(settings *config.PredeclaredSettings) *goanalysis.Linter {
a := predeclared.Analyzer
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/promlinter.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/promlinter/promlinter.go
similarity index 88%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/promlinter.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/promlinter/promlinter.go
index 59eac10141..f863be8ee9 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/promlinter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/promlinter/promlinter.go
@@ -1,4 +1,4 @@
-package golinters
+package promlinter
import (
"fmt"
@@ -13,9 +13,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const promlinterName = "promlinter"
+const name = "promlinter"
-func NewPromlinter(settings *config.PromlinterSettings) *goanalysis.Linter {
+func New(settings *config.PromlinterSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -28,7 +28,7 @@ func NewPromlinter(settings *config.PromlinterSettings) *goanalysis.Linter {
}
analyzer := &analysis.Analyzer{
- Name: promlinterName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runPromLinter(pass, promSettings)
@@ -46,7 +46,7 @@ func NewPromlinter(settings *config.PromlinterSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- promlinterName,
+ name,
"Check Prometheus metrics naming via promlint",
[]*analysis.Analyzer{analyzer},
nil,
@@ -67,7 +67,7 @@ func runPromLinter(pass *analysis.Pass, promSettings promlinter.Setting) []goana
issue := result.Issue{
Pos: i.Pos,
Text: fmt.Sprintf("Metric: %s Error: %s", i.Metric, i.Text),
- FromLinter: promlinterName,
+ FromLinter: name,
}
issues[k] = goanalysis.NewIssue(&issue, pass)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/protogetter.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/protogetter/protogetter.go
similarity index 94%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/protogetter.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/protogetter/protogetter.go
index fdc5b6641e..302ce67b88 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/protogetter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/protogetter/protogetter.go
@@ -1,4 +1,4 @@
-package golinters
+package protogetter
import (
"sync"
@@ -12,7 +12,7 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-func NewProtoGetter(settings *config.ProtoGetterSettings) *goanalysis.Linter {
+func New(settings *config.ProtoGetterSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/reassign.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/reassign/reassign.go
similarity index 86%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/reassign.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/reassign/reassign.go
index 43a6ce43af..cfc85635e2 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/reassign.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/reassign/reassign.go
@@ -1,4 +1,4 @@
-package golinters
+package reassign
import (
"fmt"
@@ -11,7 +11,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewReassign(settings *config.ReassignSettings) *goanalysis.Linter {
+func New(settings *config.ReassignSettings) *goanalysis.Linter {
a := reassign.NewAnalyzer()
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/revive.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/revive/revive.go
similarity index 96%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/revive.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/revive/revive.go
index 0715d93700..5287cbc383 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/revive.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/revive/revive.go
@@ -1,4 +1,4 @@
-package golinters
+package revive
import (
"bytes"
@@ -23,9 +23,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const reviveName = "revive"
+const name = "revive"
-var reviveDebugf = logutils.Debug(logutils.DebugKeyRevive)
+var debugf = logutils.Debug(logutils.DebugKeyRevive)
// jsonObject defines a JSON object of a failure
type jsonObject struct {
@@ -33,10 +33,7 @@ type jsonObject struct {
lint.Failure `json:",inline"`
}
-// NewRevive returns a new Revive linter.
-//
-
-func NewRevive(settings *config.ReviveSettings) *goanalysis.Linter {
+func New(settings *config.ReviveSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -47,7 +44,7 @@ func NewRevive(settings *config.ReviveSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- reviveName,
+ name,
"Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint.",
[]*analysis.Analyzer{analyzer},
nil,
@@ -154,7 +151,7 @@ func reviveToIssue(pass *analysis.Pass, object *jsonObject) goanalysis.Issue {
From: object.Position.Start.Line,
To: lineRangeTo,
},
- FromLinter: reviveName,
+ FromLinter: name,
}, pass)
}
@@ -192,7 +189,7 @@ func getReviveConfig(cfg *config.ReviveSettings) (*lint.Config, error) {
conf.Rules[k] = r
}
- reviveDebugf("revive configuration: %#v", conf)
+ debugf("revive configuration: %#v", conf)
return conf, nil
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck/rowserrcheck.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck/rowserrcheck.go
index 17814c7c0e..3fe8244673 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck/rowserrcheck.go
@@ -1,4 +1,4 @@
-package golinters
+package rowserrcheck
import (
"github.com/jingyugao/rowserrcheck/passes/rowserr"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewRowsErrCheck(settings *config.RowsErrCheckSettings) *goanalysis.Linter {
+func New(settings *config.RowsErrCheckSettings) *goanalysis.Linter {
var pkgs []string
if settings != nil {
pkgs = settings.Packages
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/sloglint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/sloglint/sloglint.go
similarity index 84%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/sloglint.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/sloglint/sloglint.go
index 788d0c5237..d3f567e9c7 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/sloglint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/sloglint/sloglint.go
@@ -1,4 +1,4 @@
-package golinters
+package sloglint
import (
"go-simpler.org/sloglint"
@@ -8,15 +8,15 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewSlogLint(settings *config.SlogLintSettings) *goanalysis.Linter {
+func New(settings *config.SlogLintSettings) *goanalysis.Linter {
var opts *sloglint.Options
if settings != nil {
opts = &sloglint.Options{
NoMixedArgs: settings.NoMixedArgs,
KVOnly: settings.KVOnly,
- NoGlobal: settings.NoGlobal,
AttrOnly: settings.AttrOnly,
- ContextOnly: settings.ContextOnly,
+ NoGlobal: settings.NoGlobal,
+ ContextOnly: settings.Context,
StaticMsg: settings.StaticMsg,
NoRawKeys: settings.NoRawKeys,
KeyNamingCase: settings.KeyNamingCase,
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/spancheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/spancheck/spancheck.go
similarity index 74%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/spancheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/spancheck/spancheck.go
index 426c318a49..a800a17058 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/spancheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/spancheck/spancheck.go
@@ -1,4 +1,4 @@
-package golinters
+package spancheck
import (
"github.com/jjti/go-spancheck"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewSpancheck(settings *config.SpancheckSettings) *goanalysis.Linter {
+func New(settings *config.SpancheckSettings) *goanalysis.Linter {
cfg := spancheck.NewDefaultConfig()
if settings != nil {
@@ -19,6 +19,10 @@ func NewSpancheck(settings *config.SpancheckSettings) *goanalysis.Linter {
if settings.IgnoreCheckSignatures != nil {
cfg.IgnoreChecksSignaturesSlice = settings.IgnoreCheckSignatures
}
+
+ if settings.ExtraStartSpanSignatures != nil {
+ cfg.StartSpanMatchersSlice = settings.ExtraStartSpanSignatures
+ }
}
a := spancheck.NewAnalyzerWithConfig(cfg)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck/sqlclosecheck.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck/sqlclosecheck.go
index 94fd8b2c09..5eb32ff9db 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck/sqlclosecheck.go
@@ -1,4 +1,4 @@
-package golinters
+package sqlclosecheck
import (
"github.com/ryanrolds/sqlclosecheck/pkg/analyzer"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewSQLCloseCheck() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := analyzer.NewAnalyzer()
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/staticcheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/staticcheck/staticcheck.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/staticcheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/staticcheck/staticcheck.go
index f0a2e6c03c..0c0534539e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/staticcheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/staticcheck/staticcheck.go
@@ -1,4 +1,4 @@
-package golinters
+package staticcheck
import (
"honnef.co/go/tools/staticcheck"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/golinters/internal"
)
-func NewStaticcheck(settings *config.StaticCheckSettings) *goanalysis.Linter {
+func New(settings *config.StaticCheckSettings) *goanalysis.Linter {
cfg := internal.StaticCheckConfig(settings)
analyzers := internal.SetupStaticCheckAnalyzers(staticcheck.Analyzers, internal.GetGoVersion(settings), cfg.Checks)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/stylecheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/stylecheck/stylecheck.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/stylecheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/stylecheck/stylecheck.go
index 338326b905..b8fc8fe547 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/stylecheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/stylecheck/stylecheck.go
@@ -1,4 +1,4 @@
-package golinters
+package stylecheck
import (
"golang.org/x/tools/go/analysis"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/golinters/internal"
)
-func NewStylecheck(settings *config.StaticCheckSettings) *goanalysis.Linter {
+func New(settings *config.StaticCheckSettings) *goanalysis.Linter {
cfg := internal.StaticCheckConfig(settings)
// `scconfig.Analyzer` is a singleton, then it's not possible to have more than one instance for all staticcheck "sub-linters".
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagalign.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagalign/tagalign.go
similarity index 95%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/tagalign.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/tagalign/tagalign.go
index 4a2e000fee..f438c51b5c 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagalign.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagalign/tagalign.go
@@ -1,4 +1,4 @@
-package golinters
+package tagalign
import (
"sync"
@@ -12,7 +12,7 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-func NewTagAlign(settings *config.TagAlignSettings) *goanalysis.Linter {
+func New(settings *config.TagAlignSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagliatelle.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagliatelle/tagliatelle.go
similarity index 86%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/tagliatelle.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/tagliatelle/tagliatelle.go
index 7318603536..d1674c3e9e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagliatelle.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tagliatelle/tagliatelle.go
@@ -1,4 +1,4 @@
-package golinters
+package tagliatelle
import (
"github.com/ldez/tagliatelle"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewTagliatelle(settings *config.TagliatelleSettings) *goanalysis.Linter {
+func New(settings *config.TagliatelleSettings) *goanalysis.Linter {
cfg := tagliatelle.Config{
Rules: map[string]string{
"json": "camel",
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tenv.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tenv/tenv.go
similarity index 84%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/tenv.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/tenv/tenv.go
index 6c102711da..b80a783b65 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tenv.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tenv/tenv.go
@@ -1,4 +1,4 @@
-package golinters
+package tenv
import (
"github.com/sivchari/tenv"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewTenv(settings *config.TenvSettings) *goanalysis.Linter {
+func New(settings *config.TenvSettings) *goanalysis.Linter {
a := tenv.Analyzer
var cfg map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/testableexamples.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/testableexamples/testableexamples.go
similarity index 83%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/testableexamples.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/testableexamples/testableexamples.go
index 2cb8127d6e..6b76271dba 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/testableexamples.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/testableexamples/testableexamples.go
@@ -1,4 +1,4 @@
-package golinters
+package testableexamples
import (
"github.com/maratori/testableexamples/pkg/testableexamples"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewTestableexamples() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := testableexamples.NewAnalyzer()
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/testifylint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/testifylint/testifylint.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/testifylint.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/testifylint/testifylint.go
index dd5763a3d9..55c96881d8 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/testifylint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/testifylint/testifylint.go
@@ -1,4 +1,4 @@
-package golinters
+package testifylint
import (
"github.com/Antonboom/testifylint/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewTestifylint(settings *config.TestifylintSettings) *goanalysis.Linter {
+func New(settings *config.TestifylintSettings) *goanalysis.Linter {
a := analyzer.New()
cfg := make(map[string]map[string]any)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/testpackage.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/testpackage/testpackage.go
similarity index 87%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/testpackage.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/testpackage/testpackage.go
index d572ea0fe0..632152712b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/testpackage.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/testpackage/testpackage.go
@@ -1,4 +1,4 @@
-package golinters
+package testpackage
import (
"strings"
@@ -10,7 +10,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewTestpackage(cfg *config.TestpackageSettings) *goanalysis.Linter {
+func New(cfg *config.TestpackageSettings) *goanalysis.Linter {
a := testpackage.NewAnalyzer()
var settings map[string]map[string]any
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/thelper.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/thelper/thelper.go
similarity index 94%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/thelper.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/thelper/thelper.go
index b1f96d3d62..cc6ea755c9 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/thelper.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/thelper/thelper.go
@@ -1,4 +1,4 @@
-package golinters
+package thelper
import (
"strings"
@@ -12,7 +12,7 @@ import (
"github.com/golangci/golangci-lint/pkg/golinters/internal"
)
-func NewThelper(cfg *config.ThelperSettings) *goanalysis.Linter {
+func New(cfg *config.ThelperSettings) *goanalysis.Linter {
a := analyzer.NewAnalyzer()
opts := map[string]struct{}{
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tparallel.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tparallel/tparallel.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/tparallel.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/tparallel/tparallel.go
index 80569ced74..4f7c43a99d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/tparallel.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/tparallel/tparallel.go
@@ -1,4 +1,4 @@
-package golinters
+package tparallel
import (
"github.com/moricho/tparallel"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewTparallel() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := tparallel.Analyzer
return goanalysis.NewLinter(
a.Name,
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/typecheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/typecheck.go
index ed403648b1..d0eaa00d0c 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/typecheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/typecheck.go
@@ -20,5 +20,5 @@ func NewTypecheck() *goanalysis.Linter {
"Like the front-end of a Go compiler, parses and type-checks Go code",
[]*analysis.Analyzer{analyzer},
nil,
- ).WithLoadMode(goanalysis.LoadModeTypesInfo)
+ ).WithLoadMode(goanalysis.LoadModeNone)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/unconvert.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/unconvert/unconvert.go
similarity index 86%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/unconvert.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/unconvert/unconvert.go
index c6e6bda931..fe3247e43d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/unconvert.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/unconvert/unconvert.go
@@ -1,4 +1,4 @@
-package golinters
+package unconvert
import (
"sync"
@@ -12,14 +12,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const unconvertName = "unconvert"
+const name = "unconvert"
-func NewUnconvert(settings *config.UnconvertSettings) *goanalysis.Linter {
+func New(settings *config.UnconvertSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: unconvertName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Run: func(pass *analysis.Pass) (any, error) {
issues := runUnconvert(pass, settings)
@@ -37,7 +37,7 @@ func NewUnconvert(settings *config.UnconvertSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- unconvertName,
+ name,
"Remove unnecessary type conversions",
[]*analysis.Analyzer{analyzer},
nil,
@@ -54,7 +54,7 @@ func runUnconvert(pass *analysis.Pass, settings *config.UnconvertSettings) []goa
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: position,
Text: "unnecessary conversion",
- FromLinter: unconvertName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/unparam.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/unparam/unparam.go
similarity index 91%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/unparam.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/unparam/unparam.go
index 6ec35a00f8..06e302b6b9 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/unparam.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/unparam/unparam.go
@@ -1,4 +1,4 @@
-package golinters
+package unparam
import (
"sync"
@@ -14,14 +14,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const unparamName = "unparam"
+const name = "unparam"
-func NewUnparam(settings *config.UnparamSettings) *goanalysis.Linter {
+func New(settings *config.UnparamSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: unparamName,
+ Name: name,
Doc: goanalysis.TheOnlyanalyzerDoc,
Requires: []*analysis.Analyzer{buildssa.Analyzer},
Run: func(pass *analysis.Pass) (any, error) {
@@ -43,7 +43,7 @@ func NewUnparam(settings *config.UnparamSettings) *goanalysis.Linter {
}
return goanalysis.NewLinter(
- unparamName,
+ name,
"Reports unused function parameters",
[]*analysis.Analyzer{analyzer},
nil,
@@ -82,7 +82,7 @@ func runUnparam(pass *analysis.Pass, settings *config.UnparamSettings) ([]goanal
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Pos: pass.Fset.Position(i.Pos()),
Text: i.Message(),
- FromLinter: unparamName,
+ FromLinter: name,
}, pass))
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/unused.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/unused/unused.go
similarity index 93%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/unused.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/unused/unused.go
index 5e3a8dbd7c..1cadb71a38 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/unused.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/unused/unused.go
@@ -1,4 +1,4 @@
-package golinters
+package unused
import (
"fmt"
@@ -17,14 +17,14 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const unusedName = "unused"
+const name = "unused"
-func NewUnused(settings *config.UnusedSettings, scSettings *config.StaticCheckSettings) *goanalysis.Linter {
+func New(settings *config.UnusedSettings, scSettings *config.StaticCheckSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
analyzer := &analysis.Analyzer{
- Name: unusedName,
+ Name: name,
Doc: unused.Analyzer.Analyzer.Doc,
Requires: unused.Analyzer.Analyzer.Requires,
Run: func(pass *analysis.Pass) (any, error) {
@@ -44,7 +44,7 @@ func NewUnused(settings *config.UnusedSettings, scSettings *config.StaticCheckSe
internal.SetAnalyzerGoVersion(analyzer, internal.GetGoVersion(scSettings))
return goanalysis.NewLinter(
- unusedName,
+ name,
"Checks Go code for unused constants, variables, functions and types",
[]*analysis.Analyzer{analyzer},
nil,
@@ -75,7 +75,7 @@ func runUnused(pass *analysis.Pass, cfg *config.UnusedSettings) []goanalysis.Iss
}
issue := goanalysis.NewIssue(&result.Issue{
- FromLinter: unusedName,
+ FromLinter: name,
Text: fmt.Sprintf("%s %s is unused", object.Kind, object.Name),
Pos: object.Position,
}, pass)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars/usestdlibvars.go
similarity index 92%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars/usestdlibvars.go
index 1b2e5e5c79..050e47f24c 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars/usestdlibvars.go
@@ -1,4 +1,4 @@
-package golinters
+package usestdlibvars
import (
"github.com/sashamelentyev/usestdlibvars/pkg/analyzer"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewUseStdlibVars(cfg *config.UseStdlibVarsSettings) *goanalysis.Linter {
+func New(cfg *config.UseStdlibVarsSettings) *goanalysis.Linter {
a := analyzer.New()
cfgMap := make(map[string]map[string]any)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/varnamelen.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/varnamelen/varnamelen.go
similarity index 93%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/varnamelen.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/varnamelen/varnamelen.go
index bf2e8bff6b..6cb57ffa57 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/varnamelen.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/varnamelen/varnamelen.go
@@ -1,4 +1,4 @@
-package golinters
+package varnamelen
import (
"strconv"
@@ -11,7 +11,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewVarnamelen(settings *config.VarnamelenSettings) *goanalysis.Linter {
+func New(settings *config.VarnamelenSettings) *goanalysis.Linter {
analyzer := varnamelen.NewAnalyzer()
cfg := map[string]map[string]any{}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/wastedassign.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/wastedassign/wastedassign.go
similarity index 84%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/wastedassign.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/wastedassign/wastedassign.go
index 8b48a21cc8..094fa95c29 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/wastedassign.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/wastedassign/wastedassign.go
@@ -1,4 +1,4 @@
-package golinters
+package wastedassign
import (
"github.com/sanposhiho/wastedassign/v2"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewWastedAssign() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := wastedassign.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/whitespace.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/whitespace/whitespace.go
similarity index 93%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/whitespace.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/whitespace/whitespace.go
index 7a09e8d904..1b44575152 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/whitespace.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/whitespace/whitespace.go
@@ -1,4 +1,4 @@
-package golinters
+package whitespace
import (
"fmt"
@@ -13,9 +13,9 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-const whitespaceName = "whitespace"
+const name = "whitespace"
-func NewWhitespace(settings *config.WhitespaceSettings) *goanalysis.Linter {
+func New(settings *config.WhitespaceSettings) *goanalysis.Linter {
var mu sync.Mutex
var resIssues []goanalysis.Issue
@@ -63,7 +63,7 @@ func runWhitespace(pass *analysis.Pass, wsSettings whitespace.Settings) ([]goana
issues := make([]goanalysis.Issue, len(lintIssues))
for i, issue := range lintIssues {
report := &result.Issue{
- FromLinter: whitespaceName,
+ FromLinter: name,
Pos: pass.Fset.PositionFor(issue.Diagnostic, false),
Text: issue.Message,
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/wrapcheck.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/wrapcheck/wrapcheck.go
similarity index 89%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/wrapcheck.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/wrapcheck/wrapcheck.go
index 5a40e943c0..96ec2eeae0 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/wrapcheck.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/wrapcheck/wrapcheck.go
@@ -1,4 +1,4 @@
-package golinters
+package wrapcheck
import (
"github.com/tomarrell/wrapcheck/v2/wrapcheck"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewWrapcheck(settings *config.WrapcheckSettings) *goanalysis.Linter {
+func New(settings *config.WrapcheckSettings) *goanalysis.Linter {
cfg := wrapcheck.NewDefaultConfig()
if settings != nil {
if len(settings.IgnoreSigs) != 0 {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/wsl.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/wsl/wsl.go
similarity index 94%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/wsl.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/wsl/wsl.go
index cbef76e18b..5a72035b50 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/wsl.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/wsl/wsl.go
@@ -1,4 +1,4 @@
-package golinters
+package wsl
import (
"github.com/bombsimon/wsl/v4"
@@ -8,7 +8,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewWSL(settings *config.WSLSettings) *goanalysis.Linter {
+func New(settings *config.WSLSettings) *goanalysis.Linter {
var conf *wsl.Configuration
if settings != nil {
conf = &wsl.Configuration{
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/golinters/zerologlint.go b/vendor/github.com/golangci/golangci-lint/pkg/golinters/zerologlint/zerologlint.go
similarity index 82%
rename from vendor/github.com/golangci/golangci-lint/pkg/golinters/zerologlint.go
rename to vendor/github.com/golangci/golangci-lint/pkg/golinters/zerologlint/zerologlint.go
index a1346172af..6ca74020c8 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/golinters/zerologlint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/golinters/zerologlint/zerologlint.go
@@ -1,4 +1,4 @@
-package golinters
+package zerologlint
import (
"github.com/ykadowak/zerologlint"
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/goanalysis"
)
-func NewZerologLint() *goanalysis.Linter {
+func New() *goanalysis.Linter {
a := zerologlint.Analyzer
return goanalysis.NewLinter(
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/config.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/config.go
index 8e57d6bdf6..57c51fa75e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/config.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/config.go
@@ -27,10 +27,19 @@ const (
// LastLinter nolintlint must be last because it looks at the results of all the previous linters for unused nolint directives.
const LastLinter = "nolintlint"
+type DeprecationLevel int
+
+const (
+ DeprecationNone DeprecationLevel = iota
+ DeprecationWarning
+ DeprecationError
+)
+
type Deprecation struct {
Since string
Message string
Replacement string
+ Level DeprecationLevel
}
type Config struct {
@@ -113,15 +122,24 @@ func (lc *Config) WithSince(version string) *Config {
return lc
}
-func (lc *Config) Deprecated(message, version, replacement string) *Config {
+func (lc *Config) Deprecated(message, version, replacement string, level DeprecationLevel) *Config {
lc.Deprecation = &Deprecation{
Since: version,
Message: message,
Replacement: replacement,
+ Level: level,
}
return lc
}
+func (lc *Config) DeprecatedWarning(message, version, replacement string) *Config {
+ return lc.Deprecated(message, version, replacement, DeprecationWarning)
+}
+
+func (lc *Config) DeprecatedError(message, version, replacement string) *Config {
+ return lc.Deprecated(message, version, replacement, DeprecationError)
+}
+
func (lc *Config) IsDeprecated() bool {
return lc.Deprecation != nil
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/linter.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/linter.go
index 1d4e7b04cc..088aa3d78b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/linter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/linter/linter.go
@@ -17,6 +17,7 @@ type Noop struct {
name string
desc string
reason string
+ level DeprecationLevel
}
func NewNoop(l Linter, reason string) Noop {
@@ -27,11 +28,12 @@ func NewNoop(l Linter, reason string) Noop {
}
}
-func NewNoopDeprecated(name string, cfg *config.Config) Noop {
+func NewNoopDeprecated(name string, cfg *config.Config, level DeprecationLevel) Noop {
noop := Noop{
name: name,
desc: "Deprecated",
reason: "This linter is fully inactivated: it will not produce any reports.",
+ level: level,
}
if cfg.InternalCmdTest {
@@ -42,9 +44,17 @@ func NewNoopDeprecated(name string, cfg *config.Config) Noop {
}
func (n Noop) Run(_ context.Context, lintCtx *Context) ([]result.Issue, error) {
- if n.reason != "" {
+ if n.reason == "" {
+ return nil, nil
+ }
+
+ switch n.level {
+ case DeprecationError:
+ lintCtx.Log.Errorf("%s: %s", n.name, n.reason)
+ default:
lintCtx.Log.Warnf("%s: %s", n.name, n.reason)
}
+
return nil, nil
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_linter.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_linter.go
index 649a82fd75..7b9d2a559b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_linter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_linter.go
@@ -3,6 +3,113 @@ package lintersdb
import (
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/golinters"
+ "github.com/golangci/golangci-lint/pkg/golinters/asasalint"
+ "github.com/golangci/golangci-lint/pkg/golinters/asciicheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/bidichk"
+ "github.com/golangci/golangci-lint/pkg/golinters/bodyclose"
+ "github.com/golangci/golangci-lint/pkg/golinters/canonicalheader"
+ "github.com/golangci/golangci-lint/pkg/golinters/containedctx"
+ "github.com/golangci/golangci-lint/pkg/golinters/contextcheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/copyloopvar"
+ "github.com/golangci/golangci-lint/pkg/golinters/cyclop"
+ "github.com/golangci/golangci-lint/pkg/golinters/decorder"
+ "github.com/golangci/golangci-lint/pkg/golinters/depguard"
+ "github.com/golangci/golangci-lint/pkg/golinters/dogsled"
+ "github.com/golangci/golangci-lint/pkg/golinters/dupl"
+ "github.com/golangci/golangci-lint/pkg/golinters/dupword"
+ "github.com/golangci/golangci-lint/pkg/golinters/durationcheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/err113"
+ "github.com/golangci/golangci-lint/pkg/golinters/errcheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/errchkjson"
+ "github.com/golangci/golangci-lint/pkg/golinters/errname"
+ "github.com/golangci/golangci-lint/pkg/golinters/errorlint"
+ "github.com/golangci/golangci-lint/pkg/golinters/execinquery"
+ "github.com/golangci/golangci-lint/pkg/golinters/exhaustive"
+ "github.com/golangci/golangci-lint/pkg/golinters/exhaustruct"
+ "github.com/golangci/golangci-lint/pkg/golinters/exportloopref"
+ "github.com/golangci/golangci-lint/pkg/golinters/fatcontext"
+ "github.com/golangci/golangci-lint/pkg/golinters/forbidigo"
+ "github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert"
+ "github.com/golangci/golangci-lint/pkg/golinters/funlen"
+ "github.com/golangci/golangci-lint/pkg/golinters/gci"
+ "github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter"
+ "github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives"
+ "github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals"
+ "github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits"
+ "github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype"
+ "github.com/golangci/golangci-lint/pkg/golinters/gocognit"
+ "github.com/golangci/golangci-lint/pkg/golinters/goconst"
+ "github.com/golangci/golangci-lint/pkg/golinters/gocritic"
+ "github.com/golangci/golangci-lint/pkg/golinters/gocyclo"
+ "github.com/golangci/golangci-lint/pkg/golinters/godot"
+ "github.com/golangci/golangci-lint/pkg/golinters/godox"
+ "github.com/golangci/golangci-lint/pkg/golinters/gofmt"
+ "github.com/golangci/golangci-lint/pkg/golinters/gofumpt"
+ "github.com/golangci/golangci-lint/pkg/golinters/goheader"
+ "github.com/golangci/golangci-lint/pkg/golinters/goimports"
+ "github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives"
+ "github.com/golangci/golangci-lint/pkg/golinters/gomodguard"
+ "github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname"
+ "github.com/golangci/golangci-lint/pkg/golinters/gosec"
+ "github.com/golangci/golangci-lint/pkg/golinters/gosimple"
+ "github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan"
+ "github.com/golangci/golangci-lint/pkg/golinters/govet"
+ "github.com/golangci/golangci-lint/pkg/golinters/grouper"
+ "github.com/golangci/golangci-lint/pkg/golinters/importas"
+ "github.com/golangci/golangci-lint/pkg/golinters/inamedparam"
+ "github.com/golangci/golangci-lint/pkg/golinters/ineffassign"
+ "github.com/golangci/golangci-lint/pkg/golinters/interfacebloat"
+ "github.com/golangci/golangci-lint/pkg/golinters/intrange"
+ "github.com/golangci/golangci-lint/pkg/golinters/ireturn"
+ "github.com/golangci/golangci-lint/pkg/golinters/lll"
+ "github.com/golangci/golangci-lint/pkg/golinters/loggercheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/maintidx"
+ "github.com/golangci/golangci-lint/pkg/golinters/makezero"
+ "github.com/golangci/golangci-lint/pkg/golinters/mirror"
+ "github.com/golangci/golangci-lint/pkg/golinters/misspell"
+ "github.com/golangci/golangci-lint/pkg/golinters/mnd"
+ "github.com/golangci/golangci-lint/pkg/golinters/musttag"
+ "github.com/golangci/golangci-lint/pkg/golinters/nakedret"
+ "github.com/golangci/golangci-lint/pkg/golinters/nestif"
+ "github.com/golangci/golangci-lint/pkg/golinters/nilerr"
+ "github.com/golangci/golangci-lint/pkg/golinters/nilnil"
+ "github.com/golangci/golangci-lint/pkg/golinters/nlreturn"
+ "github.com/golangci/golangci-lint/pkg/golinters/noctx"
+ "github.com/golangci/golangci-lint/pkg/golinters/nolintlint"
+ "github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns"
+ "github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport"
+ "github.com/golangci/golangci-lint/pkg/golinters/paralleltest"
+ "github.com/golangci/golangci-lint/pkg/golinters/perfsprint"
+ "github.com/golangci/golangci-lint/pkg/golinters/prealloc"
+ "github.com/golangci/golangci-lint/pkg/golinters/predeclared"
+ "github.com/golangci/golangci-lint/pkg/golinters/promlinter"
+ "github.com/golangci/golangci-lint/pkg/golinters/protogetter"
+ "github.com/golangci/golangci-lint/pkg/golinters/reassign"
+ "github.com/golangci/golangci-lint/pkg/golinters/revive"
+ "github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/sloglint"
+ "github.com/golangci/golangci-lint/pkg/golinters/spancheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/staticcheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/stylecheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/tagalign"
+ "github.com/golangci/golangci-lint/pkg/golinters/tagliatelle"
+ "github.com/golangci/golangci-lint/pkg/golinters/tenv"
+ "github.com/golangci/golangci-lint/pkg/golinters/testableexamples"
+ "github.com/golangci/golangci-lint/pkg/golinters/testifylint"
+ "github.com/golangci/golangci-lint/pkg/golinters/testpackage"
+ "github.com/golangci/golangci-lint/pkg/golinters/thelper"
+ "github.com/golangci/golangci-lint/pkg/golinters/tparallel"
+ "github.com/golangci/golangci-lint/pkg/golinters/unconvert"
+ "github.com/golangci/golangci-lint/pkg/golinters/unparam"
+ "github.com/golangci/golangci-lint/pkg/golinters/unused"
+ "github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars"
+ "github.com/golangci/golangci-lint/pkg/golinters/varnamelen"
+ "github.com/golangci/golangci-lint/pkg/golinters/wastedassign"
+ "github.com/golangci/golangci-lint/pkg/golinters/whitespace"
+ "github.com/golangci/golangci-lint/pkg/golinters/wrapcheck"
+ "github.com/golangci/golangci-lint/pkg/golinters/wsl"
+ "github.com/golangci/golangci-lint/pkg/golinters/zerologlint"
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
@@ -16,7 +123,7 @@ func NewLinterBuilder() *LinterBuilder {
// Build loads all the "internal" linters.
// The configuration is use for the linter settings.
-func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
+func (LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
if cfg == nil {
return nil, nil
}
@@ -26,147 +133,154 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
// The linters are sorted in the alphabetical order (case-insensitive).
// When a new linter is added the version in `WithSince(...)` must be the next minor version of golangci-lint.
return []*linter.Config{
- linter.NewConfig(golinters.NewAsasalint(&cfg.LintersSettings.Asasalint)).
+ linter.NewConfig(asasalint.New(&cfg.LintersSettings.Asasalint)).
WithSince("1.47.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/alingse/asasalint"),
- linter.NewConfig(golinters.NewAsciicheck()).
+ linter.NewConfig(asciicheck.New()).
WithSince("v1.26.0").
WithPresets(linter.PresetBugs, linter.PresetStyle).
WithURL("https://github.com/tdakkota/asciicheck"),
- linter.NewConfig(golinters.NewBiDiChk(&cfg.LintersSettings.BiDiChk)).
+ linter.NewConfig(bidichk.New(&cfg.LintersSettings.BiDiChk)).
WithSince("1.43.0").
WithPresets(linter.PresetBugs).
WithURL("https://github.com/breml/bidichk"),
- linter.NewConfig(golinters.NewBodyclose()).
+ linter.NewConfig(bodyclose.New()).
WithSince("v1.18.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetPerformance, linter.PresetBugs).
WithURL("https://github.com/timakin/bodyclose"),
- linter.NewConfig(golinters.NewContainedCtx()).
+ linter.NewConfig(canonicalheader.New()).
+ WithSince("v1.58.0").
+ WithPresets(linter.PresetStyle).
+ WithLoadForGoAnalysis().
+ WithURL("https://github.com/lasiar/canonicalHeader"),
+
+ linter.NewConfig(containedctx.New()).
WithSince("1.44.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/sivchari/containedctx"),
- linter.NewConfig(golinters.NewContextCheck()).
+ linter.NewConfig(contextcheck.New()).
WithSince("v1.43.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/kkHAIKE/contextcheck"),
- linter.NewConfig(golinters.NewCopyLoopVar(&cfg.LintersSettings.CopyLoopVar)).
+ linter.NewConfig(copyloopvar.New(&cfg.LintersSettings.CopyLoopVar)).
WithSince("v1.57.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/karamaru-alpha/copyloopvar").
WithNoopFallback(cfg, linter.IsGoLowerThanGo122()),
- linter.NewConfig(golinters.NewCyclop(&cfg.LintersSettings.Cyclop)).
+ linter.NewConfig(cyclop.New(&cfg.LintersSettings.Cyclop)).
WithSince("v1.37.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetComplexity).
WithURL("https://github.com/bkielbasa/cyclop"),
- linter.NewConfig(golinters.NewDecorder(&cfg.LintersSettings.Decorder)).
+ linter.NewConfig(decorder.New(&cfg.LintersSettings.Decorder)).
WithSince("v1.44.0").
WithPresets(linter.PresetFormatting, linter.PresetStyle).
WithURL("https://gitlab.com/bosi/decorder"),
- linter.NewConfig(linter.NewNoopDeprecated("deadcode", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("deadcode", cfg, linter.DeprecationError)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetUnused).
WithURL("https://github.com/remyoudompheng/go-misc/tree/master/deadcode").
- Deprecated("The owner seems to have abandoned the linter.", "v1.49.0", "unused"),
+ DeprecatedError("The owner seems to have abandoned the linter.", "v1.49.0", "unused"),
- linter.NewConfig(golinters.NewDepguard(&cfg.LintersSettings.Depguard)).
+ linter.NewConfig(depguard.New(&cfg.LintersSettings.Depguard)).
WithSince("v1.4.0").
WithPresets(linter.PresetStyle, linter.PresetImport, linter.PresetModule).
WithURL("https://github.com/OpenPeeDeeP/depguard"),
- linter.NewConfig(golinters.NewDogsled(&cfg.LintersSettings.Dogsled)).
+ linter.NewConfig(dogsled.New(&cfg.LintersSettings.Dogsled)).
WithSince("v1.19.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/alexkohler/dogsled"),
- linter.NewConfig(golinters.NewDupl(&cfg.LintersSettings.Dupl)).
+ linter.NewConfig(dupl.New(&cfg.LintersSettings.Dupl)).
WithSince("v1.0.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/mibk/dupl"),
- linter.NewConfig(golinters.NewDupWord(&cfg.LintersSettings.DupWord)).
+ linter.NewConfig(dupword.New(&cfg.LintersSettings.DupWord)).
WithSince("1.50.0").
WithPresets(linter.PresetComment).
WithURL("https://github.com/Abirdcfly/dupword"),
- linter.NewConfig(golinters.NewDurationCheck()).
+ linter.NewConfig(durationcheck.New()).
WithSince("v1.37.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/charithe/durationcheck"),
- linter.NewConfig(golinters.NewErrcheck(&cfg.LintersSettings.Errcheck)).
+ linter.NewConfig(errcheck.New(&cfg.LintersSettings.Errcheck)).
WithEnabledByDefault().
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetBugs, linter.PresetError).
WithURL("https://github.com/kisielk/errcheck"),
- linter.NewConfig(golinters.NewErrChkJSON(&cfg.LintersSettings.ErrChkJSON)).
+ linter.NewConfig(errchkjson.New(&cfg.LintersSettings.ErrChkJSON)).
WithSince("1.44.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/breml/errchkjson"),
- linter.NewConfig(golinters.NewErrName()).
+ linter.NewConfig(errname.New()).
WithSince("v1.42.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/Antonboom/errname"),
- linter.NewConfig(golinters.NewErrorLint(&cfg.LintersSettings.ErrorLint)).
+ linter.NewConfig(errorlint.New(&cfg.LintersSettings.ErrorLint)).
WithSince("v1.32.0").
WithPresets(linter.PresetBugs, linter.PresetError).
WithLoadForGoAnalysis().
WithURL("https://github.com/polyfloyd/go-errorlint"),
- linter.NewConfig(golinters.NewExecInQuery()).
+ linter.NewConfig(execinquery.New()).
WithSince("v1.46.0").
WithPresets(linter.PresetSQL).
WithLoadForGoAnalysis().
- WithURL("https://github.com/lufeee/execinquery"),
+ WithURL("https://github.com/1uf3/execinquery").
+ DeprecatedWarning("The repository of the linter has been archived by the owner.", "v1.58.0", ""),
- linter.NewConfig(golinters.NewExhaustive(&cfg.LintersSettings.Exhaustive)).
+ linter.NewConfig(exhaustive.New(&cfg.LintersSettings.Exhaustive)).
WithSince(" v1.28.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/nishanths/exhaustive"),
- linter.NewConfig(linter.NewNoopDeprecated("exhaustivestruct", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("exhaustivestruct", cfg, linter.DeprecationError)).
WithSince("v1.32.0").
WithPresets(linter.PresetStyle, linter.PresetTest).
WithLoadForGoAnalysis().
WithURL("https://github.com/mbilski/exhaustivestruct").
- Deprecated("The repository of the linter has been deprecated by the owner.", "v1.46.0", "exhaustruct"),
+ DeprecatedError("The repository of the linter has been deprecated by the owner.", "v1.46.0", "exhaustruct"),
- linter.NewConfig(golinters.NewExhaustruct(&cfg.LintersSettings.Exhaustruct)).
+ linter.NewConfig(exhaustruct.New(&cfg.LintersSettings.Exhaustruct)).
WithSince("v1.46.0").
WithPresets(linter.PresetStyle, linter.PresetTest).
WithLoadForGoAnalysis().
WithURL("https://github.com/GaijinEntertainment/go-exhaustruct"),
- linter.NewConfig(golinters.NewExportLoopRef()).
+ linter.NewConfig(exportloopref.New()).
WithSince("v1.28.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/kyoh86/exportloopref"),
- linter.NewConfig(golinters.NewForbidigo(&cfg.LintersSettings.Forbidigo)).
+ linter.NewConfig(forbidigo.New(&cfg.LintersSettings.Forbidigo)).
WithSince("v1.34.0").
WithPresets(linter.PresetStyle).
// Strictly speaking,
@@ -176,147 +290,160 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
WithLoadForGoAnalysis().
WithURL("https://github.com/ashanbrown/forbidigo"),
- linter.NewConfig(golinters.NewForceTypeAssert()).
+ linter.NewConfig(forcetypeassert.New()).
WithSince("v1.38.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/gostaticanalysis/forcetypeassert"),
- linter.NewConfig(golinters.NewFunlen(&cfg.LintersSettings.Funlen)).
+ linter.NewConfig(fatcontext.New()).
+ WithSince("1.58.0").
+ WithPresets(linter.PresetPerformance).
+ WithLoadForGoAnalysis().
+ WithURL("https://github.com/Crocmagnon/fatcontext"),
+
+ linter.NewConfig(funlen.New(&cfg.LintersSettings.Funlen)).
WithSince("v1.18.0").
WithPresets(linter.PresetComplexity).
WithURL("https://github.com/ultraware/funlen"),
- linter.NewConfig(golinters.NewGci(&cfg.LintersSettings.Gci)).
+ linter.NewConfig(gci.New(&cfg.LintersSettings.Gci)).
WithSince("v1.30.0").
WithPresets(linter.PresetFormatting, linter.PresetImport).
WithAutoFix().
WithURL("https://github.com/daixiang0/gci"),
- linter.NewConfig(golinters.NewGinkgoLinter(&cfg.LintersSettings.GinkgoLinter)).
+ linter.NewConfig(ginkgolinter.New(&cfg.LintersSettings.GinkgoLinter)).
WithSince("v1.51.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/nunnatsa/ginkgolinter"),
- linter.NewConfig(golinters.NewGoCheckCompilerDirectives()).
+ linter.NewConfig(gocheckcompilerdirectives.New()).
WithSince("v1.51.0").
WithPresets(linter.PresetBugs).
WithURL("https://github.com/leighmcculloch/gocheckcompilerdirectives"),
- linter.NewConfig(golinters.NewGochecknoglobals()).
+ linter.NewConfig(gochecknoglobals.New()).
WithSince("v1.12.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/leighmcculloch/gochecknoglobals"),
- linter.NewConfig(golinters.NewGochecknoinits()).
+ linter.NewConfig(gochecknoinits.New()).
WithSince("v1.12.0").
WithPresets(linter.PresetStyle),
- linter.NewConfig(golinters.NewGoCheckSumType()).
+ linter.NewConfig(gochecksumtype.New()).
WithSince("v1.55.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/alecthomas/go-check-sumtype"),
- linter.NewConfig(golinters.NewGocognit(&cfg.LintersSettings.Gocognit)).
+ linter.NewConfig(gocognit.New(&cfg.LintersSettings.Gocognit)).
WithSince("v1.20.0").
WithPresets(linter.PresetComplexity).
WithURL("https://github.com/uudashr/gocognit"),
- linter.NewConfig(golinters.NewGoconst(&cfg.LintersSettings.Goconst)).
+ linter.NewConfig(goconst.New(&cfg.LintersSettings.Goconst)).
WithSince("v1.0.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/jgautheron/goconst"),
- linter.NewConfig(golinters.NewGoCritic(&cfg.LintersSettings.Gocritic)).
+ linter.NewConfig(gocritic.New(&cfg.LintersSettings.Gocritic)).
WithSince("v1.12.0").
WithPresets(linter.PresetStyle, linter.PresetMetaLinter).
WithLoadForGoAnalysis().
WithAutoFix().
WithURL("https://github.com/go-critic/go-critic"),
- linter.NewConfig(golinters.NewGocyclo(&cfg.LintersSettings.Gocyclo)).
+ linter.NewConfig(gocyclo.New(&cfg.LintersSettings.Gocyclo)).
WithSince("v1.0.0").
WithPresets(linter.PresetComplexity).
WithURL("https://github.com/fzipp/gocyclo"),
- linter.NewConfig(golinters.NewGodot(&cfg.LintersSettings.Godot)).
+ linter.NewConfig(godot.New(&cfg.LintersSettings.Godot)).
WithSince("v1.25.0").
WithPresets(linter.PresetStyle, linter.PresetComment).
WithAutoFix().
WithURL("https://github.com/tetafro/godot"),
- linter.NewConfig(golinters.NewGodox(&cfg.LintersSettings.Godox)).
+ linter.NewConfig(godox.New(&cfg.LintersSettings.Godox)).
WithSince("v1.19.0").
WithPresets(linter.PresetStyle, linter.PresetComment).
WithURL("https://github.com/matoous/godox"),
- linter.NewConfig(golinters.NewGoerr113()).
+ linter.NewConfig(err113.New()).
WithSince("v1.26.0").
WithPresets(linter.PresetStyle, linter.PresetError).
WithLoadForGoAnalysis().
+ WithAlternativeNames("goerr113").
WithURL("https://github.com/Djarvur/go-err113"),
- linter.NewConfig(golinters.NewGofmt(&cfg.LintersSettings.Gofmt)).
+ linter.NewConfig(gofmt.New(&cfg.LintersSettings.Gofmt)).
WithSince("v1.0.0").
WithPresets(linter.PresetFormatting).
WithAutoFix().
WithURL("https://pkg.go.dev/cmd/gofmt"),
- linter.NewConfig(golinters.NewGofumpt(&cfg.LintersSettings.Gofumpt)).
+ linter.NewConfig(gofumpt.New(&cfg.LintersSettings.Gofumpt)).
WithSince("v1.28.0").
WithPresets(linter.PresetFormatting).
WithAutoFix().
WithURL("https://github.com/mvdan/gofumpt"),
- linter.NewConfig(golinters.NewGoHeader(&cfg.LintersSettings.Goheader)).
+ linter.NewConfig(goheader.New(&cfg.LintersSettings.Goheader)).
WithSince("v1.28.0").
WithPresets(linter.PresetStyle).
WithAutoFix().
WithURL("https://github.com/denis-tingaikin/go-header"),
- linter.NewConfig(golinters.NewGoimports(&cfg.LintersSettings.Goimports)).
+ linter.NewConfig(goimports.New(&cfg.LintersSettings.Goimports)).
WithSince("v1.20.0").
WithPresets(linter.PresetFormatting, linter.PresetImport).
WithAutoFix().
WithURL("https://pkg.go.dev/golang.org/x/tools/cmd/goimports"),
- linter.NewConfig(linter.NewNoopDeprecated("golint", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("golint", cfg, linter.DeprecationError)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/golang/lint").
- Deprecated("The repository of the linter has been archived by the owner.", "v1.41.0", "revive"),
+ DeprecatedError("The repository of the linter has been archived by the owner.", "v1.41.0", "revive"),
- linter.NewConfig(golinters.NewGoMND(&cfg.LintersSettings.Gomnd)).
+ linter.NewConfig(mnd.New(&cfg.LintersSettings.Mnd)).
WithSince("v1.22.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/tommy-muehle/go-mnd"),
- linter.NewConfig(golinters.NewGoModDirectives(&cfg.LintersSettings.GoModDirectives)).
+ linter.NewConfig(mnd.NewGoMND(&cfg.LintersSettings.Gomnd)).
+ WithSince("v1.22.0").
+ WithPresets(linter.PresetStyle).
+ WithURL("https://github.com/tommy-muehle/go-mnd").
+ DeprecatedWarning("The linter has been renamed.", "v1.58.0", "mnd"),
+
+ linter.NewConfig(gomoddirectives.New(&cfg.LintersSettings.GoModDirectives)).
WithSince("v1.39.0").
WithPresets(linter.PresetStyle, linter.PresetModule).
WithURL("https://github.com/ldez/gomoddirectives"),
- linter.NewConfig(golinters.NewGomodguard(&cfg.LintersSettings.Gomodguard)).
+ linter.NewConfig(gomodguard.New(&cfg.LintersSettings.Gomodguard)).
WithSince("v1.25.0").
WithPresets(linter.PresetStyle, linter.PresetImport, linter.PresetModule).
WithURL("https://github.com/ryancurrah/gomodguard"),
- linter.NewConfig(golinters.NewGoPrintfFuncName()).
+ linter.NewConfig(goprintffuncname.New()).
WithSince("v1.23.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/jirfag/go-printf-func-name"),
- linter.NewConfig(golinters.NewGosec(&cfg.LintersSettings.Gosec)).
+ linter.NewConfig(gosec.New(&cfg.LintersSettings.Gosec)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetBugs).
WithURL("https://github.com/securego/gosec").
WithAlternativeNames("gas"),
- linter.NewConfig(golinters.NewGosimple(&cfg.LintersSettings.Gosimple)).
+ linter.NewConfig(gosimple.New(&cfg.LintersSettings.Gosimple)).
WithEnabledByDefault().
WithSince("v1.20.0").
WithLoadForGoAnalysis().
@@ -324,13 +451,13 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
WithAlternativeNames(megacheckName).
WithURL("https://github.com/dominikh/go-tools/tree/master/simple"),
- linter.NewConfig(golinters.NewGosmopolitan(&cfg.LintersSettings.Gosmopolitan)).
+ linter.NewConfig(gosmopolitan.New(&cfg.LintersSettings.Gosmopolitan)).
WithSince("v1.53.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetBugs).
WithURL("https://github.com/xen0n/gosmopolitan"),
- linter.NewConfig(golinters.NewGovet(&cfg.LintersSettings.Govet)).
+ linter.NewConfig(govet.New(&cfg.LintersSettings.Govet)).
WithEnabledByDefault().
WithSince("v1.0.0").
WithLoadForGoAnalysis().
@@ -338,232 +465,232 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
WithAlternativeNames("vet", "vetshadow").
WithURL("https://pkg.go.dev/cmd/vet"),
- linter.NewConfig(golinters.NewGrouper(&cfg.LintersSettings.Grouper)).
+ linter.NewConfig(grouper.New(&cfg.LintersSettings.Grouper)).
WithSince("v1.44.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/leonklingele/grouper"),
- linter.NewConfig(linter.NewNoopDeprecated("ifshort", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("ifshort", cfg, linter.DeprecationError)).
WithSince("v1.36.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/esimonov/ifshort").
- Deprecated("The repository of the linter has been deprecated by the owner.", "v1.48.0", ""),
+ DeprecatedError("The repository of the linter has been deprecated by the owner.", "v1.48.0", ""),
- linter.NewConfig(golinters.NewImportAs(&cfg.LintersSettings.ImportAs)).
+ linter.NewConfig(importas.New(&cfg.LintersSettings.ImportAs)).
WithSince("v1.38.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/julz/importas"),
- linter.NewConfig(golinters.NewINamedParam(&cfg.LintersSettings.Inamedparam)).
+ linter.NewConfig(inamedparam.New(&cfg.LintersSettings.Inamedparam)).
WithSince("v1.55.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/macabu/inamedparam"),
- linter.NewConfig(golinters.NewIneffassign()).
+ linter.NewConfig(ineffassign.New()).
WithEnabledByDefault().
WithSince("v1.0.0").
WithPresets(linter.PresetUnused).
WithURL("https://github.com/gordonklaus/ineffassign"),
- linter.NewConfig(golinters.NewInterfaceBloat(&cfg.LintersSettings.InterfaceBloat)).
+ linter.NewConfig(interfacebloat.New(&cfg.LintersSettings.InterfaceBloat)).
WithSince("v1.49.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/sashamelentyev/interfacebloat"),
- linter.NewConfig(linter.NewNoopDeprecated("interfacer", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("interfacer", cfg, linter.DeprecationError)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/mvdan/interfacer").
- Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""),
+ DeprecatedError("The repository of the linter has been archived by the owner.", "v1.38.0", ""),
- linter.NewConfig(golinters.NewIntrange()).
+ linter.NewConfig(intrange.New()).
WithSince("v1.57.0").
WithURL("https://github.com/ckaznocha/intrange").
WithNoopFallback(cfg, linter.IsGoLowerThanGo122()),
- linter.NewConfig(golinters.NewIreturn(&cfg.LintersSettings.Ireturn)).
+ linter.NewConfig(ireturn.New(&cfg.LintersSettings.Ireturn)).
WithSince("v1.43.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/butuzov/ireturn"),
- linter.NewConfig(golinters.NewLLL(&cfg.LintersSettings.Lll)).
+ linter.NewConfig(lll.New(&cfg.LintersSettings.Lll)).
WithSince("v1.8.0").
WithPresets(linter.PresetStyle),
- linter.NewConfig(golinters.NewLoggerCheck(&cfg.LintersSettings.LoggerCheck)).
+ linter.NewConfig(loggercheck.New(&cfg.LintersSettings.LoggerCheck)).
WithSince("v1.49.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle, linter.PresetBugs).
WithAlternativeNames("logrlint").
WithURL("https://github.com/timonwong/loggercheck"),
- linter.NewConfig(golinters.NewMaintIdx(&cfg.LintersSettings.MaintIdx)).
+ linter.NewConfig(maintidx.New(&cfg.LintersSettings.MaintIdx)).
WithSince("v1.44.0").
WithPresets(linter.PresetComplexity).
WithURL("https://github.com/yagipy/maintidx"),
- linter.NewConfig(golinters.NewMakezero(&cfg.LintersSettings.Makezero)).
+ linter.NewConfig(makezero.New(&cfg.LintersSettings.Makezero)).
WithSince("v1.34.0").
WithPresets(linter.PresetStyle, linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/ashanbrown/makezero"),
- linter.NewConfig(linter.NewNoopDeprecated("maligned", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("maligned", cfg, linter.DeprecationError)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetPerformance).
WithURL("https://github.com/mdempsky/maligned").
- Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", "govet 'fieldalignment'"),
+ DeprecatedError("The repository of the linter has been archived by the owner.", "v1.38.0", "govet 'fieldalignment'"),
- linter.NewConfig(golinters.NewMirror()).
+ linter.NewConfig(mirror.New()).
WithSince("v1.53.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithAutoFix().
WithURL("https://github.com/butuzov/mirror"),
- linter.NewConfig(golinters.NewMisspell(&cfg.LintersSettings.Misspell)).
+ linter.NewConfig(misspell.New(&cfg.LintersSettings.Misspell)).
WithSince("v1.8.0").
WithPresets(linter.PresetStyle, linter.PresetComment).
WithAutoFix().
WithURL("https://github.com/client9/misspell"),
- linter.NewConfig(golinters.NewMustTag(&cfg.LintersSettings.MustTag)).
+ linter.NewConfig(musttag.New(&cfg.LintersSettings.MustTag)).
WithSince("v1.51.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle, linter.PresetBugs).
WithURL("https://github.com/go-simpler/musttag"),
- linter.NewConfig(golinters.NewNakedret(&cfg.LintersSettings.Nakedret)).
+ linter.NewConfig(nakedret.New(&cfg.LintersSettings.Nakedret)).
WithSince("v1.19.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/alexkohler/nakedret"),
- linter.NewConfig(golinters.NewNestif(&cfg.LintersSettings.Nestif)).
+ linter.NewConfig(nestif.New(&cfg.LintersSettings.Nestif)).
WithSince("v1.25.0").
WithPresets(linter.PresetComplexity).
WithURL("https://github.com/nakabonne/nestif"),
- linter.NewConfig(golinters.NewNilErr()).
+ linter.NewConfig(nilerr.New()).
WithSince("v1.38.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetBugs).
WithURL("https://github.com/gostaticanalysis/nilerr"),
- linter.NewConfig(golinters.NewNilNil(&cfg.LintersSettings.NilNil)).
+ linter.NewConfig(nilnil.New(&cfg.LintersSettings.NilNil)).
WithSince("v1.43.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/Antonboom/nilnil"),
- linter.NewConfig(golinters.NewNLReturn(&cfg.LintersSettings.Nlreturn)).
+ linter.NewConfig(nlreturn.New(&cfg.LintersSettings.Nlreturn)).
WithSince("v1.30.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/ssgreg/nlreturn"),
- linter.NewConfig(golinters.NewNoctx()).
+ linter.NewConfig(noctx.New()).
WithSince("v1.28.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetPerformance, linter.PresetBugs).
WithURL("https://github.com/sonatard/noctx"),
- linter.NewConfig(golinters.NewNoNamedReturns(&cfg.LintersSettings.NoNamedReturns)).
+ linter.NewConfig(nonamedreturns.New(&cfg.LintersSettings.NoNamedReturns)).
WithSince("v1.46.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/firefart/nonamedreturns"),
- linter.NewConfig(linter.NewNoopDeprecated("nosnakecase", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("nosnakecase", cfg, linter.DeprecationError)).
WithSince("v1.47.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/sivchari/nosnakecase").
- Deprecated("The repository of the linter has been deprecated by the owner.", "v1.48.1", "revive 'var-naming'"),
+ DeprecatedError("The repository of the linter has been deprecated by the owner.", "v1.48.1", "revive 'var-naming'"),
- linter.NewConfig(golinters.NewNoSprintfHostPort()).
+ linter.NewConfig(nosprintfhostport.New()).
WithSince("v1.46.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/stbenjam/no-sprintf-host-port"),
- linter.NewConfig(golinters.NewParallelTest(&cfg.LintersSettings.ParallelTest)).
+ linter.NewConfig(paralleltest.New(&cfg.LintersSettings.ParallelTest)).
WithSince("v1.33.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle, linter.PresetTest).
WithURL("https://github.com/kunwardeep/paralleltest"),
- linter.NewConfig(golinters.NewPerfSprint(&cfg.LintersSettings.PerfSprint)).
+ linter.NewConfig(perfsprint.New(&cfg.LintersSettings.PerfSprint)).
WithSince("v1.55.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetPerformance).
WithURL("https://github.com/catenacyber/perfsprint"),
- linter.NewConfig(golinters.NewPreAlloc(&cfg.LintersSettings.Prealloc)).
+ linter.NewConfig(prealloc.New(&cfg.LintersSettings.Prealloc)).
WithSince("v1.19.0").
WithPresets(linter.PresetPerformance).
WithURL("https://github.com/alexkohler/prealloc"),
- linter.NewConfig(golinters.NewPredeclared(&cfg.LintersSettings.Predeclared)).
+ linter.NewConfig(predeclared.New(&cfg.LintersSettings.Predeclared)).
WithSince("v1.35.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/nishanths/predeclared"),
- linter.NewConfig(golinters.NewPromlinter(&cfg.LintersSettings.Promlinter)).
+ linter.NewConfig(promlinter.New(&cfg.LintersSettings.Promlinter)).
WithSince("v1.40.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/yeya24/promlinter"),
- linter.NewConfig(golinters.NewProtoGetter(&cfg.LintersSettings.ProtoGetter)).
+ linter.NewConfig(protogetter.New(&cfg.LintersSettings.ProtoGetter)).
WithSince("v1.55.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithAutoFix().
WithURL("https://github.com/ghostiam/protogetter"),
- linter.NewConfig(golinters.NewReassign(&cfg.LintersSettings.Reassign)).
+ linter.NewConfig(reassign.New(&cfg.LintersSettings.Reassign)).
WithSince("1.49.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/curioswitch/go-reassign"),
- linter.NewConfig(golinters.NewRevive(&cfg.LintersSettings.Revive)).
+ linter.NewConfig(revive.New(&cfg.LintersSettings.Revive)).
WithSince("v1.37.0").
WithPresets(linter.PresetStyle, linter.PresetMetaLinter).
ConsiderSlow().
WithURL("https://github.com/mgechev/revive"),
- linter.NewConfig(golinters.NewRowsErrCheck(&cfg.LintersSettings.RowsErrCheck)).
+ linter.NewConfig(rowserrcheck.New(&cfg.LintersSettings.RowsErrCheck)).
WithSince("v1.23.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetBugs, linter.PresetSQL).
WithURL("https://github.com/jingyugao/rowserrcheck"),
- linter.NewConfig(golinters.NewSlogLint(&cfg.LintersSettings.SlogLint)).
+ linter.NewConfig(sloglint.New(&cfg.LintersSettings.SlogLint)).
WithSince("v1.55.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle, linter.PresetFormatting).
WithURL("https://github.com/go-simpler/sloglint"),
- linter.NewConfig(linter.NewNoopDeprecated("scopelint", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("scopelint", cfg, linter.DeprecationError)).
WithSince("v1.12.0").
WithPresets(linter.PresetBugs).
WithURL("https://github.com/kyoh86/scopelint").
- Deprecated("The repository of the linter has been deprecated by the owner.", "v1.39.0", "exportloopref"),
+ DeprecatedError("The repository of the linter has been deprecated by the owner.", "v1.39.0", "exportloopref"),
- linter.NewConfig(golinters.NewSQLCloseCheck()).
+ linter.NewConfig(sqlclosecheck.New()).
WithSince("v1.28.0").
WithPresets(linter.PresetBugs, linter.PresetSQL).
WithLoadForGoAnalysis().
WithURL("https://github.com/ryanrolds/sqlclosecheck"),
- linter.NewConfig(golinters.NewSpancheck(&cfg.LintersSettings.Spancheck)).
+ linter.NewConfig(spancheck.New(&cfg.LintersSettings.Spancheck)).
WithSince("v1.56.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetBugs).
WithURL("https://github.com/jjti/go-spancheck"),
- linter.NewConfig(golinters.NewStaticcheck(&cfg.LintersSettings.Staticcheck)).
+ linter.NewConfig(staticcheck.New(&cfg.LintersSettings.Staticcheck)).
WithEnabledByDefault().
WithSince("v1.0.0").
WithLoadForGoAnalysis().
@@ -571,59 +698,59 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
WithAlternativeNames(megacheckName).
WithURL("https://staticcheck.io/"),
- linter.NewConfig(linter.NewNoopDeprecated("structcheck", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("structcheck", cfg, linter.DeprecationError)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetUnused).
WithURL("https://github.com/opennota/check").
- Deprecated("The owner seems to have abandoned the linter.", "v1.49.0", "unused"),
+ DeprecatedError("The owner seems to have abandoned the linter.", "v1.49.0", "unused"),
- linter.NewConfig(golinters.NewStylecheck(&cfg.LintersSettings.Stylecheck)).
+ linter.NewConfig(stylecheck.New(&cfg.LintersSettings.Stylecheck)).
WithSince("v1.20.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/dominikh/go-tools/tree/master/stylecheck"),
- linter.NewConfig(golinters.NewTagAlign(&cfg.LintersSettings.TagAlign)).
+ linter.NewConfig(tagalign.New(&cfg.LintersSettings.TagAlign)).
WithSince("v1.53.0").
WithPresets(linter.PresetStyle, linter.PresetFormatting).
WithAutoFix().
WithURL("https://github.com/4meepo/tagalign"),
- linter.NewConfig(golinters.NewTagliatelle(&cfg.LintersSettings.Tagliatelle)).
+ linter.NewConfig(tagliatelle.New(&cfg.LintersSettings.Tagliatelle)).
WithSince("v1.40.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/ldez/tagliatelle"),
- linter.NewConfig(golinters.NewTenv(&cfg.LintersSettings.Tenv)).
+ linter.NewConfig(tenv.New(&cfg.LintersSettings.Tenv)).
WithSince("v1.43.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/sivchari/tenv"),
- linter.NewConfig(golinters.NewTestableexamples()).
+ linter.NewConfig(testableexamples.New()).
WithSince("v1.50.0").
WithPresets(linter.PresetTest).
WithURL("https://github.com/maratori/testableexamples"),
- linter.NewConfig(golinters.NewTestifylint(&cfg.LintersSettings.Testifylint)).
+ linter.NewConfig(testifylint.New(&cfg.LintersSettings.Testifylint)).
WithSince("v1.55.0").
WithPresets(linter.PresetTest, linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/Antonboom/testifylint"),
- linter.NewConfig(golinters.NewTestpackage(&cfg.LintersSettings.Testpackage)).
+ linter.NewConfig(testpackage.New(&cfg.LintersSettings.Testpackage)).
WithSince("v1.25.0").
WithPresets(linter.PresetStyle, linter.PresetTest).
WithURL("https://github.com/maratori/testpackage"),
- linter.NewConfig(golinters.NewThelper(&cfg.LintersSettings.Thelper)).
+ linter.NewConfig(thelper.New(&cfg.LintersSettings.Thelper)).
WithSince("v1.34.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/kulti/thelper"),
- linter.NewConfig(golinters.NewTparallel()).
+ linter.NewConfig(tparallel.New()).
WithSince("v1.32.0").
WithPresets(linter.PresetStyle, linter.PresetTest).
WithLoadForGoAnalysis().
@@ -632,24 +759,21 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
linter.NewConfig(golinters.NewTypecheck()).
WithInternal().
WithEnabledByDefault().
- WithSince("v1.3.0").
- WithLoadForGoAnalysis().
- WithPresets(linter.PresetBugs).
- WithURL(""),
+ WithSince("v1.3.0"),
- linter.NewConfig(golinters.NewUnconvert(&cfg.LintersSettings.Unconvert)).
+ linter.NewConfig(unconvert.New(&cfg.LintersSettings.Unconvert)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).
WithURL("https://github.com/mdempsky/unconvert"),
- linter.NewConfig(golinters.NewUnparam(&cfg.LintersSettings.Unparam)).
+ linter.NewConfig(unparam.New(&cfg.LintersSettings.Unparam)).
WithSince("v1.9.0").
WithPresets(linter.PresetUnused).
WithLoadForGoAnalysis().
WithURL("https://github.com/mvdan/unparam"),
- linter.NewConfig(golinters.NewUnused(&cfg.LintersSettings.Unused, &cfg.LintersSettings.Staticcheck)).
+ linter.NewConfig(unused.New(&cfg.LintersSettings.Unused, &cfg.LintersSettings.Staticcheck)).
WithEnabledByDefault().
WithSince("v1.20.0").
WithLoadForGoAnalysis().
@@ -659,55 +783,55 @@ func (b LinterBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
WithChangeTypes().
WithURL("https://github.com/dominikh/go-tools/tree/master/unused"),
- linter.NewConfig(golinters.NewUseStdlibVars(&cfg.LintersSettings.UseStdlibVars)).
+ linter.NewConfig(usestdlibvars.New(&cfg.LintersSettings.UseStdlibVars)).
WithSince("v1.48.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/sashamelentyev/usestdlibvars"),
- linter.NewConfig(linter.NewNoopDeprecated("varcheck", cfg)).
+ linter.NewConfig(linter.NewNoopDeprecated("varcheck", cfg, linter.DeprecationError)).
WithSince("v1.0.0").
WithLoadForGoAnalysis().
WithPresets(linter.PresetUnused).
WithURL("https://github.com/opennota/check").
- Deprecated("The owner seems to have abandoned the linter.", "v1.49.0", "unused"),
+ DeprecatedError("The owner seems to have abandoned the linter.", "v1.49.0", "unused"),
- linter.NewConfig(golinters.NewVarnamelen(&cfg.LintersSettings.Varnamelen)).
+ linter.NewConfig(varnamelen.New(&cfg.LintersSettings.Varnamelen)).
WithSince("v1.43.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/blizzy78/varnamelen"),
- linter.NewConfig(golinters.NewWastedAssign()).
+ linter.NewConfig(wastedassign.New()).
WithSince("v1.38.0").
WithPresets(linter.PresetStyle).
WithLoadForGoAnalysis().
WithURL("https://github.com/sanposhiho/wastedassign"),
- linter.NewConfig(golinters.NewWhitespace(&cfg.LintersSettings.Whitespace)).
+ linter.NewConfig(whitespace.New(&cfg.LintersSettings.Whitespace)).
WithSince("v1.19.0").
WithPresets(linter.PresetStyle).
WithAutoFix().
WithURL("https://github.com/ultraware/whitespace"),
- linter.NewConfig(golinters.NewWrapcheck(&cfg.LintersSettings.Wrapcheck)).
+ linter.NewConfig(wrapcheck.New(&cfg.LintersSettings.Wrapcheck)).
WithSince("v1.32.0").
WithPresets(linter.PresetStyle, linter.PresetError).
WithLoadForGoAnalysis().
WithURL("https://github.com/tomarrell/wrapcheck"),
- linter.NewConfig(golinters.NewWSL(&cfg.LintersSettings.WSL)).
+ linter.NewConfig(wsl.New(&cfg.LintersSettings.WSL)).
WithSince("v1.20.0").
WithPresets(linter.PresetStyle).
WithURL("https://github.com/bombsimon/wsl"),
- linter.NewConfig(golinters.NewZerologLint()).
+ linter.NewConfig(zerologlint.New()).
WithSince("v1.53.0").
WithPresets(linter.PresetBugs).
WithLoadForGoAnalysis().
WithURL("https://github.com/ykadowak/zerologlint"),
// nolintlint must be last because it looks at the results of all the previous linters for unused nolint directives
- linter.NewConfig(golinters.NewNoLintLint(&cfg.LintersSettings.NoLintLint)).
+ linter.NewConfig(nolintlint.New(&cfg.LintersSettings.NoLintLint)).
WithSince("v1.26.0").
WithPresets(linter.PresetStyle).
WithAutoFix().
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_plugin_go.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_plugin_go.go
index 2a349c9563..c6dbaf7930 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_plugin_go.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/builder_plugin_go.go
@@ -48,9 +48,8 @@ func (b *PluginGoBuilder) Build(cfg *config.Config) ([]*linter.Config, error) {
lc, err := b.loadConfig(cfg, name, &settings)
if err != nil {
return nil, fmt.Errorf("unable to load custom analyzer %q: %s, %w", name, settings.Path, err)
- } else {
- linters = append(linters, lc)
}
+ linters = append(linters, lc)
}
return linters, nil
@@ -128,7 +127,7 @@ func (b *PluginGoBuilder) lookupAnalyzerPlugin(plug *plugin.Plugin) ([]*analysis
}
b.log.Warnf("plugin: 'AnalyzerPlugin' plugins are deprecated, please use the new plugin signature: " +
- "https://golangci-lint.run/contributing/new-linters/#create-a-plugin")
+ "https://golangci-lint.run/plugins/go-plugins#create-a-plugin")
analyzerPlugin, ok := symbol.(AnalyzerPlugin)
if !ok {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/manager.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/manager.go
index 0cd6cec24a..0a487be92e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/manager.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/manager.go
@@ -204,21 +204,30 @@ func (m *Manager) build(enabledByDefaultLinters []*linter.Config) map[string]*li
}
func (m *Manager) combineGoAnalysisLinters(linters map[string]*linter.Config) {
+ mlConfig := &linter.Config{}
+
var goanalysisLinters []*goanalysis.Linter
- goanalysisPresets := map[string]bool{}
+
for _, lc := range linters {
lnt, ok := lc.Linter.(*goanalysis.Linter)
if !ok {
continue
}
+
if lnt.LoadMode() == goanalysis.LoadModeWholeProgram {
// It's ineffective by CPU and memory to run whole-program and incremental analyzers at once.
continue
}
- goanalysisLinters = append(goanalysisLinters, lnt)
- for _, p := range lc.InPresets {
- goanalysisPresets[p] = true
+
+ mlConfig.LoadMode |= lc.LoadMode
+
+ if lc.IsSlowLinter() {
+ mlConfig.ConsiderSlow()
}
+
+ mlConfig.InPresets = append(mlConfig.InPresets, lc.InPresets...)
+
+ goanalysisLinters = append(goanalysisLinters, lnt)
}
if len(goanalysisLinters) <= 1 {
@@ -245,22 +254,13 @@ func (m *Manager) combineGoAnalysisLinters(linters map[string]*linter.Config) {
return a.Name() <= b.Name()
})
- ml := goanalysis.NewMetaLinter(goanalysisLinters)
+ mlConfig.Linter = goanalysis.NewMetaLinter(goanalysisLinters)
- presets := maps.Keys(goanalysisPresets)
- sort.Strings(presets)
-
- mlConfig := &linter.Config{
- Linter: ml,
- EnabledByDefault: false,
- InPresets: presets,
- AlternativeNames: nil,
- OriginalURL: "",
- }
+ sort.Strings(mlConfig.InPresets)
+ mlConfig.InPresets = slices.Compact(mlConfig.InPresets)
- mlConfig = mlConfig.WithLoadForGoAnalysis()
+ linters[mlConfig.Linter.Name()] = mlConfig
- linters[ml.Name()] = mlConfig
m.debugf("Combined %d go/analysis linters into one metalinter", len(goanalysisLinters))
}
@@ -303,6 +303,10 @@ func AllPresets() []string {
func linterConfigsToMap(lcs []*linter.Config) map[string]*linter.Config {
ret := map[string]*linter.Config{}
for _, lc := range lcs {
+ if lc.IsDeprecated() && lc.Deprecation.Level > linter.DeprecationWarning {
+ continue
+ }
+
ret[lc.Name()] = lc
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/validator.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/validator.go
index 364d5082a5..079d8198fa 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/validator.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/lintersdb/validator.go
@@ -3,10 +3,12 @@ package lintersdb
import (
"errors"
"fmt"
+ "os"
"slices"
"strings"
"github.com/golangci/golangci-lint/pkg/config"
+ "github.com/golangci/golangci-lint/pkg/logutils"
)
type Validator struct {
@@ -20,14 +22,10 @@ func NewValidator(m *Manager) *Validator {
// Validate validates the configuration by calling all other validators for different
// sections in the configuration and then some additional linter validation functions.
func (v Validator) Validate(cfg *config.Config) error {
- err := cfg.Validate()
- if err != nil {
- return err
- }
-
validators := []func(cfg *config.Linters) error{
v.validateLintersNames,
v.validatePresets,
+ v.alternativeNamesDeprecation,
}
for _, v := range validators {
@@ -40,7 +38,7 @@ func (v Validator) Validate(cfg *config.Config) error {
}
func (v Validator) validateLintersNames(cfg *config.Linters) error {
- allNames := append([]string{}, cfg.Enable...)
+ allNames := cfg.Enable
allNames = append(allNames, cfg.Disable...)
var unknownNames []string
@@ -59,7 +57,7 @@ func (v Validator) validateLintersNames(cfg *config.Linters) error {
return nil
}
-func (v Validator) validatePresets(cfg *config.Linters) error {
+func (Validator) validatePresets(cfg *config.Linters) error {
presets := AllPresets()
for _, p := range cfg.Presets {
@@ -75,3 +73,34 @@ func (v Validator) validatePresets(cfg *config.Linters) error {
return nil
}
+
+func (v Validator) alternativeNamesDeprecation(cfg *config.Linters) error {
+ if v.m.cfg.InternalTest || v.m.cfg.InternalCmdTest || os.Getenv(logutils.EnvTestRun) == "1" {
+ return nil
+ }
+
+ altNames := map[string][]string{}
+ for _, lc := range v.m.GetAllSupportedLinterConfigs() {
+ for _, alt := range lc.AlternativeNames {
+ altNames[alt] = append(altNames[alt], lc.Name())
+ }
+ }
+
+ names := cfg.Enable
+ names = append(names, cfg.Disable...)
+
+ for _, name := range names {
+ lc, ok := altNames[name]
+ if !ok {
+ continue
+ }
+
+ if len(lc) > 1 {
+ v.m.log.Warnf("The linter named %q is deprecated. It has been split into: %s.", name, strings.Join(lc, ", "))
+ } else {
+ v.m.log.Warnf("The name %q is deprecated. The linter has been renamed to: %s.", name, lc[0])
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/package.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/package.go
index 7faa399e98..c314166cae 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/package.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/package.go
@@ -78,8 +78,10 @@ func (l *PackageLoader) loadPackages(ctx context.Context, loadMode packages.Load
// TODO: use fset, parsefile, overlay
}
- args := l.buildArgs()
+ args := buildArgs(l.args)
+
l.debugf("Built loader args are %s", args)
+
pkgs, err := packages.Load(conf, args...)
if err != nil {
return nil, fmt.Errorf("failed to load with go/packages: %w", err)
@@ -103,7 +105,7 @@ func (l *PackageLoader) loadPackages(ctx context.Context, loadMode packages.Load
return l.filterTestMainPackages(pkgs), nil
}
-func (l *PackageLoader) parseLoadedPackagesErrors(pkgs []*packages.Package) error {
+func (*PackageLoader) parseLoadedPackagesErrors(pkgs []*packages.Package) error {
for _, pkg := range pkgs {
var errs []packages.Error
for _, err := range pkg.Errors {
@@ -212,24 +214,6 @@ func (l *PackageLoader) prepareBuildContext() {
build.Default.BuildTags = l.cfg.Run.BuildTags
}
-func (l *PackageLoader) buildArgs() []string {
- if len(l.args) == 0 {
- return []string{"./..."}
- }
-
- var retArgs []string
- for _, arg := range l.args {
- if strings.HasPrefix(arg, ".") || filepath.IsAbs(arg) {
- retArgs = append(retArgs, arg)
- } else {
- // go/packages doesn't work well if we don't have the prefix ./ for local packages
- retArgs = append(retArgs, fmt.Sprintf(".%c%s", filepath.Separator, arg))
- }
- }
-
- return retArgs
-}
-
func (l *PackageLoader) makeBuildFlags() []string {
var buildFlags []string
@@ -247,6 +231,24 @@ func (l *PackageLoader) makeBuildFlags() []string {
return buildFlags
}
+func buildArgs(args []string) []string {
+ if len(args) == 0 {
+ return []string{"./..."}
+ }
+
+ var retArgs []string
+ for _, arg := range args {
+ if strings.HasPrefix(arg, ".") || filepath.IsAbs(arg) {
+ retArgs = append(retArgs, arg)
+ } else {
+ // go/packages doesn't work well if we don't have the prefix ./ for local packages
+ retArgs = append(retArgs, fmt.Sprintf(".%c%s", filepath.Separator, arg))
+ }
+ }
+
+ return retArgs
+}
+
func findLoadMode(linters []*linter.Config) packages.LoadMode {
loadMode := packages.LoadMode(0)
for _, lc := range linters {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/lint/runner.go b/vendor/github.com/golangci/golangci-lint/pkg/lint/runner.go
index b1d604c964..f4877e1e89 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/lint/runner.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/lint/runner.go
@@ -14,7 +14,6 @@ import (
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
"github.com/golangci/golangci-lint/pkg/logutils"
- "github.com/golangci/golangci-lint/pkg/packages"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/golangci-lint/pkg/result/processors"
"github.com/golangci/golangci-lint/pkg/timeutils"
@@ -48,10 +47,10 @@ func NewRunner(log logutils.Log, cfg *config.Config, args []string, goenv *gouti
skipDirs := cfg.Issues.ExcludeDirs
if cfg.Issues.UseDefaultExcludeDirs {
- skipDirs = append(skipDirs, packages.StdExcludeDirRegexps...)
+ skipDirs = append(skipDirs, processors.StdExcludeDirRegexps...)
}
- skipDirsProcessor, err := processors.NewSkipDirs(skipDirs, log.Child(logutils.DebugKeySkipDirs), args, cfg.Output.PathPrefix)
+ skipDirsProcessor, err := processors.NewSkipDirs(log.Child(logutils.DebugKeySkipDirs), skipDirs, args, cfg.Output.PathPrefix)
if err != nil {
return nil, err
}
@@ -81,18 +80,18 @@ func NewRunner(log logutils.Log, cfg *config.Config, args []string, goenv *gouti
// Must be before exclude because users see already marked output and configure excluding by it.
processors.NewIdentifierMarker(),
- getExcludeProcessor(&cfg.Issues),
- getExcludeRulesProcessor(&cfg.Issues, log, files),
+ processors.NewExclude(&cfg.Issues),
+ processors.NewExcludeRules(log.Child(logutils.DebugKeyExcludeRules), files, &cfg.Issues),
processors.NewNolint(log.Child(logutils.DebugKeyNolint), dbManager, enabledLinters),
processors.NewUniqByLine(cfg),
- processors.NewDiff(cfg.Issues.Diff, cfg.Issues.DiffFromRevision, cfg.Issues.DiffPatchFilePath, cfg.Issues.WholeFiles),
+ processors.NewDiff(&cfg.Issues),
processors.NewMaxPerFileFromLinter(cfg),
processors.NewMaxSameIssues(cfg.Issues.MaxSameIssues, log.Child(logutils.DebugKeyMaxSameIssues), cfg),
processors.NewMaxFromLinter(cfg.Issues.MaxIssuesPerLinter, log.Child(logutils.DebugKeyMaxFromLinter), cfg),
processors.NewSourceCode(lineCache, log.Child(logutils.DebugKeySourceCode)),
processors.NewPathShortener(),
- getSeverityRulesProcessor(&cfg.Severity, log, files),
+ processors.NewSeverity(log.Child(logutils.DebugKeySeverityRules), files, &cfg.Severity),
// The fixer still needs to see paths for the issues that are relative to the current directory.
processors.NewFixer(cfg, log, fileCache),
@@ -243,72 +242,3 @@ func (r *Runner) processIssues(issues []result.Issue, sw *timeutils.Stopwatch, s
return issues
}
-
-func getExcludeProcessor(cfg *config.Issues) processors.Processor {
- opts := processors.ExcludeOptions{
- CaseSensitive: cfg.ExcludeCaseSensitive,
- }
-
- if len(cfg.ExcludePatterns) != 0 {
- opts.Pattern = fmt.Sprintf("(%s)", strings.Join(cfg.ExcludePatterns, "|"))
- }
-
- return processors.NewExclude(opts)
-}
-
-func getExcludeRulesProcessor(cfg *config.Issues, log logutils.Log, files *fsutils.Files) processors.Processor {
- var excludeRules []processors.ExcludeRule
- for _, r := range cfg.ExcludeRules {
- excludeRules = append(excludeRules, processors.ExcludeRule{
- BaseRule: processors.BaseRule{
- Text: r.Text,
- Source: r.Source,
- Path: r.Path,
- PathExcept: r.PathExcept,
- Linters: r.Linters,
- },
- })
- }
-
- if cfg.UseDefaultExcludes {
- for _, r := range config.GetExcludePatterns(cfg.IncludeDefaultExcludes) {
- excludeRules = append(excludeRules, processors.ExcludeRule{
- BaseRule: processors.BaseRule{
- Text: r.Pattern,
- Linters: []string{r.Linter},
- },
- })
- }
- }
-
- opts := processors.ExcludeRulesOptions{
- Rules: excludeRules,
- CaseSensitive: cfg.ExcludeCaseSensitive,
- }
-
- return processors.NewExcludeRules(log.Child(logutils.DebugKeyExcludeRules), files, opts)
-}
-
-func getSeverityRulesProcessor(cfg *config.Severity, log logutils.Log, files *fsutils.Files) processors.Processor {
- var severityRules []processors.SeverityRule
- for _, r := range cfg.Rules {
- severityRules = append(severityRules, processors.SeverityRule{
- Severity: r.Severity,
- BaseRule: processors.BaseRule{
- Text: r.Text,
- Source: r.Source,
- Path: r.Path,
- PathExcept: r.PathExcept,
- Linters: r.Linters,
- },
- })
- }
-
- severityOpts := processors.SeverityOptions{
- Default: cfg.Default,
- Rules: severityRules,
- CaseSensitive: cfg.CaseSensitive,
- }
-
- return processors.NewSeverity(log.Child(logutils.DebugKeySeverityRules), files, severityOpts)
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/logutils/mock.go b/vendor/github.com/golangci/golangci-lint/pkg/logutils/mock.go
index efda8cc20f..bddcf85523 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/logutils/mock.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/logutils/mock.go
@@ -13,28 +13,23 @@ func NewMockLog() *MockLog {
}
func (m *MockLog) Fatalf(format string, args ...any) {
- mArgs := []any{format}
- m.Called(append(mArgs, args...)...)
+ m.Called(append([]any{format}, args...)...)
}
func (m *MockLog) Panicf(format string, args ...any) {
- mArgs := []any{format}
- m.Called(append(mArgs, args...)...)
+ m.Called(append([]any{format}, args...)...)
}
func (m *MockLog) Errorf(format string, args ...any) {
- mArgs := []any{format}
- m.Called(append(mArgs, args...)...)
+ m.Called(append([]any{format}, args...)...)
}
func (m *MockLog) Warnf(format string, args ...any) {
- mArgs := []any{format}
- m.Called(append(mArgs, args...)...)
+ m.Called(append([]any{format}, args...)...)
}
func (m *MockLog) Infof(format string, args ...any) {
- mArgs := []any{format}
- m.Called(append(mArgs, args...)...)
+ m.Called(append([]any{format}, args...)...)
}
func (m *MockLog) Child(name string) Log {
@@ -45,3 +40,43 @@ func (m *MockLog) Child(name string) Log {
func (m *MockLog) SetLevel(level LogLevel) {
m.Called(level)
}
+
+func (m *MockLog) OnFatalf(format string, args ...any) *MockLog {
+ arguments := append([]any{format}, args...)
+
+ m.On("Fatalf", arguments...)
+
+ return m
+}
+
+func (m *MockLog) OnPanicf(format string, args ...any) *MockLog {
+ arguments := append([]any{format}, args...)
+
+ m.On("Panicf", arguments...)
+
+ return m
+}
+
+func (m *MockLog) OnErrorf(format string, args ...any) *MockLog {
+ arguments := append([]any{format}, args...)
+
+ m.On("Errorf", arguments...)
+
+ return m
+}
+
+func (m *MockLog) OnWarnf(format string, args ...any) *MockLog {
+ arguments := append([]any{format}, args...)
+
+ m.On("Warnf", arguments...)
+
+ return m
+}
+
+func (m *MockLog) OnInfof(format string, args ...any) *MockLog {
+ arguments := append([]any{format}, args...)
+
+ m.On("Infof", arguments...)
+
+ return m
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/packages/exclude.go b/vendor/github.com/golangci/golangci-lint/pkg/packages/exclude.go
deleted file mode 100644
index cdd327f5d8..0000000000
--- a/vendor/github.com/golangci/golangci-lint/pkg/packages/exclude.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package packages
-
-import (
- "fmt"
- "path/filepath"
- "regexp"
-)
-
-func pathElemReImpl(e string, sep rune) string {
- escapedSep := regexp.QuoteMeta(string(sep)) // needed for windows sep '\\'
- return fmt.Sprintf(`(^|%s)%s($|%s)`, escapedSep, e, escapedSep)
-}
-
-func pathElemRe(e string) string {
- return pathElemReImpl(e, filepath.Separator)
-}
-
-var StdExcludeDirRegexps = []string{
- pathElemRe("vendor"),
- pathElemRe("third_party"),
- pathElemRe("testdata"),
- pathElemRe("examples"),
- pathElemRe("Godeps"),
- pathElemRe("builtin"),
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/printers/github.go b/vendor/github.com/golangci/golangci-lint/pkg/printers/github.go
index e396119da1..d91353c1f5 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/printers/github.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/printers/github.go
@@ -1,28 +1,143 @@
package printers
import (
+ "encoding/json"
"fmt"
"io"
+ "os"
"path/filepath"
"github.com/golangci/golangci-lint/pkg/result"
)
-type GitHub struct {
- w io.Writer
+const defaultGitHubSeverity = "error"
+
+const filenameGitHubActionProblemMatchers = "golangci-lint-action-problem-matchers.json"
+
+// GitHubProblemMatchers defines the root of problem matchers.
+// - https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md
+// - https://github.com/actions/toolkit/blob/main/docs/commands.md#problem-matchers
+type GitHubProblemMatchers struct {
+ Matchers []GitHubMatcher `json:"problemMatcher,omitempty"`
}
-const defaultGithubSeverity = "error"
+// GitHubMatcher defines a problem matcher.
+type GitHubMatcher struct {
+ // Owner an ID field that can be used to remove or replace the problem matcher.
+ // **required**
+ Owner string `json:"owner,omitempty"`
+ // Severity indicates the default severity, either 'warning' or 'error' case-insensitive.
+ // Defaults to 'error'.
+ Severity string `json:"severity,omitempty"`
+ Pattern []GitHubPattern `json:"pattern,omitempty"`
+}
+
+// GitHubPattern defines a pattern for a problem matcher.
+type GitHubPattern struct {
+ // Regexp the regexp pattern that provides the groups to match against.
+ // **required**
+ Regexp string `json:"regexp,omitempty"`
+ // File a group number containing the file name.
+ File int `json:"file,omitempty"`
+ // FromPath a group number containing a filepath used to root the file (e.g. a project file).
+ FromPath int `json:"fromPath,omitempty"`
+ // Line a group number containing the line number.
+ Line int `json:"line,omitempty"`
+ // Column a group number containing the column information.
+ Column int `json:"column,omitempty"`
+ // Severity a group number containing either 'warning' or 'error' case-insensitive.
+ // Defaults to `error`.
+ Severity int `json:"severity,omitempty"`
+ // Code a group number containing the error code.
+ Code int `json:"code,omitempty"`
+ // Message a group number containing the error message.
+ // **required** at least one pattern must set the message.
+ Message int `json:"message,omitempty"`
+ // Loop whether to loop until a match is not found,
+ // only valid on the last pattern of a multi-pattern matcher.
+ Loop bool `json:"loop,omitempty"`
+}
-// NewGitHub output format outputs issues according to GitHub actions format:
-// https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message
+type GitHub struct {
+ tempPath string
+ w io.Writer
+}
+
+// NewGitHub output format outputs issues according to GitHub actions the problem matcher regexp.
func NewGitHub(w io.Writer) *GitHub {
- return &GitHub{w: w}
+ return &GitHub{
+ tempPath: filepath.Join(os.TempDir(), filenameGitHubActionProblemMatchers),
+ w: w,
+ }
+}
+
+func (p *GitHub) Print(issues []result.Issue) error {
+ // Note: the file with the problem matcher definition should not be removed.
+ // A sleep can mitigate this problem but this will be flaky.
+ //
+ // Result if the file is removed prematurely:
+ // Error: Unable to process command '::add-matcher::/tmp/golangci-lint-action-problem-matchers.json' successfully.
+ // Error: Could not find file '/tmp/golangci-lint-action-problem-matchers.json'.
+ filename, err := p.storeProblemMatcher()
+ if err != nil {
+ return err
+ }
+
+ _, _ = fmt.Fprintln(p.w, "::debug::problem matcher definition file: "+filename)
+
+ _, _ = fmt.Fprintln(p.w, "::add-matcher::"+filename)
+
+ for ind := range issues {
+ _, err := fmt.Fprintln(p.w, formatIssueAsGitHub(&issues[ind]))
+ if err != nil {
+ return err
+ }
+ }
+
+ _, _ = fmt.Fprintln(p.w, "::remove-matcher owner=golangci-lint-action::")
+
+ return nil
+}
+
+func (p *GitHub) storeProblemMatcher() (string, error) {
+ file, err := os.Create(p.tempPath)
+ if err != nil {
+ return "", err
+ }
+
+ defer file.Close()
+
+ err = json.NewEncoder(file).Encode(generateProblemMatcher())
+ if err != nil {
+ return "", err
+ }
+
+ return file.Name(), nil
+}
+
+func generateProblemMatcher() GitHubProblemMatchers {
+ return GitHubProblemMatchers{
+ Matchers: []GitHubMatcher{
+ {
+ Owner: "golangci-lint-action",
+ Severity: "error",
+ Pattern: []GitHubPattern{
+ {
+ Regexp: `^([^\s]+)\s+([^:]+):(\d+):(?:(\d+):)?\s+(.+)$`,
+ Severity: 1,
+ File: 2,
+ Line: 3,
+ Column: 4,
+ Message: 5,
+ },
+ },
+ },
+ },
+ }
}
-// print each line as: ::error file=app.js,line=10,col=15::Something went wrong
-func formatIssueAsGithub(issue *result.Issue) string {
- severity := defaultGithubSeverity
+func formatIssueAsGitHub(issue *result.Issue) string {
+ severity := defaultGitHubSeverity
if issue.Severity != "" {
severity = issue.Severity
}
@@ -32,21 +147,11 @@ func formatIssueAsGithub(issue *result.Issue) string {
// Otherwise, GitHub won't be able to show the annotations pointing to the file path with backslashes.
file := filepath.ToSlash(issue.FilePath())
- ret := fmt.Sprintf("::%s file=%s,line=%d", severity, file, issue.Line())
+ ret := fmt.Sprintf("%s\t%s:%d:", severity, file, issue.Line())
if issue.Pos.Column != 0 {
- ret += fmt.Sprintf(",col=%d", issue.Pos.Column)
+ ret += fmt.Sprintf("%d:", issue.Pos.Column)
}
- ret += fmt.Sprintf("::%s (%s)", issue.Text, issue.FromLinter)
+ ret += fmt.Sprintf("\t%s (%s)", issue.Text, issue.FromLinter)
return ret
}
-
-func (p *GitHub) Print(issues []result.Issue) error {
- for ind := range issues {
- _, err := fmt.Fprintln(p.w, formatIssueAsGithub(&issues[ind]))
- if err != nil {
- return err
- }
- }
- return nil
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/printers/teamcity.go b/vendor/github.com/golangci/golangci-lint/pkg/printers/teamcity.go
index ae0886912e..1d1c9f7d32 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/printers/teamcity.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/printers/teamcity.go
@@ -89,7 +89,7 @@ type InspectionType struct {
func (i InspectionType) Print(w io.Writer, escaper *strings.Replacer) (int, error) {
return fmt.Fprintf(w, "##teamcity[inspectionType id='%s' name='%s' description='%s' category='%s']\n",
- limit(i.id, smallLimit), limit(i.name, smallLimit), limit(escaper.Replace(i.description), largeLimit), limit(i.category, smallLimit))
+ cutVal(i.id, smallLimit), cutVal(i.name, smallLimit), cutVal(escaper.Replace(i.description), largeLimit), cutVal(i.category, smallLimit))
}
// InspectionInstance reports a specific defect, warning, error message.
@@ -105,15 +105,15 @@ type InspectionInstance struct {
func (i InspectionInstance) Print(w io.Writer, replacer *strings.Replacer) (int, error) {
return fmt.Fprintf(w, "##teamcity[inspection typeId='%s' message='%s' file='%s' line='%d' SEVERITY='%s']\n",
- limit(i.typeID, smallLimit),
- limit(replacer.Replace(i.message), largeLimit),
- limit(i.file, largeLimit),
+ cutVal(i.typeID, smallLimit),
+ cutVal(replacer.Replace(i.message), largeLimit),
+ cutVal(i.file, largeLimit),
i.line, strings.ToUpper(i.severity))
}
-func limit(s string, max int) string {
+func cutVal(s string, limit int) string {
var size, count int
- for i := 0; i < max && count < len(s); i++ {
+ for i := 0; i < limit && count < len(s); i++ {
_, size = utf8.DecodeRuneInString(s[count:])
count += size
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/autogenerated_exclude.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/autogenerated_exclude.go
index b5944cd1d0..2fca5117f2 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/autogenerated_exclude.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/autogenerated_exclude.go
@@ -18,7 +18,7 @@ const (
genAutoFile = "autogenerated file" // easyjson
)
-var _ Processor = &AutogeneratedExclude{}
+var _ Processor = (*AutogeneratedExclude)(nil)
type fileSummary struct {
generated bool
@@ -42,7 +42,7 @@ func NewAutogeneratedExclude(strict bool) *AutogeneratedExclude {
}
}
-func (p *AutogeneratedExclude) Name() string {
+func (*AutogeneratedExclude) Name() string {
return "autogenerated_exclude"
}
@@ -50,14 +50,18 @@ func (p *AutogeneratedExclude) Process(issues []result.Issue) ([]result.Issue, e
return filterIssuesErr(issues, p.shouldPassIssue)
}
-func (p *AutogeneratedExclude) Finish() {}
+func (*AutogeneratedExclude) Finish() {}
func (p *AutogeneratedExclude) shouldPassIssue(issue *result.Issue) (bool, error) {
- if issue.FromLinter == "typecheck" {
+ if issue.FromLinter == typeCheckName {
// don't hide typechecking errors in generated files: users expect to see why the project isn't compiling
return true, nil
}
+ if filepath.Base(issue.FilePath()) == "go.mod" {
+ return true, nil
+ }
+
// The file is already known.
fs := p.fileSummaryCache[issue.FilePath()]
if fs != nil {
@@ -157,7 +161,3 @@ func getComments(filePath string) (string, error) {
return strings.Join(docLines, "\n"), nil
}
-
-func isGoFile(name string) bool {
- return filepath.Ext(name) == ".go"
-}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/base_rule.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/base_rule.go
index 12333c898d..d7a4f0ec4b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/base_rule.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/base_rule.go
@@ -10,14 +10,6 @@ import (
const caseInsensitivePrefix = "(?i)"
-type BaseRule struct {
- Text string
- Source string
- Path string
- PathExcept string
- Linters []string
-}
-
type baseRule struct {
text *regexp.Regexp
source *regexp.Regexp
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/cgo.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/cgo.go
index 1ad73c31af..0e659f0f3e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/cgo.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/cgo.go
@@ -9,49 +9,51 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*Cgo)(nil)
+
type Cgo struct {
goCacheDir string
}
-var _ Processor = Cgo{}
-
func NewCgo(goenv *goutil.Env) *Cgo {
return &Cgo{
goCacheDir: goenv.Get(goutil.EnvGoCache),
}
}
-func (p Cgo) Name() string {
+func (Cgo) Name() string {
return "cgo"
}
func (p Cgo) Process(issues []result.Issue) ([]result.Issue, error) {
- return filterIssuesErr(issues, func(issue *result.Issue) (bool, error) {
- // some linters (e.g. gosec, deadcode) return incorrect filepaths for cgo issues,
- // also cgo files have strange issues looking like false positives.
-
- // cache dir contains all preprocessed files including cgo files
-
- issueFilePath := issue.FilePath()
- if !filepath.IsAbs(issue.FilePath()) {
- absPath, err := filepath.Abs(issue.FilePath())
- if err != nil {
- return false, fmt.Errorf("failed to build abs path for %q: %w", issue.FilePath(), err)
- }
- issueFilePath = absPath
- }
+ return filterIssuesErr(issues, p.shouldPassIssue)
+}
- if p.goCacheDir != "" && strings.HasPrefix(issueFilePath, p.goCacheDir) {
- return false, nil
- }
+func (Cgo) Finish() {}
+
+func (p Cgo) shouldPassIssue(issue *result.Issue) (bool, error) {
+ // some linters (e.g. gosec, deadcode) return incorrect filepaths for cgo issues,
+ // also cgo files have strange issues looking like false positives.
+
+ // cache dir contains all preprocessed files including cgo files
- if filepath.Base(issue.FilePath()) == "_cgo_gotypes.go" {
- // skip cgo warning for go1.10
- return false, nil
+ issueFilePath := issue.FilePath()
+ if !filepath.IsAbs(issue.FilePath()) {
+ absPath, err := filepath.Abs(issue.FilePath())
+ if err != nil {
+ return false, fmt.Errorf("failed to build abs path for %q: %w", issue.FilePath(), err)
}
+ issueFilePath = absPath
+ }
- return true, nil
- })
-}
+ if p.goCacheDir != "" && strings.HasPrefix(issueFilePath, p.goCacheDir) {
+ return false, nil
+ }
-func (Cgo) Finish() {}
+ if filepath.Base(issue.FilePath()) == "_cgo_gotypes.go" {
+ // skip cgo warning for go1.10
+ return false, nil
+ }
+
+ return true, nil
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/diff.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/diff.go
index d607b02182..c602cdc65a 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/diff.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/diff.go
@@ -9,11 +9,14 @@ import (
"github.com/golangci/revgrep"
+ "github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/result"
)
const envGolangciDiffProcessorPatch = "GOLANGCI_DIFF_PROCESSOR_PATCH"
+var _ Processor = (*Diff)(nil)
+
type Diff struct {
onlyNew bool
fromRev string
@@ -22,19 +25,17 @@ type Diff struct {
patch string
}
-var _ Processor = Diff{}
-
-func NewDiff(onlyNew bool, fromRev, patchFilePath string, wholeFiles bool) *Diff {
+func NewDiff(cfg *config.Issues) *Diff {
return &Diff{
- onlyNew: onlyNew,
- fromRev: fromRev,
- patchFilePath: patchFilePath,
- wholeFiles: wholeFiles,
+ onlyNew: cfg.Diff,
+ fromRev: cfg.DiffFromRevision,
+ patchFilePath: cfg.DiffPatchFilePath,
+ wholeFiles: cfg.WholeFiles,
patch: os.Getenv(envGolangciDiffProcessorPatch),
}
}
-func (p Diff) Name() string {
+func (Diff) Name() string {
return "diff"
}
@@ -64,6 +65,11 @@ func (p Diff) Process(issues []result.Issue) ([]result.Issue, error) {
}
return transformIssues(issues, func(issue *result.Issue) *result.Issue {
+ if issue.FromLinter == typeCheckName {
+ // Never hide typechecking errors.
+ return issue
+ }
+
hunkPos, isNew := c.IsNewIssue(issue)
if !isNew {
return nil
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude.go
index 05a56ef965..5431204502 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude.go
@@ -1,12 +1,15 @@
package processors
import (
+ "fmt"
"regexp"
+ "strings"
+ "github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/result"
)
-var _ Processor = Exclude{}
+var _ Processor = (*Exclude)(nil)
type Exclude struct {
name string
@@ -14,22 +17,22 @@ type Exclude struct {
pattern *regexp.Regexp
}
-type ExcludeOptions struct {
- Pattern string
- CaseSensitive bool
-}
-
-func NewExclude(opts ExcludeOptions) *Exclude {
+func NewExclude(cfg *config.Issues) *Exclude {
p := &Exclude{name: "exclude"}
+ var pattern string
+ if len(cfg.ExcludePatterns) != 0 {
+ pattern = fmt.Sprintf("(%s)", strings.Join(cfg.ExcludePatterns, "|"))
+ }
+
prefix := caseInsensitivePrefix
- if opts.CaseSensitive {
+ if cfg.ExcludeCaseSensitive {
p.name = "exclude-case-sensitive"
prefix = ""
}
- if opts.Pattern != "" {
- p.pattern = regexp.MustCompile(prefix + opts.Pattern)
+ if pattern != "" {
+ p.pattern = regexp.MustCompile(prefix + pattern)
}
return p
@@ -49,4 +52,4 @@ func (p Exclude) Process(issues []result.Issue) ([]result.Issue, error) {
}), nil
}
-func (p Exclude) Finish() {}
+func (Exclude) Finish() {}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude_rules.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude_rules.go
index a20d56d05d..b468c51013 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude_rules.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/exclude_rules.go
@@ -3,21 +3,18 @@ package processors
import (
"regexp"
+ "github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)
-var _ Processor = ExcludeRules{}
+var _ Processor = (*ExcludeRules)(nil)
type excludeRule struct {
baseRule
}
-type ExcludeRule struct {
- BaseRule
-}
-
type ExcludeRules struct {
name string
@@ -27,12 +24,7 @@ type ExcludeRules struct {
rules []excludeRule
}
-type ExcludeRulesOptions struct {
- Rules []ExcludeRule
- CaseSensitive bool
-}
-
-func NewExcludeRules(log logutils.Log, files *fsutils.Files, opts ExcludeRulesOptions) *ExcludeRules {
+func NewExcludeRules(log logutils.Log, files *fsutils.Files, cfg *config.Issues) *ExcludeRules {
p := &ExcludeRules{
name: "exclude-rules",
files: files,
@@ -40,20 +32,36 @@ func NewExcludeRules(log logutils.Log, files *fsutils.Files, opts ExcludeRulesOp
}
prefix := caseInsensitivePrefix
- if opts.CaseSensitive {
+ if cfg.ExcludeCaseSensitive {
prefix = ""
p.name = "exclude-rules-case-sensitive"
}
- p.rules = createRules(opts.Rules, prefix)
+ excludeRules := cfg.ExcludeRules
+
+ if cfg.UseDefaultExcludes {
+ for _, r := range config.GetExcludePatterns(cfg.IncludeDefaultExcludes) {
+ excludeRules = append(excludeRules, config.ExcludeRule{
+ BaseRule: config.BaseRule{
+ Text: r.Pattern,
+ Linters: []string{r.Linter},
+ },
+ })
+ }
+ }
+
+ p.rules = createRules(excludeRules, prefix)
return p
}
+func (p ExcludeRules) Name() string { return p.name }
+
func (p ExcludeRules) Process(issues []result.Issue) ([]result.Issue, error) {
if len(p.rules) == 0 {
return issues, nil
}
+
return filterIssues(issues, func(issue *result.Issue) bool {
for _, rule := range p.rules {
rule := rule
@@ -61,15 +69,14 @@ func (p ExcludeRules) Process(issues []result.Issue) ([]result.Issue, error) {
return false
}
}
+
return true
}), nil
}
-func (p ExcludeRules) Name() string { return p.name }
-
func (ExcludeRules) Finish() {}
-func createRules(rules []ExcludeRule, prefix string) []excludeRule {
+func createRules(rules []config.ExcludeRule, prefix string) []excludeRule {
parsedRules := make([]excludeRule, 0, len(rules))
for _, rule := range rules {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/filename_unadjuster.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/filename_unadjuster.go
index adf82c823c..6a1387c872 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/filename_unadjuster.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/filename_unadjuster.go
@@ -14,6 +14,8 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*FilenameUnadjuster)(nil)
+
type posMapper func(pos token.Position) token.Position
type adjustMap struct {
@@ -30,50 +32,6 @@ type FilenameUnadjuster struct {
loggedUnadjustments map[string]bool
}
-var _ Processor = &FilenameUnadjuster{}
-
-func processUnadjusterPkg(m *adjustMap, pkg *packages.Package, log logutils.Log) {
- fset := token.NewFileSet() // it's more memory efficient to not store all in one fset
-
- for _, filename := range pkg.CompiledGoFiles {
- // It's important to call func here to run GC
- processUnadjusterFile(filename, m, log, fset)
- }
-}
-
-func processUnadjusterFile(filename string, m *adjustMap, log logutils.Log, fset *token.FileSet) {
- syntax, err := parser.ParseFile(fset, filename, nil, parser.ParseComments)
- if err != nil {
- // Error will be reported by typecheck
- return
- }
-
- adjustedFilename := fset.PositionFor(syntax.Pos(), true).Filename
- if adjustedFilename == "" {
- return
- }
-
- unadjustedFilename := fset.PositionFor(syntax.Pos(), false).Filename
- if unadjustedFilename == "" || unadjustedFilename == adjustedFilename {
- return
- }
-
- if !strings.HasSuffix(unadjustedFilename, ".go") {
- return // file.go -> /caches/cgo-xxx
- }
-
- m.Lock()
- defer m.Unlock()
- m.m[adjustedFilename] = func(adjustedPos token.Position) token.Position {
- tokenFile := fset.File(syntax.Pos())
- if tokenFile == nil {
- log.Warnf("Failed to get token file for %s", adjustedFilename)
- return adjustedPos
- }
- return fset.PositionFor(tokenFile.Pos(adjustedPos.Offset), false)
- }
-}
-
func NewFilenameUnadjuster(pkgs []*packages.Package, log logutils.Log) *FilenameUnadjuster {
m := adjustMap{m: map[string]posMapper{}}
@@ -97,7 +55,7 @@ func NewFilenameUnadjuster(pkgs []*packages.Package, log logutils.Log) *Filename
}
}
-func (p *FilenameUnadjuster) Name() string {
+func (*FilenameUnadjuster) Name() string {
return "filename_unadjuster"
}
@@ -128,4 +86,48 @@ func (p *FilenameUnadjuster) Process(issues []result.Issue) ([]result.Issue, err
}), nil
}
-func (p *FilenameUnadjuster) Finish() {}
+func (*FilenameUnadjuster) Finish() {}
+
+func processUnadjusterPkg(m *adjustMap, pkg *packages.Package, log logutils.Log) {
+ fset := token.NewFileSet() // it's more memory efficient to not store all in one fset
+
+ for _, filename := range pkg.CompiledGoFiles {
+ // It's important to call func here to run GC
+ processUnadjusterFile(filename, m, log, fset)
+ }
+}
+
+func processUnadjusterFile(filename string, m *adjustMap, log logutils.Log, fset *token.FileSet) {
+ syntax, err := parser.ParseFile(fset, filename, nil, parser.ParseComments)
+ if err != nil {
+ // Error will be reported by typecheck
+ return
+ }
+
+ adjustedFilename := fset.PositionFor(syntax.Pos(), true).Filename
+ if adjustedFilename == "" {
+ return
+ }
+
+ unadjustedFilename := fset.PositionFor(syntax.Pos(), false).Filename
+ if unadjustedFilename == "" || unadjustedFilename == adjustedFilename {
+ return
+ }
+
+ if !strings.HasSuffix(unadjustedFilename, ".go") {
+ return // file.go -> /caches/cgo-xxx
+ }
+
+ m.Lock()
+ defer m.Unlock()
+
+ m.m[adjustedFilename] = func(adjustedPos token.Position) token.Position {
+ tokenFile := fset.File(syntax.Pos())
+ if tokenFile == nil {
+ log.Warnf("Failed to get token file for %s", adjustedFilename)
+ return adjustedPos
+ }
+
+ return fset.PositionFor(tokenFile.Pos(adjustedPos.Offset), false)
+ }
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/fixer.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/fixer.go
index 2879beb48f..4915dc479a 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/fixer.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/fixer.go
@@ -16,7 +16,7 @@ import (
"github.com/golangci/golangci-lint/pkg/timeutils"
)
-var _ Processor = Fixer{}
+var _ Processor = (*Fixer)(nil)
type Fixer struct {
cfg *config.Config
@@ -34,12 +34,12 @@ func NewFixer(cfg *config.Config, log logutils.Log, fileCache *fsutils.FileCache
}
}
-func (f Fixer) printStat() {
- f.sw.PrintStages()
+func (Fixer) Name() string {
+ return "fixer"
}
-func (f Fixer) Process(issues []result.Issue) ([]result.Issue, error) {
- if !f.cfg.Issues.NeedFix {
+func (p Fixer) Process(issues []result.Issue) ([]result.Issue, error) {
+ if !p.cfg.Issues.NeedFix {
return issues, nil
}
@@ -57,37 +57,36 @@ func (f Fixer) Process(issues []result.Issue) ([]result.Issue, error) {
for file, issuesToFix := range issuesToFixPerFile {
var err error
- f.sw.TrackStage("all", func() {
- err = f.fixIssuesInFile(file, issuesToFix)
+ p.sw.TrackStage("all", func() {
+ err = p.fixIssuesInFile(file, issuesToFix)
})
if err != nil {
- f.log.Errorf("Failed to fix issues in file %s: %s", file, err)
+ p.log.Errorf("Failed to fix issues in file %s: %s", file, err)
// show issues only if can't fix them
outIssues = append(outIssues, issuesToFix...)
}
}
- f.printStat()
- return outIssues, nil
-}
+ p.printStat()
-func (f Fixer) Name() string {
- return "fixer"
+ return outIssues, nil
}
-func (f Fixer) Finish() {}
+func (Fixer) Finish() {}
-func (f Fixer) fixIssuesInFile(filePath string, issues []result.Issue) error {
+func (p Fixer) fixIssuesInFile(filePath string, issues []result.Issue) error {
// TODO: don't read the whole file into memory: read line by line;
// can't just use bufio.scanner: it has a line length limit
- origFileData, err := f.fileCache.GetFileBytes(filePath)
+ origFileData, err := p.fileCache.GetFileBytes(filePath)
if err != nil {
return fmt.Errorf("failed to get file bytes for %s: %w", filePath, err)
}
+
origFileLines := bytes.Split(origFileData, []byte("\n"))
tmpFileName := filepath.Join(filepath.Dir(filePath), fmt.Sprintf(".%s.golangci_fix", filepath.Base(filePath)))
+
tmpOutFile, err := os.Create(tmpFileName)
if err != nil {
return fmt.Errorf("failed to make file %s: %w", tmpFileName, err)
@@ -102,20 +101,21 @@ func (f Fixer) fixIssuesInFile(filePath string, issues []result.Issue) error {
issues = issues[:0] // reuse the same memory
for line, lineIssues := range issuesPerLine {
- if mergedIssue := f.mergeLineIssues(line, lineIssues, origFileLines); mergedIssue != nil {
+ if mergedIssue := p.mergeLineIssues(line, lineIssues, origFileLines); mergedIssue != nil {
issues = append(issues, *mergedIssue)
}
}
- issues = f.findNotIntersectingIssues(issues)
+ issues = p.findNotIntersectingIssues(issues)
- if err = f.writeFixedFile(origFileLines, issues, tmpOutFile); err != nil {
+ if err = p.writeFixedFile(origFileLines, issues, tmpOutFile); err != nil {
tmpOutFile.Close()
_ = robustio.RemoveAll(tmpOutFile.Name())
return err
}
tmpOutFile.Close()
+
if err = robustio.Rename(tmpOutFile.Name(), filePath); err != nil {
_ = robustio.RemoveAll(tmpOutFile.Name())
return fmt.Errorf("failed to rename %s -> %s: %w", tmpOutFile.Name(), filePath, err)
@@ -124,7 +124,7 @@ func (f Fixer) fixIssuesInFile(filePath string, issues []result.Issue) error {
return nil
}
-func (f Fixer) mergeLineIssues(lineNum int, lineIssues []result.Issue, origFileLines [][]byte) *result.Issue {
+func (p Fixer) mergeLineIssues(lineNum int, lineIssues []result.Issue, origFileLines [][]byte) *result.Issue {
origLine := origFileLines[lineNum-1] // lineNum is 1-based
if len(lineIssues) == 1 && lineIssues[0].Replacement.Inline == nil {
@@ -136,27 +136,27 @@ func (f Fixer) mergeLineIssues(lineNum int, lineIssues []result.Issue, origFileL
li := &lineIssues[ind]
if li.LineRange != nil {
- f.log.Infof("Line %d has multiple issues but at least one of them is ranged: %#v", lineNum, lineIssues)
+ p.log.Infof("Line %d has multiple issues but at least one of them is ranged: %#v", lineNum, lineIssues)
return &lineIssues[0]
}
inline := li.Replacement.Inline
if inline == nil || len(li.Replacement.NewLines) != 0 || li.Replacement.NeedOnlyDelete {
- f.log.Infof("Line %d has multiple issues but at least one of them isn't inline: %#v", lineNum, lineIssues)
+ p.log.Infof("Line %d has multiple issues but at least one of them isn't inline: %#v", lineNum, lineIssues)
return li
}
if inline.StartCol < 0 || inline.Length <= 0 || inline.StartCol+inline.Length > len(origLine) {
- f.log.Warnf("Line %d (%q) has invalid inline fix: %#v, %#v", lineNum, origLine, li, inline)
+ p.log.Warnf("Line %d (%q) has invalid inline fix: %#v, %#v", lineNum, origLine, li, inline)
return nil
}
}
- return f.applyInlineFixes(lineIssues, origLine, lineNum)
+ return p.applyInlineFixes(lineIssues, origLine, lineNum)
}
-func (f Fixer) applyInlineFixes(lineIssues []result.Issue, origLine []byte, lineNum int) *result.Issue {
+func (p Fixer) applyInlineFixes(lineIssues []result.Issue, origLine []byte, lineNum int) *result.Issue {
sort.Slice(lineIssues, func(i, j int) bool {
return lineIssues[i].Replacement.Inline.StartCol < lineIssues[j].Replacement.Inline.StartCol
})
@@ -171,7 +171,7 @@ func (f Fixer) applyInlineFixes(lineIssues []result.Issue, origLine []byte, line
for i := range lineIssues {
fix := lineIssues[i].Replacement.Inline
if fix.StartCol < curOrigLinePos {
- f.log.Warnf("Line %d has multiple intersecting issues: %#v", lineNum, lineIssues)
+ p.log.Warnf("Line %d has multiple intersecting issues: %#v", lineNum, lineIssues)
return nil
}
@@ -192,7 +192,7 @@ func (f Fixer) applyInlineFixes(lineIssues []result.Issue, origLine []byte, line
return &mergedIssue
}
-func (f Fixer) findNotIntersectingIssues(issues []result.Issue) []result.Issue {
+func (p Fixer) findNotIntersectingIssues(issues []result.Issue) []result.Issue {
sort.SliceStable(issues, func(i, j int) bool {
a, b := issues[i], issues[j]
return a.Line() < b.Line()
@@ -204,10 +204,10 @@ func (f Fixer) findNotIntersectingIssues(issues []result.Issue) []result.Issue {
issue := &issues[i]
rng := issue.GetLineRange()
if rng.From <= currentEnd {
- f.log.Infof("Skip issue %#v: intersects with end %d", issue, currentEnd)
+ p.log.Infof("Skip issue %#v: intersects with end %d", issue, currentEnd)
continue // skip intersecting issue
}
- f.log.Infof("Fix issue %#v with range %v", issue, issue.GetLineRange())
+ p.log.Infof("Fix issue %#v with range %v", issue, issue.GetLineRange())
ret = append(ret, *issue)
currentEnd = rng.To
}
@@ -215,7 +215,7 @@ func (f Fixer) findNotIntersectingIssues(issues []result.Issue) []result.Issue {
return ret
}
-func (f Fixer) writeFixedFile(origFileLines [][]byte, issues []result.Issue, tmpOutFile *os.File) error {
+func (p Fixer) writeFixedFile(origFileLines [][]byte, issues []result.Issue, tmpOutFile *os.File) error {
// issues aren't intersecting
nextIssueIndex := 0
@@ -234,7 +234,7 @@ func (f Fixer) writeFixedFile(origFileLines [][]byte, issues []result.Issue, tmp
rng := nextIssue.GetLineRange()
if rng.From > rng.To {
// Maybe better decision is to skip such issues, re-evaluate if regressed.
- f.log.Warnf("[fixer]: issue line range is probably invalid, fix can be incorrect (from=%d, to=%d, linter=%s)",
+ p.log.Warnf("[fixer]: issue line range is probably invalid, fix can be incorrect (from=%d, to=%d, linter=%s)",
rng.From, rng.To, nextIssue.FromLinter,
)
}
@@ -255,3 +255,7 @@ func (f Fixer) writeFixedFile(origFileLines [][]byte, issues []result.Issue, tmp
return nil
}
+
+func (p Fixer) printStat() {
+ p.sw.PrintStages()
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/identifier_marker.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/identifier_marker.go
index 1975f6d086..876fd3bd3e 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/identifier_marker.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/identifier_marker.go
@@ -6,6 +6,8 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*IdentifierMarker)(nil)
+
type replacePattern struct {
re string
repl string
@@ -126,16 +128,22 @@ func NewIdentifierMarker() *IdentifierMarker {
}
}
-func (im IdentifierMarker) Process(issues []result.Issue) ([]result.Issue, error) {
+func (IdentifierMarker) Name() string {
+ return "identifier_marker"
+}
+
+func (p IdentifierMarker) Process(issues []result.Issue) ([]result.Issue, error) {
return transformIssues(issues, func(issue *result.Issue) *result.Issue {
newIssue := *issue
- newIssue.Text = im.markIdentifiers(newIssue.Text)
+ newIssue.Text = p.markIdentifiers(newIssue.Text)
return &newIssue
}), nil
}
-func (im IdentifierMarker) markIdentifiers(s string) string {
- for _, rr := range im.replaceRegexps {
+func (IdentifierMarker) Finish() {}
+
+func (p IdentifierMarker) markIdentifiers(s string) string {
+ for _, rr := range p.replaceRegexps {
rs := rr.re.ReplaceAllString(s, rr.repl)
if rs != s {
return rs
@@ -144,8 +152,3 @@ func (im IdentifierMarker) markIdentifiers(s string) string {
return s
}
-
-func (im IdentifierMarker) Name() string {
- return "identifier_marker"
-}
-func (im IdentifierMarker) Finish() {}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/invalid_issue.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/invalid_issue.go
index 3bb0eb6390..c1389e9707 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/invalid_issue.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/invalid_issue.go
@@ -7,7 +7,7 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-var _ Processor = InvalidIssue{}
+var _ Processor = (*InvalidIssue)(nil)
type InvalidIssue struct {
log logutils.Log
@@ -17,21 +17,25 @@ func NewInvalidIssue(log logutils.Log) *InvalidIssue {
return &InvalidIssue{log: log}
}
-func (p InvalidIssue) Process(issues []result.Issue) ([]result.Issue, error) {
- return filterIssuesErr(issues, p.shouldPassIssue)
-}
-
-func (p InvalidIssue) Name() string {
+func (InvalidIssue) Name() string {
return "invalid_issue"
}
-func (p InvalidIssue) Finish() {}
+func (p InvalidIssue) Process(issues []result.Issue) ([]result.Issue, error) {
+ tcIssues := filterIssues(issues, func(issue *result.Issue) bool {
+ return issue.FromLinter == typeCheckName
+ })
-func (p InvalidIssue) shouldPassIssue(issue *result.Issue) (bool, error) {
- if issue.FromLinter == "typecheck" {
- return true, nil
+ if len(tcIssues) > 0 {
+ return tcIssues, nil
}
+ return filterIssuesErr(issues, p.shouldPassIssue)
+}
+
+func (InvalidIssue) Finish() {}
+
+func (p InvalidIssue) shouldPassIssue(issue *result.Issue) (bool, error) {
if issue.FilePath() == "" {
p.log.Warnf("no file path for the issue: probably a bug inside the linter %q: %#v", issue.FromLinter, issue)
@@ -50,3 +54,7 @@ func (p InvalidIssue) shouldPassIssue(issue *result.Issue) (bool, error) {
return true, nil
}
+
+func isGoFile(name string) bool {
+ return filepath.Ext(name) == ".go"
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_from_linter.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_from_linter.go
index 65b04272ba..e6200eec4c 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_from_linter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_from_linter.go
@@ -6,25 +6,25 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*MaxFromLinter)(nil)
+
type MaxFromLinter struct {
- lc linterToCountMap
- limit int
- log logutils.Log
- cfg *config.Config
+ linterCounter map[string]int
+ limit int
+ log logutils.Log
+ cfg *config.Config
}
-var _ Processor = &MaxFromLinter{}
-
func NewMaxFromLinter(limit int, log logutils.Log, cfg *config.Config) *MaxFromLinter {
return &MaxFromLinter{
- lc: linterToCountMap{},
- limit: limit,
- log: log,
- cfg: cfg,
+ linterCounter: map[string]int{},
+ limit: limit,
+ log: log,
+ cfg: cfg,
}
}
-func (p *MaxFromLinter) Name() string {
+func (*MaxFromLinter) Name() string {
return "max_from_linter"
}
@@ -39,13 +39,14 @@ func (p *MaxFromLinter) Process(issues []result.Issue) ([]result.Issue, error) {
return true
}
- p.lc[issue.FromLinter]++ // always inc for stat
- return p.lc[issue.FromLinter] <= p.limit
+ p.linterCounter[issue.FromLinter]++ // always inc for stat
+
+ return p.linterCounter[issue.FromLinter] <= p.limit
}), nil
}
func (p *MaxFromLinter) Finish() {
- walkStringToIntMapSortedByValue(p.lc, func(linter string, count int) {
+ walkStringToIntMapSortedByValue(p.linterCounter, func(linter string, count int) {
if count > p.limit {
p.log.Infof("%d/%d issues from linter %s were hidden, use --max-issues-per-linter",
count-p.limit, count, linter)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_per_file_from_linter.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_per_file_from_linter.go
index 372f40cc58..da9fe4b7df 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_per_file_from_linter.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_per_file_from_linter.go
@@ -5,18 +5,13 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-type (
- linterToCountMap map[string]int
- fileToLinterToCountMap map[string]linterToCountMap
-)
+var _ Processor = (*MaxPerFileFromLinter)(nil)
type MaxPerFileFromLinter struct {
- flc fileToLinterToCountMap
+ fileLinterCounter fileLinterCounter
maxPerFileFromLinterConfig map[string]int
}
-var _ Processor = &MaxPerFileFromLinter{}
-
func NewMaxPerFileFromLinter(cfg *config.Config) *MaxPerFileFromLinter {
maxPerFileFromLinterConfig := map[string]int{}
@@ -28,12 +23,12 @@ func NewMaxPerFileFromLinter(cfg *config.Config) *MaxPerFileFromLinter {
}
return &MaxPerFileFromLinter{
- flc: fileToLinterToCountMap{},
+ fileLinterCounter: fileLinterCounter{},
maxPerFileFromLinterConfig: maxPerFileFromLinterConfig,
}
}
-func (p *MaxPerFileFromLinter) Name() string {
+func (*MaxPerFileFromLinter) Name() string {
return "max_per_file_from_linter"
}
@@ -44,18 +39,35 @@ func (p *MaxPerFileFromLinter) Process(issues []result.Issue) ([]result.Issue, e
return true
}
- lm := p.flc[issue.FilePath()]
- if lm == nil {
- p.flc[issue.FilePath()] = linterToCountMap{}
- }
- count := p.flc[issue.FilePath()][issue.FromLinter]
- if count >= limit {
+ if p.fileLinterCounter.GetCount(issue) >= limit {
return false
}
- p.flc[issue.FilePath()][issue.FromLinter]++
+ p.fileLinterCounter.Increment(issue)
+
return true
}), nil
}
-func (p *MaxPerFileFromLinter) Finish() {}
+func (*MaxPerFileFromLinter) Finish() {}
+
+type fileLinterCounter map[string]map[string]int
+
+func (f fileLinterCounter) GetCount(issue *result.Issue) int {
+ return f.getCounter(issue)[issue.FromLinter]
+}
+
+func (f fileLinterCounter) Increment(issue *result.Issue) {
+ f.getCounter(issue)[issue.FromLinter]++
+}
+
+func (f fileLinterCounter) getCounter(issue *result.Issue) map[string]int {
+ lc := f[issue.FilePath()]
+
+ if lc == nil {
+ lc = map[string]int{}
+ f[issue.FilePath()] = lc
+ }
+
+ return lc
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_same_issues.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_same_issues.go
index a3ceeb5953..8948fa79db 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_same_issues.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/max_same_issues.go
@@ -8,27 +8,25 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-type textToCountMap map[string]int
+var _ Processor = (*MaxSameIssues)(nil)
type MaxSameIssues struct {
- tc textToCountMap
- limit int
- log logutils.Log
- cfg *config.Config
+ textCounter map[string]int
+ limit int
+ log logutils.Log
+ cfg *config.Config
}
-var _ Processor = &MaxSameIssues{}
-
func NewMaxSameIssues(limit int, log logutils.Log, cfg *config.Config) *MaxSameIssues {
return &MaxSameIssues{
- tc: textToCountMap{},
- limit: limit,
- log: log,
- cfg: cfg,
+ textCounter: map[string]int{},
+ limit: limit,
+ log: log,
+ cfg: cfg,
}
}
-func (p *MaxSameIssues) Name() string {
+func (*MaxSameIssues) Name() string {
return "max_same_issues"
}
@@ -43,13 +41,13 @@ func (p *MaxSameIssues) Process(issues []result.Issue) ([]result.Issue, error) {
return true
}
- p.tc[issue.Text]++ // always inc for stat
- return p.tc[issue.Text] <= p.limit
+ p.textCounter[issue.Text]++ // always inc for stat
+ return p.textCounter[issue.Text] <= p.limit
}), nil
}
func (p *MaxSameIssues) Finish() {
- walkStringToIntMapSortedByValue(p.tc, func(text string, count int) {
+ walkStringToIntMapSortedByValue(p.textCounter, func(text string, count int) {
if count > p.limit {
p.log.Infof("%d/%d issues with text %q were hidden, use --max-same-issues",
count-p.limit, count, text)
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/nolint.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/nolint.go
index df8e814959..62ca2d8ab0 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/nolint.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/nolint.go
@@ -10,17 +10,16 @@ import (
"golang.org/x/exp/maps"
- "github.com/golangci/golangci-lint/pkg/golinters"
+ "github.com/golangci/golangci-lint/pkg/golinters/nolintlint"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)
-var (
- nolintDebugf = logutils.Debug(logutils.DebugKeyNolint)
- nolintRe = regexp.MustCompile(`^nolint( |:|$)`)
-)
+var _ Processor = (*Nolint)(nil)
+
+var nolintDebugf = logutils.Debug(logutils.DebugKeyNolint)
type ignoredRange struct {
linters []string
@@ -36,7 +35,7 @@ func (i *ignoredRange) doesMatch(issue *result.Issue) bool {
}
// only allow selective nolinting of nolintlint
- nolintFoundForLinter := len(i.linters) == 0 && issue.FromLinter != golinters.NoLintLintName
+ nolintFoundForLinter := len(i.linters) == 0 && issue.FromLinter != nolintlint.Name
for _, linterName := range i.linters {
if linterName == issue.FromLinter {
@@ -51,7 +50,7 @@ func (i *ignoredRange) doesMatch(issue *result.Issue) bool {
// handle possible unused nolint directives
// nolintlint generates potential issues for every nolint directive, and they are filtered out here
- if issue.FromLinter == golinters.NoLintLintName && issue.ExpectNoLint {
+ if issue.FromLinter == nolintlint.Name && issue.ExpectNoLint {
if issue.ExpectedNoLintLinter != "" {
return i.matchedIssueFromLinter[issue.ExpectedNoLintLinter]
}
@@ -65,30 +64,29 @@ type fileData struct {
ignoredRanges []ignoredRange
}
-type filesCache map[string]*fileData
-
type Nolint struct {
- cache filesCache
+ fileCache map[string]*fileData
dbManager *lintersdb.Manager
enabledLinters map[string]*linter.Config
log logutils.Log
unknownLintersSet map[string]bool
+
+ pattern *regexp.Regexp
}
func NewNolint(log logutils.Log, dbManager *lintersdb.Manager, enabledLinters map[string]*linter.Config) *Nolint {
return &Nolint{
- cache: filesCache{},
+ fileCache: map[string]*fileData{},
dbManager: dbManager,
enabledLinters: enabledLinters,
log: log,
unknownLintersSet: map[string]bool{},
+ pattern: regexp.MustCompile(`^nolint( |:|$)`),
}
}
-var _ Processor = &Nolint{}
-
-func (p *Nolint) Name() string {
+func (*Nolint) Name() string {
return "nolint"
}
@@ -98,14 +96,60 @@ func (p *Nolint) Process(issues []result.Issue) ([]result.Issue, error) {
return filterIssuesErr(issues, p.shouldPassIssue)
}
+func (p *Nolint) Finish() {
+ if len(p.unknownLintersSet) == 0 {
+ return
+ }
+
+ unknownLinters := maps.Keys(p.unknownLintersSet)
+ sort.Strings(unknownLinters)
+
+ p.log.Warnf("Found unknown linters in //nolint directives: %s", strings.Join(unknownLinters, ", "))
+}
+
+func (p *Nolint) shouldPassIssue(issue *result.Issue) (bool, error) {
+ nolintDebugf("got issue: %v", *issue)
+
+ // don't expect disabled linters to cover their nolint statements
+ if issue.FromLinter == nolintlint.Name && issue.ExpectNoLint && issue.ExpectedNoLintLinter != "" {
+ nolintDebugf("enabled linters: %v", p.enabledLinters)
+
+ if p.enabledLinters[issue.ExpectedNoLintLinter] == nil {
+ return false, nil
+ }
+
+ nolintDebugf("checking that lint issue was used for %s: %v", issue.ExpectedNoLintLinter, issue)
+ }
+
+ fd := p.getOrCreateFileData(issue)
+
+ for _, ir := range fd.ignoredRanges {
+ if !ir.doesMatch(issue) {
+ continue
+ }
+
+ nolintDebugf("found ignored range for issue %v: %v", issue, ir)
+
+ ir.matchedIssueFromLinter[issue.FromLinter] = true
+
+ if ir.originalRange != nil {
+ ir.originalRange.matchedIssueFromLinter[issue.FromLinter] = true
+ }
+
+ return false, nil
+ }
+
+ return true, nil
+}
+
func (p *Nolint) getOrCreateFileData(issue *result.Issue) *fileData {
- fd := p.cache[issue.FilePath()]
+ fd := p.fileCache[issue.FilePath()]
if fd != nil {
return fd
}
fd = &fileData{}
- p.cache[issue.FilePath()] = fd
+ p.fileCache[issue.FilePath()] = fd
// TODO: migrate this parsing to go/analysis facts
// or cache them somehow per file.
@@ -147,76 +191,6 @@ func (p *Nolint) buildIgnoredRangesForFile(f *ast.File, fset *token.FileSet, fil
return allRanges
}
-func (p *Nolint) shouldPassIssue(issue *result.Issue) (bool, error) {
- nolintDebugf("got issue: %v", *issue)
- if issue.FromLinter == golinters.NoLintLintName && issue.ExpectNoLint && issue.ExpectedNoLintLinter != "" {
- // don't expect disabled linters to cover their nolint statements
- nolintDebugf("enabled linters: %v", p.enabledLinters)
- if p.enabledLinters[issue.ExpectedNoLintLinter] == nil {
- return false, nil
- }
- nolintDebugf("checking that lint issue was used for %s: %v", issue.ExpectedNoLintLinter, issue)
- }
-
- fd := p.getOrCreateFileData(issue)
-
- for _, ir := range fd.ignoredRanges {
- if ir.doesMatch(issue) {
- nolintDebugf("found ignored range for issue %v: %v", issue, ir)
- ir.matchedIssueFromLinter[issue.FromLinter] = true
- if ir.originalRange != nil {
- ir.originalRange.matchedIssueFromLinter[issue.FromLinter] = true
- }
- return false, nil
- }
- }
-
- return true, nil
-}
-
-type rangeExpander struct {
- fset *token.FileSet
- inlineRanges []ignoredRange
- expandedRanges []ignoredRange
-}
-
-func (e *rangeExpander) Visit(node ast.Node) ast.Visitor {
- if node == nil {
- return e
- }
-
- nodeStartPos := e.fset.Position(node.Pos())
- nodeStartLine := nodeStartPos.Line
- nodeEndLine := e.fset.Position(node.End()).Line
-
- var foundRange *ignoredRange
- for _, r := range e.inlineRanges {
- if r.To == nodeStartLine-1 && nodeStartPos.Column == r.col {
- r := r
- foundRange = &r
- break
- }
- }
- if foundRange == nil {
- return e
- }
-
- expandedRange := *foundRange
- // store the original unexpanded range for matching nolintlint issues
- if expandedRange.originalRange == nil {
- expandedRange.originalRange = foundRange
- }
- if expandedRange.To < nodeEndLine {
- expandedRange.To = nodeEndLine
- }
-
- nolintDebugf("found range is %v for node %#v [%d;%d], expanded range is %v",
- *foundRange, node, nodeStartLine, nodeEndLine, expandedRange)
- e.expandedRanges = append(e.expandedRanges, expandedRange)
-
- return e
-}
-
func (p *Nolint) extractFileCommentsInlineRanges(fset *token.FileSet, comments ...*ast.CommentGroup) []ignoredRange {
var ret []ignoredRange
for _, g := range comments {
@@ -233,7 +207,7 @@ func (p *Nolint) extractFileCommentsInlineRanges(fset *token.FileSet, comments .
func (p *Nolint) extractInlineRangeFromComment(text string, g ast.Node, fset *token.FileSet) *ignoredRange {
text = strings.TrimLeft(text, "/ ")
- if !nolintRe.MatchString(text) {
+ if !p.pattern.MatchString(text) {
return nil
}
@@ -282,15 +256,47 @@ func (p *Nolint) extractInlineRangeFromComment(text string, g ast.Node, fset *to
return buildRange(linters)
}
-func (p *Nolint) Finish() {
- if len(p.unknownLintersSet) == 0 {
- return
+type rangeExpander struct {
+ fset *token.FileSet
+ inlineRanges []ignoredRange
+ expandedRanges []ignoredRange
+}
+
+func (e *rangeExpander) Visit(node ast.Node) ast.Visitor {
+ if node == nil {
+ return e
}
- unknownLinters := maps.Keys(p.unknownLintersSet)
- sort.Strings(unknownLinters)
+ nodeStartPos := e.fset.Position(node.Pos())
+ nodeStartLine := nodeStartPos.Line
+ nodeEndLine := e.fset.Position(node.End()).Line
- p.log.Warnf("Found unknown linters in //nolint directives: %s", strings.Join(unknownLinters, ", "))
+ var foundRange *ignoredRange
+ for _, r := range e.inlineRanges {
+ if r.To == nodeStartLine-1 && nodeStartPos.Column == r.col {
+ r := r
+ foundRange = &r
+ break
+ }
+ }
+ if foundRange == nil {
+ return e
+ }
+
+ expandedRange := *foundRange
+ // store the original unexpanded range for matching nolintlint issues
+ if expandedRange.originalRange == nil {
+ expandedRange.originalRange = foundRange
+ }
+ if expandedRange.To < nodeEndLine {
+ expandedRange.To = nodeEndLine
+ }
+
+ nolintDebugf("found range is %v for node %#v [%d;%d], expanded range is %v",
+ *foundRange, node, nodeStartLine, nodeEndLine, expandedRange)
+ e.expandedRanges = append(e.expandedRanges, expandedRange)
+
+ return e
}
// put nolintlint last
@@ -301,7 +307,7 @@ func (issues sortWithNolintlintLast) Len() int {
}
func (issues sortWithNolintlintLast) Less(i, j int) bool {
- return issues[i].FromLinter != golinters.NoLintLintName && issues[j].FromLinter == golinters.NoLintLintName
+ return issues[i].FromLinter != nolintlint.Name && issues[j].FromLinter == nolintlint.Name
}
func (issues sortWithNolintlintLast) Swap(i, j int) {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prefixer.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prefixer.go
index f6b885011b..8036e3fd6d 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prefixer.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prefixer.go
@@ -5,13 +5,13 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*PathPrefixer)(nil)
+
// PathPrefixer adds a customizable prefix to every output path
type PathPrefixer struct {
prefix string
}
-var _ Processor = new(PathPrefixer)
-
// NewPathPrefixer returns a new path prefixer for the provided string
func NewPathPrefixer(prefix string) *PathPrefixer {
return &PathPrefixer{prefix: prefix}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prettifier.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prettifier.go
index 79cdd7473c..3c97f06a65 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prettifier.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_prettifier.go
@@ -8,27 +8,26 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*PathPrettifier)(nil)
+
type PathPrettifier struct {
root string
}
-var _ Processor = PathPrettifier{}
-
func NewPathPrettifier() *PathPrettifier {
root, err := fsutils.Getwd()
if err != nil {
panic(fmt.Sprintf("Can't get working dir: %s", err))
}
- return &PathPrettifier{
- root: root,
- }
+
+ return &PathPrettifier{root: root}
}
-func (p PathPrettifier) Name() string {
+func (PathPrettifier) Name() string {
return "path_prettifier"
}
-func (p PathPrettifier) Process(issues []result.Issue) ([]result.Issue, error) {
+func (PathPrettifier) Process(issues []result.Issue) ([]result.Issue, error) {
return transformIssues(issues, func(issue *result.Issue) *result.Issue {
if !filepath.IsAbs(issue.FilePath()) {
return issue
@@ -45,4 +44,4 @@ func (p PathPrettifier) Process(issues []result.Issue) ([]result.Issue, error) {
}), nil
}
-func (p PathPrettifier) Finish() {}
+func (PathPrettifier) Finish() {}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_shortener.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_shortener.go
index d7fa5ea91d..b161e86c2f 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_shortener.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/path_shortener.go
@@ -8,23 +8,22 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*PathShortener)(nil)
+
type PathShortener struct {
wd string
}
-var _ Processor = PathShortener{}
-
func NewPathShortener() *PathShortener {
wd, err := fsutils.Getwd()
if err != nil {
panic(fmt.Sprintf("Can't get working dir: %s", err))
}
- return &PathShortener{
- wd: wd,
- }
+
+ return &PathShortener{wd: wd}
}
-func (p PathShortener) Name() string {
+func (PathShortener) Name() string {
return "path_shortener"
}
@@ -37,4 +36,4 @@ func (p PathShortener) Process(issues []result.Issue) ([]result.Issue, error) {
}), nil
}
-func (p PathShortener) Finish() {}
+func (PathShortener) Finish() {}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/processor.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/processor.go
index 1a7a40434c..13e63d6046 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/processor.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/processor.go
@@ -4,6 +4,8 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+const typeCheckName = "typecheck"
+
type Processor interface {
Process(issues []result.Issue) ([]result.Issue, error)
Name() string
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/severity.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/severity.go
index 2568ba45c4..93a26586d6 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/severity.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/severity.go
@@ -3,6 +3,7 @@ package processors
import (
"regexp"
+ "github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
@@ -10,24 +11,13 @@ import (
const severityFromLinter = "@linter"
-var _ Processor = &Severity{}
+var _ Processor = (*Severity)(nil)
type severityRule struct {
baseRule
severity string
}
-type SeverityRule struct {
- BaseRule
- Severity string
-}
-
-type SeverityOptions struct {
- Default string
- Rules []SeverityRule
- CaseSensitive bool
-}
-
type Severity struct {
name string
@@ -39,25 +29,27 @@ type Severity struct {
rules []severityRule
}
-func NewSeverity(log logutils.Log, files *fsutils.Files, opts SeverityOptions) *Severity {
+func NewSeverity(log logutils.Log, files *fsutils.Files, cfg *config.Severity) *Severity {
p := &Severity{
name: "severity-rules",
files: files,
log: log,
- defaultSeverity: opts.Default,
+ defaultSeverity: cfg.Default,
}
prefix := caseInsensitivePrefix
- if opts.CaseSensitive {
+ if cfg.CaseSensitive {
prefix = ""
p.name = "severity-rules-case-sensitive"
}
- p.rules = createSeverityRules(opts.Rules, prefix)
+ p.rules = createSeverityRules(cfg.Rules, prefix)
return p
}
+func (p *Severity) Name() string { return p.name }
+
func (p *Severity) Process(issues []result.Issue) ([]result.Issue, error) {
if len(p.rules) == 0 && p.defaultSeverity == "" {
return issues, nil
@@ -66,6 +58,8 @@ func (p *Severity) Process(issues []result.Issue) ([]result.Issue, error) {
return transformIssues(issues, p.transform), nil
}
+func (*Severity) Finish() {}
+
func (p *Severity) transform(issue *result.Issue) *result.Issue {
for _, rule := range p.rules {
if rule.match(issue, p.files, p.log) {
@@ -89,11 +83,7 @@ func (p *Severity) transform(issue *result.Issue) *result.Issue {
return issue
}
-func (p *Severity) Name() string { return p.name }
-
-func (*Severity) Finish() {}
-
-func createSeverityRules(rules []SeverityRule, prefix string) []severityRule {
+func createSeverityRules(rules []config.SeverityRule, prefix string) []severityRule {
parsedRules := make([]severityRule, 0, len(rules))
for _, rule := range rules {
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_dirs.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_dirs.go
index 7c4e0b9c0c..39dbfd1d38 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_dirs.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_dirs.go
@@ -4,13 +4,23 @@ import (
"fmt"
"path/filepath"
"regexp"
- "strings"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*SkipDirs)(nil)
+
+var StdExcludeDirRegexps = []string{
+ normalizePathRegex("vendor"),
+ normalizePathRegex("third_party"),
+ normalizePathRegex("testdata"),
+ normalizePathRegex("examples"),
+ normalizePathRegex("Godeps"),
+ normalizePathRegex("builtin"),
+}
+
type skipStat struct {
pattern string
count int
@@ -25,11 +35,7 @@ type SkipDirs struct {
pathPrefix string
}
-var _ Processor = (*SkipDirs)(nil)
-
-const goFileSuffix = ".go"
-
-func NewSkipDirs(patterns []string, log logutils.Log, runArgs []string, pathPrefix string) (*SkipDirs, error) {
+func NewSkipDirs(log logutils.Log, patterns, args []string, pathPrefix string) (*SkipDirs, error) {
var patternsRe []*regexp.Regexp
for _, p := range patterns {
p = fsutils.NormalizePathInRegex(p)
@@ -40,21 +46,9 @@ func NewSkipDirs(patterns []string, log logutils.Log, runArgs []string, pathPref
patternsRe = append(patternsRe, patternRe)
}
- if len(runArgs) == 0 {
- runArgs = append(runArgs, "./...")
- }
- var absArgsDirs []string
- for _, arg := range runArgs {
- base := filepath.Base(arg)
- if base == "..." || strings.HasSuffix(base, goFileSuffix) {
- arg = filepath.Dir(arg)
- }
-
- absArg, err := filepath.Abs(arg)
- if err != nil {
- return nil, fmt.Errorf("failed to abs-ify arg %q: %w", arg, err)
- }
- absArgsDirs = append(absArgsDirs, absArg)
+ absArgsDirs, err := absDirs(args)
+ if err != nil {
+ return nil, err
}
return &SkipDirs{
@@ -67,7 +61,7 @@ func NewSkipDirs(patterns []string, log logutils.Log, runArgs []string, pathPref
}, nil
}
-func (p *SkipDirs) Name() string {
+func (*SkipDirs) Name() string {
return "skip_dirs"
}
@@ -79,6 +73,12 @@ func (p *SkipDirs) Process(issues []result.Issue) ([]result.Issue, error) {
return filterIssues(issues, p.shouldPassIssue), nil
}
+func (p *SkipDirs) Finish() {
+ for dir, stat := range p.skippedDirs {
+ p.log.Infof("Skipped %d issues from dir %s by pattern %s", stat.count, dir, stat.pattern)
+ }
+}
+
func (p *SkipDirs) shouldPassIssue(issue *result.Issue) bool {
if filepath.IsAbs(issue.FilePath()) {
if isGoFile(issue.FilePath()) {
@@ -139,8 +139,34 @@ func (p *SkipDirs) shouldPassIssueDirs(issueRelDir, issueAbsDir string) bool {
return true
}
-func (p *SkipDirs) Finish() {
- for dir, stat := range p.skippedDirs {
- p.log.Infof("Skipped %d issues from dir %s by pattern %s", stat.count, dir, stat.pattern)
+func absDirs(args []string) ([]string, error) {
+ if len(args) == 0 {
+ args = append(args, "./...")
}
+
+ var absArgsDirs []string
+ for _, arg := range args {
+ base := filepath.Base(arg)
+ if base == "..." || isGoFile(base) {
+ arg = filepath.Dir(arg)
+ }
+
+ absArg, err := filepath.Abs(arg)
+ if err != nil {
+ return nil, fmt.Errorf("failed to abs-ify arg %q: %w", arg, err)
+ }
+
+ absArgsDirs = append(absArgsDirs, absArg)
+ }
+
+ return absArgsDirs, nil
+}
+
+func normalizePathRegex(e string) string {
+ return createPathRegex(e, filepath.Separator)
+}
+
+func createPathRegex(e string, sep rune) string {
+ escapedSep := regexp.QuoteMeta(string(sep)) // needed for windows sep '\\'
+ return fmt.Sprintf(`(^|%[1]s)%[2]s($|%[1]s)`, escapedSep, e)
}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_files.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_files.go
index f1873a376c..3b17a9f327 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_files.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/skip_files.go
@@ -8,21 +8,23 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*SkipFiles)(nil)
+
type SkipFiles struct {
patterns []*regexp.Regexp
pathPrefix string
}
-var _ Processor = (*SkipFiles)(nil)
-
func NewSkipFiles(patterns []string, pathPrefix string) (*SkipFiles, error) {
var patternsRe []*regexp.Regexp
for _, p := range patterns {
p = fsutils.NormalizePathInRegex(p)
+
patternRe, err := regexp.Compile(p)
if err != nil {
return nil, fmt.Errorf("can't compile regexp %q: %w", p, err)
}
+
patternsRe = append(patternsRe, patternRe)
}
@@ -32,7 +34,7 @@ func NewSkipFiles(patterns []string, pathPrefix string) (*SkipFiles, error) {
}, nil
}
-func (p SkipFiles) Name() string {
+func (SkipFiles) Name() string {
return "skip_files"
}
@@ -43,6 +45,7 @@ func (p SkipFiles) Process(issues []result.Issue) ([]result.Issue, error) {
return filterIssues(issues, func(issue *result.Issue) bool {
path := fsutils.WithPathPrefix(p.pathPrefix, issue.FilePath())
+
for _, pattern := range p.patterns {
if pattern.MatchString(path) {
return false
@@ -53,4 +56,4 @@ func (p SkipFiles) Process(issues []result.Issue) ([]result.Issue, error) {
}), nil
}
-func (p SkipFiles) Finish() {}
+func (SkipFiles) Finish() {}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/sort_results.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/sort_results.go
index 8e4af57e63..77f58c03e5 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/sort_results.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/sort_results.go
@@ -45,23 +45,26 @@ func NewSortResults(cfg *config.Config) *SortResults {
}
}
+func (SortResults) Name() string { return "sort_results" }
+
// Process is performing sorting of the result issues.
-func (sr SortResults) Process(issues []result.Issue) ([]result.Issue, error) {
- if !sr.cfg.SortResults {
+func (p SortResults) Process(issues []result.Issue) ([]result.Issue, error) {
+ if !p.cfg.SortResults {
return issues, nil
}
- if len(sr.cfg.SortOrder) == 0 {
- sr.cfg.SortOrder = []string{orderNameFile}
+ if len(p.cfg.SortOrder) == 0 {
+ p.cfg.SortOrder = []string{orderNameFile}
}
var cmps []*comparator
- for _, name := range sr.cfg.SortOrder {
- if c, ok := sr.cmps[name]; ok {
- cmps = append(cmps, c)
- } else {
+ for _, name := range p.cfg.SortOrder {
+ c, ok := p.cmps[name]
+ if !ok {
return nil, fmt.Errorf("unsupported sort-order name %q", name)
}
+
+ cmps = append(cmps, c)
}
cmp, err := mergeComparators(cmps)
@@ -76,9 +79,7 @@ func (sr SortResults) Process(issues []result.Issue) ([]result.Issue, error) {
return issues, nil
}
-func (sr SortResults) Name() string { return "sort_results" }
-
-func (sr SortResults) Finish() {}
+func (SortResults) Finish() {}
type compareResult int
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/source_code.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/source_code.go
index 005b3143f8..4a89fc73ed 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/source_code.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/source_code.go
@@ -6,13 +6,13 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
+var _ Processor = (*SourceCode)(nil)
+
type SourceCode struct {
lineCache *fsutils.LineCache
log logutils.Log
}
-var _ Processor = SourceCode{}
-
func NewSourceCode(lc *fsutils.LineCache, log logutils.Log) *SourceCode {
return &SourceCode{
lineCache: lc,
@@ -20,28 +20,31 @@ func NewSourceCode(lc *fsutils.LineCache, log logutils.Log) *SourceCode {
}
}
-func (p SourceCode) Name() string {
+func (SourceCode) Name() string {
return "source_code"
}
func (p SourceCode) Process(issues []result.Issue) ([]result.Issue, error) {
- return transformIssues(issues, func(issue *result.Issue) *result.Issue {
- newIssue := *issue
-
- lineRange := issue.GetLineRange()
- for lineNumber := lineRange.From; lineNumber <= lineRange.To; lineNumber++ {
- line, err := p.lineCache.GetLine(issue.FilePath(), lineNumber)
- if err != nil {
- p.log.Warnf("Failed to get line %d for file %s: %s",
- lineNumber, issue.FilePath(), err)
- return issue
- }
-
- newIssue.SourceLines = append(newIssue.SourceLines, line)
+ return transformIssues(issues, p.transform), nil
+}
+
+func (SourceCode) Finish() {}
+
+func (p SourceCode) transform(issue *result.Issue) *result.Issue {
+ newIssue := *issue
+
+ lineRange := issue.GetLineRange()
+ for lineNumber := lineRange.From; lineNumber <= lineRange.To; lineNumber++ {
+ line, err := p.lineCache.GetLine(issue.FilePath(), lineNumber)
+ if err != nil {
+ p.log.Warnf("Failed to get line %d for file %s: %s",
+ lineNumber, issue.FilePath(), err)
+
+ return issue
}
- return &newIssue
- }), nil
-}
+ newIssue.SourceLines = append(newIssue.SourceLines, line)
+ }
-func (p SourceCode) Finish() {}
+ return &newIssue
+}
diff --git a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/uniq_by_line.go b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/uniq_by_line.go
index aad1e019e3..8e384e390b 100644
--- a/vendor/github.com/golangci/golangci-lint/pkg/result/processors/uniq_by_line.go
+++ b/vendor/github.com/golangci/golangci-lint/pkg/result/processors/uniq_by_line.go
@@ -5,26 +5,23 @@ import (
"github.com/golangci/golangci-lint/pkg/result"
)
-type (
- lineToCount map[int]int
- fileToLineToCount map[string]lineToCount
-)
+const uniqByLineLimit = 1
+
+var _ Processor = (*UniqByLine)(nil)
type UniqByLine struct {
- flc fileToLineToCount
- cfg *config.Config
+ fileLineCounter fileLineCounter
+ cfg *config.Config
}
func NewUniqByLine(cfg *config.Config) *UniqByLine {
return &UniqByLine{
- flc: fileToLineToCount{},
- cfg: cfg,
+ fileLineCounter: fileLineCounter{},
+ cfg: cfg,
}
}
-var _ Processor = &UniqByLine{}
-
-func (p *UniqByLine) Name() string {
+func (*UniqByLine) Name() string {
return "uniq_by_line"
}
@@ -33,28 +30,44 @@ func (p *UniqByLine) Process(issues []result.Issue) ([]result.Issue, error) {
return issues, nil
}
- return filterIssues(issues, func(issue *result.Issue) bool {
- if issue.Replacement != nil && p.cfg.Issues.NeedFix {
- // if issue will be auto-fixed we shouldn't collapse issues:
- // e.g. one line can contain 2 misspellings, they will be in 2 issues and misspell should fix both of them.
- return true
- }
-
- lc := p.flc[issue.FilePath()]
- if lc == nil {
- lc = lineToCount{}
- p.flc[issue.FilePath()] = lc
- }
-
- const limit = 1
- count := lc[issue.Line()]
- if count == limit {
- return false
- }
-
- lc[issue.Line()]++
+ return filterIssues(issues, p.shouldPassIssue), nil
+}
+
+func (*UniqByLine) Finish() {}
+
+func (p *UniqByLine) shouldPassIssue(issue *result.Issue) bool {
+ if issue.Replacement != nil && p.cfg.Issues.NeedFix {
+ // if issue will be auto-fixed we shouldn't collapse issues:
+ // e.g. one line can contain 2 misspellings, they will be in 2 issues and misspell should fix both of them.
return true
- }), nil
+ }
+
+ if p.fileLineCounter.GetCount(issue) == uniqByLineLimit {
+ return false
+ }
+
+ p.fileLineCounter.Increment(issue)
+
+ return true
+}
+
+type fileLineCounter map[string]map[int]int
+
+func (f fileLineCounter) GetCount(issue *result.Issue) int {
+ return f.getCounter(issue)[issue.Line()]
+}
+
+func (f fileLineCounter) Increment(issue *result.Issue) {
+ f.getCounter(issue)[issue.Line()]++
}
-func (p *UniqByLine) Finish() {}
+func (f fileLineCounter) getCounter(issue *result.Issue) map[int]int {
+ lc := f[issue.FilePath()]
+
+ if lc == nil {
+ lc = map[int]int{}
+ f[issue.FilePath()] = lc
+ }
+
+ return lc
+}
diff --git a/vendor/github.com/golangci/misspell/.golangci.yml b/vendor/github.com/golangci/misspell/.golangci.yml
index 31c566eab3..2cfed442f5 100644
--- a/vendor/github.com/golangci/misspell/.golangci.yml
+++ b/vendor/github.com/golangci/misspell/.golangci.yml
@@ -1,13 +1,11 @@
run:
timeout: 2m
- skip-files: []
linters-settings:
govet:
enable-all: true
disable:
- fieldalignment
- - shadow # FIXME(ldez) must be fixed
gocyclo:
min-complexity: 16
goconst:
@@ -97,7 +95,7 @@ linters:
issues:
exclude-use-default: false
- max-per-linter: 0
+ max-issues-per-linter: 0
max-same-issues: 0
exclude:
- 'ST1000: at least one file in a package should have a package comment'
diff --git a/vendor/github.com/golangci/misspell/Dockerfile b/vendor/github.com/golangci/misspell/Dockerfile
index 788ce3a775..c85cd6875e 100644
--- a/vendor/github.com/golangci/misspell/Dockerfile
+++ b/vendor/github.com/golangci/misspell/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.19-alpine
+FROM golang:1.22-alpine
# cache buster
RUN echo 4
diff --git a/vendor/github.com/golangci/misspell/Makefile b/vendor/github.com/golangci/misspell/Makefile
index 783f977cb4..fcda870ce0 100644
--- a/vendor/github.com/golangci/misspell/Makefile
+++ b/vendor/github.com/golangci/misspell/Makefile
@@ -9,7 +9,7 @@ build: ## build misspell
go build ./cmd/misspell
test: ## run all tests
- go test -v .
+ CGO_ENABLED=1 go test -v -race .
lint: ## run linter
golangci-lint run
diff --git a/vendor/github.com/golangci/misspell/README.md b/vendor/github.com/golangci/misspell/README.md
index cccd04996f..514727fad0 100644
--- a/vendor/github.com/golangci/misspell/README.md
+++ b/vendor/github.com/golangci/misspell/README.md
@@ -1,39 +1,37 @@
-[![Build Status](https://travis-ci.org/client9/misspell.svg?branch=master)](https://travis-ci.org/client9/misspell) [![Go Report Card](https://goreportcard.com/badge/github.com/client9/misspell)](https://goreportcard.com/report/github.com/client9/misspell) [![GoDoc](https://godoc.org/github.com/client9/misspell?status.svg)](https://godoc.org/github.com/client9/misspell) [![Coverage](http://gocover.io/_badge/github.com/client9/misspell)](http://gocover.io/github.com/client9/misspell) [![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://raw.githubusercontent.com/client9/misspell/master/LICENSE)
+[![Main](https://github.com/golangci/misspell/actions/workflows/ci.yml/badge.svg)](https://github.com/golangci/misspell/actions/workflows/ci.yml)
+[![Go Report Card](https://goreportcard.com/badge/github.com/golangci/misspell)](https://goreportcard.com/report/github.com/golangci/misspell)
+[![Go Reference](https://pkg.go.dev/badge/github.com/golangci/misspell.svg)](https://pkg.go.dev/github.com/golangci/misspell)
+[![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://raw.golangci.com/golangci/misspell/master/LICENSE)
Correct commonly misspelled English words... quickly.
### Install
-
If you just want a binary and to start using `misspell`:
+```bash
+curl -sfL https://raw.githubusercontent.com/golangci/misspell/master/install-misspell.sh | sh -s -- -b ./bin ${MISSPELL_VERSION}
```
-curl -L -o ./install-misspell.sh https://git.io/misspell
-sh ./install-misspell.sh
-```
-
-
-Both will install as `./bin/misspell`. You can adjust the download location using the `-b` flag. File a ticket if you want another platform supported.
+Both will install as `./bin/misspell`.
+You can adjust the download location using the `-b` flag.
+File a ticket if you want another platform supported.
-If you use [Go](https://golang.org/), the best way to run `misspell` is by using [gometalinter](#gometalinter). Otherwise, install `misspell` the old-fashioned way:
+If you use [Go](https://golang.org/), the best way to run `misspell` is by using [golangci-lint](https://github.com/golangci/golangci-lint).
+Otherwise, install `misspell` the old-fashioned way:
+```bash
+go install github.com/golangci/misspell/cmd/misspell@latest
```
-go install github.com/client9/misspell/cmd/misspell@latest
-```
-
-and misspell will be in your `GOPATH`
-
-Also if you like to live dangerously, one could do
+Also, if you like to live dangerously, one could do
```bash
-curl -L https://git.io/misspell | bash
+curl -sfL https://raw.githubusercontent.com/golangci/misspell/master/install-misspell.sh | sh -s -- -b $(go env GOPATH)/bin ${MISSPELL_VERSION}
```
### Usage
-
```bash
$ misspell all.html your.txt important.md files.go
your.txt:42:10 found "langauge" a misspelling of "language"
@@ -41,29 +39,32 @@ your.txt:42:10 found "langauge" a misspelling of "language"
# ^ file, line, column
```
-```
+```console
$ misspell -help
Usage of misspell:
-debug
- Debug matching, very slow
+ Debug matching, very slow
+ -dict string
+ User defined corrections file path (.csv). CSV format: typo,fix
-error
- Exit with 2 if misspelling found
+ Exit with 2 if misspelling found
-f string
- 'csv', 'sqlite3' or custom Golang template for output
+ 'csv', 'sqlite3' or custom Golang template for output
-i string
- ignore the following corrections, comma separated
+ ignore the following corrections, comma-separated
-j int
- Number of workers, 0 = number of CPUs
+ Number of workers, 0 = number of CPUs
-legal
- Show legal information and exit
+ Show legal information and exit
-locale string
- Correct spellings using locale perferances for US or UK. Default is to use a neutral variety of English. Setting locale to US will correct the British spelling of 'colour' to 'color'
+ Correct spellings using locale preferences for US or UK. Default is to use a neutral variety of English. Setting locale to US will correct the British spelling of 'colour' to 'color'
-o string
- output file or [stderr|stdout|] (default "stdout")
- -q Do not emit misspelling output
+ output file or [stderr|stdout|] (default "stdout")
+ -q Do not emit misspelling output
-source string
- Source mode: auto=guess, go=golang source, text=plain or markdown-like text (default "auto")
- -w Overwrite file with corrections (default is just to display)
+ Source mode: text (default), go (comments only) (default "text")
+ -v Show version and exit
+ -w Overwrite file with corrections (default is just to display)
```
## FAQ
@@ -72,7 +73,6 @@ Usage of misspell:
* [Converting UK spellings to US](#locale)
* [Using pipes and stdin](#stdin)
* [Golang special support](#golang)
-* [gometalinter support](#gometalinter)
* [CSV Output](#csv)
* [Using SQLite3](#sqlite)
* [Changing output format](#output)
@@ -92,7 +92,7 @@ Usage of misspell:
Just add the `-w` flag!
-```
+```console
$ misspell -w all.html your.txt important.md files.go
your.txt:9:21:corrected "langauge" to "language"
@@ -104,20 +104,19 @@ your.txt:9:21:corrected "langauge" to "language"
Add the `-locale US` flag!
-```bash
+```console
$ misspell -locale US important.txt
important.txt:10:20 found "colour" a misspelling of "color"
```
Add the `-locale UK` flag!
-```bash
+```console
$ echo "My favorite color is blue" | misspell -locale UK
stdin:1:3:found "favorite color" a misspelling of "favourite colour"
```
-Help is appreciated as I'm neither British nor an
-expert in the English language.
+Help is appreciated as I'm neither British nor an expert in the English language.
### How do you check an entire folder recursively?
@@ -141,7 +140,8 @@ or
find . -type f | xargs misspell
```
-You can select a type of file as well. The following examples selects all `.txt` files that are *not* in the `vendor` directory:
+You can select a type of file as well.
+The following examples selects all `.txt` files that are *not* in the `vendor` directory:
```bash
find . -type f -name '*.txt' | grep -v vendor/ | xargs misspell -error
@@ -154,14 +154,14 @@ Yes!
Print messages to `stderr` only:
-```bash
+```console
$ echo "zeebra" | misspell
stdin:1:0:found "zeebra" a misspelling of "zebra"
```
Print messages to `stderr`, and corrected text to `stdout`:
-```bash
+```console
$ echo "zeebra" | misspell -w
stdin:1:0:corrected "zeebra" to "zebra"
zebra
@@ -169,7 +169,7 @@ zebra
Only print the corrected text to `stdout`:
-```bash
+```console
$ echo "zeebra" | misspell -w -q
zebra
```
@@ -177,55 +177,23 @@ zebra
### Are there special rules for golang source files?
-Yes! If the file ends in `.go`, then misspell will only check spelling in
-comments.
-
-If you want to force a file to be checked as a golang source, use `-source=go`
-on the command line. Conversely, you can check a golang source as if it were
-pure text by using `-source=text`. You might want to do this since many
-variable names have misspellings in them!
+yes, if you want to force a file to be checked as a golang source, use `-source=go` on the command line.
+Conversely, you can check a golang source as if it were pure text by using `-source=text`.
+You might want to do this since many variable names have misspellings in them!
-### Can I check only-comments in other other programming languages?
+### Can I check only-comments in other programming languages?
-I'm told the using `-source=go` works well for ruby, javascript, java, c and
-c++.
-
-It doesn't work well for python and bash.
-
-
-### Does this work with gometalinter?
-
-[gometalinter](https://github.com/alecthomas/gometalinter) runs
-multiple golang linters. Starting on [2016-06-12](https://github.com/alecthomas/gometalinter/pull/134)
-gometalinter supports `misspell` natively but it is disabled by default.
-
-```bash
-# update your copy of gometalinter
-go get -u github.com/alecthomas/gometalinter
-
-# install updates and misspell
-gometalinter --install --update
-```
-
-To use, just enable `misspell`
-
-```
-gometalinter --enable misspell ./...
-```
-
-Note that gometalinter only checks golang files, and uses the default options
-of `misspell`
-
-You may wish to run this on your plaintext (.txt) and/or markdown files too.
+I'm told the using `-source=go` works well for Ruby, Javascript, Java, C and C++.
+It doesn't work well for Python and Bash.
### How Can I Get CSV Output?
Using `-f csv`, the output is standard comma-seprated values with headers in the first row.
-```
-misspell -f csv *
+```console
+$ misspell -f csv *
file,line,column,typo,corrected
"README.md",9,22,langauge,language
"README.md",47,25,langauge,language
@@ -236,7 +204,7 @@ file,line,column,typo,corrected
Using `-f sqlite`, the output is a [sqlite3](https://www.sqlite.org/index.html) dump-file.
-```bash
+```console
$ misspell -f sqlite * > /tmp/misspell.sql
$ cat /tmp/misspell.sql
@@ -254,7 +222,7 @@ INSERT INTO misspell VALUES("install.txt",202,31,"immediatly","immediately");
COMMIT;
```
-```bash
+```console
$ sqlite3 -init /tmp/misspell.sql :memory: 'select count(*) from misspell'
1
```
@@ -271,20 +239,22 @@ misspell -f sqlite * | sqlite3 -init /dev/stdin -column -cmd '.width 60 15' ':me
Using the `-i "comma,separated,rules"` flag you can specify corrections to ignore.
-For example, if you were to run `misspell -w -error -source=text` against document that contains the string `Guy Finkelshteyn Braswell`, misspell would change the text to `Guy Finkelstheyn Bras well`. You can then
-determine the rules to ignore by reverting the change and running the with the `-debug` flag. You can then see
-that the corrections were `htey -> they` and `aswell -> as well`. To ignore these two rules, you add `-i "htey,aswell"` to
-your command. With debug mode on, you can see it print the corrections, but it will no longer make them.
+For example, if you were to run `misspell -w -error -source=text` against document that contains the string `Guy Finkelshteyn Braswell`,
+misspell would change the text to `Guy Finkelstheyn Bras well`.
+You can then determine the rules to ignore by reverting the change and running the with the `-debug` flag.
+You can then see that the corrections were `htey -> they` and `aswell -> as well`.
+To ignore these two rules, you add `-i "htey,aswell"` to your command.
+With debug mode on, you can see it print the corrections, but it will no longer make them.
### How can I change the output format?
-Using the `-f template` flag you can pass in a
-[golang text template](https://golang.org/pkg/text/template/) to format the output.
+Using the `-f template` flag you can pass in a [golang text template](https://golang.org/pkg/text/template/) to format the output.
One can use `printf "%q" VALUE` to safely quote a value.
-The default template is compatible with [gometalinter](https://github.com/alecthomas/gometalinter)
+The default template:
+
```
{{ .Filename }}:{{ .Line }}:{{ .Column }}:corrected {{ printf "%q" .Original }} to "{{ printf "%q" .Corrected }}"
```
@@ -298,14 +268,12 @@ To just print probable misspellings:
### What problem does this solve?
-This corrects commonly misspelled English words in computer source
-code, and other text-based formats (`.txt`, `.md`, etc).
+This corrects commonly misspelled English words in computer source code, and other text-based formats (`.txt`, `.md`, etc.).
-It is designed to run quickly so it can be
-used as a [pre-commit hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)
-with minimal burden on the developer.
+It is designed to run quickly,
+so it can be used as a [pre-commit hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) with minimal burden on the developer.
-It does not work with binary formats (e.g. Word, etc).
+It does not work with binary formats (e.g. Word, etc.).
It is not a complete spell-checking program nor a grammar checker.
@@ -322,78 +290,71 @@ They all work but had problems that prevented me from using them at scale:
* slow, all of the above check one misspelling at a time (i.e. linear) using regexps
* not MIT/Apache2 licensed (or equivalent)
-* have dependencies that don't work for me (python3, bash, linux sed, etc)
+* have dependencies that don't work for me (python3, bash, linux sed, etc.)
* don't understand American vs. British English and sometimes makes unwelcome "corrections"
-That said, they might be perfect for you and many have more features
-than this project!
+That said, they might be perfect for you and many have more features than this project!
### How fast is it?
-Misspell is easily 100x to 1000x faster than other spelling correctors. You
-should be able to check and correct 1000 files in under 250ms.
+Misspell is easily 100x to 1000x faster than other spelling correctors.
+You should be able to check and correct 1000 files in under 250ms.
-This uses the mighty power of golang's
-[strings.Replacer](https://golang.org/pkg/strings/#Replacer) which is
-a implementation or variation of the
-[Aho–Corasick algorithm](https://en.wikipedia.org/wiki/Aho–Corasick_algorithm).
+This uses the mighty power of golang's [strings.Replacer](https://golang.org/pkg/strings/#Replacer)
+which is an implementation or variation of the [Aho–Corasick algorithm](https://en.wikipedia.org/wiki/Aho–Corasick_algorithm).
This makes multiple substring matches *simultaneously*.
-In addition this uses multiple CPU cores to work on multiple files.
+It also uses multiple CPU cores to work on multiple files concurrently.
### What problems does it have?
-Unlike the other projects, this doesn't know what a "word" is. There may be
-more false positives and false negatives due to this. On the other hand, it
-sometimes catches things others don't.
+Unlike the other projects, this doesn't know what a "word" is.
+There may be more false positives and false negatives due to this.
+On the other hand, it sometimes catches things others don't.
Either way, please file bugs and we'll fix them!
-Since it operates in parallel to make corrections, it can be non-obvious to
-determine exactly what word was corrected.
+Since it operates in parallel to make corrections,
+it can be non-obvious to determine exactly what word was corrected.
### It's making mistakes. How can I debug?
-Run using `-debug` flag on the file you want. It should then print what word
-it is trying to correct. Then [file a
-bug](https://github.com/client9/misspell/issues) describing the problem.
+Run using `-debug` flag on the file you want.
+It should then print what word it is trying to correct.
+Then [file a bug](https://github.com/golangci/misspell/issues) describing the problem.
Thanks!
### Why is it making mistakes or missing items in golang files?
-The matching function is *case-sensitive*, so variable names that are multiple
-worlds either in all-upper or all-lower case sometimes can cause false
-positives. For instance a variable named `bodyreader` could trigger a false
-positive since `yrea` is in the middle that could be corrected to `year`.
-Other problems happen if the variable name uses a English contraction that
-should use an apostrophe. The best way of fixing this is to use the
-[Effective Go naming
-conventions](https://golang.org/doc/effective_go.html#mixed-caps) and use
-[camelCase](https://en.wikipedia.org/wiki/CamelCase) for variable names. You
-can check your code using [golint](https://github.com/golang/lint)
+The matching function is *case-sensitive*,
+so variable names that are multiple worlds either in all-uppercase or all-lowercase case sometimes can cause false positives.
+For instance a variable named `bodyreader` could trigger a false positive since `yrea` is in the middle that could be corrected to `year`.
+Other problems happen if the variable name uses an English contraction that should use an apostrophe.
+The best way of fixing this is to use the [Effective Go naming conventions](https://golang.org/doc/effective_go.html#mixed-caps)
+and use [camelCase](https://en.wikipedia.org/wiki/CamelCase) for variable names.
+You can check your code using [golint](https://github.com/golang/lint)
### What license is this?
-The main code is [MIT](https://github.com/client9/misspell/blob/master/LICENSE).
+The main code is [MIT](https://github.com/golangci/misspell/blob/master/LICENSE).
Misspell also makes uses of the Golang standard library and contains a modified version of Golang's [strings.Replacer](https://golang.org/pkg/strings/#Replacer)
-which are covered under a [BSD License](https://github.com/golang/go/blob/master/LICENSE). Type `misspell -legal` for more details or see [legal.go](https://github.com/client9/misspell/blob/master/legal.go)
+which is covered under a [BSD License](https://github.com/golang/go/blob/master/LICENSE).
+Type `misspell -legal` for more details or see [legal.go](https://github.com/golangci/misspell/blob/master/legal.go)
### Where do the word lists come from?
It started with a word list from
[Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines).
-Unfortunately, this list had to be highly edited as many of the words are
-obsolete or based from mistakes on mechanical typewriters (I'm guessing).
+Unfortunately, this list had to be highly edited as many of the words are obsolete or based on mistakes on mechanical typewriters (I'm guessing).
-Additional words were added based on actually mistakes seen in
-the wild (meaning self-generated).
+Additional words were added based on actually mistakes seen in the wild (meaning self-generated).
Variations of UK and US spellings are based on many sources including:
@@ -401,24 +362,23 @@ Variations of UK and US spellings are based on many sources including:
* http://www.oxforddictionaries.com/us/words/american-and-british-spelling-american (excellent site but incomplete)
* Diffing US and UK [scowl dictionaries](http://wordlist.aspell.net)
-American English is more accepting of spelling variations than is British
-English, so "what is American or not" is subject to opinion. Corrections and help welcome.
+American English is more accepting of spelling variations than is British English,
+so "what is American or not" is subject to opinion.
+Corrections and help welcome.
### What are some other enhancements that could be done?
-Here's some ideas for enhancements:
+Here are some ideas for enhancements:
*Capitalization of proper nouns* could be done (e.g. weekday and month names, country names, language names)
-*Opinionated US spellings* US English has a number of words with alternate
-spellings. Think [adviser vs.
-advisor](http://grammarist.com/spelling/adviser-advisor/). While "advisor" is not wrong, the opinionated US
-locale would correct "advisor" to "adviser".
+*Opinionated US spellings* US English has a number of words with alternate spellings.
+Think [adviser vs. advisor](http://grammarist.com/spelling/adviser-advisor/).
+While "advisor" is not wrong, the opinionated US locale would correct "advisor" to "adviser".
*Versioning* Some type of versioning is needed so reporting mistakes and errors is easier.
-*Feedback* Mistakes would be sent to some server for agregation and feedback review.
+*Feedback* Mistakes would be sent to some server for aggregation and feedback review.
-*Contractions and Apostrophes* This would optionally correct "isnt" to
-"isn't", etc.
+*Contractions and Apostrophes* This would optionally correct "isnt" to "isn't", etc.
diff --git a/vendor/github.com/golangci/misspell/goreleaser.yml b/vendor/github.com/golangci/misspell/goreleaser.yml
index 97aa83e5ac..99781e27a3 100644
--- a/vendor/github.com/golangci/misspell/goreleaser.yml
+++ b/vendor/github.com/golangci/misspell/goreleaser.yml
@@ -16,10 +16,6 @@ builds:
archives:
- name_template: "{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
- replacements:
- amd64: 64bit
- 386: 32bit
- darwin: mac
files:
- LICENSE
diff --git a/vendor/github.com/golangci/misspell/mime.go b/vendor/github.com/golangci/misspell/mime.go
index 76a96cfd1b..19d49e0855 100644
--- a/vendor/github.com/golangci/misspell/mime.go
+++ b/vendor/github.com/golangci/misspell/mime.go
@@ -7,6 +7,7 @@ import (
"net/http"
"os"
"path/filepath"
+ "slices"
"strings"
)
@@ -77,13 +78,12 @@ func isSCMPath(s string) bool {
if strings.Contains(filepath.Base(s), "EDITMSG") {
return false
}
+
parts := strings.Split(filepath.Clean(s), string(filepath.Separator))
- for _, dir := range parts {
- if scm[dir] {
- return true
- }
- }
- return false
+
+ return slices.ContainsFunc(parts, func(dir string) bool {
+ return scm[dir]
+ })
}
var magicHeaders = [][]byte{
@@ -174,7 +174,8 @@ func ReadTextFile(filename string) (string, error) {
// if not-text, then exit
isText := false
if fstat.Size() > 50000 {
- fin, err := os.Open(filename)
+ var fin *os.File
+ fin, err = os.Open(filename)
if err != nil {
return "", fmt.Errorf("unable to open large file %q: %w", filename, err)
}
diff --git a/vendor/github.com/golangci/misspell/notwords.go b/vendor/github.com/golangci/misspell/notwords.go
index a250cf7f6e..f694f46dc0 100644
--- a/vendor/github.com/golangci/misspell/notwords.go
+++ b/vendor/github.com/golangci/misspell/notwords.go
@@ -4,12 +4,17 @@ import (
"bytes"
"regexp"
"strings"
+ "unicode"
)
var (
- reEmail = regexp.MustCompile(`[a-zA-Z0-9_.%+-]+@[a-zA-Z0-9-.]+\.[a-zA-Z]{2,6}[^a-zA-Z]`)
- reHost = regexp.MustCompile(`[a-zA-Z0-9-.]+\.[a-zA-Z]+`)
- reBackslash = regexp.MustCompile(`\\[a-z]`)
+ reEmail = regexp.MustCompile(`[[:alnum:]_.%+-]+@[[:alnum:]-.]+\.[[:alpha:]]{2,6}[^[:alpha:]]`)
+ reBackslash = regexp.MustCompile(`\\[[:lower:]]`)
+
+ // reHost Host name regular expression.
+ // The length of any one label is limited between 1 and 63 octets. (https://www.ietf.org/rfc/rfc2181.txt)
+ // A TLD has at least 2 letters.
+ reHost = regexp.MustCompile(`([[:alnum:]-]+\.)+[[:alpha:]]{2,63}`)
)
// RemovePath attempts to strip away embedded file system paths, e.g.
@@ -20,7 +25,7 @@ var (
func RemovePath(s string) string {
out := bytes.Buffer{}
var idx int
- for len(s) > 0 {
+ for s != "" {
if idx = strings.IndexByte(s, '/'); idx == -1 {
out.WriteString(s)
break
@@ -62,6 +67,18 @@ func replaceWithBlanks(s string) string {
return strings.Repeat(" ", len(s))
}
+// replaceHost same as replaceWithBlanks but if the string contains at least one uppercase letter returns the string.
+// Domain names are case-insensitive but browsers and DNS convert uppercase to lower case. (https://www.ietf.org/rfc/rfc4343.txt)
+func replaceHost(s string) string {
+ for _, r := range s {
+ if unicode.IsUpper(r) {
+ return s
+ }
+ }
+
+ return replaceWithBlanks(s)
+}
+
// RemoveEmail remove email-like strings, e.g. "nickg+junk@xfoobar.com", "nickg@xyz.abc123.biz".
func RemoveEmail(s string) string {
return reEmail.ReplaceAllStringFunc(s, replaceWithBlanks)
@@ -69,7 +86,7 @@ func RemoveEmail(s string) string {
// RemoveHost removes host-like strings "foobar.com" "abc123.fo1231.biz".
func RemoveHost(s string) string {
- return reHost.ReplaceAllStringFunc(s, replaceWithBlanks)
+ return reHost.ReplaceAllStringFunc(s, replaceHost)
}
// RemoveBackslashEscapes removes characters that are preceded by a backslash.
diff --git a/vendor/github.com/golangci/misspell/replace.go b/vendor/github.com/golangci/misspell/replace.go
index bcfcf8deb5..b51dfa83bf 100644
--- a/vendor/github.com/golangci/misspell/replace.go
+++ b/vendor/github.com/golangci/misspell/replace.go
@@ -5,6 +5,7 @@ import (
"bytes"
"io"
"regexp"
+ "slices"
"strings"
"text/scanner"
)
@@ -17,12 +18,9 @@ func max(x, y int) int {
}
func inArray(haystack []string, needle string) bool {
- for _, word := range haystack {
- if strings.EqualFold(needle, word) {
- return true
- }
- }
- return false
+ return slices.ContainsFunc(haystack, func(word string) bool {
+ return strings.EqualFold(needle, word)
+ })
}
var wordRegexp = regexp.MustCompile(`[a-zA-Z0-9']+`)
@@ -192,7 +190,7 @@ Loop:
return buf.String(), diffs
}
-// Replace is corrects misspellings in input, returning corrected version along with a list of diffs.
+// Replace is correcting misspellings in input, returning corrected version along with a list of diffs.
func (r *Replacer) Replace(input string) (string, []Diff) {
output := r.engine.Replace(input)
if input == output {
diff --git a/vendor/github.com/golangci/misspell/stringreplacer.go b/vendor/github.com/golangci/misspell/stringreplacer.go
index 73ca9a56ac..46cb6c4b66 100644
--- a/vendor/github.com/golangci/misspell/stringreplacer.go
+++ b/vendor/github.com/golangci/misspell/stringreplacer.go
@@ -102,7 +102,6 @@ func (t *trieNode) add(key, val string, priority int, r *genericReplacer) {
return
}
- //nolint:nestif // TODO(ldez) must be fixed.
if t.prefix != "" {
// Need to split the prefix among multiple nodes.
var n int // length of the longest common prefix
@@ -111,9 +110,10 @@ func (t *trieNode) add(key, val string, priority int, r *genericReplacer) {
break
}
}
- if n == len(t.prefix) {
+ switch n {
+ case len(t.prefix):
t.next.add(key[n:], val, priority, r)
- } else if n == 0 {
+ case 0:
// First byte differs, start a new lookup table here. Looking up
// what is currently t.prefix[0] will lead to prefixNode, and
// looking up key[0] will lead to keyNode.
@@ -133,7 +133,7 @@ func (t *trieNode) add(key, val string, priority int, r *genericReplacer) {
t.prefix = ""
t.next = nil
keyNode.add(key[1:], val, priority, r)
- } else {
+ default:
// Insert new node after the common section of the prefix.
next := &trieNode{
prefix: t.prefix[n:],
@@ -143,18 +143,22 @@ func (t *trieNode) add(key, val string, priority int, r *genericReplacer) {
t.next = next
next.add(key[n:], val, priority, r)
}
- } else if t.table != nil {
+ return
+ }
+
+ if t.table != nil {
// Insert into existing table.
m := r.mapping[key[0]]
if t.table[m] == nil {
t.table[m] = new(trieNode)
}
t.table[m].add(key[1:], val, priority, r)
- } else {
- t.prefix = key
- t.next = new(trieNode)
- t.next.add("", val, priority, r)
+ return
}
+
+ t.prefix = key
+ t.next = new(trieNode)
+ t.next.add("", val, priority, r)
}
// genericReplacer is the fully generic algorithm.
@@ -242,7 +246,6 @@ func (r *genericReplacer) Replace(s string) string {
return string(buf)
}
-//nolint:gocognit // TODO(ldez) must be fixed.
func (r *genericReplacer) WriteString(w io.Writer, s string) (n int, err error) {
sw := getStringWriter(w)
var last, wn int
diff --git a/vendor/github.com/golangci/misspell/url.go b/vendor/github.com/golangci/misspell/url.go
index 203b91a79e..a91d1d967d 100644
--- a/vendor/github.com/golangci/misspell/url.go
+++ b/vendor/github.com/golangci/misspell/url.go
@@ -10,7 +10,7 @@ import (
// @(https?|ftp)://(-\.)?([^\s/?\.#-]+\.?)+(/[^\s]*)?$@iS.
var reURL = regexp.MustCompile(`(?i)(https?|ftp)://(-\.)?([^\s/?.#]+\.?)+(/\S*)?`)
-// StripURL attemps to replace URLs with blank spaces, e.g.
+// StripURL attempts to replace URLs with blank spaces, e.g.
//
// "xxx http://foo.com/ yyy -> "xxx yyyy".
func StripURL(s string) string {
diff --git a/vendor/github.com/golangci/modinfo/.gitignore b/vendor/github.com/golangci/modinfo/.gitignore
new file mode 100644
index 0000000000..9f11b755a1
--- /dev/null
+++ b/vendor/github.com/golangci/modinfo/.gitignore
@@ -0,0 +1 @@
+.idea/
diff --git a/vendor/github.com/golangci/modinfo/.golangci.yml b/vendor/github.com/golangci/modinfo/.golangci.yml
new file mode 100644
index 0000000000..9698182f2a
--- /dev/null
+++ b/vendor/github.com/golangci/modinfo/.golangci.yml
@@ -0,0 +1,157 @@
+run:
+ timeout: 7m
+
+linters-settings:
+ govet:
+ enable:
+ - shadow
+ gocyclo:
+ min-complexity: 12
+ goconst:
+ min-len: 3
+ min-occurrences: 3
+ funlen:
+ lines: -1
+ statements: 50
+ misspell:
+ locale: US
+ depguard:
+ rules:
+ main:
+ deny:
+ - pkg: "github.com/instana/testify"
+ desc: not allowed
+ - pkg: "github.com/pkg/errors"
+ desc: Should be replaced by standard lib errors package
+ tagalign:
+ align: false
+ order:
+ - xml
+ - json
+ - yaml
+ - yml
+ - toml
+ - mapstructure
+ - url
+ godox:
+ keywords:
+ - FIXME
+ gocritic:
+ enabled-tags:
+ - diagnostic
+ - style
+ - performance
+ disabled-checks:
+ - paramTypeCombine # already handle by gofumpt.extra-rules
+ - whyNoLint # already handle by nonolint
+ - unnamedResult
+ - hugeParam
+ - sloppyReassign
+ - rangeValCopy
+ - octalLiteral
+ - ptrToRefParam
+ - appendAssign
+ - ruleguard
+ - httpNoBody
+ - exposedSyncMutex
+ revive:
+ rules:
+ - name: struct-tag
+ - name: blank-imports
+ - name: context-as-argument
+ - name: context-keys-type
+ - name: dot-imports
+ - name: error-return
+ - name: error-strings
+ - name: error-naming
+ - name: exported
+ disabled: true
+ - name: if-return
+ - name: increment-decrement
+ - name: var-naming
+ - name: var-declaration
+ - name: package-comments
+ disabled: true
+ - name: range
+ - name: receiver-naming
+ - name: time-naming
+ - name: unexported-return
+ - name: indent-error-flow
+ - name: errorf
+ - name: empty-block
+ - name: superfluous-else
+ - name: unused-parameter
+ disabled: true
+ - name: unreachable-code
+ - name: redefines-builtin-id
+
+ tagliatelle:
+ case:
+ rules:
+ json: pascal
+ yaml: camel
+ xml: camel
+ header: header
+ mapstructure: camel
+ env: upperSnake
+ envconfig: upperSnake
+
+linters:
+ enable-all: true
+ disable:
+ - deadcode # deprecated
+ - exhaustivestruct # deprecated
+ - golint # deprecated
+ - ifshort # deprecated
+ - interfacer # deprecated
+ - maligned # deprecated
+ - nosnakecase # deprecated
+ - scopelint # deprecated
+ - structcheck # deprecated
+ - varcheck # deprecated
+ - cyclop # duplicate of gocyclo
+ - sqlclosecheck # not relevant (SQL)
+ - rowserrcheck # not relevant (SQL)
+ - execinquery # not relevant (SQL)
+ - lll
+ - gosec
+ - dupl # not relevant
+ - prealloc # too many false-positive
+ - bodyclose # too many false-positive
+ - gomnd
+ - testpackage # not relevant
+ - tparallel # not relevant
+ - paralleltest # not relevant
+ - nestif # too many false-positive
+ - wrapcheck
+ - goerr113 # not relevant
+ - nlreturn # not relevant
+ - wsl # not relevant
+ - exhaustive # not relevant
+ - exhaustruct # not relevant
+ - makezero # not relevant
+ - forbidigo
+ - varnamelen # not relevant
+ - nilnil # not relevant
+ - ireturn # not relevant
+ - contextcheck # too many false-positive
+ - tenv # we already have a test "framework" to handle env vars
+ - noctx
+ - errchkjson
+ - nonamedreturns
+ - gosmopolitan # not relevant
+ - gochecknoglobals
+
+issues:
+ exclude-use-default: false
+ max-issues-per-linter: 0
+ max-same-issues: 0
+ exclude:
+ - 'Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked'
+ - 'ST1000: at least one file in a package should have a package comment'
+ exclude-rules:
+ - path: (.+)_test.go
+ linters:
+ - funlen
+ - goconst
+ - maintidx
diff --git a/vendor/github.com/golangci/modinfo/LICENSE b/vendor/github.com/golangci/modinfo/LICENSE
new file mode 100644
index 0000000000..f288702d2f
--- /dev/null
+++ b/vendor/github.com/golangci/modinfo/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/vendor/github.com/golangci/modinfo/Makefile b/vendor/github.com/golangci/modinfo/Makefile
new file mode 100644
index 0000000000..df91018f11
--- /dev/null
+++ b/vendor/github.com/golangci/modinfo/Makefile
@@ -0,0 +1,12 @@
+.PHONY: clean check test
+
+default: clean check test
+
+clean:
+ rm -rf dist/ cover.out
+
+test: clean
+ go test -v -cover ./...
+
+check:
+ golangci-lint run
diff --git a/vendor/github.com/golangci/modinfo/module.go b/vendor/github.com/golangci/modinfo/module.go
new file mode 100644
index 0000000000..ff0b21b9b8
--- /dev/null
+++ b/vendor/github.com/golangci/modinfo/module.go
@@ -0,0 +1,157 @@
+package modinfo
+
+import (
+ "bytes"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "reflect"
+ "sort"
+ "strings"
+ "sync"
+
+ "golang.org/x/mod/modfile"
+ "golang.org/x/tools/go/analysis"
+)
+
+type ModInfo struct {
+ Path string `json:"Path"`
+ Dir string `json:"Dir"`
+ GoMod string `json:"GoMod"`
+ GoVersion string `json:"GoVersion"`
+ Main bool `json:"Main"`
+}
+
+var (
+ once sync.Once
+ information []ModInfo
+ errInfo error
+)
+
+var Analyzer = &analysis.Analyzer{
+ Name: "modinfo",
+ Doc: "Module information",
+ URL: "https://github.com/golangci/modinfo",
+ Run: runOnce,
+ ResultType: reflect.TypeOf([]ModInfo(nil)),
+}
+
+func runOnce(pass *analysis.Pass) (any, error) {
+ _, ok := os.LookupEnv("MODINFO_DEBUG_DISABLE_ONCE")
+ if ok {
+ return GetModuleInfo(pass)
+ }
+
+ once.Do(func() {
+ information, errInfo = GetModuleInfo(pass)
+ })
+
+ return information, errInfo
+}
+
+// GetModuleInfo gets modules information.
+// Always returns 1 element except for workspace (returns all the modules of the workspace).
+// Based on `go list -m -json` behavior.
+func GetModuleInfo(pass *analysis.Pass) ([]ModInfo, error) {
+ // https://github.com/golang/go/issues/44753#issuecomment-790089020
+ cmd := exec.Command("go", "list", "-m", "-json")
+ for _, file := range pass.Files {
+ name := pass.Fset.File(file.Pos()).Name()
+ if filepath.Ext(name) != ".go" {
+ continue
+ }
+
+ cmd.Dir = filepath.Dir(name)
+ break
+ }
+
+ out, err := cmd.Output()
+ if err != nil {
+ return nil, fmt.Errorf("command go list: %w: %s", err, string(out))
+ }
+
+ var infos []ModInfo
+
+ for dec := json.NewDecoder(bytes.NewBuffer(out)); dec.More(); {
+ var v ModInfo
+ if err := dec.Decode(&v); err != nil {
+ return nil, fmt.Errorf("unmarshaling error: %w: %s", err, string(out))
+ }
+
+ if v.GoMod == "" {
+ return nil, errors.New("working directory is not part of a module")
+ }
+
+ if !v.Main || v.Dir == "" {
+ continue
+ }
+
+ infos = append(infos, v)
+ }
+
+ if len(infos) == 0 {
+ return nil, errors.New("go.mod file not found")
+ }
+
+ sort.Slice(infos, func(i, j int) bool {
+ return len(infos[i].Path) > len(infos[j].Path)
+ })
+
+ return infos, nil
+}
+
+// FindModuleFromPass finds the module related to the files of the pass.
+func FindModuleFromPass(pass *analysis.Pass) (ModInfo, error) {
+ infos, ok := pass.ResultOf[Analyzer].([]ModInfo)
+ if !ok {
+ return ModInfo{}, errors.New("no modinfo analyzer result")
+ }
+
+ var name string
+ for _, file := range pass.Files {
+ f := pass.Fset.File(file.Pos()).Name()
+ if filepath.Ext(f) != ".go" {
+ continue
+ }
+
+ name = f
+ break
+ }
+
+ // no Go file found in analysis pass
+ if name == "" {
+ name, _ = os.Getwd()
+ }
+
+ for _, info := range infos {
+ if !strings.HasPrefix(name, info.Dir) {
+ continue
+ }
+ return info, nil
+ }
+
+ return ModInfo{}, errors.New("module information not found")
+}
+
+// ReadModuleFileFromPass read the `go.mod` file from the pass result.
+func ReadModuleFileFromPass(pass *analysis.Pass) (*modfile.File, error) {
+ info, err := FindModuleFromPass(pass)
+ if err != nil {
+ return nil, err
+ }
+
+ return ReadModuleFile(info)
+}
+
+// ReadModuleFile read the `go.mod` file.
+func ReadModuleFile(info ModInfo) (*modfile.File, error) {
+ raw, err := os.ReadFile(info.GoMod)
+ if err != nil {
+ return nil, fmt.Errorf("reading go.mod file: %w", err)
+ }
+
+ return modfile.Parse("go.mod", raw, nil)
+}
diff --git a/vendor/github.com/golangci/modinfo/readme.md b/vendor/github.com/golangci/modinfo/readme.md
new file mode 100644
index 0000000000..2175de8eb4
--- /dev/null
+++ b/vendor/github.com/golangci/modinfo/readme.md
@@ -0,0 +1,73 @@
+# modinfo
+
+This module contains:
+- an analyzer that returns module information.
+- methods to find and read `go.mod` file
+
+## Examples
+
+```go
+package main
+
+import (
+ "fmt"
+
+ "github.com/golangci/modinfo"
+ "golang.org/x/tools/go/analysis"
+ "golang.org/x/tools/go/analysis/passes/inspect"
+)
+
+var Analyzer = &analysis.Analyzer{
+ Name: "example",
+ Doc: "Example",
+ Run: func(pass *analysis.Pass) (interface{}, error) {
+ file, err := modinfo.ReadModuleFileFromPass(pass)
+ if err != nil {
+ return nil, err
+ }
+
+ fmt.Println("go.mod", file)
+
+ // TODO
+
+ return nil, nil
+ },
+ Requires: []*analysis.Analyzer{
+ inspect.Analyzer,
+ modinfo.Analyzer,
+ },
+}
+```
+
+```go
+package main
+
+import (
+ "fmt"
+
+ "github.com/golangci/modinfo"
+ "golang.org/x/tools/go/analysis"
+ "golang.org/x/tools/go/analysis/passes/inspect"
+)
+
+var Analyzer = &analysis.Analyzer{
+ Name: "example",
+ Doc: "Example",
+ Run: func(pass *analysis.Pass) (interface{}, error) {
+ info, err := modinfo.FindModuleFromPass(pass)
+ if err != nil {
+ return nil, err
+ }
+
+ fmt.Println("Module", info.Dir)
+
+ // TODO
+
+ return nil, nil
+ },
+ Requires: []*analysis.Analyzer{
+ inspect.Analyzer,
+ modinfo.Analyzer,
+ },
+}
+```
diff --git a/vendor/github.com/golangci/revgrep/.golangci.yml b/vendor/github.com/golangci/revgrep/.golangci.yml
index 02ed5ec849..5239720ac6 100644
--- a/vendor/github.com/golangci/revgrep/.golangci.yml
+++ b/vendor/github.com/golangci/revgrep/.golangci.yml
@@ -3,7 +3,6 @@ run:
linters-settings:
govet:
- check-shadowing: true
enable-all: true
disable:
- fieldalignment
@@ -47,7 +46,6 @@ linters:
- nestif
- gomnd
- goerr113
-# - wrapcheck
- nlreturn
- wsl
- exhaustive
@@ -66,7 +64,7 @@ linters:
issues:
exclude-use-default: false
- max-per-linter: 0
+ max-issues-per-linter: 0
max-same-issues: 0
exclude:
- 'ST1000: at least one file in a package should have a package comment'
diff --git a/vendor/github.com/golangci/revgrep/revgrep.go b/vendor/github.com/golangci/revgrep/revgrep.go
index 7796b1c01c..1ef81b203a 100644
--- a/vendor/github.com/golangci/revgrep/revgrep.go
+++ b/vendor/github.com/golangci/revgrep/revgrep.go
@@ -334,10 +334,13 @@ func (c *Checker) linesChanged() map[string][]pos {
return changes
}
-// GitPatch returns a patch from a git repository,
-// if no git repository was found and no errors occurred, nil is returned, else an error is returned revisionFrom and revisionTo defines the git diff parameters,
-// if left blank and there are unstaged changes or untracked files, only those will be returned else only check changes since HEAD~.
-// If revisionFrom is set but revisionTo is not, untracked files will be included, to exclude untracked files set revisionTo to HEAD~.
+// GitPatch returns a patch from a git repository.
+// If no git repository was found and no errors occurred, nil is returned,
+// else an error is returned revisionFrom and revisionTo defines the git diff parameters,
+// if left blank and there are unstaged changes or untracked files,
+// only those will be returned else only check changes since HEAD~.
+// If revisionFrom is set but revisionTo is not,
+// untracked files will be included, to exclude untracked files set revisionTo to HEAD~.
// It's incorrect to specify revisionTo without a revisionFrom.
func GitPatch(revisionFrom, revisionTo string) (io.Reader, []string, error) {
// check if git repo exists
@@ -356,59 +359,59 @@ func GitPatch(revisionFrom, revisionTo string) (io.Reader, []string, error) {
for _, file := range bytes.Split(ls, []byte{'\n'}) {
if len(file) == 0 || bytes.HasSuffix(file, []byte{'/'}) {
// ls-files was sometimes showing directories when they were ignored
- // I couldn't create a test case for this as I couldn't reproduce correctly
- // for the moment, just exclude files with trailing /
+ // I couldn't create a test case for this as I couldn't reproduce correctly for the moment,
+ // just exclude files with trailing /
continue
}
+
newFiles = append(newFiles, string(file))
}
- var patch bytes.Buffer
if revisionFrom != "" {
- cmd := gitDiff(revisionFrom)
+ args := []string{revisionFrom}
+
if revisionTo != "" {
- cmd.Args = append(cmd.Args, revisionTo)
+ args = append(args, revisionTo)
}
- cmd.Args = append(cmd.Args, "--")
- cmd.Stdout = &patch
- if err := cmd.Run(); err != nil {
- return nil, nil, fmt.Errorf("error executing git diff %q %q: %w", revisionFrom, revisionTo, err)
+ args = append(args, "--")
+
+ patch, errDiff := gitDiff(args...)
+ if errDiff != nil {
+ return nil, nil, errDiff
}
if revisionTo == "" {
- return &patch, newFiles, nil
+ return patch, newFiles, nil
}
- return &patch, nil, nil
+ return patch, nil, nil
}
// make a patch for unstaged changes
- cmd := gitDiff("--")
- cmd.Stdout = &patch
- if err := cmd.Run(); err != nil {
- return nil, nil, fmt.Errorf("error executing git diff: %w", err)
+ patch, err := gitDiff("--")
+ if err != nil {
+ return nil, nil, err
}
+
unstaged := patch.Len() > 0
- // If there's unstaged changes OR untracked changes (or both), then this is
- // a suitable patch
+ // If there's unstaged changes OR untracked changes (or both),
+ // then this is a suitable patch
if unstaged || newFiles != nil {
- return &patch, newFiles, nil
+ return patch, newFiles, nil
}
// check for changes in recent commit
-
- cmd = gitDiff("HEAD~", "--")
- cmd.Stdout = &patch
- if err := cmd.Run(); err != nil {
- return nil, nil, fmt.Errorf("error executing git diff HEAD~: %w", err)
+ patch, err = gitDiff("HEAD~", "--")
+ if err != nil {
+ return nil, nil, err
}
- return &patch, nil, nil
+ return patch, nil, nil
}
-func gitDiff(extraArgs ...string) *exec.Cmd {
+func gitDiff(extraArgs ...string) (*bytes.Buffer, error) {
cmd := exec.Command("git", "diff", "--color=never", "--no-ext-diff")
if isSupportedByGit(2, 41, 0) {
@@ -418,7 +421,26 @@ func gitDiff(extraArgs ...string) *exec.Cmd {
cmd.Args = append(cmd.Args, "--relative")
cmd.Args = append(cmd.Args, extraArgs...)
- return cmd
+ patch := new(bytes.Buffer)
+ errBuff := new(bytes.Buffer)
+
+ cmd.Stdout = patch
+ cmd.Stderr = errBuff
+
+ if err := cmd.Run(); err != nil {
+ return nil, fmt.Errorf("error executing %q: %w: %w", strings.Join(cmd.Args, " "), err, readAsError(errBuff))
+ }
+
+ return patch, nil
+}
+
+func readAsError(buff io.Reader) error {
+ output, err := io.ReadAll(buff)
+ if err != nil {
+ return fmt.Errorf("read stderr: %w", err)
+ }
+
+ return errors.New(string(output))
}
func isSupportedByGit(major, minor, patch int) bool {
diff --git a/vendor/github.com/jjti/go-spancheck/README.md b/vendor/github.com/jjti/go-spancheck/README.md
index 953489d7a3..393663ba72 100644
--- a/vendor/github.com/jjti/go-spancheck/README.md
+++ b/vendor/github.com/jjti/go-spancheck/README.md
@@ -63,6 +63,13 @@ linters-settings:
# Default: []
ignore-check-signatures:
- "telemetry.RecordError"
+ # A list of regexes for additional function signatures that create spans. This is useful if you have a utility
+ # method to create spans. Each entry should be of the form :, where `telemetry-type`
+ # can be `opentelemetry` or `opencensus`.
+ # https://github.com/jjti/go-spancheck#extra-start-span-signatures
+ # Default: []
+ extra-start-span-signatures:
+ - "github.com/user/repo/telemetry/trace.Start:opentelemetry"
```
### CLI
@@ -82,6 +89,8 @@ $ spancheck -h
Flags:
-checks string
comma-separated list of checks to enable (options: end, set-status, record-error) (default "end")
+ -extra-start-span-signatures string
+ comma-separated list of regex:telemetry-type for function signatures that indicate the start of a span
-ignore-check-signatures string
comma-separated list of regex for function signatures that disable checks on errors
```
@@ -123,6 +132,21 @@ The warnings are can be ignored by setting `-ignore-check-signatures` flag to `r
spancheck -checks 'end,set-status,record-error' -ignore-check-signatures 'recordErr' ./...
```
+### Extra Start Span Signatures
+
+By default, Span creation will be tracked from calls to [(go.opentelemetry.io/otel/trace.Tracer).Start](https://github.com/open-telemetry/opentelemetry-go/blob/98b32a6c3a87fbee5d34c063b9096f416b250897/trace/trace.go#L523), [go.opencensus.io/trace.StartSpan](https://pkg.go.dev/go.opencensus.io/trace#StartSpan), or [go.opencensus.io/trace.StartSpanWithRemoteParent](https://github.com/census-instrumentation/opencensus-go/blob/v0.24.0/trace/trace_api.go#L66).
+
+You can use the `-extra-start-span-signatures` flag to list additional Span creation functions. For all such functions:
+
+1. their Spans will be linted (for all enable checks)
+1. checks will be disabled (i.e. there is no linting of Spans within the creation functions)
+
+You must pass a comma-separated list of regex patterns and the telemetry library corresponding to the returned Span. Each entry should be of the form `:`, where `telemetry-type` can be `opentelemetry` or `opencensus`. For example, if you have created a function named `StartTrace` in a `telemetry` package, using the `go.opentelemetry.io/otel` library, you can include this function for analysis like so:
+
+```bash
+spancheck -extra-start-span-signatures 'github.com/user/repo/telemetry/StartTrace:opentelemetry' ./...
+```
+
## Problem Statement
Tracing is a celebrated [[1](https://andydote.co.uk/2023/09/19/tracing-is-better/),[2](https://charity.wtf/2022/08/15/live-your-best-life-with-structured-events/)] and well marketed [[3](https://docs.datadoghq.com/tracing/),[4](https://www.honeycomb.io/distributed-tracing)] pillar of observability. But self-instrumented tracing requires a lot of easy-to-forget boilerplate:
@@ -239,3 +263,6 @@ This linter is the product of liberal copying of:
- [github.com/tomarrell/wrapcheck](https://github.com/tomarrell/wrapcheck) (error type checking and config)
- [github.com/Antonboom/testifylint](https://github.com/Antonboom/testifylint) (README)
- [github.com/ghostiam/protogetter](https://github.com/ghostiam/protogetter/blob/main/testdata/Makefile) (test setup)
+
+And the contributions of:
+- [@trixnz](https://github.com/trixnz) who [added support for custom span start functions](https://github.com/jjti/go-spancheck/pull/16)
diff --git a/vendor/github.com/jjti/go-spancheck/config.go b/vendor/github.com/jjti/go-spancheck/config.go
index 4005f49e01..ed02a1ad91 100644
--- a/vendor/github.com/jjti/go-spancheck/config.go
+++ b/vendor/github.com/jjti/go-spancheck/config.go
@@ -22,6 +22,18 @@ const (
RecordErrorCheck
)
+var (
+ startSpanSignatureCols = 2
+ defaultStartSpanSignatures = []string{
+ // https://github.com/open-telemetry/opentelemetry-go/blob/98b32a6c3a87fbee5d34c063b9096f416b250897/trace/trace.go#L523
+ `\(go.opentelemetry.io/otel/trace.Tracer\).Start:opentelemetry`,
+ // https://pkg.go.dev/go.opencensus.io/trace#StartSpan
+ `go.opencensus.io/trace.StartSpan:opencensus`,
+ // https://github.com/census-instrumentation/opencensus-go/blob/v0.24.0/trace/trace_api.go#L66
+ `go.opencensus.io/trace.StartSpanWithRemoteParent:opencensus`,
+ }
+)
+
func (c Check) String() string {
switch c {
case EndCheck:
@@ -35,14 +47,17 @@ func (c Check) String() string {
}
}
-var (
- // Checks is a list of all checks by name.
- Checks = map[string]Check{
- EndCheck.String(): EndCheck,
- SetStatusCheck.String(): SetStatusCheck,
- RecordErrorCheck.String(): RecordErrorCheck,
- }
-)
+// Checks is a list of all checks by name.
+var Checks = map[string]Check{
+ EndCheck.String(): EndCheck,
+ SetStatusCheck.String(): SetStatusCheck,
+ RecordErrorCheck.String(): RecordErrorCheck,
+}
+
+type spanStartMatcher struct {
+ signature *regexp.Regexp
+ spanType spanType
+}
// Config is a configuration for the spancheck analyzer.
type Config struct {
@@ -55,6 +70,8 @@ type Config struct {
// the IgnoreSetStatusCheckSignatures regex.
IgnoreChecksSignaturesSlice []string
+ StartSpanMatchersSlice []string
+
endCheckEnabled bool
setStatusEnabled bool
recordErrorEnabled bool
@@ -62,12 +79,16 @@ type Config struct {
// ignoreChecksSignatures is a regex that, if matched, disables the
// SetStatus and RecordError checks on error.
ignoreChecksSignatures *regexp.Regexp
+
+ startSpanMatchers []spanStartMatcher
+ startSpanMatchersCustomRegex *regexp.Regexp
}
// NewDefaultConfig returns a new Config with default values.
func NewDefaultConfig() *Config {
return &Config{
- EnabledChecks: []string{EndCheck.String()},
+ EnabledChecks: []string{EndCheck.String()},
+ StartSpanMatchersSlice: defaultStartSpanSignatures,
}
}
@@ -83,6 +104,11 @@ func (c *Config) finalize() {
// parseSignatures sets the Ignore*CheckSignatures regex from the string slices.
func (c *Config) parseSignatures() {
+ c.parseIgnoreSignatures()
+ c.parseStartSpanSignatures()
+}
+
+func (c *Config) parseIgnoreSignatures() {
if c.ignoreChecksSignatures == nil && len(c.IgnoreChecksSignaturesSlice) > 0 {
if len(c.IgnoreChecksSignaturesSlice) == 1 && c.IgnoreChecksSignaturesSlice[0] == "" {
return
@@ -92,6 +118,62 @@ func (c *Config) parseSignatures() {
}
}
+func (c *Config) parseStartSpanSignatures() {
+ if c.startSpanMatchers != nil {
+ return
+ }
+
+ customMatchers := []string{}
+ for i, sig := range c.StartSpanMatchersSlice {
+ parts := strings.Split(sig, ":")
+
+ // Make sure we have both a signature and a telemetry type
+ if len(parts) != startSpanSignatureCols {
+ log.Default().Printf("[WARN] invalid start span signature \"%s\". expected regex:telemetry-type\n", sig)
+
+ continue
+ }
+
+ sig, sigType := parts[0], parts[1]
+ if len(sig) < 1 {
+ log.Default().Print("[WARN] invalid start span signature, empty pattern")
+
+ continue
+ }
+
+ spanType, ok := SpanTypes[sigType]
+ if !ok {
+ validSpanTypes := make([]string, 0, len(SpanTypes))
+ for k := range SpanTypes {
+ validSpanTypes = append(validSpanTypes, k)
+ }
+
+ log.Default().
+ Printf("[WARN] invalid start span type \"%s\". expected one of %s\n", sigType, strings.Join(validSpanTypes, ", "))
+
+ continue
+ }
+
+ regex, err := regexp.Compile(sig)
+ if err != nil {
+ log.Default().Printf("[WARN] failed to compile regex from signature %s: %v\n", sig, err)
+
+ continue
+ }
+
+ c.startSpanMatchers = append(c.startSpanMatchers, spanStartMatcher{
+ signature: regex,
+ spanType: spanType,
+ })
+
+ if i >= len(defaultStartSpanSignatures) {
+ customMatchers = append(customMatchers, sig)
+ }
+ }
+
+ c.startSpanMatchersCustomRegex = createRegex(customMatchers)
+}
+
func parseChecks(checksSlice []string) []Check {
if len(checksSlice) == 0 {
return nil
diff --git a/vendor/github.com/jjti/go-spancheck/go.work.sum b/vendor/github.com/jjti/go-spancheck/go.work.sum
index f3cdef790d..85e99bad5a 100644
--- a/vendor/github.com/jjti/go-spancheck/go.work.sum
+++ b/vendor/github.com/jjti/go-spancheck/go.work.sum
@@ -1,3 +1,4 @@
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
diff --git a/vendor/github.com/jjti/go-spancheck/spancheck.go b/vendor/github.com/jjti/go-spancheck/spancheck.go
index 6f069a0335..d5d35a5b11 100644
--- a/vendor/github.com/jjti/go-spancheck/spancheck.go
+++ b/vendor/github.com/jjti/go-spancheck/spancheck.go
@@ -23,11 +23,15 @@ const (
spanOpenCensus // from go.opencensus.io/trace
)
-var (
- // this approach stolen from errcheck
- // https://github.com/kisielk/errcheck/blob/7f94c385d0116ccc421fbb4709e4a484d98325ee/errcheck/errcheck.go#L22
- errorType = types.Universe.Lookup("error").Type().Underlying().(*types.Interface)
-)
+// SpanTypes is a list of all span types by name.
+var SpanTypes = map[string]spanType{
+ "opentelemetry": spanOpenTelemetry,
+ "opencensus": spanOpenCensus,
+}
+
+// this approach stolen from errcheck
+// https://github.com/kisielk/errcheck/blob/7f94c385d0116ccc421fbb4709e4a484d98325ee/errcheck/errcheck.go#L22
+var errorType = types.Universe.Lookup("error").Type().Underlying().(*types.Interface)
// NewAnalyzerWithConfig returns a new analyzer configured with the Config passed in.
// Its config can be set for testing.
@@ -84,6 +88,12 @@ func runFunc(pass *analysis.Pass, node ast.Node, config *Config) {
funcScope = pass.TypesInfo.Scopes[v.Type]
case *ast.FuncDecl:
funcScope = pass.TypesInfo.Scopes[v.Type]
+ fnSig := pass.TypesInfo.ObjectOf(v.Name).String()
+
+ // Skip checking spans in this function if it's a custom starter/creator.
+ if config.startSpanMatchersCustomRegex != nil && config.startSpanMatchersCustomRegex.MatchString(fnSig) {
+ return
+ }
}
// Maps each span variable to its defining ValueSpec/AssignStmt.
@@ -108,8 +118,12 @@ func runFunc(pass *analysis.Pass, node ast.Node, config *Config) {
// ctx, span := otel.Tracer("app").Start(...)
// ctx, span = otel.Tracer("app").Start(...)
// var ctx, span = otel.Tracer("app").Start(...)
- sType, sStart := isSpanStart(pass.TypesInfo, n)
- if !sStart || !isCall(stack[len(stack)-2]) {
+ sType, isStart := isSpanStart(pass.TypesInfo, n, config.startSpanMatchers)
+ if !isStart {
+ return true
+ }
+
+ if !isCall(stack[len(stack)-2]) {
return true
}
@@ -169,7 +183,7 @@ func runFunc(pass *analysis.Pass, node ast.Node, config *Config) {
for _, sv := range spanVars {
if config.endCheckEnabled {
// Check if there's no End to the span.
- if ret := getMissingSpanCalls(pass, g, sv, "End", func(pass *analysis.Pass, ret *ast.ReturnStmt) *ast.ReturnStmt { return ret }, nil); ret != nil {
+ if ret := getMissingSpanCalls(pass, g, sv, "End", func(_ *analysis.Pass, ret *ast.ReturnStmt) *ast.ReturnStmt { return ret }, nil, config.startSpanMatchers); ret != nil {
pass.ReportRangef(sv.stmt, "%s.End is not called on all paths, possible memory leak", sv.vr.Name())
pass.ReportRangef(ret, "return can be reached without calling %s.End", sv.vr.Name())
}
@@ -177,7 +191,7 @@ func runFunc(pass *analysis.Pass, node ast.Node, config *Config) {
if config.setStatusEnabled {
// Check if there's no SetStatus to the span setting an error.
- if ret := getMissingSpanCalls(pass, g, sv, "SetStatus", getErrorReturn, config.ignoreChecksSignatures); ret != nil {
+ if ret := getMissingSpanCalls(pass, g, sv, "SetStatus", getErrorReturn, config.ignoreChecksSignatures, config.startSpanMatchers); ret != nil {
pass.ReportRangef(sv.stmt, "%s.SetStatus is not called on all paths", sv.vr.Name())
pass.ReportRangef(ret, "return can be reached without calling %s.SetStatus", sv.vr.Name())
}
@@ -185,7 +199,7 @@ func runFunc(pass *analysis.Pass, node ast.Node, config *Config) {
if config.recordErrorEnabled && sv.spanType == spanOpenTelemetry { // RecordError only exists in OpenTelemetry
// Check if there's no RecordError to the span setting an error.
- if ret := getMissingSpanCalls(pass, g, sv, "RecordError", getErrorReturn, config.ignoreChecksSignatures); ret != nil {
+ if ret := getMissingSpanCalls(pass, g, sv, "RecordError", getErrorReturn, config.ignoreChecksSignatures, config.startSpanMatchers); ret != nil {
pass.ReportRangef(sv.stmt, "%s.RecordError is not called on all paths", sv.vr.Name())
pass.ReportRangef(ret, "return can be reached without calling %s.RecordError", sv.vr.Name())
}
@@ -194,25 +208,22 @@ func runFunc(pass *analysis.Pass, node ast.Node, config *Config) {
}
// isSpanStart reports whether n is tracer.Start()
-func isSpanStart(info *types.Info, n ast.Node) (spanType, bool) {
+func isSpanStart(info *types.Info, n ast.Node, startSpanMatchers []spanStartMatcher) (spanType, bool) {
sel, ok := n.(*ast.SelectorExpr)
if !ok {
return spanUnset, false
}
- switch sel.Sel.Name {
- case "Start": // https://github.com/open-telemetry/opentelemetry-go/blob/98b32a6c3a87fbee5d34c063b9096f416b250897/trace/trace.go#L523
- obj, ok := info.Uses[sel.Sel]
- return spanOpenTelemetry, ok && obj.Pkg().Path() == "go.opentelemetry.io/otel/trace"
- case "StartSpan": // https://pkg.go.dev/go.opencensus.io/trace#StartSpan
- obj, ok := info.Uses[sel.Sel]
- return spanOpenCensus, ok && obj.Pkg().Path() == "go.opencensus.io/trace"
- case "StartSpanWithRemoteParent": // https://github.com/census-instrumentation/opencensus-go/blob/v0.24.0/trace/trace_api.go#L66
- obj, ok := info.Uses[sel.Sel]
- return spanOpenCensus, ok && obj.Pkg().Path() == "go.opencensus.io/trace"
- default:
- return spanUnset, false
+ fnSig := info.ObjectOf(sel.Sel).String()
+
+ // Check if the function is a span start function
+ for _, matcher := range startSpanMatchers {
+ if matcher.signature.MatchString(fnSig) {
+ return matcher.spanType, true
+ }
}
+
+ return 0, false
}
func isCall(n ast.Node) bool {
@@ -225,11 +236,16 @@ func getID(node ast.Node) *ast.Ident {
case *ast.ValueSpec:
if len(stmt.Names) > 1 {
return stmt.Names[1]
+ } else if len(stmt.Names) == 1 {
+ return stmt.Names[0]
}
case *ast.AssignStmt:
if len(stmt.Lhs) > 1 {
id, _ := stmt.Lhs[1].(*ast.Ident)
return id
+ } else if len(stmt.Lhs) == 1 {
+ id, _ := stmt.Lhs[0].(*ast.Ident)
+ return id
}
}
return nil
@@ -244,13 +260,14 @@ func getMissingSpanCalls(
selName string,
checkErr func(pass *analysis.Pass, ret *ast.ReturnStmt) *ast.ReturnStmt,
ignoreCheckSig *regexp.Regexp,
+ spanStartMatchers []spanStartMatcher,
) *ast.ReturnStmt {
// blockUses computes "uses" for each block, caching the result.
memo := make(map[*cfg.Block]bool)
blockUses := func(pass *analysis.Pass, b *cfg.Block) bool {
res, ok := memo[b]
if !ok {
- res = usesCall(pass, b.Nodes, sv, selName, ignoreCheckSig, 0)
+ res = usesCall(pass, b.Nodes, sv, selName, ignoreCheckSig, spanStartMatchers, 0)
memo[b] = res
}
return res
@@ -272,7 +289,7 @@ outer:
}
// Is the call "used" in the remainder of its defining block?
- if usesCall(pass, rest, sv, selName, ignoreCheckSig, 0) {
+ if usesCall(pass, rest, sv, selName, ignoreCheckSig, spanStartMatchers, 0) {
return nil
}
@@ -314,7 +331,15 @@ outer:
}
// usesCall reports whether stmts contain a use of the selName call on variable v.
-func usesCall(pass *analysis.Pass, stmts []ast.Node, sv spanVar, selName string, ignoreCheckSig *regexp.Regexp, depth int) bool {
+func usesCall(
+ pass *analysis.Pass,
+ stmts []ast.Node,
+ sv spanVar,
+ selName string,
+ ignoreCheckSig *regexp.Regexp,
+ startSpanMatchers []spanStartMatcher,
+ depth int,
+) bool {
if depth > 1 { // for perf reasons, do not dive too deep thru func literals, just one level deep check.
return false
}
@@ -329,7 +354,7 @@ func usesCall(pass *analysis.Pass, stmts []ast.Node, sv spanVar, selName string,
cfgs := pass.ResultOf[ctrlflow.Analyzer].(*ctrlflow.CFGs)
g := cfgs.FuncLit(n)
if g != nil && len(g.Blocks) > 0 {
- return usesCall(pass, g.Blocks[0].Nodes, sv, selName, ignoreCheckSig, depth+1)
+ return usesCall(pass, g.Blocks[0].Nodes, sv, selName, ignoreCheckSig, startSpanMatchers, depth+1)
}
return false
@@ -352,8 +377,8 @@ func usesCall(pass *analysis.Pass, stmts []ast.Node, sv spanVar, selName string,
stack = append(stack, n) // push
// Check whether the span was assigned over top of its old value.
- _, spanStart := isSpanStart(pass.TypesInfo, n)
- if spanStart {
+ _, isStart := isSpanStart(pass.TypesInfo, n, startSpanMatchers)
+ if isStart {
if id := getID(stack[len(stack)-3]); id != nil && id.Obj.Decl == sv.id.Obj.Decl {
reAssigned = true
return false
diff --git a/vendor/github.com/karamaru-alpha/copyloopvar/copyloopvar.go b/vendor/github.com/karamaru-alpha/copyloopvar/copyloopvar.go
index 36bda8b145..79dc6afcc4 100644
--- a/vendor/github.com/karamaru-alpha/copyloopvar/copyloopvar.go
+++ b/vendor/github.com/karamaru-alpha/copyloopvar/copyloopvar.go
@@ -10,7 +10,7 @@ import (
"golang.org/x/tools/go/ast/inspector"
)
-var ignoreAlias bool
+var checkAlias bool
func NewAnalyzer() *analysis.Analyzer {
analyzer := &analysis.Analyzer{
@@ -21,19 +21,15 @@ func NewAnalyzer() *analysis.Analyzer {
inspect.Analyzer,
},
}
- analyzer.Flags.BoolVar(&ignoreAlias, "ignore-alias", false, "ignore aliasing of loop variables")
+ analyzer.Flags.BoolVar(&checkAlias, "check-alias", false, "check all assigning the loop variable to another variable")
return analyzer
}
func run(pass *analysis.Pass) (any, error) {
- inspect := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
-
- nodeFilter := []ast.Node{
+ pass.ResultOf[inspect.Analyzer].(*inspector.Inspector).Preorder([]ast.Node{
(*ast.RangeStmt)(nil),
(*ast.ForStmt)(nil),
- }
-
- inspect.Preorder(nodeFilter, func(n ast.Node) {
+ }, func(n ast.Node) {
switch node := n.(type) {
case *ast.RangeStmt:
checkRangeStmt(pass, node)
@@ -72,7 +68,7 @@ func checkRangeStmt(pass *analysis.Pass, rangeStmt *ast.RangeStmt) {
if right.Name != key.Name && (value == nil || right.Name != value.Name) {
continue
}
- if ignoreAlias {
+ if !checkAlias {
left, ok := assignStmt.Lhs[i].(*ast.Ident)
if !ok {
continue
@@ -119,7 +115,7 @@ func checkForStmt(pass *analysis.Pass, forStmt *ast.ForStmt) {
if _, ok := initVarNameMap[right.Name]; !ok {
continue
}
- if ignoreAlias {
+ if !checkAlias {
left, ok := assignStmt.Lhs[i].(*ast.Ident)
if !ok {
continue
diff --git a/vendor/github.com/lasiar/canonicalheader/.gitignore b/vendor/github.com/lasiar/canonicalheader/.gitignore
new file mode 100644
index 0000000000..723ef36f4e
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/.gitignore
@@ -0,0 +1 @@
+.idea
\ No newline at end of file
diff --git a/vendor/github.com/lasiar/canonicalheader/.golangci.yaml b/vendor/github.com/lasiar/canonicalheader/.golangci.yaml
new file mode 100644
index 0000000000..262a598e4c
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/.golangci.yaml
@@ -0,0 +1,810 @@
+# See: https://olegk.dev/go-linters-configuration-the-right-version
+
+run:
+ # Depends on your hardware, my laptop can survive 8 threads.
+ concurrency: 8
+
+ # I really care about the result, so I'm fine to wait for it.
+ timeout: 30m
+
+ # Fail if the error was met.
+ issues-exit-code: 1
+
+ # This is very important, bugs in tests are not acceptable either.
+ tests: true
+
+ # In most cases this can be empty but there is a popular pattern
+ # to keep integration tests under this tag. Such tests often require
+ # additional setups like Postgres, Redis etc and are run separately.
+ # (to be honest I don't find this useful but I have such tags)
+ build-tags:
+ - integration
+
+ # Up to you, good for a big enough repo with no-Go code.
+ skip-dirs:
+ # - src/external_libs
+
+ # When enabled linter will skip directories: vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
+ # Skipping `examples` sounds scary to me but skipping `testdata` sounds ok.
+ skip-dirs-use-default: false
+
+ # Autogenerated files can be skipped (I'm looking at you gRPC).
+ # AFAIK autogen files are skipped but skipping the whole directory should be somewhat faster.
+ #skip-files:
+ # - "protobuf/.*.go"
+
+ # With the read-only mode linter will fail if go.mod file is outdated.
+ modules-download-mode: readonly
+
+ # Till today I didn't know this param exists, never ran 2 golangci-lint at once.
+ allow-parallel-runners: false
+
+ # Keep this empty to use the Go version from the go.mod file.
+ go: ""
+
+linters:
+ # Set to true runs only fast linters.
+ # Good option for 'lint on save', pre-commit hook or CI.
+ fast: false
+
+ enable:
+ # Check for pass []any as any in variadic func(...any).
+ # Rare case but saved me from debugging a few times.
+ - asasalint
+
+ # I prefer plane ASCII identifiers.
+ # Symbol `∆` instead of `delta` looks cool but no thanks.
+ - asciicheck
+
+ # Checks for dangerous unicode character sequences.
+ # Super rare but why not to be a bit paranoid?
+ - bidichk
+
+ # Checks whether HTTP response body is closed successfully.
+ - bodyclose
+
+ # Check whether the function uses a non-inherited context.
+ - contextcheck
+
+ # Check for two durations multiplied together.
+ - durationcheck
+
+ # Forces to not skip error check.
+ - errcheck
+
+ # Checks `Err-` prefix for var and `-Error` suffix for error type.
+ - errname
+
+ # Suggests to use `%w` for error-wrapping.
+ - errorlint
+
+ # Checks for pointers to enclosing loop variables.
+ - exportloopref
+
+ # As you already know I'm a co-author. It would be strange to not use
+ # one of my warmly loved projects.
+ - gocritic
+
+ # Forces to put `.` at the end of the comment. Code is poetry.
+ - godot
+
+ # Might not be that important but I prefer to keep all of them.
+ # `gofumpt` is amazing, kudos to Daniel Marti https://github.com/mvdan/gofumpt
+ - gofmt
+ - gofumpt
+ - goimports
+
+ # Allow or ban replace directives in go.mod
+ # or force explanation for retract directives.
+ - gomoddirectives
+
+ # Powerful security-oriented linter. But requires some time to
+ # configure it properly, see https://github.com/securego/gosec#available-rules
+ - gosec
+
+ # Linter that specializes in simplifying code.
+ - gosimple
+
+ # Official Go tool. Must have.
+ - govet
+
+ # Detects when assignments to existing variables are not used
+ # Last week I caught a bug with it.
+ - ineffassign
+
+ # Even with deprecation notice I find it useful.
+ # There are situations when instead of io.ReaderCloser
+ # I can use io.Reader. A small but good improvement.
+ - interfacer
+
+ # Fix all the misspells, amazing thing.
+ - misspell
+
+ # Finds naked/bare returns and requires change them.
+ - nakedret
+
+ # Both require a bit more explicit returns.
+ - nilerr
+ - nilnil
+
+ # Finds sending HTTP request without context.Context.
+ - noctx
+
+ # Forces comment why another check is disabled.
+ # Better not to have //nolint: at all ;)
+ - nolintlint
+
+ # Finds slices that could potentially be pre-allocated.
+ # Small performance win + cleaner code.
+ - prealloc
+
+ # Finds shadowing of Go's predeclared identifiers.
+ # I hear a lot of complaints from junior developers.
+ # But after some time they find it very useful.
+ - predeclared
+
+ # Lint your Prometheus metrics name.
+ - promlinter
+
+ # Checks that package variables are not reassigned.
+ # Super rare case but can catch bad things (like `io.EOF = nil`)
+ - reassign
+
+ # Drop-in replacement of `golint`.
+ - revive
+
+ # Somewhat similar to `bodyclose` but for `database/sql` package.
+ - rowserrcheck
+ - sqlclosecheck
+
+ # I have found that it's not the same as staticcheck binary :\
+ - staticcheck
+
+ # Is a replacement for `golint`, similar to `revive`.
+ - stylecheck
+
+ # Check struct tags.
+ - tagliatelle
+
+ # Test-related checks. All of them are good.
+ - tenv
+ - testableexamples
+ - thelper
+ - tparallel
+
+ # Remove unnecessary type conversions, make code cleaner
+ - unconvert
+
+ # Might be noisy but better to know what is unused
+ - unparam
+
+ # Must have. Finds unused declarations.
+ - unused
+
+ # Detect the possibility to use variables/constants from stdlib.
+ - usestdlibvars
+
+ # Finds wasted assignment statements.
+ - wastedassign
+
+ disable:
+ # Detects struct contained context.Context field. Not a problem.
+ - containedctx
+
+ # Checks function and package cyclomatic complexity.
+ # I can have a long but trivial switch-case.
+ #
+ # Cyclomatic complexity is a measurement, not a goal.
+ # (c) Bryan C. Mills / https://github.com/bcmills
+ - cyclop
+
+ # Abandoned, replaced by `unused`.
+ - deadcode
+
+ # Check declaration order of types, consts, vars and funcs.
+ # I like it but I don't use it.
+ - decorder
+
+ # Checks if package imports are in a list of acceptable packages.
+ # I'm very picky about what I import, so no automation.
+ - depguard
+
+ # Checks assignments with too many blank identifiers. Very rare.
+ - dogsled
+
+ # Tool for code clone detection.
+ - dupl
+
+ # Find duplicate words, rare.
+ - dupword
+
+ # I'm fine to check the error from json.Marshal ¯\_(ツ)_/¯
+ - errchkjson
+
+ # All SQL queries MUST BE covered with tests.
+ - execinquery
+
+ # Forces to handle more cases. Cool but noisy.
+ - exhaustive
+ - exhaustivestruct # Deprecated, replaced by check below.
+ - exhaustruct
+
+ # Forbids some identifiers. I don't have a case for it.
+ - forbidigo
+
+ # Finds forced type assertions, very good for juniors.
+ - forcetypeassert
+
+ # I might have long but a simple function.
+ - funlen
+
+ # Imports order. I do this manually ¯\_(ツ)_/¯
+ - gci
+
+ # I'm not a fan of ginkgo and gomega packages.
+ - ginkgolinter
+
+ # Checks that compiler directive comments (//go:) are valid. Rare.
+ - gocheckcompilerdirectives
+
+ # Globals and init() are ok.
+ - gochecknoglobals
+ - gochecknoinits
+
+ # Same as `cyclop` linter (see above)
+ - gocognit
+ - goconst
+ - gocyclo
+
+ # TODO and friends are ok.
+ - godox
+
+ # Check the error handling expressions. Too noisy.
+ - goerr113
+
+ # I don't use file headers.
+ - goheader
+
+ # 1st Go linter, deprecated :( use `revive`.
+ - golint
+
+ # Reports magic consts. Might be noisy but still good.
+ - gomnd
+
+ # Allowed/blocked packages to import. I prefer to do it manually.
+ - gomodguard
+
+ # Printf-like functions must have -f.
+ - goprintffuncname
+
+ # Groupt declarations, I prefer manually.
+ - grouper
+
+ # Deprecated.
+ - ifshort
+
+ # Checks imports aliases, rare.
+ - importas
+
+ # Forces tiny interfaces, very subjective.
+ - interfacebloat
+
+ # Accept interfaces, return types. Not always.
+ - ireturn
+
+ # I don't set line length. 120 is fine by the way ;)
+ - lll
+
+ # Some log checkers, might be useful.
+ - loggercheck
+
+ # Maintainability index of each function, subjective.
+ - maintidx
+
+ # Slice declarations with non-zero initial length. Not my case.
+ - makezero
+
+ # Deprecated. Use govet `fieldalignment`.
+ - maligned
+
+ # Enforce tags in un/marshaled structs. Cool but not my case.
+ - musttag
+
+ # Deeply nested if statements, subjective.
+ - nestif
+
+ # Forces newlines in some places.
+ - nlreturn
+
+ # Reports all named returns, not that bad.
+ - nonamedreturns
+
+ # Deprecated. Replaced by `revive`.
+ - nosnakecase
+
+ # Finds misuse of Sprintf with host:port in a URL. Cool but rare.
+ - nosprintfhostport
+
+ # I don't use t.Parallel() that much.
+ - paralleltest
+
+ # Often non-`_test` package is ok.
+ - testpackage
+
+ # Compiler can do it too :)
+ - typecheck
+
+ # I'm fine with long variable names with a small scope.
+ - varnamelen
+
+ # gofmt,gofumpt covers that (from what I know).
+ - whitespace
+
+ # Don't find it useful to wrap all errors from external packages.
+ - wrapcheck
+
+ # Forces you to use empty lines. Great if configured correctly.
+ # I mean there is an agreement in a team.
+ - wsl
+
+linters-settings:
+ revive:
+ # Maximum number of open files at the same time.
+ # See https://github.com/mgechev/revive#command-line-flags
+ # Defaults to unlimited.
+ max-open-files: 2048
+ # When set to false, ignores files with "GENERATED" header, similar to golint.
+ # See https://github.com/mgechev/revive#available-rules for details.
+ # Default: false
+ ignore-generated-header: true
+ # Sets the default severity.
+ # See https://github.com/mgechev/revive#configuration
+ # Default: warning
+ severity: error
+ # Enable all available rules.
+ # Default: false
+ enable-all-rules: true
+ # Sets the default failure confidence.
+ # This means that linting errors with less than 0.8 confidence will be ignored.
+ # Default: 0.8
+ confidence: 0.1
+ rules:
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#add-constant
+ - name: add-constant
+ severity: warning
+ disabled: false
+ arguments:
+ - maxLitCount: "3"
+ allowStrs: '""'
+ allowInts: "0,1,2"
+ allowFloats: "0.0,0.,1.0,1.,2.0,2."
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#argument-limit
+ - name: argument-limit
+ severity: warning
+ disabled: false
+ arguments: [4]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#atomic
+ - name: atomic
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#banned-characters
+ - name: banned-characters
+ severity: warning
+ disabled: false
+ arguments: ["Ω", "Σ", "σ", "7"]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bare-return
+ - name: bare-return
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#blank-imports
+ - name: blank-imports
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr
+ - name: bool-literal-in-expr
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#call-to-gc
+ - name: call-to-gc
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cognitive-complexity
+ - name: cognitive-complexity
+ severity: warning
+ disabled: true
+ arguments: [7]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#comment-spacings
+ - name: comment-spacings
+ severity: warning
+ disabled: false
+ arguments:
+ - mypragma
+ - otherpragma
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#confusing-naming
+ - name: confusing-naming
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#confusing-results
+ - name: confusing-results
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr
+ - name: constant-logical-expr
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument
+ - name: context-as-argument
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type
+ - name: context-keys-type
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cyclomatic
+ - name: cyclomatic
+ severity: warning
+ disabled: true
+ arguments: [3]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#datarace
+ - name: datarace
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit
+ - name: deep-exit
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer
+ - name: defer
+ severity: warning
+ disabled: false
+ arguments:
+ - ["call-chain", "loop"]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#dot-imports
+ - name: dot-imports
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports
+ - name: duplicated-imports
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return
+ - name: early-return
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-block
+ - name: empty-block
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines
+ - name: empty-lines
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#enforce-map-style
+ - name: enforce-map-style
+ severity: warning
+ disabled: false
+ arguments:
+ - "make"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming
+ - name: error-naming
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return
+ - name: error-return
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-length
+ - name: function-length
+ severity: warning
+ disabled: true
+ arguments: [10, 0]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings
+ - name: error-strings
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf
+ - name: errorf
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported
+ - name: exported
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#file-header
+ - name: file-header
+ severity: warning
+ disabled: true
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#flag-parameter
+ - name: flag-parameter
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-result-limit
+ - name: function-result-limit
+ severity: warning
+ disabled: false
+ arguments: [2]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#get-return
+ - name: get-return
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches
+ - name: identical-branches
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return
+ - name: if-return
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement
+ - name: increment-decrement
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow
+ - name: indent-error-flow
+ severity: warning
+ disabled: false
+ arguments:
+ - "preserveScope"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-alias-naming
+ - name: import-alias-naming
+ severity: warning
+ disabled: false
+ arguments:
+ - "^[a-z][a-z0-9]{0,}$"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#imports-blacklist
+ - name: imports-blacklist
+ severity: warning
+ disabled: false
+ arguments:
+ - "crypto/md5"
+ - "crypto/sha1"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-shadowing
+ - name: import-shadowing
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#line-length-limit
+ - name: line-length-limit
+ severity: warning
+ disabled: true
+ arguments: [80]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#max-public-structs
+ - name: max-public-structs
+ severity: warning
+ disabled: false
+ arguments: [3]
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-parameter
+ - name: modifies-parameter
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-value-receiver
+ - name: modifies-value-receiver
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#nested-structs
+ - name: nested-structs
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#optimize-operands-order
+ - name: optimize-operands-order
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments
+ - name: package-comments
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range
+ - name: range
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure
+ - name: range-val-in-closure
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address
+ - name: range-val-address
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#receiver-naming
+ - name: receiver-naming
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redundant-import-alias
+ - name: redundant-import-alias
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id
+ - name: redefines-builtin-id
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-of-int
+ - name: string-of-int
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format
+ - name: string-format
+ severity: warning
+ disabled: false
+ arguments:
+ - - 'core.WriteError[1].Message'
+ - '/^([^A-Z]|$)/'
+ - must not start with a capital letter
+ - - 'fmt.Errorf[0]'
+ - '/(^|[^\.!?])$/'
+ - must not end in punctuation
+ - - panic
+ - '/^[^\n]*$/'
+ - must not contain line breaks
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag
+ - name: struct-tag
+ arguments:
+ - "json,inline"
+ - "bson,outline,gnu"
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else
+ - name: superfluous-else
+ severity: warning
+ disabled: false
+ arguments:
+ - "preserveScope"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal
+ - name: time-equal
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-naming
+ - name: time-naming
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming
+ - name: var-naming
+ severity: warning
+ disabled: false
+ arguments:
+ - ["ID"] # AllowList
+ - ["VM"] # DenyList
+ - - upperCaseConst: true
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration
+ - name: var-declaration
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion
+ - name: unconditional-recursion
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-naming
+ - name: unexported-naming
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
+ - name: unexported-return
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
+ - name: unhandled-error
+ severity: warning
+ disabled: false
+ arguments:
+ - "fmt.Printf"
+ - "myFunction"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt
+ - name: unnecessary-stmt
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unreachable-code
+ - name: unreachable-code
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
+ - name: unused-parameter
+ severity: warning
+ disabled: false
+ arguments:
+ - allowRegex: "^_"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-receiver
+ - name: unused-receiver
+ severity: warning
+ disabled: false
+ arguments:
+ - allowRegex: "^_"
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
+ - name: useless-break
+ severity: warning
+ disabled: false
+ # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value
+ - name: waitgroup-by-value
+ severity: warning
+ disabled: false
+ # I'm biased and I'm enabling more than 100 checks
+ # Might be too much for you. See https://go-critic.com/overview.html
+ gocritic:
+ enabled-tags:
+ - diagnostic
+ - experimental
+ - opinionated
+ - performance
+ - style
+ disabled-checks:
+ # These 3 will detect many cases, but they do sense
+ # if it's performance oriented code
+ - hugeParam
+ - rangeExprCopy
+ - rangeValCopy
+
+ errcheck:
+ # Report `a := b.(MyStruct)` when `a, ok := ...` should be.
+ check-type-assertions: true # Default: false
+
+ # Report skipped checks:`num, _ := strconv.Atoi(numStr)`.
+ check-blank: true # Default: false
+
+ # Function to skip.
+ exclude-functions:
+ - io/ioutil.ReadFile
+ - io.Copy(*bytes.Buffer)
+ - io.Copy(os.Stdout)
+
+ govet:
+ disable:
+ - fieldalignment # I'm ok to waste some bytes
+
+ nakedret:
+ # No naked returns, ever.
+ max-func-lines: 1 # Default: 30
+
+ tagliatelle:
+ case:
+ rules:
+ json: snake # why it's not a `snake` by default?!
+ yaml: snake # why it's not a `snake` by default?!
+ xml: camel
+ bson: camel
+ avro: snake
+ mapstructure: kebab
+
+# See also https://gist.github.com/cristaloleg/dc29ca0ef2fb554de28d94c3c6f6dc88
+
+output:
+ # I prefer the simplest one: `line-number` and saving to `lint.txt`
+ #
+ # The `tab` also looks good and with the next release I will switch to it
+ # (ref: https://github.com/golangci/golangci-lint/issues/3728)
+ #
+ # There are more formats which can be used on CI or by your IDE.
+ format: line-number
+
+ # I do not find this useful, parameter above already enables filepath
+ # with a line and column. For me, it's easier to follow the path and
+ # see the line in an IDE where I see more code and understand it better.
+ print-issued-lines: false
+
+ # Must have. Easier to understand the output.
+ print-linter-name: true
+
+ # No, no skips, everything should be reported.
+ uniq-by-line: false
+
+ # To be honest no idea when this can be needed, maybe a multi-module setup?
+ path-prefix: ""
+
+ # Slightly easier to follow the results + getting deterministic output.
+ sort-results: true
+
+issues:
+ # I found it strange to skip the errors, setting 0 to have all the results.
+ max-issues-per-linter: 0
+
+ # Same here, nothing should be skipped to not miss errors.
+ max-same-issues: 0
+
+ # When set to `true` linter will analyze only new code which are
+ # not committed or after some specific revision. This is a cool
+ # feature when you're going to introduce linter into a big project.
+ # But I prefer going gradually package by package.
+ # So, it's set to `false` to scan all code.
+ new: false
+
+ # 2 other params regarding git integration
+
+ # Even with a recent GPT-4 release I still believe that
+ # I know better how to do my job and fix the suggestions.
+ fix: false
\ No newline at end of file
diff --git a/vendor/github.com/lasiar/canonicalheader/.goreleaser.yaml b/vendor/github.com/lasiar/canonicalheader/.goreleaser.yaml
new file mode 100644
index 0000000000..ada67063eb
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/.goreleaser.yaml
@@ -0,0 +1,18 @@
+builds:
+ - main: ./cmd/canonicalheader
+ env:
+ - CGO_ENABLED=0
+ flags:
+ - -trimpath
+ ldflags:
+ - -s -w
+ targets:
+ - darwin_amd64
+ - darwin_arm64
+ - linux_amd64
+ - windows_amd64
+
+archives:
+ - format_overrides:
+ - goos: windows
+ format: zip
\ No newline at end of file
diff --git a/vendor/github.com/lasiar/canonicalheader/LICENCE b/vendor/github.com/lasiar/canonicalheader/LICENCE
new file mode 100644
index 0000000000..5b93b736c7
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/LICENCE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Roman Chaliy
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/vendor/github.com/lasiar/canonicalheader/README.md b/vendor/github.com/lasiar/canonicalheader/README.md
new file mode 100644
index 0000000000..00ce0bdc40
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/README.md
@@ -0,0 +1,65 @@
+# canonicalheader
+
+[![CI](https://github.com/lasiar/canonicalheader/actions/workflows/go.yml/badge.svg)](https://github.com/lasiar/canonicalheader/actions/workflows/go.yml)
+
+Golang linter for check canonical header.
+
+### Example
+
+before
+
+```go
+package main
+
+import (
+ "net/http"
+)
+
+const testHeader = "testHeader"
+
+func main() {
+ v := http.Header{}
+ v.Get(testHeader)
+
+ v.Get("Test-HEader")
+ v.Set("Test-HEader", "value")
+ v.Add("Test-HEader", "value")
+ v.Del("Test-HEader")
+ v.Values("Test-HEader")
+
+ v.Set("Test-Header", "value")
+ v.Add("Test-Header", "value")
+ v.Del("Test-Header")
+ v.Values("Test-Header")
+}
+
+```
+
+after
+
+```go
+package main
+
+import (
+ "net/http"
+)
+
+const testHeader = "testHeader"
+
+func main() {
+ v := http.Header{}
+ v.Get(testHeader)
+
+ v.Get("Test-Header")
+ v.Set("Test-Header", "value")
+ v.Add("Test-Header", "value")
+ v.Del("Test-Header")
+ v.Values("Test-Header")
+
+ v.Set("Test-Header", "value")
+ v.Add("Test-Header", "value")
+ v.Del("Test-Header")
+ v.Values("Test-Header")
+}
+
+```
diff --git a/vendor/github.com/lasiar/canonicalheader/analyzer.go b/vendor/github.com/lasiar/canonicalheader/analyzer.go
new file mode 100644
index 0000000000..8b244d8a28
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/analyzer.go
@@ -0,0 +1,148 @@
+package canonicalheader
+
+import (
+ "fmt"
+ "go/ast"
+ "go/token"
+ "go/types"
+ "net/http"
+ "strconv"
+ "unsafe"
+
+ "github.com/go-toolsmith/astcast"
+ "golang.org/x/tools/go/analysis"
+ "golang.org/x/tools/go/analysis/passes/inspect"
+ "golang.org/x/tools/go/ast/inspector"
+ "golang.org/x/tools/go/types/typeutil"
+)
+
+const (
+ pkgPath = "net/http"
+ name = "Header"
+)
+
+var Analyzer = &analysis.Analyzer{
+ Name: "canonicalheader",
+ Doc: "canonicalheader checks whether net/http.Header uses canonical header",
+ Run: run,
+ Requires: []*analysis.Analyzer{inspect.Analyzer},
+}
+
+func run(pass *analysis.Pass) (any, error) {
+ spctor, ok := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
+ if !ok {
+ return nil, fmt.Errorf("want %T, got %T", spctor, pass.ResultOf[inspect.Analyzer])
+ }
+
+ nodeFilter := []ast.Node{
+ (*ast.CallExpr)(nil),
+ }
+ var outerErr error
+
+ spctor.Preorder(nodeFilter, func(n ast.Node) {
+ if outerErr != nil {
+ return
+ }
+
+ callExp, ok := n.(*ast.CallExpr)
+ if !ok {
+ return
+ }
+
+ fn, ok := typeutil.Callee(pass.TypesInfo, callExp).(*types.Func)
+ if !ok {
+ return
+ }
+
+ signature, ok := fn.Type().(*types.Signature)
+ if !ok {
+ return
+ }
+
+ recv := signature.Recv()
+ if recv == nil {
+ return
+ }
+
+ object, ok := recv.Type().(*types.Named)
+ if !ok {
+ return
+ }
+
+ if !isHTTPHeader(object) {
+ return
+ }
+
+ if !isValidMethod(astcast.ToSelectorExpr(callExp.Fun).Sel.Name) {
+ return
+ }
+
+ arg, ok := callExp.Args[0].(*ast.BasicLit)
+ if !ok {
+ return
+ }
+
+ if arg.Kind != token.STRING {
+ return
+ }
+
+ if len(arg.Value) < 2 {
+ return
+ }
+
+ quote := arg.Value[0]
+ headerKeyOriginal, err := strconv.Unquote(arg.Value)
+ if err != nil {
+ outerErr = err
+ return
+ }
+
+ headerKeyCanonical := http.CanonicalHeaderKey(headerKeyOriginal)
+ if headerKeyOriginal == headerKeyCanonical {
+ return
+ }
+
+ newText := make([]byte, 0, len(headerKeyCanonical)+2)
+ newText = append(newText, quote)
+ newText = append(newText, unsafe.Slice(unsafe.StringData(headerKeyCanonical), len(headerKeyCanonical))...)
+ newText = append(newText, quote)
+
+ pass.Report(
+ analysis.Diagnostic{
+ Pos: arg.Pos(),
+ End: arg.End(),
+ Message: fmt.Sprintf("non-canonical header %q, instead use: %q", headerKeyOriginal, headerKeyCanonical),
+ SuggestedFixes: []analysis.SuggestedFix{
+ {
+ Message: fmt.Sprintf("should replace %q with %q", headerKeyOriginal, headerKeyCanonical),
+ TextEdits: []analysis.TextEdit{
+ {
+ Pos: arg.Pos(),
+ End: arg.End(),
+ NewText: newText,
+ },
+ },
+ },
+ },
+ },
+ )
+ })
+
+ return nil, outerErr
+}
+
+func isHTTPHeader(named *types.Named) bool {
+ return named.Obj() != nil &&
+ named.Obj().Pkg() != nil &&
+ named.Obj().Pkg().Path() == pkgPath &&
+ named.Obj().Name() == name
+}
+
+func isValidMethod(name string) bool {
+ switch name {
+ case "Get", "Set", "Add", "Del", "Values":
+ return true
+ default:
+ return false
+ }
+}
diff --git a/vendor/github.com/lasiar/canonicalheader/makefile b/vendor/github.com/lasiar/canonicalheader/makefile
new file mode 100644
index 0000000000..2b91254b56
--- /dev/null
+++ b/vendor/github.com/lasiar/canonicalheader/makefile
@@ -0,0 +1,7 @@
+.PHONY:
+
+test:
+ go test -v -race ./...
+
+linter:
+ golangci-lint -v run ./...
diff --git a/vendor/github.com/leonklingele/grouper/pkg/analyzer/analyzer.go b/vendor/github.com/leonklingele/grouper/pkg/analyzer/analyzer.go
index 9852c78380..7d8c0c4f0d 100644
--- a/vendor/github.com/leonklingele/grouper/pkg/analyzer/analyzer.go
+++ b/vendor/github.com/leonklingele/grouper/pkg/analyzer/analyzer.go
@@ -15,7 +15,9 @@ import (
const (
Name = "grouper"
- Doc = `expression group analyzer: require 'import', 'const', 'var' and/or 'type' declaration groups`
+ Doc = `analyze expression groups
+
+Require 'import', 'const', 'var' and/or 'type' declaration groups.`
)
func New() *analysis.Analyzer {
diff --git a/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go b/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go
index ce7dd4af17..76df2d5b6a 100644
--- a/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go
+++ b/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go
@@ -57,7 +57,11 @@ type SeenTracker struct {
currentIdx int
}
-var pool sync.Pool
+var pool = sync.Pool{
+ New: func() interface{} {
+ return &SeenTracker{}
+ },
+}
func (s *SeenTracker) reset() {
// Always contains a root element at index 0.
@@ -331,12 +335,6 @@ func (s *SeenTracker) checkArray(node *unstable.Node) (first bool, err error) {
}
func (s *SeenTracker) checkInlineTable(node *unstable.Node) (first bool, err error) {
- if pool.New == nil {
- pool.New = func() interface{} {
- return &SeenTracker{}
- }
- }
-
s = pool.Get().(*SeenTracker)
s.reset()
diff --git a/vendor/github.com/pelletier/go-toml/v2/marshaler.go b/vendor/github.com/pelletier/go-toml/v2/marshaler.go
index ffc9927208..7f4e20c128 100644
--- a/vendor/github.com/pelletier/go-toml/v2/marshaler.go
+++ b/vendor/github.com/pelletier/go-toml/v2/marshaler.go
@@ -1025,6 +1025,10 @@ func (enc *Encoder) encodeSliceAsArrayTable(b []byte, ctx encoderCtx, v reflect.
scratch = enc.commented(ctx.commented, scratch)
+ if enc.indentTables {
+ scratch = enc.indent(ctx.indent, scratch)
+ }
+
scratch = append(scratch, "[["...)
for i, k := range ctx.parentKey {
diff --git a/vendor/github.com/polyfloyd/go-errorlint/errorlint/allowed.go b/vendor/github.com/polyfloyd/go-errorlint/errorlint/allowed.go
index 8bfb4c9b2a..7490ceff63 100644
--- a/vendor/github.com/polyfloyd/go-errorlint/errorlint/allowed.go
+++ b/vendor/github.com/polyfloyd/go-errorlint/errorlint/allowed.go
@@ -7,96 +7,123 @@ import (
"strings"
)
-var allowedErrors = []struct {
- err string
- fun string
-}{
- // pkg/archive/tar
- {err: "io.EOF", fun: "(*archive/tar.Reader).Next"},
- {err: "io.EOF", fun: "(*archive/tar.Reader).Read"},
- // pkg/bufio
- {err: "io.EOF", fun: "(*bufio.Reader).Discard"},
- {err: "io.EOF", fun: "(*bufio.Reader).Peek"},
- {err: "io.EOF", fun: "(*bufio.Reader).Read"},
- {err: "io.EOF", fun: "(*bufio.Reader).ReadByte"},
- {err: "io.EOF", fun: "(*bufio.Reader).ReadBytes"},
- {err: "io.EOF", fun: "(*bufio.Reader).ReadLine"},
- {err: "io.EOF", fun: "(*bufio.Reader).ReadSlice"},
- {err: "io.EOF", fun: "(*bufio.Reader).ReadString"},
- {err: "io.EOF", fun: "(*bufio.Scanner).Scan"},
- // pkg/bytes
- {err: "io.EOF", fun: "(*bytes.Buffer).Read"},
- {err: "io.EOF", fun: "(*bytes.Buffer).ReadByte"},
- {err: "io.EOF", fun: "(*bytes.Buffer).ReadBytes"},
- {err: "io.EOF", fun: "(*bytes.Buffer).ReadRune"},
- {err: "io.EOF", fun: "(*bytes.Buffer).ReadString"},
- {err: "io.EOF", fun: "(*bytes.Reader).Read"},
- {err: "io.EOF", fun: "(*bytes.Reader).ReadAt"},
- {err: "io.EOF", fun: "(*bytes.Reader).ReadByte"},
- {err: "io.EOF", fun: "(*bytes.Reader).ReadRune"},
- {err: "io.EOF", fun: "(*bytes.Reader).ReadString"},
- // pkg/database/sql
- {err: "database/sql.ErrNoRows", fun: "(*database/sql.Row).Scan"},
- // pkg/debug/elf
- {err: "io.EOF", fun: "debug/elf.Open"},
- {err: "io.EOF", fun: "debug/elf.NewFile"},
- // pkg/io
- {err: "io.EOF", fun: "(io.ReadCloser).Read"},
- {err: "io.EOF", fun: "(io.Reader).Read"},
- {err: "io.EOF", fun: "(io.ReaderAt).ReadAt"},
- {err: "io.EOF", fun: "(*io.LimitedReader).Read"},
- {err: "io.EOF", fun: "(*io.SectionReader).Read"},
- {err: "io.EOF", fun: "(*io.SectionReader).ReadAt"},
- {err: "io.ErrClosedPipe", fun: "(*io.PipeWriter).Write"},
- {err: "io.ErrShortBuffer", fun: "io.ReadAtLeast"},
- {err: "io.ErrUnexpectedEOF", fun: "io.ReadAtLeast"},
- {err: "io.EOF", fun: "io.ReadFull"},
- {err: "io.ErrUnexpectedEOF", fun: "io.ReadFull"},
- // pkg/net/http
- {err: "net/http.ErrServerClosed", fun: "(*net/http.Server).ListenAndServe"},
- {err: "net/http.ErrServerClosed", fun: "(*net/http.Server).ListenAndServeTLS"},
- {err: "net/http.ErrServerClosed", fun: "(*net/http.Server).Serve"},
- {err: "net/http.ErrServerClosed", fun: "(*net/http.Server).ServeTLS"},
- {err: "net/http.ErrServerClosed", fun: "net/http.ListenAndServe"},
- {err: "net/http.ErrServerClosed", fun: "net/http.ListenAndServeTLS"},
- {err: "net/http.ErrServerClosed", fun: "net/http.Serve"},
- {err: "net/http.ErrServerClosed", fun: "net/http.ServeTLS"},
- // pkg/os
- {err: "io.EOF", fun: "(*os.File).Read"},
- {err: "io.EOF", fun: "(*os.File).ReadAt"},
- {err: "io.EOF", fun: "(*os.File).ReadDir"},
- {err: "io.EOF", fun: "(*os.File).Readdir"},
- {err: "io.EOF", fun: "(*os.File).Readdirnames"},
- // pkg/strings
- {err: "io.EOF", fun: "(*strings.Reader).Read"},
- {err: "io.EOF", fun: "(*strings.Reader).ReadAt"},
- {err: "io.EOF", fun: "(*strings.Reader).ReadByte"},
- {err: "io.EOF", fun: "(*strings.Reader).ReadRune"},
- // pkg/context
- {err: "context.DeadlineExceeded", fun: "(context.Context).Err"},
- {err: "context.Canceled", fun: "(context.Context).Err"},
+type AllowPair struct {
+ Err string
+ Fun string
}
-var allowedErrorWildcards = []struct {
- err string
- fun string
-}{
+var allowedErrorsMap = make(map[string]map[string]struct{})
+
+func setDefaultAllowedErrors() {
+ allowedMapAppend([]AllowPair{
+ // pkg/archive/tar
+ {Err: "io.EOF", Fun: "(*archive/tar.Reader).Next"},
+ {Err: "io.EOF", Fun: "(*archive/tar.Reader).Read"},
+ // pkg/bufio
+ {Err: "io.EOF", Fun: "(*bufio.Reader).Discard"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).Peek"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).Read"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).ReadByte"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).ReadBytes"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).ReadLine"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).ReadSlice"},
+ {Err: "io.EOF", Fun: "(*bufio.Reader).ReadString"},
+ {Err: "io.EOF", Fun: "(*bufio.Scanner).Scan"},
+ // pkg/bytes
+ {Err: "io.EOF", Fun: "(*bytes.Buffer).Read"},
+ {Err: "io.EOF", Fun: "(*bytes.Buffer).ReadByte"},
+ {Err: "io.EOF", Fun: "(*bytes.Buffer).ReadBytes"},
+ {Err: "io.EOF", Fun: "(*bytes.Buffer).ReadRune"},
+ {Err: "io.EOF", Fun: "(*bytes.Buffer).ReadString"},
+ {Err: "io.EOF", Fun: "(*bytes.Reader).Read"},
+ {Err: "io.EOF", Fun: "(*bytes.Reader).ReadAt"},
+ {Err: "io.EOF", Fun: "(*bytes.Reader).ReadByte"},
+ {Err: "io.EOF", Fun: "(*bytes.Reader).ReadRune"},
+ {Err: "io.EOF", Fun: "(*bytes.Reader).ReadString"},
+ // pkg/database/sql
+ {Err: "database/sql.ErrNoRows", Fun: "(*database/sql.Row).Scan"},
+ // pkg/debug/elf
+ {Err: "io.EOF", Fun: "debug/elf.Open"},
+ {Err: "io.EOF", Fun: "debug/elf.NewFile"},
+ // pkg/io
+ {Err: "io.EOF", Fun: "(io.ReadCloser).Read"},
+ {Err: "io.EOF", Fun: "(io.Reader).Read"},
+ {Err: "io.EOF", Fun: "(io.ReaderAt).ReadAt"},
+ {Err: "io.EOF", Fun: "(*io.LimitedReader).Read"},
+ {Err: "io.EOF", Fun: "(*io.SectionReader).Read"},
+ {Err: "io.EOF", Fun: "(*io.SectionReader).ReadAt"},
+ {Err: "io.ErrClosedPipe", Fun: "(*io.PipeWriter).Write"},
+ {Err: "io.ErrShortBuffer", Fun: "io.ReadAtLeast"},
+ {Err: "io.ErrUnexpectedEOF", Fun: "io.ReadAtLeast"},
+ {Err: "io.EOF", Fun: "io.ReadFull"},
+ {Err: "io.ErrUnexpectedEOF", Fun: "io.ReadFull"},
+ // pkg/net/http
+ {Err: "net/http.ErrServerClosed", Fun: "(*net/http.Server).ListenAndServe"},
+ {Err: "net/http.ErrServerClosed", Fun: "(*net/http.Server).ListenAndServeTLS"},
+ {Err: "net/http.ErrServerClosed", Fun: "(*net/http.Server).Serve"},
+ {Err: "net/http.ErrServerClosed", Fun: "(*net/http.Server).ServeTLS"},
+ {Err: "net/http.ErrServerClosed", Fun: "net/http.ListenAndServe"},
+ {Err: "net/http.ErrServerClosed", Fun: "net/http.ListenAndServeTLS"},
+ {Err: "net/http.ErrServerClosed", Fun: "net/http.Serve"},
+ {Err: "net/http.ErrServerClosed", Fun: "net/http.ServeTLS"},
+ // pkg/os
+ {Err: "io.EOF", Fun: "(*os.File).Read"},
+ {Err: "io.EOF", Fun: "(*os.File).ReadAt"},
+ {Err: "io.EOF", Fun: "(*os.File).ReadDir"},
+ {Err: "io.EOF", Fun: "(*os.File).Readdir"},
+ {Err: "io.EOF", Fun: "(*os.File).Readdirnames"},
+ // pkg/strings
+ {Err: "io.EOF", Fun: "(*strings.Reader).Read"},
+ {Err: "io.EOF", Fun: "(*strings.Reader).ReadAt"},
+ {Err: "io.EOF", Fun: "(*strings.Reader).ReadByte"},
+ {Err: "io.EOF", Fun: "(*strings.Reader).ReadRune"},
+ // pkg/context
+ {Err: "context.DeadlineExceeded", Fun: "(context.Context).Err"},
+ {Err: "context.Canceled", Fun: "(context.Context).Err"},
+ // pkg/encoding/json
+ {Err: "io.EOF", Fun: "(*encoding/json.Decoder).Decode"},
+ // pkg/encoding/csv
+ {Err: "io.EOF", Fun: "(*encoding/csv.Reader).Read"},
+ // pkg/mime/multipart
+ {Err: "io.EOF", Fun: "(*mime/multipart.Reader).NextPart"},
+ {Err: "io.EOF", Fun: "(*mime/multipart.Reader).NextRawPart"},
+ {Err: "mime/multipart.ErrMessageTooLarge", Fun: "(*mime/multipart.Reader).ReadForm"},
+ })
+}
+
+func allowedMapAppend(ap []AllowPair) {
+ for _, pair := range ap {
+ if _, ok := allowedErrorsMap[pair.Err]; !ok {
+ allowedErrorsMap[pair.Err] = make(map[string]struct{})
+ }
+ allowedErrorsMap[pair.Err][pair.Fun] = struct{}{}
+ }
+}
+
+var allowedErrorWildcards = []AllowPair{
+ // pkg/syscall
+ {Err: "syscall.E", Fun: "syscall."},
// golang.org/x/sys/unix
- {err: "golang.org/x/sys/unix.E", fun: "golang.org/x/sys/unix."},
+ {Err: "golang.org/x/sys/unix.E", Fun: "golang.org/x/sys/unix."},
+}
+
+func allowedWildcardAppend(ap []AllowPair) {
+ allowedErrorWildcards = append(allowedErrorWildcards, ap...)
}
func isAllowedErrAndFunc(err, fun string) bool {
- for _, allow := range allowedErrorWildcards {
- if strings.HasPrefix(fun, allow.fun) && strings.HasPrefix(err, allow.err) {
+ if allowedFuncs, allowErr := allowedErrorsMap[err]; allowErr {
+ if _, allow := allowedFuncs[fun]; allow {
return true
}
}
- for _, allow := range allowedErrors {
- if allow.fun == fun && allow.err == err {
+ for _, allow := range allowedErrorWildcards {
+ if strings.HasPrefix(fun, allow.Fun) && strings.HasPrefix(err, allow.Err) {
return true
}
}
+
return false
}
diff --git a/vendor/github.com/polyfloyd/go-errorlint/errorlint/analysis.go b/vendor/github.com/polyfloyd/go-errorlint/errorlint/analysis.go
index f034913ea3..84ebd6cf8e 100644
--- a/vendor/github.com/polyfloyd/go-errorlint/errorlint/analysis.go
+++ b/vendor/github.com/polyfloyd/go-errorlint/errorlint/analysis.go
@@ -1,7 +1,6 @@
package errorlint
import (
- "flag"
"go/ast"
"go/types"
"sort"
@@ -9,32 +8,36 @@ import (
"golang.org/x/tools/go/analysis"
)
-func NewAnalyzer() *analysis.Analyzer {
- return &analysis.Analyzer{
- Name: "errorlint",
- Doc: "Source code linter for Go software that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13.",
- Run: run,
- Flags: flagSet,
+func NewAnalyzer(opts ...Option) *analysis.Analyzer {
+ for _, o := range opts {
+ o()
}
+
+ setDefaultAllowedErrors()
+
+ a := &analysis.Analyzer{
+ Name: "errorlint",
+ Doc: "Source code linter for Go software that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13.",
+ Run: run,
+ }
+
+ a.Flags.BoolVar(&checkComparison, "comparison", true, "Check for plain error comparisons")
+ a.Flags.BoolVar(&checkAsserts, "asserts", true, "Check for plain type assertions and type switches")
+ a.Flags.BoolVar(&checkErrorf, "errorf", false, "Check whether fmt.Errorf uses the %w verb for formatting errors. See the readme for caveats")
+ a.Flags.BoolVar(&checkErrorfMulti, "errorf-multi", true, "Permit more than 1 %w verb, valid per Go 1.20 (Requires -errorf=true)")
+
+ return a
}
var (
- flagSet flag.FlagSet
checkComparison bool
checkAsserts bool
checkErrorf bool
checkErrorfMulti bool
)
-func init() {
- flagSet.BoolVar(&checkComparison, "comparison", true, "Check for plain error comparisons")
- flagSet.BoolVar(&checkAsserts, "asserts", true, "Check for plain type assertions and type switches")
- flagSet.BoolVar(&checkErrorf, "errorf", false, "Check whether fmt.Errorf uses the %w verb for formatting errors. See the readme for caveats")
- flagSet.BoolVar(&checkErrorfMulti, "errorf-multi", true, "Permit more than 1 %w verb, valid per Go 1.20 (Requires -errorf=true)")
-}
-
func run(pass *analysis.Pass) (interface{}, error) {
- lints := []analysis.Diagnostic{}
+ var lints []analysis.Diagnostic
extInfo := newTypesInfoExt(pass)
if checkComparison {
l := LintErrorComparisons(extInfo)
diff --git a/vendor/github.com/polyfloyd/go-errorlint/errorlint/lint.go b/vendor/github.com/polyfloyd/go-errorlint/errorlint/lint.go
index 572a3816d8..6648d31790 100644
--- a/vendor/github.com/polyfloyd/go-errorlint/errorlint/lint.go
+++ b/vendor/github.com/polyfloyd/go-errorlint/errorlint/lint.go
@@ -20,7 +20,8 @@ func (l ByPosition) Less(i, j int) bool {
}
func LintFmtErrorfCalls(fset *token.FileSet, info types.Info, multipleWraps bool) []analysis.Diagnostic {
- lints := []analysis.Diagnostic{}
+ var lints []analysis.Diagnostic
+
for expr, t := range info.Types {
// Search for error expressions that are the result of fmt.Errorf
// invocations.
@@ -159,7 +160,7 @@ func isFmtErrorfCallExpr(info types.Info, expr ast.Expr) (*ast.CallExpr, bool) {
}
func LintErrorComparisons(info *TypesInfoExt) []analysis.Diagnostic {
- lints := []analysis.Diagnostic{}
+ var lints []analysis.Diagnostic
for expr := range info.TypesInfo.Types {
// Find == and != operations.
@@ -289,7 +290,7 @@ func switchComparesNonNil(switchStmt *ast.SwitchStmt) bool {
}
func LintErrorTypeAssertions(fset *token.FileSet, info *TypesInfoExt) []analysis.Diagnostic {
- lints := []analysis.Diagnostic{}
+ var lints []analysis.Diagnostic
for expr := range info.TypesInfo.Types {
// Find type assertions.
diff --git a/vendor/github.com/polyfloyd/go-errorlint/errorlint/options.go b/vendor/github.com/polyfloyd/go-errorlint/errorlint/options.go
new file mode 100644
index 0000000000..4d7c742d83
--- /dev/null
+++ b/vendor/github.com/polyfloyd/go-errorlint/errorlint/options.go
@@ -0,0 +1,15 @@
+package errorlint
+
+type Option func()
+
+func WithAllowedErrors(ap []AllowPair) Option {
+ return func() {
+ allowedMapAppend(ap)
+ }
+}
+
+func WithAllowedWildcard(ap []AllowPair) Option {
+ return func() {
+ allowedWildcardAppend(ap)
+ }
+}
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/LICENSE b/vendor/github.com/quasilyte/go-ruleguard/dsl/LICENSE
new file mode 100644
index 0000000000..558f81ff22
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2022, Iskander (Alex) Sharipov / quasilyte
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/bundle.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/bundle.go
new file mode 100644
index 0000000000..45a9455d86
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/bundle.go
@@ -0,0 +1,19 @@
+package dsl
+
+// Bundle is a rules file export manifest.
+type Bundle struct {
+ // TODO: figure out which fields we might want to add here.
+}
+
+// ImportRules imports all rules from the bundle and prefixes them with a specified string.
+//
+// Empty string prefix is something like "dot import" in Go.
+// Group name collisions will result in an error.
+//
+// Only packages that have an exported Bundle variable can be imported.
+//
+// Note: right now imported bundle can't import other bundles.
+// This is not a fundamental limitation but rather a precaution
+// measure before we understand how it should work better.
+// If you need this feature, please open an issue at github.com/quasilyte/go-ruleguard.
+func ImportRules(prefix string, bundle Bundle) {}
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/do.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/do.go
new file mode 100644
index 0000000000..86bc163a77
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/do.go
@@ -0,0 +1,19 @@
+package dsl
+
+import (
+ "github.com/quasilyte/go-ruleguard/dsl/types"
+)
+
+type DoContext struct{}
+
+func (*DoContext) Var(varname string) *DoVar { return nil }
+
+func (*DoContext) SetReport(report string) {}
+
+func (*DoContext) SetSuggest(suggest string) {}
+
+type DoVar struct{}
+
+func (*DoVar) Text() string { return "" }
+
+func (*DoVar) Type() types.Type { return nil }
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go
new file mode 100644
index 0000000000..d3c73bddd8
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/dsl.go
@@ -0,0 +1,361 @@
+package dsl
+
+// Matcher is a main API group-level entry point.
+// It's used to define and configure the group rules.
+// It also represents a map of all rule-local variables.
+type Matcher map[string]Var
+
+// Import loads given package path into a rule group imports table.
+//
+// That table is used during the rules compilation.
+//
+// The table has the following effect on the rules:
+// * For type expressions, it's used to resolve the
+// full package paths of qualified types, like `foo.Bar`.
+// If Import(`a/b/foo`) is called, `foo.Bar` will match
+// `a/b/foo.Bar` type during the pattern execution.
+func (m Matcher) Import(pkgPath string) {}
+
+// Match specifies a set of patterns that match a rule being defined.
+// Pattern matching succeeds if at least 1 pattern matches.
+//
+// If none of the given patterns matched, rule execution stops.
+func (m Matcher) Match(pattern string, alternatives ...string) Matcher {
+ return m
+}
+
+// MatchComment is like Match, but handles only comments and uses regexp patterns.
+//
+// Multi-line /**/ comments are passed as a single string.
+// Single-line // comments are passed line-by-line.
+//
+// Hint: if you want to match a plain text and don't want to do meta char escaping,
+// prepend `\Q` to your pattern. `\Qf(x)` will match `f(x)` as a plain text
+// and there is no need to escape the `(` and `)` chars.
+//
+// Named regexp capture groups can be accessed using the usual indexing notation.
+//
+// Given this pattern:
+//
+// `(?P\d+)\.(\d+).(?P\d+)`
+//
+// And this input comment: `// 14.6.600`
+//
+// We'll get these submatches:
+//
+// m["$$"] => `14.6.600`
+// m["first"] => `14`
+// m["second"] => `600`
+//
+// All usual filters can be applied:
+//
+// Where(!m["first"].Text.Matches(`foo`))
+//
+// You can use this to reject some matches (allow-list behavior).
+func (m Matcher) MatchComment(pattern string, alternatives ...string) Matcher {
+ return m
+}
+
+// Where applies additional constraint to a match.
+// If a given cond is not satisfied, a match is rejected and
+// rule execution stops.
+func (m Matcher) Where(cond bool) Matcher {
+ return m
+}
+
+// Report prints a message if associated rule match is successful.
+//
+// A message is a string that can contain interpolated expressions.
+// For every matched variable it's possible to interpolate
+// their printed representation into the message text with $.
+// An entire match can be addressed with $$.
+func (m Matcher) Report(message string) Matcher {
+ return m
+}
+
+// Suggest assigns a quickfix suggestion for the matched code.
+func (m Matcher) Suggest(suggestion string) Matcher {
+ return m
+}
+
+func (m Matcher) Do(fn func(*DoContext)) Matcher {
+ return m
+}
+
+// At binds the reported node to a named submatch.
+// If no explicit location is given, the outermost node ($$) is used.
+func (m Matcher) At(v Var) Matcher {
+ return m
+}
+
+// File returns the current file context.
+func (m Matcher) File() File { return File{} }
+
+// GoVersion returns the analyzer associated target Go language version.
+func (m Matcher) GoVersion() GoVersion { return GoVersion{} }
+
+// Deadcode reports whether this match is contained inside a dead code path.
+func (m Matcher) Deadcode() bool { return boolResult }
+
+// Var is a pattern variable that describes a named submatch.
+type Var struct {
+ // Pure reports whether expr matched by var is side-effect-free.
+ Pure bool
+
+ // Const reports whether expr matched by var is a constant value.
+ Const bool
+
+ // ConstSlice reports whether expr matched by var is a slice literal
+ // consisting of contant elements.
+ //
+ // We need a separate Const-like predicate here because Go doesn't
+ // treat slices of const elements as constants, so including
+ // them in Const would be incorrect.
+ // Use `m["x"].Const || m["x"].ConstSlice` when you need
+ // to have extended definition of "constant value".
+ //
+ // Some examples:
+ // []byte("foo") -- constant byte slice
+ // []byte{'f', 'o', 'o'} -- same constant byte slice
+ // []int{1, 2} -- constant int slice
+ ConstSlice bool
+
+ // Value is a compile-time computable value of the expression.
+ Value ExprValue
+
+ // Addressable reports whether the corresponding expression is addressable.
+ // See https://golang.org/ref/spec#Address_operators.
+ Addressable bool
+
+ // Comparable reports whether the corresponding expression value is comparable.
+ // See https://pkg.go.dev/go/types#Comparable.
+ Comparable bool
+
+ // Type is a type of a matched expr.
+ //
+ // For function call expressions, a type is a function result type,
+ // but for a function expression itself it's a *types.Signature.
+ //
+ // Suppose we have a `a.b()` expression:
+ // `$x()` m["x"].Type is `a.b` function type
+ // `$x` m["x"].Type is `a.b()` function call result type
+ Type ExprType
+
+ SinkType SinkType
+
+ // Object is an associated "go/types" Object.
+ Object TypesObject
+
+ // Text is a captured node text as in the source code.
+ Text MatchedText
+
+ // Node is a captured AST node.
+ Node MatchedNode
+
+ // Line is a source code line number that contains this match.
+ // If this match is multi-line, this is the first line number.
+ Line int
+}
+
+// Filter applies a custom predicate function on a submatch.
+//
+// The callback function should use VarFilterContext to access the
+// information that is usually accessed through Var.
+// For example, `VarFilterContext.Type` is mapped to `Var.Type`.
+func (Var) Filter(pred func(*VarFilterContext) bool) bool { return boolResult }
+
+// Contains runs a sub-search from a given pattern using the captured
+// vars from the original pattern match.
+//
+// For example, given the Match(`$lhs = append($lhs, $x)`) pattern,
+// we can do m["lhs"].Contains(`$x`) and learn whether $lhs contains
+// $x as its sub-expression.
+//
+// Experimental: this function is not part of the stable API.
+func (Var) Contains(pattern string) bool { return boolResult }
+
+// MatchedNode represents an AST node associated with a named submatch.
+type MatchedNode struct{}
+
+// Is reports whether a matched node AST type is compatible with the specified type.
+// A valid argument is a ast.Node implementing type name from the "go/ast" package.
+// Examples: "BasicLit", "Expr", "Stmt", "Ident", "ParenExpr".
+// See https://golang.org/pkg/go/ast/.
+func (MatchedNode) Is(typ string) bool { return boolResult }
+
+// Parent returns a matched node parent.
+func (MatchedNode) Parent() Node { return Node{} }
+
+// Node represents an AST node somewhere inside a match.
+// Unlike MatchedNode, it doesn't have to be associated with a named submatch.
+type Node struct{}
+
+// Is reports whether a node AST type is compatible with the specified type.
+// See `MatchedNode.Is` for the full reference.
+func (Node) Is(typ string) bool { return boolResult }
+
+// ExprValue describes a compile-time computable value of a matched expr.
+type ExprValue struct{}
+
+// Int returns compile-time computable int value of the expression.
+// If value can't be computed, condition will fail.
+func (ExprValue) Int() int { return intResult }
+
+// TypesObject is a types.Object mapping.
+type TypesObject struct{}
+
+// Is reports whether an associated types.Object is compatible with the specified type.
+// A valid argument is a types.Object type name from the "go/types" package.
+// Examples: "Func", "Var", "Const", "TypeName", "Label", "PkgName", "Builtin", "Nil"
+// See https://golang.org/pkg/go/types/.
+func (TypesObject) Is(typ string) bool { return boolResult }
+
+// IsGlobal reports whether an associated types.Object is defined in global scope.
+func (TypesObject) IsGlobal() bool { return boolResult }
+
+// IsVariadicParam reports whether this object represents a function variadic param.
+// This property is not propagated between the assignments.
+func (TypesObject) IsVariadicParam() bool { return boolResult }
+
+type SinkType struct{}
+
+// Is reports whether a type is identical to a given type.
+// Works like ExprType.Is method.
+func (SinkType) Is(typ string) bool { return boolResult }
+
+// ExprType describes a type of a matcher expr.
+type ExprType struct {
+ // Size represents expression type size in bytes.
+ //
+ // For expressions of unknown size, like type params in generics,
+ // any filter using this operand will fail.
+ Size int
+}
+
+// IdenticalTo applies types.Identical(this, v.Type) operation.
+// See https://golang.org/pkg/go/types/#Identical function documentation.
+//
+// Experimental: this function is not part of the stable API.
+func (ExprType) IdenticalTo(v Var) bool { return boolResult }
+
+// Underlying returns expression type underlying type.
+// See https://golang.org/pkg/go/types/#Type Underlying() method documentation.
+// Read https://golang.org/ref/spec#Types section to learn more about underlying types.
+func (ExprType) Underlying() ExprType { return underlyingType }
+
+// AssignableTo reports whether a type is assign-compatible with a given type.
+// See https://golang.org/pkg/go/types/#AssignableTo.
+func (ExprType) AssignableTo(typ string) bool { return boolResult }
+
+// ConvertibleTo reports whether a type is conversible to a given type.
+// See https://golang.org/pkg/go/types/#ConvertibleTo.
+func (ExprType) ConvertibleTo(typ string) bool { return boolResult }
+
+// Implements reports whether a type implements a given interface.
+// See https://golang.org/pkg/go/types/#Implements.
+func (ExprType) Implements(typ typeName) bool { return boolResult }
+
+// HasMethod reports whether a type has a given method.
+// Unlike Implements(), it will work for both value and pointer types.
+//
+// fn argument is a function signature, like `WriteString(string) (int, error)`.
+// It can also be in form of a method reference for importable types: `io.StringWriter.WriteString`.
+//
+// To avoid confusion with Implements() method, here is a hint when to use which:
+//
+// - To check if it's possible to call F on x, use HasMethod(F)
+// - To check if x can be passed as I interface, use Implements(I)
+func (ExprType) HasMethod(fn string) bool { return boolResult }
+
+// Is reports whether a type is identical to a given type.
+func (ExprType) Is(typ string) bool { return boolResult }
+
+// HasPointers reports whether a type contains at least one pointer.
+//
+// We try to be as close to the Go sense of pointer-free objects as possible,
+// therefore string type is not considered to be a pointer-free type.
+//
+// This function may return "true" for some complicated cases as a
+// conservative result. It never returns "false" for a type that
+// actually contains a pointer.
+//
+// So this function is mostly useful for !HasPointers() form.
+func (ExprType) HasPointers() bool { return boolResult }
+
+// OfKind reports whether a matched expr type is compatible with the specified kind.
+//
+// Only a few "kinds" are recognized, the list is provided below.
+//
+// "integer" -- typ is *types.Basic, where typ.Info()&types.Integer != 0
+// "unsigned" -- typ is *types.Basic, where typ.Info()&types.Unsigned != 0
+// "float" -- typ is *types.Basic, where typ.Info()&types.Float != 0
+// "complex" -- typ is *types.Basic, where typ.Info()&types.Complex != 0
+// "untyped" -- typ is *types.Basic, where typ.Info()&types.Untyped != 0
+// "numeric" -- typ is *types.Basic, where typ.Info()&types.Numeric != 0
+// "signed" -- identical to `OfKind("integer") && !OfKind("unsigned")`
+// "int" -- int, int8, int16, int32, int64
+// "uint" -- uint, uint8, uint16, uint32, uint64
+//
+// Note: "int" will include "rune" as well, as it's an alias.
+// In the same manner, "uint" includes the "byte" type.
+//
+// Using OfKind("unsigned") is more efficient (and concise) than using a set
+// of or-conditions with Is("uint8"), Is("uint16") and so on.
+func (ExprType) OfKind(kind string) bool { return boolResult }
+
+// MatchedText represents a source text associated with a matched node.
+type MatchedText string
+
+// Matches reports whether the text matches the given regexp pattern.
+func (MatchedText) Matches(pattern string) bool { return boolResult }
+
+// String represents an arbitrary string-typed data.
+type String string
+
+// Matches reports whether a string matches the given regexp pattern.
+func (String) Matches(pattern string) bool { return boolResult }
+
+// File represents the current Go source file.
+type File struct {
+ // Name is a file base name.
+ Name String
+
+ // PkgPath is a file package path.
+ // Examples: "io/ioutil", "strings", "github.com/quasilyte/go-ruleguard/dsl".
+ PkgPath String
+}
+
+// Imports reports whether the current file imports the given path.
+func (File) Imports(path string) bool { return boolResult }
+
+// GoVersion is an analysis target go language version.
+// It can be compared to Go versions like "1.10", "1.16" using
+// the associated methods.
+type GoVersion struct{}
+
+// Eq asserts that target Go version is equal to (==) specified version.
+func (GoVersion) Eq(version string) bool { return boolResult }
+
+// GreaterEqThan asserts that target Go version is greater or equal than (>=) specified version.
+func (GoVersion) GreaterEqThan(version string) bool { return boolResult }
+
+// GreaterThan asserts that target Go version is greater than (>) specified version.
+func (GoVersion) GreaterThan(version string) bool { return boolResult }
+
+// LessThan asserts that target Go version is less than (<) specified version.
+func (GoVersion) LessThan(version string) bool { return boolResult }
+
+// LessEqThan asserts that target Go version is less or equal than (<=) specified version.
+func (GoVersion) LessEqThan(version string) bool { return boolResult }
+
+// typeName is a helper type used to document function params better.
+//
+// A type name can be:
+// - builtin type name: `error`, `string`, etc.
+// - qualified name from a standard library: `io.Reader`, etc.
+// - fully-qualified type name, like `github.com/username/pkgname.TypeName`
+//
+// typeName is also affected by a local import table, which can override
+// how qualified names are interpreted.
+// See `Matcher.Import` for more info.
+type typeName = string
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/filter.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/filter.go
new file mode 100644
index 0000000000..cef880098d
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/filter.go
@@ -0,0 +1,24 @@
+package dsl
+
+import (
+ "github.com/quasilyte/go-ruleguard/dsl/types"
+)
+
+// VarFilterContext carries Var and environment information into the filter function.
+// It's an input parameter type for the Var.Filter function callback.
+type VarFilterContext struct {
+ // Type is mapped to Var.Type field.
+ Type types.Type
+}
+
+// SizeOf returns the size of the given type.
+// It uses the ruleguard.Context.Sizes to calculate the result.
+func (*VarFilterContext) SizeOf(x types.Type) int { return 0 }
+
+// GetType finds a type value by a given name.
+// If a type can't be found (or a name is malformed), this function panics.
+func (*VarFilterContext) GetType(name typeName) types.Type { return nil }
+
+// GetInterface finds a type value that represents an interface by a given name.
+// Works like `types.AsInterface(ctx.GetType(name))`.
+func (*VarFilterContext) GetInterface(name typeName) *types.Interface { return nil }
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/internal.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/internal.go
new file mode 100644
index 0000000000..3bb6d85dc7
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/internal.go
@@ -0,0 +1,6 @@
+package dsl
+
+var boolResult bool
+var intResult int
+
+var underlyingType ExprType
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/types/ext.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/types/ext.go
new file mode 100644
index 0000000000..82595ff30d
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/types/ext.go
@@ -0,0 +1,21 @@
+package types
+
+// AsArray is a type-assert like operation, x.(*Array), but never panics.
+// Returns nil if type is not an array.
+func AsArray(x Type) *Array { return nil }
+
+// AsSlice is a type-assert like operation, x.(*Slice), but never panics.
+// Returns nil if type is not an array.
+func AsSlice(x Type) *Slice { return nil }
+
+// AsPointer is a type-assert like operation, x.(*Pointer), but never panics.
+// Returns nil if type is not a pointer.
+func AsPointer(x Type) *Pointer { return nil }
+
+// AsStruct is a type-assert like operation, x.(*Struct), but never panics.
+// Returns nil if type is not a struct.
+func AsStruct(x Type) *Struct { return nil }
+
+// AsInterface is a type-assert like operation, x.(*Interface), but never panics.
+// Returns nil if type is not an interface.
+func AsInterface(x Type) *Interface { return nil }
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/types/type_impl.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/types/type_impl.go
new file mode 100644
index 0000000000..9fc71d7531
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/types/type_impl.go
@@ -0,0 +1,17 @@
+package types
+
+// Method stubs to make various types implement Type interface.
+//
+// Nothing interesting here, hence it's moved to a separate file.
+
+func (*Array) String() string { return "" }
+func (*Slice) String() string { return "" }
+func (*Pointer) String() string { return "" }
+func (*Interface) String() string { return "" }
+func (*Struct) String() string { return "" }
+
+func (*Array) Underlying() Type { return nil }
+func (*Slice) Underlying() Type { return nil }
+func (*Pointer) Underlying() Type { return nil }
+func (*Interface) Underlying() Type { return nil }
+func (*Struct) Underlying() Type { return nil }
diff --git a/vendor/github.com/quasilyte/go-ruleguard/dsl/types/types.go b/vendor/github.com/quasilyte/go-ruleguard/dsl/types/types.go
new file mode 100644
index 0000000000..b6be7cc352
--- /dev/null
+++ b/vendor/github.com/quasilyte/go-ruleguard/dsl/types/types.go
@@ -0,0 +1,68 @@
+// Package types mimics the https://golang.org/pkg/go/types/ package.
+// It also contains some extra utility functions, they're defined in ext.go file.
+package types
+
+// Implements reports whether a given type implements the specified interface.
+func Implements(typ Type, iface *Interface) bool { return false }
+
+// Identical reports whether x and y are identical types. Receivers of Signature types are ignored.
+func Identical(x, y Type) bool { return false }
+
+// A Type represents a type of Go. All types implement the Type interface.
+type Type interface {
+ // Underlying returns the underlying type of a type.
+ Underlying() Type
+
+ // String returns a string representation of a type.
+ String() string
+}
+
+type (
+ // An Array represents an array type.
+ Array struct{}
+
+ // A Slice represents a slice type.
+ Slice struct{}
+
+ // A Pointer represents a pointer type.
+ Pointer struct{}
+
+ // An Interface represents an interface type.
+ Interface struct{}
+
+ // A struct represents a struct type.
+ Struct struct{}
+)
+
+// NewArray returns a new array type for the given element type and length.
+// A negative length indicates an unknown length.
+func NewArray(elem Type, len int) *Array { return nil }
+
+// Elem returns element type of array.
+func (*Array) Elem() Type { return nil }
+
+// NewSlice returns a new slice type for the given element type.
+func NewSlice(elem Type) *Slice { return nil }
+
+// Elem returns element type of slice.
+func (*Slice) Elem() Type { return nil }
+
+// Len returns the length of array.
+// A negative result indicates an unknown length.
+func (*Array) Len() int { return 0 }
+
+// NewPointer returns a new pointer type for the given element (base) type.
+func NewPointer(elem Type) *Pointer { return nil }
+
+// Elem returns the element type for the given pointer.
+func (*Pointer) Elem() Type { return nil }
+
+func (*Struct) NumFields() int { return 0 }
+
+func (*Struct) Field(i int) *Var { return nil }
+
+type Var struct{}
+
+func (*Var) Embedded() bool { return false }
+
+func (*Var) Type() Type { return nil }
diff --git a/vendor/github.com/ryancurrah/gomodguard/.golangci.yml b/vendor/github.com/ryancurrah/gomodguard/.golangci.yml
index a0e6fd55ea..e39b1445ee 100644
--- a/vendor/github.com/ryancurrah/gomodguard/.golangci.yml
+++ b/vendor/github.com/ryancurrah/gomodguard/.golangci.yml
@@ -1,111 +1,32 @@
# See https://golangci-lint.run/usage/configuration/
-
-linters-settings:
- revive:
- # see https://github.com/mgechev/revive#available-rules for details.
- ignore-generated-header: true
- severity: warning
- rules:
- - name: atomic
- - name: blank-imports
- - name: bool-literal-in-expr
- - name: call-to-gc
- - name: confusing-naming
- - name: confusing-results
- - name: constant-logical-expr
- - name: context-as-argument
- - name: context-keys-type
- - name: deep-exit
- - name: defer
- - name: dot-imports
- - name: duplicated-imports
- - name: early-return
- - name: empty-block
- - name: empty-lines
- - name: error-naming
- - name: error-return
- - name: error-strings
- - name: errorf
- - name: exported
- - name: get-return
- - name: identical-branches
- - name: if-return
- - name: import-shadowing
- - name: increment-decrement
- - name: indent-error-flow
- - name: modifies-parameter
- - name: modifies-value-receiver
- - name: package-comments
- - name: range
- - name: range-val-address
- - name: range-val-in-closure
- - name: receiver-naming
- - name: redefines-builtin-id
- - name: string-of-int
- - name: struct-tag
- - name: superfluous-else
- - name: time-naming
- - name: unconditional-recursion
- - name: unexported-naming
- - name: unexported-return
- - name: unnecessary-stmt
- - name: unreachable-code
- - name: unused-parameter
- - name: var-declaration
- - name: var-naming
- - name: waitgroup-by-value
-
linters:
- disable-all: true
- enable:
- - asciicheck
- - bodyclose
- - dogsled
- - dupl
- - durationcheck
- - errcheck
- - errorlint
- - exhaustive
- - exportloopref
- - forcetypeassert
- - funlen
- - gochecknoinits
- - gocognit
- - goconst
- - gocritic
- - gocyclo
- - godot
- - godox
- - goimports
- - gomoddirectives
- - gomodguard
- - goprintffuncname
- - gosec
- - gosimple
- - govet
- - importas
- - ineffassign
+ enable-all: true
+ disable:
- lll
- - makezero
- - misspell
- - nakedret
- - nestif
- - nilerr
- - noctx
- - nolintlint
- - prealloc
- - predeclared
- - revive
- - rowserrcheck
- - sqlclosecheck
- - staticcheck
- - stylecheck
- - testpackage
- - thelper
- - tparallel
- - typecheck
- - unconvert
- - unparam
- - unused
- - whitespace
- - wsl
+ - golint
+ - deadcode
+ - maligned
+ - scopelint
+ - nosnakecase
+ - exhaustivestruct
+ - ifshort
+ - varcheck
+ - structcheck
+ - interfacer
+ - gomodguard
+ - gochecknoglobals
+ - paralleltest
+ - varnamelen
+ - exhaustruct
+ - gomnd
+ - depguard
+ - forbidigo
+ - funlen
+ - nlreturn
+ - gofumpt
+ - nonamedreturns
+ - cyclop
+ - goerr113
+ - perfsprint
+ - tagliatelle
+ - wrapcheck
diff --git a/vendor/github.com/ryancurrah/gomodguard/Makefile b/vendor/github.com/ryancurrah/gomodguard/Makefile
index 5235d5aade..a44b707a66 100644
--- a/vendor/github.com/ryancurrah/gomodguard/Makefile
+++ b/vendor/github.com/ryancurrah/gomodguard/Makefile
@@ -6,7 +6,7 @@ lint:
.PHONY: build
build:
- go build -o gomodguard cmd/gomodguard/main.go
+ go build -o "$$(go env GOPATH)/bin/gomodguard" cmd/gomodguard/main.go
.PHONY: run
run: build
diff --git a/vendor/github.com/ryancurrah/gomodguard/README.md b/vendor/github.com/ryancurrah/gomodguard/README.md
index 4945f01012..68dc860446 100644
--- a/vendor/github.com/ryancurrah/gomodguard/README.md
+++ b/vendor/github.com/ryancurrah/gomodguard/README.md
@@ -1,7 +1,7 @@
# gomodguard
[![License](https://img.shields.io/github/license/ryancurrah/gomodguard?style=flat-square)](/LICENSE)
[![Codecov](https://img.shields.io/codecov/c/gh/ryancurrah/gomodguard?style=flat-square)](https://codecov.io/gh/ryancurrah/gomodguard)
-[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/ryancurrah/gomodguard/Go?logo=Go&style=flat-square)](https://github.com/ryancurrah/gomodguard/actions?query=workflow%3AGo)
+[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ryancurrah/gomodguard/go.yml?branch=main&logo=Go&style=flat-square)](https://github.com/ryancurrah/gomodguard/actions?query=workflow%3AGo)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/ryancurrah/gomodguard?style=flat-square)](https://github.com/ryancurrah/gomodguard/releases/latest)
[![Docker](https://img.shields.io/docker/pulls/ryancurrah/gomodguard?style=flat-square)](https://hub.docker.com/r/ryancurrah/gomodguard)
[![Github Releases Stats of golangci-lint](https://img.shields.io/github/downloads/ryancurrah/gomodguard/total.svg?logo=github&style=flat-square)](https://somsubhra.com/github-release-stats/?username=ryancurrah&repository=gomodguard)
diff --git a/vendor/github.com/ryancurrah/gomodguard/blocked.go b/vendor/github.com/ryancurrah/gomodguard/blocked.go
index 2a6e5c2159..df24b85ac7 100644
--- a/vendor/github.com/ryancurrah/gomodguard/blocked.go
+++ b/vendor/github.com/ryancurrah/gomodguard/blocked.go
@@ -4,7 +4,7 @@ import (
"fmt"
"strings"
- "github.com/Masterminds/semver"
+ "github.com/Masterminds/semver/v3"
)
// Blocked is a list of modules that are
@@ -15,7 +15,7 @@ type Blocked struct {
LocalReplaceDirectives bool `yaml:"local_replace_directives"`
}
-// BlockedVersion has a version constraint a reason why the the module version is blocked.
+// BlockedVersion has a version constraint a reason why the module version is blocked.
type BlockedVersion struct {
Version string `yaml:"version"`
Reason string `yaml:"reason"`
@@ -23,24 +23,22 @@ type BlockedVersion struct {
// IsLintedModuleVersionBlocked returns true if a version constraint is specified and the
// linted module version matches the constraint.
-func (r *BlockedVersion) IsLintedModuleVersionBlocked(lintedModuleVersion string) bool {
+func (r *BlockedVersion) IsLintedModuleVersionBlocked(lintedModuleVersion string) (bool, error) {
if r.Version == "" {
- return false
+ return false, nil
}
constraint, err := semver.NewConstraint(r.Version)
if err != nil {
- return false
+ return true, err
}
version, err := semver.NewVersion(lintedModuleVersion)
if err != nil {
- return false
+ return true, err
}
- meet := constraint.Check(version)
-
- return meet
+ return constraint.Check(version), nil
}
// Message returns the reason why the module version is blocked.
diff --git a/vendor/github.com/ryancurrah/gomodguard/processor.go b/vendor/github.com/ryancurrah/gomodguard/processor.go
index 51038f37f2..970dbc4574 100644
--- a/vendor/github.com/ryancurrah/gomodguard/processor.go
+++ b/vendor/github.com/ryancurrah/gomodguard/processor.go
@@ -22,12 +22,10 @@ const (
)
var (
- blockReasonNotInAllowedList = "import of package `%s` is blocked because the module is not in the " +
- "allowed modules list."
- blockReasonInBlockedList = "import of package `%s` is blocked because the module is in the " +
- "blocked modules list."
- blockReasonHasLocalReplaceDirective = "import of package `%s` is blocked because the module has a " +
- "local replace directive."
+ blockReasonNotInAllowedList = "import of package `%s` is blocked because the module is not in the allowed modules list."
+ blockReasonInBlockedList = "import of package `%s` is blocked because the module is in the blocked modules list."
+ blockReasonHasLocalReplaceDirective = "import of package `%s` is blocked because the module has a local replace directive."
+ blockReasonInvalidVersionConstraint = "import of package `%s` is blocked because the version constraint is invalid."
// startsWithVersion is used to test when a string begins with the version identifier of a module,
// after having stripped the prefix base module name. IE "github.com/foo/bar/v2/baz" => "v2/baz"
@@ -181,9 +179,21 @@ func (p *Processor) SetBlockedModules() { //nolint:funlen
fmt.Sprintf("%s %s", blockReasonInBlockedList, blockModuleReason.Message()))
}
- if blockVersionReason != nil && blockVersionReason.IsLintedModuleVersionBlocked(lintedModuleVersion) {
- blockedModules[lintedModuleName] = append(blockedModules[lintedModuleName],
- fmt.Sprintf("%s %s", blockReasonInBlockedList, blockVersionReason.Message(lintedModuleVersion)))
+ if blockVersionReason != nil {
+ isVersBlocked, err := blockVersionReason.IsLintedModuleVersionBlocked(lintedModuleVersion)
+
+ var msg string
+
+ switch err {
+ case nil:
+ msg = fmt.Sprintf("%s %s", blockReasonInBlockedList, blockVersionReason.Message(lintedModuleVersion))
+ default:
+ msg = fmt.Sprintf("%s %s", blockReasonInvalidVersionConstraint, err)
+ }
+
+ if isVersBlocked {
+ blockedModules[lintedModuleName] = append(blockedModules[lintedModuleName], msg)
+ }
}
}
@@ -223,6 +233,11 @@ func (p *Processor) isBlockedPackageFromModFile(packageName string) []string {
return nil
}
+// loadGoModFile loads the contents of the go.mod file in the current working directory.
+// It first checks the "GOMOD" environment variable to determine the path of the go.mod file.
+// If the environment variable is not set or the file does not exist, it falls back to reading the go.mod file in the current directory.
+// If the "GOMOD" environment variable is set to "/dev/null", it returns an error indicating that the current working directory must have a go.mod file.
+// The function returns the contents of the go.mod file as a byte slice and any error encountered during the process.
func loadGoModFile() ([]byte, error) {
cmd := exec.Command("go", "env", "-json")
stdout, _ := cmd.StdoutPipe()
@@ -257,7 +272,7 @@ func loadGoModFile() ([]byte, error) {
return os.ReadFile(goEnv["GOMOD"])
}
-// isPackageInModule determines if a package is apart of the specified go module.
+// isPackageInModule determines if a package is a part of the specified Go module.
func isPackageInModule(pkg, mod string) bool {
// Split pkg and mod paths into parts
pkgPart := strings.Split(pkg, "/")
diff --git a/vendor/github.com/yeya24/promlinter/promlinter.go b/vendor/github.com/yeya24/promlinter/promlinter.go
index 2ed4d60a8a..17a7f4c3e4 100644
--- a/vendor/github.com/yeya24/promlinter/promlinter.go
+++ b/vendor/github.com/yeya24/promlinter/promlinter.go
@@ -82,6 +82,23 @@ type MetricFamilyWithPos struct {
Pos token.Position
}
+func (m *MetricFamilyWithPos) Labels() []string {
+ var arr []string
+ if len(m.MetricFamily.Metric) > 0 {
+ for _, label := range m.MetricFamily.Metric[0].Label {
+ if label.Value != nil {
+ arr = append(arr,
+ fmt.Sprintf("%s=%s",
+ strings.Trim(*label.Name, `"`),
+ strings.Trim(*label.Value, `"`)))
+ } else {
+ arr = append(arr, strings.Trim(*label.Name, `"`))
+ }
+ }
+ }
+ return arr
+}
+
type visitor struct {
fs *token.FileSet
metrics []MetricFamilyWithPos
@@ -93,6 +110,12 @@ type opt struct {
namespace string
subsystem string
name string
+
+ help string
+ helpSet bool
+
+ labels []string
+ constLabels map[string]string
}
func RunList(fs *token.FileSet, files []*ast.File, strict bool) []MetricFamilyWithPos {
@@ -151,9 +174,6 @@ func RunLint(fs *token.FileSet, files []*ast.File, s Setting) []Issue {
}
}
- sort.Slice(v.issues, func(i, j int) bool {
- return v.issues[i].Pos.String() < v.issues[j].Pos.String()
- })
return v.issues
}
@@ -168,11 +188,23 @@ func (v *visitor) Visit(n ast.Node) ast.Visitor {
case *ast.SendStmt:
return v.parseSendMetricChanExpr(t)
+
+ default:
}
return v
}
+func (v *visitor) addMetric(mfp *MetricFamilyWithPos) {
+ for _, m := range v.metrics {
+ if mfp.MetricFamily.String() == m.MetricFamily.String() {
+ return
+ }
+ }
+
+ v.metrics = append(v.metrics, *mfp)
+}
+
func (v *visitor) parseCallerExpr(call *ast.CallExpr) ast.Visitor {
var (
metricType dto.MetricType
@@ -190,16 +222,17 @@ func (v *visitor) parseCallerExpr(call *ast.CallExpr) ast.Visitor {
*/
case *ast.Ident:
if stmt.Name == "NewCounterFunc" {
- return v.parseOpts(call.Args[0], dto.MetricType_COUNTER)
+ return v.parseOpts(call.Args, dto.MetricType_COUNTER)
}
if stmt.Name == "NewGaugeFunc" {
- return v.parseOpts(call.Args[0], dto.MetricType_GAUGE)
+ return v.parseOpts(call.Args, dto.MetricType_GAUGE)
}
if metricType, ok = metricsType[stmt.Name]; !ok {
return v
}
+
methodName = stmt.Name
/*
@@ -216,11 +249,11 @@ func (v *visitor) parseCallerExpr(call *ast.CallExpr) ast.Visitor {
*/
case *ast.SelectorExpr:
if stmt.Sel.Name == "NewCounterFunc" {
- return v.parseOpts(call.Args[0], dto.MetricType_COUNTER)
+ return v.parseOpts(call.Args, dto.MetricType_COUNTER)
}
if stmt.Sel.Name == "NewGaugeFunc" {
- return v.parseOpts(call.Args[0], dto.MetricType_GAUGE)
+ return v.parseOpts(call.Args, dto.MetricType_GAUGE)
}
if stmt.Sel.Name == "NewFamilyGenerator" && len(call.Args) == 5 {
@@ -230,6 +263,7 @@ func (v *visitor) parseCallerExpr(call *ast.CallExpr) ast.Visitor {
if metricType, ok = metricsType[stmt.Sel.Name]; !ok {
return v
}
+
methodName = stmt.Sel.Name
default:
@@ -254,19 +288,44 @@ func (v *visitor) parseCallerExpr(call *ast.CallExpr) ast.Visitor {
return v
}
- return v.parseOpts(call.Args[0], metricType)
+ return v.parseOpts(call.Args, metricType)
}
-func (v *visitor) parseOpts(optArg ast.Node, metricType dto.MetricType) ast.Visitor {
+func (v *visitor) parseOpts(optArgs []ast.Expr, metricType dto.MetricType) ast.Visitor {
// position for the first arg of the CallExpr
- optsPosition := v.fs.Position(optArg.Pos())
- opts, help := v.parseOptsExpr(optArg)
+ optsPosition := v.fs.Position(optArgs[0].Pos())
+ opts := v.parseOptsExpr(optArgs[0])
+
+ var metric *dto.Metric
+ if len(optArgs) > 1 {
+ // parse labels
+ if labelOpts := v.parseOptsExpr(optArgs[1]); labelOpts != nil && len(labelOpts.labels) > 0 {
+ metric = &dto.Metric{}
+ for idx, _ := range labelOpts.labels {
+ metric.Label = append(metric.Label,
+ &dto.LabelPair{
+ Name: &labelOpts.labels[idx],
+ })
+ }
+ }
+ }
+
if opts == nil {
return v
}
+
currentMetric := dto.MetricFamily{
Type: &metricType,
- Help: help,
+ }
+
+ if !opts.helpSet {
+ currentMetric.Help = nil
+ } else {
+ currentMetric.Help = &opts.help
+ }
+
+ if metric != nil {
+ currentMetric.Metric = append(currentMetric.Metric, metric)
}
metricName := prometheus.BuildFQName(opts.namespace, opts.subsystem, opts.name)
@@ -278,7 +337,7 @@ func (v *visitor) parseOpts(optArg ast.Node, metricType dto.MetricType) ast.Visi
}
currentMetric.Name = &metricName
- v.metrics = append(v.metrics, MetricFamilyWithPos{MetricFamily: ¤tMetric, Pos: optsPosition})
+ v.addMetric(&MetricFamilyWithPos{MetricFamily: ¤tMetric, Pos: optsPosition})
return v
}
@@ -307,7 +366,8 @@ func (v *visitor) parseKSMMetrics(nameArg ast.Node, helpArg ast.Node, metricType
}
}
- v.metrics = append(v.metrics, MetricFamilyWithPos{MetricFamily: ¤tMetric, Pos: optsPosition})
+ v.addMetric(&MetricFamilyWithPos{MetricFamily: ¤tMetric, Pos: optsPosition})
+
return v
}
@@ -347,15 +407,40 @@ func (v *visitor) parseSendMetricChanExpr(chExpr *ast.SendStmt) ast.Visitor {
return v
}
- name, help := v.parseConstMetricOptsExpr(call.Args[0])
- if name == nil {
+ if len(call.Args) == 0 {
+ return v
+ }
+
+ descCall := v.parseConstMetricOptsExpr(call.Args[0])
+ if descCall == nil {
return v
}
metric := &dto.MetricFamily{
- Name: name,
- Help: help,
+ Name: descCall.name,
+ Help: descCall.help,
}
+
+ if len(descCall.labels) > 0 {
+ m := &dto.Metric{}
+ for idx, _ := range descCall.labels {
+ m.Label = append(m.Label,
+ &dto.LabelPair{
+ Name: &descCall.labels[idx],
+ })
+ }
+
+ for idx, _ := range descCall.constLabels {
+ m.Label = append(m.Label,
+ &dto.LabelPair{
+ Name: &descCall.constLabels[idx][0],
+ Value: &descCall.constLabels[idx][1],
+ })
+ }
+
+ metric.Metric = append(metric.Metric, m)
+ }
+
switch methodName {
case "MustNewConstMetric", "NewLazyConstMetric":
switch t := call.Args[1].(type) {
@@ -373,11 +458,11 @@ func (v *visitor) parseSendMetricChanExpr(chExpr *ast.SendStmt) ast.Visitor {
metric.Type = &metricType
}
- v.metrics = append(v.metrics, MetricFamilyWithPos{MetricFamily: metric, Pos: v.fs.Position(call.Pos())})
+ v.addMetric(&MetricFamilyWithPos{MetricFamily: metric, Pos: v.fs.Position(call.Pos())})
return v
}
-func (v *visitor) parseOptsExpr(n ast.Node) (*opt, *string) {
+func (v *visitor) parseOptsExpr(n ast.Node) *opt {
switch stmt := n.(type) {
case *ast.CompositeLit:
return v.parseCompositeOpts(stmt)
@@ -395,17 +480,49 @@ func (v *visitor) parseOptsExpr(n ast.Node) (*opt, *string) {
return v.parseOptsExpr(stmt.X)
}
- return nil, nil
+ return nil
}
-func (v *visitor) parseCompositeOpts(stmt *ast.CompositeLit) (*opt, *string) {
+func (v *visitor) parseCompositeOpts(stmt *ast.CompositeLit) *opt {
metricOption := &opt{}
- var help *string
+
for _, elt := range stmt.Elts {
+
+ // labels
+ label, ok := elt.(*ast.BasicLit)
+ if ok {
+ metricOption.labels = append(metricOption.labels, strings.Trim(label.Value, `"`))
+ continue
+ }
+
kvExpr, ok := elt.(*ast.KeyValueExpr)
if !ok {
continue
}
+
+ // const labels
+ if key, ok := kvExpr.Key.(*ast.BasicLit); ok {
+
+ if metricOption.constLabels == nil {
+ metricOption.constLabels = map[string]string{}
+ }
+
+ // only accept literal string value
+ //
+ // {
+ // "key": "some-string-literal",
+ // }
+ switch val := kvExpr.Value.(type) {
+ case *ast.BasicLit:
+ metricOption.constLabels[key.Value] = val.Value
+
+ default:
+ metricOption.constLabels[key.Value] = "?" // use a placeholder for the const label
+ }
+
+ continue
+ }
+
object, ok := kvExpr.Key.(*ast.Ident)
if !ok {
continue
@@ -418,7 +535,7 @@ func (v *visitor) parseCompositeOpts(stmt *ast.CompositeLit) (*opt, *string) {
// If failed to parse field value, stop parsing.
stringLiteral, ok := v.parseValue(object.Name, kvExpr.Value)
if !ok {
- return nil, nil
+ return nil
}
switch object.Name {
@@ -429,14 +546,16 @@ func (v *visitor) parseCompositeOpts(stmt *ast.CompositeLit) (*opt, *string) {
case "Name":
metricOption.name = stringLiteral
case "Help":
- help = &stringLiteral
+ metricOption.help = stringLiteral
+ metricOption.helpSet = true
}
}
- return metricOption, help
+ return metricOption
}
func (v *visitor) parseValue(object string, n ast.Node) (string, bool) {
+
switch t := n.(type) {
// make sure it is string literal value
@@ -452,14 +571,26 @@ func (v *visitor) parseValue(object string, n ast.Node) (string, bool) {
return "", false
}
- if vs, ok := t.Obj.Decl.(*ast.ValueSpec); ok {
+ switch vs := t.Obj.Decl.(type) {
+
+ case *ast.ValueSpec:
+ // var some string = "some string"
return v.parseValue(object, vs)
+
+ case *ast.AssignStmt:
+ // TODO:
+ // some := "some string"
+ return "", false
+
+ default:
+ return "", false
}
case *ast.ValueSpec:
if len(t.Values) == 0 {
return "", false
}
+
return v.parseValue(object, t.Values[0])
// For binary expr, we only support adding two strings like `foo` + `bar`.
@@ -539,7 +670,7 @@ func (v *visitor) parseValueCallExpr(object string, call *ast.CallExpr) (string,
return "", false
}
-func (v *visitor) parseConstMetricOptsExpr(n ast.Node) (*string, *string) {
+func (v *visitor) parseConstMetricOptsExpr(n ast.Node) *descCallExpr {
switch stmt := n.(type) {
case *ast.CallExpr:
return v.parseNewDescCallExpr(stmt)
@@ -580,10 +711,16 @@ func (v *visitor) parseConstMetricOptsExpr(n ast.Node) (*string, *string) {
}
}
- return nil, nil
+ return nil
}
-func (v *visitor) parseNewDescCallExpr(call *ast.CallExpr) (*string, *string) {
+type descCallExpr struct {
+ name, help *string
+ labels []string
+ constLabels [][2]string
+}
+
+func (v *visitor) parseNewDescCallExpr(call *ast.CallExpr) *descCallExpr {
var (
help string
name string
@@ -600,7 +737,7 @@ func (v *visitor) parseNewDescCallExpr(call *ast.CallExpr) (*string, *string) {
Text: fmt.Sprintf("parsing desc with function %s is not supported", expr.Name),
})
}
- return nil, nil
+ return nil
}
case *ast.SelectorExpr:
if expr.Sel.Name != "NewDesc" {
@@ -611,7 +748,7 @@ func (v *visitor) parseNewDescCallExpr(call *ast.CallExpr) (*string, *string) {
Text: fmt.Sprintf("parsing desc with function %s is not supported", expr.Sel.Name),
})
}
- return nil, nil
+ return nil
}
default:
if v.strict {
@@ -621,7 +758,7 @@ func (v *visitor) parseNewDescCallExpr(call *ast.CallExpr) (*string, *string) {
Text: fmt.Sprintf("parsing desc of %T is not supported", expr),
})
}
- return nil, nil
+ return nil
}
// k8s.io/component-base/metrics.NewDesc has 6 args
@@ -632,19 +769,45 @@ func (v *visitor) parseNewDescCallExpr(call *ast.CallExpr) (*string, *string) {
Pos: v.fs.Position(call.Pos()),
Text: "NewDesc should have at least 4 args",
})
- return nil, nil
+ return nil
}
name, ok = v.parseValue("fqName", call.Args[0])
if !ok {
- return nil, nil
+ return nil
}
+
help, ok = v.parseValue("help", call.Args[1])
if !ok {
- return nil, nil
+ return nil
+ }
+
+ res := &descCallExpr{
+ name: &name,
+ help: &help,
+ }
+
+ if x, ok := call.Args[2].(*ast.CompositeLit); ok {
+ opt := v.parseCompositeOpts(x)
+ if opt == nil {
+ return nil
+ }
+
+ res.labels = opt.labels
+ }
+
+ if x, ok := call.Args[3].(*ast.CompositeLit); ok {
+ opt := v.parseCompositeOpts(x)
+ if opt == nil {
+ return nil
+ }
+
+ for k, v := range opt.constLabels {
+ res.constLabels = append(res.constLabels, [2]string{k, v})
+ }
}
- return &name, &help
+ return res
}
func mustUnquote(str string) string {
diff --git a/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml b/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml
index 73e1273b34..0e7ed1b7a9 100644
--- a/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml
+++ b/vendor/gitlab.com/bosi/decorder/.gitlab-ci.yml
@@ -12,7 +12,7 @@ stages:
test:
stage: test
- image: golang:1.21.0@sha256:b490ae1f0ece153648dd3c5d25be59a63f966b5f9e1311245c947de4506981aa
+ image: golang:1.22.2@sha256:450e3822c7a135e1463cd83e51c8e2eb03b86a02113c89424e6f0f8344bb4168
before_script:
- set -eu
- if [[ -f .env.pipeline ]];then cp .env.pipeline .env;fi
@@ -27,7 +27,7 @@ test:
lint:source-code:
stage: test
- image: golangci/golangci-lint:v1.54.2-alpine@sha256:e950721f6ae622dcc041f57cc0b61c3a78d4bbfc588facfc8b0166901a9f4848
+ image: golangci/golangci-lint:v1.55.2-alpine@sha256:22e4dd2bba6ad3c6ef918432b92329b51e82d55e470d268d315bfff6a160bceb
script:
- apk add make bash
- make settings
@@ -36,7 +36,7 @@ lint:source-code:
license-check:
stage: test
- image: golang:1.21.0@sha256:b490ae1f0ece153648dd3c5d25be59a63f966b5f9e1311245c947de4506981aa
+ image: golang:1.22.2@sha256:450e3822c7a135e1463cd83e51c8e2eb03b86a02113c89424e6f0f8344bb4168
before_script:
- set -eu
- if [[ -f .env.pipeline ]];then cp .env.pipeline .env;fi
@@ -53,7 +53,7 @@ license-check:
pages:
stage: release
- image: golang:1.21.0@sha256:b490ae1f0ece153648dd3c5d25be59a63f966b5f9e1311245c947de4506981aa
+ image: golang:1.22.2@sha256:450e3822c7a135e1463cd83e51c8e2eb03b86a02113c89424e6f0f8344bb4168
only:
- tags
script:
diff --git a/vendor/go-simpler.org/musttag/Makefile b/vendor/go-simpler.org/musttag/Makefile
new file mode 100644
index 0000000000..6165b16f47
--- /dev/null
+++ b/vendor/go-simpler.org/musttag/Makefile
@@ -0,0 +1,28 @@
+.POSIX:
+.SUFFIXES:
+
+all: test lint
+
+test:
+ go test -race -shuffle=on -cover ./...
+
+test/cover:
+ go test -race -shuffle=on -coverprofile=coverage.out ./...
+ go tool cover -html=coverage.out
+
+lint:
+ golangci-lint run
+
+tidy:
+ go mod tidy
+
+generate:
+ go generate ./...
+
+# run `make pre-commit` once to install the hook.
+pre-commit: .git/hooks/pre-commit test lint tidy generate
+ git diff --exit-code
+
+.git/hooks/pre-commit:
+ echo "make pre-commit" > .git/hooks/pre-commit
+ chmod +x .git/hooks/pre-commit
diff --git a/vendor/go-simpler.org/musttag/musttag.go b/vendor/go-simpler.org/musttag/musttag.go
index d7911770fb..7be684f86a 100644
--- a/vendor/go-simpler.org/musttag/musttag.go
+++ b/vendor/go-simpler.org/musttag/musttag.go
@@ -119,22 +119,14 @@ func run(pass *analysis.Pass, mainModule string, funcs map[string]Func) (_ any,
return // no type info found.
}
- // TODO: check nested structs too.
- if implementsInterface(typ, fn.ifaceWhitelist, pass.Pkg.Imports()) {
- return // the type implements a Marshaler interface; see issue #64.
- }
-
checker := checker{
- mainModule: mainModule,
- seenTypes: make(map[string]struct{}),
- }
-
- styp, ok := checker.parseStruct(typ)
- if !ok {
- return // not a struct.
+ mainModule: mainModule,
+ seenTypes: make(map[string]struct{}),
+ ifaceWhitelist: fn.ifaceWhitelist,
+ imports: pass.Pkg.Imports(),
}
- if valid := checker.checkStruct(styp, fn.Tag); valid {
+ if valid := checker.checkType(typ, fn.Tag); valid {
return // nothing to report.
}
@@ -145,11 +137,39 @@ func run(pass *analysis.Pass, mainModule string, funcs map[string]Func) (_ any,
}
type checker struct {
- mainModule string
- seenTypes map[string]struct{}
+ mainModule string
+ seenTypes map[string]struct{}
+ ifaceWhitelist []string
+ imports []*types.Package
+}
+
+func (c *checker) checkType(typ types.Type, tag string) bool {
+ if _, ok := c.seenTypes[typ.String()]; ok {
+ return true // already checked.
+ }
+ c.seenTypes[typ.String()] = struct{}{}
+
+ styp, ok := c.parseStruct(typ)
+ if !ok {
+ return true // not a struct.
+ }
+
+ return c.checkStruct(styp, tag)
}
+// recursively unwrap a type until we get to an underlying
+// raw struct type that should have its fields checked
+//
+// SomeStruct -> struct{SomeStructField: ... }
+// []*SomeStruct -> struct{SomeStructField: ... }
+// ...
+//
+// exits early if it hits a type that implements a whitelisted interface
func (c *checker) parseStruct(typ types.Type) (*types.Struct, bool) {
+ if implementsInterface(typ, c.ifaceWhitelist, c.imports) {
+ return nil, false // the type implements a Marshaler interface; see issue #64.
+ }
+
switch typ := typ.(type) {
case *types.Pointer:
return c.parseStruct(typ.Elem())
@@ -186,29 +206,26 @@ func (c *checker) parseStruct(typ types.Type) (*types.Struct, bool) {
}
func (c *checker) checkStruct(styp *types.Struct, tag string) (valid bool) {
- c.seenTypes[styp.String()] = struct{}{}
-
for i := 0; i < styp.NumFields(); i++ {
field := styp.Field(i)
if !field.Exported() {
continue
}
- if _, ok := reflect.StructTag(styp.Tag(i)).Lookup(tag); !ok {
+ tagValue, ok := reflect.StructTag(styp.Tag(i)).Lookup(tag)
+ if !ok {
// tag is not required for embedded types; see issue #12.
if !field.Embedded() {
return false
}
}
- nested, ok := c.parseStruct(field.Type())
- if !ok {
+ // Do not recurse into ignored fields.
+ if tagValue == "-" {
continue
}
- if _, ok := c.seenTypes[nested.String()]; ok {
- continue
- }
- if valid := c.checkStruct(nested, tag); !valid {
+
+ if valid := c.checkType(field.Type(), tag); !valid {
return false
}
}
diff --git a/vendor/go-simpler.org/sloglint/README.md b/vendor/go-simpler.org/sloglint/README.md
index 7f6455c1c7..c080c2bea7 100644
--- a/vendor/go-simpler.org/sloglint/README.md
+++ b/vendor/go-simpler.org/sloglint/README.md
@@ -89,14 +89,10 @@ For them to work properly, you need to pass a context to all logger calls.
The `context-only` option causes `sloglint` to report the use of methods without a context:
```go
-slog.Info("a user has logged in") // sloglint: methods without a context should not be used
+slog.Info("a user has logged in") // sloglint: InfoContext should be used instead
```
-This report can be fixed by using the equivalent method with the `Context` suffix:
-
-```go
-slog.InfoContext(ctx, "a user has logged in")
-```
+Possible values are `all` (report all contextless calls) and `scope` (report only if a context exists in the scope of the outermost function).
### Static messages
diff --git a/vendor/go-simpler.org/sloglint/sloglint.go b/vendor/go-simpler.org/sloglint/sloglint.go
index 35cac14d13..d3b0176a6e 100644
--- a/vendor/go-simpler.org/sloglint/sloglint.go
+++ b/vendor/go-simpler.org/sloglint/sloglint.go
@@ -24,7 +24,7 @@ type Options struct {
KVOnly bool // Enforce using key-value pairs only (overrides NoMixedArgs, incompatible with AttrOnly).
AttrOnly bool // Enforce using attributes only (overrides NoMixedArgs, incompatible with KVOnly).
NoGlobal string // Enforce not using global loggers ("all" or "default").
- ContextOnly bool // Enforce using methods that accept a context.
+ ContextOnly string // Enforce using methods that accept a context ("all" or "scope").
StaticMsg bool // Enforce using static log messages.
NoRawKeys bool // Enforce using constants instead of raw keys.
KeyNamingCase string // Enforce a single key naming convention ("snake", "kebab", "camel", or "pascal").
@@ -36,6 +36,7 @@ func New(opts *Options) *analysis.Analyzer {
if opts == nil {
opts = &Options{NoMixedArgs: true}
}
+
return &analysis.Analyzer{
Name: "sloglint",
Doc: "ensure consistent code style when using log/slog",
@@ -52,6 +53,12 @@ func New(opts *Options) *analysis.Analyzer {
return nil, fmt.Errorf("sloglint: Options.NoGlobal=%s: %w", opts.NoGlobal, errInvalidValue)
}
+ switch opts.ContextOnly {
+ case "", "all", "scope":
+ default:
+ return nil, fmt.Errorf("sloglint: Options.ContextOnly=%s: %w", opts.ContextOnly, errInvalidValue)
+ }
+
switch opts.KeyNamingCase {
case "", snakeCase, kebabCase, camelCase, pascalCase:
default:
@@ -91,7 +98,7 @@ func flags(opts *Options) flag.FlagSet {
boolVar(&opts.KVOnly, "kv-only", "enforce using key-value pairs only (overrides -no-mixed-args, incompatible with -attr-only)")
boolVar(&opts.AttrOnly, "attr-only", "enforce using attributes only (overrides -no-mixed-args, incompatible with -kv-only)")
strVar(&opts.NoGlobal, "no-global", "enforce not using global loggers (all|default)")
- boolVar(&opts.ContextOnly, "context-only", "enforce using methods that accept a context")
+ strVar(&opts.ContextOnly, "context-only", "enforce using methods that accept a context (all|scope)")
boolVar(&opts.StaticMsg, "static-msg", "enforce using static log messages")
boolVar(&opts.NoRawKeys, "no-raw-keys", "enforce using constants instead of raw keys")
strVar(&opts.KeyNamingCase, "key-naming-case", "enforce a single key naming convention (snake|kebab|camel|pascal)")
@@ -142,96 +149,116 @@ const (
)
func run(pass *analysis.Pass, opts *Options) {
- visit := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
+ visitor := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
filter := []ast.Node{(*ast.CallExpr)(nil)}
- visit.Preorder(filter, func(node ast.Node) {
- call := node.(*ast.CallExpr)
+ // WithStack is ~2x slower than Preorder, use it only when stack is needed.
+ if opts.ContextOnly == "scope" {
+ visitor.WithStack(filter, func(node ast.Node, _ bool, stack []ast.Node) bool {
+ visit(pass, opts, node, stack)
+ return false
+ })
+ return
+ }
- fn := typeutil.StaticCallee(pass.TypesInfo, call)
- if fn == nil {
- return
- }
+ visitor.Preorder(filter, func(node ast.Node) {
+ visit(pass, opts, node, nil)
+ })
+}
- name := fn.FullName()
- argsPos, ok := slogFuncs[name]
- if !ok {
- return
- }
+// NOTE: stack is nil if Preorder is used.
+func visit(pass *analysis.Pass, opts *Options, node ast.Node, stack []ast.Node) {
+ call := node.(*ast.CallExpr)
- switch opts.NoGlobal {
- case "all":
- if strings.HasPrefix(name, "log/slog.") || globalLoggerUsed(pass.TypesInfo, call.Fun) {
- pass.Reportf(call.Pos(), "global logger should not be used")
- }
- case "default":
- if strings.HasPrefix(name, "log/slog.") {
- pass.Reportf(call.Pos(), "default logger should not be used")
- }
- }
+ fn := typeutil.StaticCallee(pass.TypesInfo, call)
+ if fn == nil {
+ return
+ }
- if opts.ContextOnly {
- typ := pass.TypesInfo.TypeOf(call.Args[0])
- if typ != nil && typ.String() != "context.Context" {
- pass.Reportf(call.Pos(), "methods without a context should not be used")
- }
- }
+ name := fn.FullName()
+ argsPos, ok := slogFuncs[name]
+ if !ok {
+ return
+ }
- if opts.StaticMsg && !staticMsg(call.Args[argsPos-1]) {
- pass.Reportf(call.Pos(), "message should be a string literal or a constant")
+ switch opts.NoGlobal {
+ case "all":
+ if strings.HasPrefix(name, "log/slog.") || globalLoggerUsed(pass.TypesInfo, call.Fun) {
+ pass.Reportf(call.Pos(), "global logger should not be used")
+ }
+ case "default":
+ if strings.HasPrefix(name, "log/slog.") {
+ pass.Reportf(call.Pos(), "default logger should not be used")
}
+ }
- // NOTE: we assume that the arguments have already been validated by govet.
- args := call.Args[argsPos:]
- if len(args) == 0 {
- return
+ switch opts.ContextOnly {
+ case "all":
+ typ := pass.TypesInfo.TypeOf(call.Args[0])
+ if typ != nil && typ.String() != "context.Context" {
+ pass.Reportf(call.Pos(), "%sContext should be used instead", fn.Name())
}
+ case "scope":
+ typ := pass.TypesInfo.TypeOf(call.Args[0])
+ if typ != nil && typ.String() != "context.Context" && hasContextInScope(pass.TypesInfo, stack) {
+ pass.Reportf(call.Pos(), "%sContext should be used instead", fn.Name())
+ }
+ }
- var keys []ast.Expr
- var attrs []ast.Expr
+ if opts.StaticMsg && !staticMsg(call.Args[argsPos-1]) {
+ pass.Reportf(call.Pos(), "message should be a string literal or a constant")
+ }
- for i := 0; i < len(args); i++ {
- typ := pass.TypesInfo.TypeOf(args[i])
- if typ == nil {
- continue
- }
- switch typ.String() {
- case "string":
- keys = append(keys, args[i])
- i++ // skip the value.
- case "log/slog.Attr":
- attrs = append(attrs, args[i])
- }
- }
+ // NOTE: we assume that the arguments have already been validated by govet.
+ args := call.Args[argsPos:]
+ if len(args) == 0 {
+ return
+ }
- switch {
- case opts.KVOnly && len(attrs) > 0:
- pass.Reportf(call.Pos(), "attributes should not be used")
- case opts.AttrOnly && len(attrs) < len(args):
- pass.Reportf(call.Pos(), "key-value pairs should not be used")
- case opts.NoMixedArgs && 0 < len(attrs) && len(attrs) < len(args):
- pass.Reportf(call.Pos(), "key-value pairs and attributes should not be mixed")
- }
+ var keys []ast.Expr
+ var attrs []ast.Expr
- if opts.NoRawKeys && rawKeysUsed(pass.TypesInfo, keys, attrs) {
- pass.Reportf(call.Pos(), "raw keys should not be used")
+ for i := 0; i < len(args); i++ {
+ typ := pass.TypesInfo.TypeOf(args[i])
+ if typ == nil {
+ continue
}
-
- if opts.ArgsOnSepLines && argsOnSameLine(pass.Fset, call, keys, attrs) {
- pass.Reportf(call.Pos(), "arguments should be put on separate lines")
+ switch typ.String() {
+ case "string":
+ keys = append(keys, args[i])
+ i++ // skip the value.
+ case "log/slog.Attr":
+ attrs = append(attrs, args[i])
}
+ }
- switch {
- case opts.KeyNamingCase == snakeCase && badKeyNames(pass.TypesInfo, strcase.ToSnake, keys, attrs):
- pass.Reportf(call.Pos(), "keys should be written in snake_case")
- case opts.KeyNamingCase == kebabCase && badKeyNames(pass.TypesInfo, strcase.ToKebab, keys, attrs):
- pass.Reportf(call.Pos(), "keys should be written in kebab-case")
- case opts.KeyNamingCase == camelCase && badKeyNames(pass.TypesInfo, strcase.ToCamel, keys, attrs):
- pass.Reportf(call.Pos(), "keys should be written in camelCase")
- case opts.KeyNamingCase == pascalCase && badKeyNames(pass.TypesInfo, strcase.ToPascal, keys, attrs):
- pass.Reportf(call.Pos(), "keys should be written in PascalCase")
- }
- })
+ switch {
+ case opts.KVOnly && len(attrs) > 0:
+ pass.Reportf(call.Pos(), "attributes should not be used")
+ case opts.AttrOnly && len(attrs) < len(args):
+ pass.Reportf(call.Pos(), "key-value pairs should not be used")
+ case opts.NoMixedArgs && 0 < len(attrs) && len(attrs) < len(args):
+ pass.Reportf(call.Pos(), "key-value pairs and attributes should not be mixed")
+ }
+
+ if opts.NoRawKeys && rawKeysUsed(pass.TypesInfo, keys, attrs) {
+ pass.Reportf(call.Pos(), "raw keys should not be used")
+ }
+
+ if opts.ArgsOnSepLines && argsOnSameLine(pass.Fset, call, keys, attrs) {
+ pass.Reportf(call.Pos(), "arguments should be put on separate lines")
+ }
+
+ switch {
+ case opts.KeyNamingCase == snakeCase && badKeyNames(pass.TypesInfo, strcase.ToSnake, keys, attrs):
+ pass.Reportf(call.Pos(), "keys should be written in snake_case")
+ case opts.KeyNamingCase == kebabCase && badKeyNames(pass.TypesInfo, strcase.ToKebab, keys, attrs):
+ pass.Reportf(call.Pos(), "keys should be written in kebab-case")
+ case opts.KeyNamingCase == camelCase && badKeyNames(pass.TypesInfo, strcase.ToCamel, keys, attrs):
+ pass.Reportf(call.Pos(), "keys should be written in camelCase")
+ case opts.KeyNamingCase == pascalCase && badKeyNames(pass.TypesInfo, strcase.ToPascal, keys, attrs):
+ pass.Reportf(call.Pos(), "keys should be written in PascalCase")
+ }
}
func globalLoggerUsed(info *types.Info, expr ast.Expr) bool {
@@ -247,6 +274,24 @@ func globalLoggerUsed(info *types.Info, expr ast.Expr) bool {
return obj.Parent() == obj.Pkg().Scope()
}
+func hasContextInScope(info *types.Info, stack []ast.Node) bool {
+ for i := len(stack) - 1; i >= 0; i-- {
+ decl, ok := stack[i].(*ast.FuncDecl)
+ if !ok {
+ continue
+ }
+ params := decl.Type.Params
+ if len(params.List) == 0 || len(params.List[0].Names) == 0 {
+ continue
+ }
+ typ := info.TypeOf(params.List[0].Names[0])
+ if typ != nil && typ.String() == "context.Context" {
+ return true
+ }
+ }
+ return false
+}
+
func staticMsg(expr ast.Expr) bool {
switch msg := expr.(type) {
case *ast.BasicLit: // e.g. slog.Info("msg")
@@ -315,12 +360,18 @@ func badKeyNames(info *types.Info, caseFn func(string) string, keys, attrs []ast
for _, attr := range attrs {
var expr ast.Expr
+
switch attr := attr.(type) {
case *ast.CallExpr: // e.g. slog.Int()
fn := typeutil.StaticCallee(info, attr)
- if _, ok := attrFuncs[fn.FullName()]; ok {
- expr = attr.Args[0]
+ if fn == nil {
+ continue
}
+ if _, ok := attrFuncs[fn.FullName()]; !ok {
+ continue
+ }
+ expr = attr.Args[0]
+
case *ast.CompositeLit: // slog.Attr{}
switch len(attr.Elts) {
case 1: // slog.Attr{Key: ...} | slog.Attr{Value: ...}
@@ -337,6 +388,7 @@ func badKeyNames(info *types.Info, caseFn func(string) string, keys, attrs []ast
}
}
}
+
if name, ok := getKeyName(expr); ok && name != caseFn(name) {
return true
}
diff --git a/vendor/golang.org/x/mod/modfile/read.go b/vendor/golang.org/x/mod/modfile/read.go
index 5b5bb5e115..2205682591 100644
--- a/vendor/golang.org/x/mod/modfile/read.go
+++ b/vendor/golang.org/x/mod/modfile/read.go
@@ -225,7 +225,7 @@ func (x *FileSyntax) Cleanup() {
if ww == 0 {
continue
}
- if ww == 1 {
+ if ww == 1 && len(stmt.RParen.Comments.Before) == 0 {
// Collapse block into single line.
line := &Line{
Comments: Comments{
diff --git a/vendor/golang.org/x/mod/modfile/rule.go b/vendor/golang.org/x/mod/modfile/rule.go
index 26acaa5f7c..0e7b7e2679 100644
--- a/vendor/golang.org/x/mod/modfile/rule.go
+++ b/vendor/golang.org/x/mod/modfile/rule.go
@@ -975,6 +975,8 @@ func (f *File) AddGoStmt(version string) error {
var hint Expr
if f.Module != nil && f.Module.Syntax != nil {
hint = f.Module.Syntax
+ } else if f.Syntax == nil {
+ f.Syntax = new(FileSyntax)
}
f.Go = &Go{
Version: version,
diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go
index 90a2c3d6dc..09f6a49b80 100644
--- a/vendor/golang.org/x/oauth2/oauth2.go
+++ b/vendor/golang.org/x/oauth2/oauth2.go
@@ -393,7 +393,7 @@ func ReuseTokenSource(t *Token, src TokenSource) TokenSource {
}
}
-// ReuseTokenSource returns a TokenSource that acts in the same manner as the
+// ReuseTokenSourceWithExpiry returns a TokenSource that acts in the same manner as the
// TokenSource returned by ReuseTokenSource, except the expiry buffer is
// configurable. The expiration time of a token is calculated as
// t.Expiry.Add(-earlyExpiry).
diff --git a/vendor/golang.org/x/sync/semaphore/semaphore.go b/vendor/golang.org/x/sync/semaphore/semaphore.go
index 30f632c577..b618162aab 100644
--- a/vendor/golang.org/x/sync/semaphore/semaphore.go
+++ b/vendor/golang.org/x/sync/semaphore/semaphore.go
@@ -35,11 +35,25 @@ type Weighted struct {
// Acquire acquires the semaphore with a weight of n, blocking until resources
// are available or ctx is done. On success, returns nil. On failure, returns
// ctx.Err() and leaves the semaphore unchanged.
-//
-// If ctx is already done, Acquire may still succeed without blocking.
func (s *Weighted) Acquire(ctx context.Context, n int64) error {
+ done := ctx.Done()
+
s.mu.Lock()
+ select {
+ case <-done:
+ // ctx becoming done has "happened before" acquiring the semaphore,
+ // whether it became done before the call began or while we were
+ // waiting for the mutex. We prefer to fail even if we could acquire
+ // the mutex without blocking.
+ s.mu.Unlock()
+ return ctx.Err()
+ default:
+ }
if s.size-s.cur >= n && s.waiters.Len() == 0 {
+ // Since we hold s.mu and haven't synchronized since checking done, if
+ // ctx becomes done before we return here, it becoming done must have
+ // "happened concurrently" with this call - it cannot "happen before"
+ // we return in this branch. So, we're ok to always acquire here.
s.cur += n
s.mu.Unlock()
return nil
@@ -48,7 +62,7 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
if n > s.size {
// Don't make other Acquire calls block on one that's doomed to fail.
s.mu.Unlock()
- <-ctx.Done()
+ <-done
return ctx.Err()
}
@@ -58,14 +72,14 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
s.mu.Unlock()
select {
- case <-ctx.Done():
- err := ctx.Err()
+ case <-done:
s.mu.Lock()
select {
case <-ready:
- // Acquired the semaphore after we were canceled. Rather than trying to
- // fix up the queue, just pretend we didn't notice the cancelation.
- err = nil
+ // Acquired the semaphore after we were canceled.
+ // Pretend we didn't and put the tokens back.
+ s.cur -= n
+ s.notifyWaiters()
default:
isFront := s.waiters.Front() == elem
s.waiters.Remove(elem)
@@ -75,9 +89,19 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
}
}
s.mu.Unlock()
- return err
+ return ctx.Err()
case <-ready:
+ // Acquired the semaphore. Check that ctx isn't already done.
+ // We check the done channel instead of calling ctx.Err because we
+ // already have the channel, and ctx.Err is O(n) with the nesting
+ // depth of ctx.
+ select {
+ case <-done:
+ s.Release(n)
+ return ctx.Err()
+ default:
+ }
return nil
}
}
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/composite/composite.go b/vendor/golang.org/x/tools/go/analysis/passes/composite/composite.go
index 6b126f897d..8cc6c4a058 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/composite/composite.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/composite/composite.go
@@ -84,10 +84,9 @@ func run(pass *analysis.Pass) (interface{}, error) {
default:
structuralTypes = append(structuralTypes, typ)
}
+
for _, typ := range structuralTypes {
- // TODO(adonovan): this operation is questionable.
- under := aliases.Unalias(deref(typ.Underlying()))
- strct, ok := under.(*types.Struct)
+ strct, ok := typeparams.Deref(typ).Underlying().(*types.Struct)
if !ok {
// skip non-struct composite literals
continue
@@ -144,19 +143,6 @@ func run(pass *analysis.Pass) (interface{}, error) {
return nil, nil
}
-// Note: this is not the usual deref operator!
-// It strips off all Pointer constructors (and their Aliases).
-func deref(typ types.Type) types.Type {
- for {
- ptr, ok := aliases.Unalias(typ).(*types.Pointer)
- if !ok {
- break
- }
- typ = ptr.Elem().Underlying()
- }
- return typ
-}
-
// isLocalType reports whether typ belongs to the same package as pass.
// TODO(adonovan): local means "internal to a function"; rename to isSamePackageType.
func isLocalType(pass *analysis.Pass, typ types.Type) bool {
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/httpresponse/httpresponse.go b/vendor/golang.org/x/tools/go/analysis/passes/httpresponse/httpresponse.go
index 047ae07cca..e1ca9b2f51 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/httpresponse/httpresponse.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/httpresponse/httpresponse.go
@@ -119,7 +119,7 @@ func isHTTPFuncOrMethodOnClient(info *types.Info, expr *ast.CallExpr) bool {
return false // the function called does not return two values.
}
isPtr, named := typesinternal.ReceiverNamed(res.At(0))
- if !isPtr || !analysisutil.IsNamedType(named, "net/http", "Response") {
+ if !isPtr || named == nil || !analysisutil.IsNamedType(named, "net/http", "Response") {
return false // the first return type is not *http.Response.
}
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/ifaceassert.go b/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/ifaceassert.go
index cd4a477626..5f07ed3ffd 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/ifaceassert.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/ifaceassert.go
@@ -13,6 +13,7 @@ import (
"golang.org/x/tools/go/analysis/passes/inspect"
"golang.org/x/tools/go/analysis/passes/internal/analysisutil"
"golang.org/x/tools/go/ast/inspector"
+ "golang.org/x/tools/internal/typeparams"
)
//go:embed doc.go
@@ -28,7 +29,7 @@ var Analyzer = &analysis.Analyzer{
// assertableTo checks whether interface v can be asserted into t. It returns
// nil on success, or the first conflicting method on failure.
-func assertableTo(v, t types.Type) *types.Func {
+func assertableTo(free *typeparams.Free, v, t types.Type) *types.Func {
if t == nil || v == nil {
// not assertable to, but there is no missing method
return nil
@@ -42,7 +43,7 @@ func assertableTo(v, t types.Type) *types.Func {
// Mitigations for interface comparisons and generics.
// TODO(https://github.com/golang/go/issues/50658): Support more precise conclusion.
- if isParameterized(V) || isParameterized(T) {
+ if free.Has(V) || free.Has(T) {
return nil
}
if f, wrongType := types.MissingMethod(V, T, false); wrongType {
@@ -57,6 +58,7 @@ func run(pass *analysis.Pass) (interface{}, error) {
(*ast.TypeAssertExpr)(nil),
(*ast.TypeSwitchStmt)(nil),
}
+ var free typeparams.Free
inspect.Preorder(nodeFilter, func(n ast.Node) {
var (
assert *ast.TypeAssertExpr // v.(T) expression
@@ -86,7 +88,7 @@ func run(pass *analysis.Pass) (interface{}, error) {
V := pass.TypesInfo.TypeOf(assert.X)
for _, target := range targets {
T := pass.TypesInfo.TypeOf(target)
- if f := assertableTo(V, T); f != nil {
+ if f := assertableTo(&free, V, T); f != nil {
pass.Reportf(
target.Pos(),
"impossible type assertion: no type can implement both %v and %v (conflicting types for %v method)",
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/nilness/doc.go b/vendor/golang.org/x/tools/go/analysis/passes/nilness/doc.go
index 212263741d..e27863e833 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/nilness/doc.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/nilness/doc.go
@@ -42,4 +42,31 @@
// if p == nil {
// panic(p)
// }
+//
+// Sometimes the control flow may be quite complex, making bugs hard
+// to spot. In the example below, the err.Error expression is
+// guaranteed to panic because, after the first return, err must be
+// nil. The intervening loop is just a distraction.
+//
+// ...
+// err := g.Wait()
+// if err != nil {
+// return err
+// }
+// partialSuccess := false
+// for _, err := range errs {
+// if err == nil {
+// partialSuccess = true
+// break
+// }
+// }
+// if partialSuccess {
+// reportStatus(StatusMessage{
+// Code: code.ERROR,
+// Detail: err.Error(), // "nil dereference in dynamic method call"
+// })
+// return nil
+// }
+//
+// ...
package nilness
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/slog/slog.go b/vendor/golang.org/x/tools/go/analysis/passes/slog/slog.go
index b3c683b61c..0cade7bad7 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/slog/slog.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/slog/slog.go
@@ -49,6 +49,7 @@ const (
)
func run(pass *analysis.Pass) (any, error) {
+ var attrType types.Type // The type of slog.Attr
inspect := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
nodeFilter := []ast.Node{
(*ast.CallExpr)(nil),
@@ -67,6 +68,11 @@ func run(pass *analysis.Pass) (any, error) {
// Not a slog function that takes key-value pairs.
return
}
+ // Here we know that fn.Pkg() is "log/slog".
+ if attrType == nil {
+ attrType = fn.Pkg().Scope().Lookup("Attr").Type()
+ }
+
if isMethodExpr(pass.TypesInfo, call) {
// Call is to a method value. Skip the first argument.
skipArgs++
@@ -92,8 +98,19 @@ func run(pass *analysis.Pass) (any, error) {
pos = key
case types.IsInterface(t):
// As we do not do dataflow, we do not know what the dynamic type is.
- // It could be a string or an Attr so we don't know what to expect next.
- pos = unknown
+ // But we might be able to learn enough to make a decision.
+ if types.AssignableTo(stringType, t) {
+ // t must be an empty interface. So it can also be an Attr.
+ // We don't know enough to make an assumption.
+ pos = unknown
+ continue
+ } else if attrType != nil && types.AssignableTo(attrType, t) {
+ // Assume it is an Attr.
+ pos = key
+ continue
+ }
+ // Can't be either a string or Attr. Definitely an error.
+ fallthrough
default:
if unknownArg == nil {
pass.ReportRangef(arg, "%s arg %q should be a string or a slog.Attr (possible missing key or value)",
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/unusedwrite/unusedwrite.go b/vendor/golang.org/x/tools/go/analysis/passes/unusedwrite/unusedwrite.go
index a01cbb8f83..a99c548335 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/unusedwrite/unusedwrite.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/unusedwrite/unusedwrite.go
@@ -6,7 +6,6 @@ package unusedwrite
import (
_ "embed"
- "fmt"
"go/types"
"golang.org/x/tools/go/analysis"
@@ -14,6 +13,7 @@ import (
"golang.org/x/tools/go/analysis/passes/internal/analysisutil"
"golang.org/x/tools/go/ssa"
"golang.org/x/tools/internal/aliases"
+ "golang.org/x/tools/internal/typeparams"
)
//go:embed doc.go
@@ -37,9 +37,9 @@ func run(pass *analysis.Pass) (interface{}, error) {
for _, store := range reports {
switch addr := store.Addr.(type) {
case *ssa.FieldAddr:
+ field := typeparams.CoreType(typeparams.MustDeref(addr.X.Type())).(*types.Struct).Field(addr.Field)
pass.Reportf(store.Pos(),
- "unused write to field %s",
- getFieldName(addr.X.Type(), addr.Field))
+ "unused write to field %s", field.Name())
case *ssa.IndexAddr:
pass.Reportf(store.Pos(),
"unused write to array index %s", addr.Index)
@@ -151,21 +151,3 @@ func hasStructOrArrayType(v ssa.Value) bool {
}
return isStructOrArray(v.Type())
}
-
-// getFieldName returns the name of a field in a struct.
-// It the field is not found, then it returns the string format of the index.
-//
-// For example, for struct T {x int, y int), getFieldName(*T, 1) returns "y".
-func getFieldName(tp types.Type, index int) string {
- // TODO(adonovan): use
- // stp, ok := typeparams.Deref(tp).Underlying().(*types.Struct); ok {
- // when Deref is defined. But see CL 565456 for a better fix.
-
- if pt, ok := aliases.Unalias(tp).(*types.Pointer); ok {
- tp = pt.Elem()
- }
- if stp, ok := tp.Underlying().(*types.Struct); ok {
- return stp.Field(index).Name()
- }
- return fmt.Sprintf("%d", index)
-}
diff --git a/vendor/golang.org/x/tools/go/cfg/cfg.go b/vendor/golang.org/x/tools/go/cfg/cfg.go
index 01668359af..fad4530ff3 100644
--- a/vendor/golang.org/x/tools/go/cfg/cfg.go
+++ b/vendor/golang.org/x/tools/go/cfg/cfg.go
@@ -211,9 +211,13 @@ func (g *CFG) Format(fset *token.FileSet) string {
return buf.String()
}
-// digraph emits AT&T GraphViz (dot) syntax for the CFG.
-// TODO(adonovan): publish; needs a proposal.
-func (g *CFG) digraph(fset *token.FileSet) string {
+// Dot returns the control-flow graph in the [Dot graph description language].
+// Use a command such as 'dot -Tsvg' to render it in a form viewable in a browser.
+// This method is provided as a debugging aid; the details of the
+// output are unspecified and may change.
+//
+// [Dot graph description language]: ​​https://en.wikipedia.org/wiki/DOT_(graph_description_language)
+func (g *CFG) Dot(fset *token.FileSet) string {
var buf bytes.Buffer
buf.WriteString("digraph CFG {\n")
buf.WriteString(" node [shape=box];\n")
@@ -235,11 +239,6 @@ func (g *CFG) digraph(fset *token.FileSet) string {
return buf.String()
}
-// exposed to main.go
-func digraph(g *CFG, fset *token.FileSet) string {
- return g.digraph(fset)
-}
-
func formatNode(fset *token.FileSet, n ast.Node) string {
var buf bytes.Buffer
format.Node(&buf, fset, n)
diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go
index f33b0afc22..865d90597a 100644
--- a/vendor/golang.org/x/tools/go/packages/packages.go
+++ b/vendor/golang.org/x/tools/go/packages/packages.go
@@ -9,6 +9,7 @@ package packages
import (
"context"
"encoding/json"
+ "errors"
"fmt"
"go/ast"
"go/parser"
@@ -24,6 +25,8 @@ import (
"sync"
"time"
+ "golang.org/x/sync/errgroup"
+
"golang.org/x/tools/go/gcexportdata"
"golang.org/x/tools/internal/gocommand"
"golang.org/x/tools/internal/packagesinternal"
@@ -255,8 +258,27 @@ func Load(cfg *Config, patterns ...string) ([]*Package, error) {
// defaultDriver will fall back to the go list driver.
// The boolean result indicates that an external driver handled the request.
func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, error) {
+ const (
+ // windowsArgMax specifies the maximum command line length for
+ // the Windows' CreateProcess function.
+ windowsArgMax = 32767
+ // maxEnvSize is a very rough estimation of the maximum environment
+ // size of a user.
+ maxEnvSize = 16384
+ // safeArgMax specifies the maximum safe command line length to use
+ // by the underlying driver excl. the environment. We choose the Windows'
+ // ARG_MAX as the starting point because it's one of the lowest ARG_MAX
+ // constants out of the different supported platforms,
+ // e.g., https://www.in-ulm.de/~mascheck/various/argmax/#results.
+ safeArgMax = windowsArgMax - maxEnvSize
+ )
+ chunks, err := splitIntoChunks(patterns, safeArgMax)
+ if err != nil {
+ return nil, false, err
+ }
+
if driver := findExternalDriver(cfg); driver != nil {
- response, err := driver(cfg, patterns...)
+ response, err := callDriverOnChunks(driver, cfg, chunks)
if err != nil {
return nil, false, err
} else if !response.NotHandled {
@@ -265,11 +287,82 @@ func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, erro
// (fall through)
}
- response, err := goListDriver(cfg, patterns...)
+ response, err := callDriverOnChunks(goListDriver, cfg, chunks)
if err != nil {
return nil, false, err
}
- return response, false, nil
+ return response, false, err
+}
+
+// splitIntoChunks chunks the slice so that the total number of characters
+// in a chunk is no longer than argMax.
+func splitIntoChunks(patterns []string, argMax int) ([][]string, error) {
+ if argMax <= 0 {
+ return nil, errors.New("failed to split patterns into chunks, negative safe argMax value")
+ }
+ var chunks [][]string
+ charsInChunk := 0
+ nextChunkStart := 0
+ for i, v := range patterns {
+ vChars := len(v)
+ if vChars > argMax {
+ // a single pattern is longer than the maximum safe ARG_MAX, hardly should happen
+ return nil, errors.New("failed to split patterns into chunks, a pattern is too long")
+ }
+ charsInChunk += vChars + 1 // +1 is for a whitespace between patterns that has to be counted too
+ if charsInChunk > argMax {
+ chunks = append(chunks, patterns[nextChunkStart:i])
+ nextChunkStart = i
+ charsInChunk = vChars
+ }
+ }
+ // add the last chunk
+ if nextChunkStart < len(patterns) {
+ chunks = append(chunks, patterns[nextChunkStart:])
+ }
+ return chunks, nil
+}
+
+func callDriverOnChunks(driver driver, cfg *Config, chunks [][]string) (*DriverResponse, error) {
+ if len(chunks) == 0 {
+ return driver(cfg)
+ }
+ responses := make([]*DriverResponse, len(chunks))
+ errNotHandled := errors.New("driver returned NotHandled")
+ var g errgroup.Group
+ for i, chunk := range chunks {
+ i := i
+ chunk := chunk
+ g.Go(func() (err error) {
+ responses[i], err = driver(cfg, chunk...)
+ if responses[i] != nil && responses[i].NotHandled {
+ err = errNotHandled
+ }
+ return err
+ })
+ }
+ if err := g.Wait(); err != nil {
+ if errors.Is(err, errNotHandled) {
+ return &DriverResponse{NotHandled: true}, nil
+ }
+ return nil, err
+ }
+ return mergeResponses(responses...), nil
+}
+
+func mergeResponses(responses ...*DriverResponse) *DriverResponse {
+ if len(responses) == 0 {
+ return nil
+ }
+ response := newDeduper()
+ response.dr.NotHandled = false
+ response.dr.Compiler = responses[0].Compiler
+ response.dr.Arch = responses[0].Arch
+ response.dr.GoVersion = responses[0].GoVersion
+ for _, v := range responses {
+ response.addAll(v)
+ }
+ return response.dr
}
// A Package describes a loaded Go package.
@@ -1025,7 +1118,7 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
Sizes: ld.sizes, // may be nil
}
if lpkg.Module != nil && lpkg.Module.GoVersion != "" {
- typesinternal.SetGoVersion(tc, "go"+lpkg.Module.GoVersion)
+ tc.GoVersion = "go" + lpkg.Module.GoVersion
}
if (ld.Mode & typecheckCgo) != 0 {
if !typesinternal.SetUsesCgo(tc) {
@@ -1036,10 +1129,24 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
return
}
}
- types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax)
+ typErr := types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax)
lpkg.importErrors = nil // no longer needed
+ // In go/types go1.21 and go1.22, Checker.Files failed fast with a
+ // a "too new" error, without calling tc.Error and without
+ // proceeding to type-check the package (#66525).
+ // We rely on the runtimeVersion error to give the suggested remedy.
+ if typErr != nil && len(lpkg.Errors) == 0 && len(lpkg.Syntax) > 0 {
+ if msg := typErr.Error(); strings.HasPrefix(msg, "package requires newer Go version") {
+ appendError(types.Error{
+ Fset: ld.Fset,
+ Pos: lpkg.Syntax[0].Package,
+ Msg: msg,
+ })
+ }
+ }
+
// If !Cgo, the type-checker uses FakeImportC mode, so
// it doesn't invoke the importer for import "C",
// nor report an error for the import,
@@ -1061,6 +1168,12 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
}
}
+ // If types.Checker.Files had an error that was unreported,
+ // make sure to report the unknown error so the package is illTyped.
+ if typErr != nil && len(lpkg.Errors) == 0 {
+ appendError(typErr)
+ }
+
// Record accumulated errors.
illTyped := len(lpkg.Errors) > 0
if !illTyped {
diff --git a/vendor/golang.org/x/tools/go/ssa/builder.go b/vendor/golang.org/x/tools/go/ssa/builder.go
index 72e906c385..1f7f364eef 100644
--- a/vendor/golang.org/x/tools/go/ssa/builder.go
+++ b/vendor/golang.org/x/tools/go/ssa/builder.go
@@ -79,6 +79,7 @@ import (
"go/token"
"go/types"
"os"
+ "runtime"
"sync"
"golang.org/x/tools/internal/aliases"
@@ -335,7 +336,7 @@ func (b *builder) builtin(fn *Function, obj *types.Builtin, args []ast.Expr, typ
// We must still evaluate the value, though. (If it
// was side-effect free, the whole call would have
// been constant-folded.)
- t, _ := deref(fn.typeOf(args[0]))
+ t := typeparams.Deref(fn.typeOf(args[0]))
if at, ok := typeparams.CoreType(t).(*types.Array); ok {
b.expr(fn, args[0]) // for effects only
return intConst(at.Len())
@@ -391,7 +392,7 @@ func (b *builder) addr(fn *Function, e ast.Expr, escaping bool) lvalue {
return &address{addr: v, pos: e.Pos(), expr: e}
case *ast.CompositeLit:
- typ, _ := deref(fn.typeOf(e))
+ typ := typeparams.Deref(fn.typeOf(e))
var v *Alloc
if escaping {
v = emitNew(fn, typ, e.Lbrace, "complit")
@@ -512,17 +513,15 @@ func (b *builder) assign(fn *Function, loc lvalue, e ast.Expr, isZero bool, sb *
// A CompositeLit never evaluates to a pointer,
// so if the type of the location is a pointer,
// an &-operation is implied.
- if _, ok := loc.(blank); !ok { // avoid calling blank.typ()
- if _, ok := deref(loc.typ()); ok {
- ptr := b.addr(fn, e, true).address(fn)
- // copy address
- if sb != nil {
- sb.store(loc, ptr)
- } else {
- loc.store(fn, ptr)
- }
- return
+ if !is[blank](loc) && isPointerCore(loc.typ()) { // avoid calling blank.typ()
+ ptr := b.addr(fn, e, true).address(fn)
+ // copy address
+ if sb != nil {
+ sb.store(loc, ptr)
+ } else {
+ loc.store(fn, ptr)
}
+ return
}
if _, ok := loc.(*address); ok {
@@ -794,7 +793,7 @@ func (b *builder) expr0(fn *Function, e ast.Expr, tv types.TypeAndValue) Value {
// The result is a "bound".
obj := sel.obj.(*types.Func)
rt := fn.typ(recvType(obj))
- _, wantAddr := deref(rt)
+ wantAddr := isPointer(rt)
escaping := true
v := b.receiver(fn, e.X, wantAddr, escaping, sel)
@@ -922,7 +921,7 @@ func (b *builder) stmtList(fn *Function, list []ast.Stmt) {
// escaping is defined as per builder.addr().
func (b *builder) receiver(fn *Function, e ast.Expr, wantAddr, escaping bool, sel *selection) Value {
var v Value
- if _, eptr := deref(fn.typeOf(e)); wantAddr && !sel.indirect && !eptr {
+ if wantAddr && !sel.indirect && !isPointerCore(fn.typeOf(e)) {
v = b.addr(fn, e, escaping).address(fn)
} else {
v = b.expr(fn, e)
@@ -934,7 +933,7 @@ func (b *builder) receiver(fn *Function, e ast.Expr, wantAddr, escaping bool, se
if types.IsInterface(v.Type()) {
// When v is an interface, sel.Kind()==MethodValue and v.f is invoked.
// So v is not loaded, even if v has a pointer core type.
- } else if _, vptr := deref(v.Type()); !wantAddr && vptr {
+ } else if !wantAddr && isPointerCore(v.Type()) {
v = emitLoad(fn, v)
}
return v
@@ -953,7 +952,7 @@ func (b *builder) setCallFunc(fn *Function, e *ast.CallExpr, c *CallCommon) {
obj := sel.obj.(*types.Func)
recv := recvType(obj)
- _, wantAddr := deref(recv)
+ wantAddr := isPointer(recv)
escaping := true
v := b.receiver(fn, selector.X, wantAddr, escaping, sel)
if types.IsInterface(recv) {
@@ -1214,12 +1213,12 @@ func (b *builder) arrayLen(fn *Function, elts []ast.Expr) int64 {
// literal has type *T behaves like &T{}.
// In that case, addr must hold a T, not a *T.
func (b *builder) compLit(fn *Function, addr Value, e *ast.CompositeLit, isZero bool, sb *storebuf) {
- typ, _ := deref(fn.typeOf(e)) // type with name [may be type param]
+ typ := typeparams.Deref(fn.typeOf(e)) // retain the named/alias/param type, if any
switch t := typeparams.CoreType(typ).(type) {
case *types.Struct:
if !isZero && len(e.Elts) != t.NumFields() {
// memclear
- zt, _ := deref(addr.Type())
+ zt := typeparams.MustDeref(addr.Type())
sb.store(&address{addr, e.Lbrace, nil}, zeroConst(zt))
isZero = true
}
@@ -1252,7 +1251,7 @@ func (b *builder) compLit(fn *Function, addr Value, e *ast.CompositeLit, isZero
case *types.Array, *types.Slice:
var at *types.Array
var array Value
- switch t := aliases.Unalias(t).(type) {
+ switch t := t.(type) {
case *types.Slice:
at = types.NewArray(t.Elem(), b.arrayLen(fn, e.Elts))
array = emitNew(fn, at, e.Lbrace, "slicelit")
@@ -1262,7 +1261,7 @@ func (b *builder) compLit(fn *Function, addr Value, e *ast.CompositeLit, isZero
if !isZero && int64(len(e.Elts)) != at.Len() {
// memclear
- zt, _ := deref(array.Type())
+ zt := typeparams.MustDeref(array.Type())
sb.store(&address{array, e.Lbrace, nil}, zeroConst(zt))
}
}
@@ -1318,7 +1317,7 @@ func (b *builder) compLit(fn *Function, addr Value, e *ast.CompositeLit, isZero
// map[*struct{}]bool{&struct{}{}: true}
wantAddr := false
if _, ok := unparen(e.Key).(*ast.CompositeLit); ok {
- _, wantAddr = deref(t.Key())
+ wantAddr = isPointerCore(t.Key())
}
var key Value
@@ -1865,7 +1864,7 @@ func (b *builder) forStmtGo122(fn *Function, s *ast.ForStmt, label *lblock) {
fn.emit(phi)
fn.currentBlock = post
- // If next is is local, it reuses the address and zeroes the old value so
+ // If next is local, it reuses the address and zeroes the old value so
// load before allocating next.
load := emitLoad(fn, phi)
next := emitLocal(fn, typ, v.Pos(), v.Name())
@@ -1991,7 +1990,7 @@ func (b *builder) rangeIndexed(fn *Function, x Value, tv types.Type, pos token.P
// Determine number of iterations.
var length Value
- dt, _ := deref(x.Type())
+ dt := typeparams.Deref(x.Type())
if arr, ok := typeparams.CoreType(dt).(*types.Array); ok {
// For array or *array, the number of iterations is
// known statically thanks to the type. We avoid a
@@ -2338,6 +2337,12 @@ start:
}
case *ast.LabeledStmt:
+ if s.Label.Name == "_" {
+ // Blank labels can't be the target of a goto, break,
+ // or continue statement, so we don't need a new block.
+ _s = s.Stmt
+ goto start
+ }
label = fn.labelledBlock(s.Label)
emitJump(fn, label._goto)
fn.currentBlock = label._goto
@@ -2616,15 +2621,20 @@ func (prog *Program) Build() {
p.Build()
} else {
wg.Add(1)
+ cpuLimit <- struct{}{} // acquire a token
go func(p *Package) {
p.Build()
wg.Done()
+ <-cpuLimit // release a token
}(p)
}
}
wg.Wait()
}
+// cpuLimit is a counting semaphore to limit CPU parallelism.
+var cpuLimit = make(chan struct{}, runtime.GOMAXPROCS(0))
+
// Build builds SSA code for all functions and vars in package p.
//
// CreatePackage must have been called for all of p's direct imports
diff --git a/vendor/golang.org/x/tools/go/ssa/const.go b/vendor/golang.org/x/tools/go/ssa/const.go
index e0d79f5ef7..2a4e0dde28 100644
--- a/vendor/golang.org/x/tools/go/ssa/const.go
+++ b/vendor/golang.org/x/tools/go/ssa/const.go
@@ -46,9 +46,9 @@ func soleTypeKind(typ types.Type) types.BasicInfo {
// Candidates (perhaps all) are eliminated during the type-set
// iteration, which executes at least once.
state := types.IsBoolean | types.IsInteger | types.IsString
- underIs(typeSetOf(typ), func(t types.Type) bool {
+ underIs(typeSetOf(typ), func(ut types.Type) bool {
var c types.BasicInfo
- if t, ok := aliases.Unalias(t).(*types.Basic); ok {
+ if t, ok := ut.(*types.Basic); ok {
c = t.Info()
}
if c&types.IsNumeric != 0 { // int/float/complex
diff --git a/vendor/golang.org/x/tools/go/ssa/coretype.go b/vendor/golang.org/x/tools/go/ssa/coretype.go
index 3a512830b1..8c218f919f 100644
--- a/vendor/golang.org/x/tools/go/ssa/coretype.go
+++ b/vendor/golang.org/x/tools/go/ssa/coretype.go
@@ -50,6 +50,7 @@ func typeSetOf(typ types.Type) termList {
// This is a adaptation of x/exp/typeparams.NormalTerms which x/tools cannot depend on.
var terms []*types.Term
var err error
+ // typeSetOf(t) == typeSetOf(Unalias(t))
switch typ := aliases.Unalias(typ).(type) {
case *types.TypeParam:
terms, err = typeparams.StructuralTerms(typ)
diff --git a/vendor/golang.org/x/tools/go/ssa/create.go b/vendor/golang.org/x/tools/go/ssa/create.go
index f8f584a1a5..f4dab2decd 100644
--- a/vendor/golang.org/x/tools/go/ssa/create.go
+++ b/vendor/golang.org/x/tools/go/ssa/create.go
@@ -34,13 +34,12 @@ import (
// See the Example tests for simple examples.
func NewProgram(fset *token.FileSet, mode BuilderMode) *Program {
return &Program{
- Fset: fset,
- imported: make(map[string]*Package),
- packages: make(map[*types.Package]*Package),
- mode: mode,
- canon: newCanonizer(),
- ctxt: types.NewContext(),
- parameterized: tpWalker{seen: make(map[types.Type]bool)},
+ Fset: fset,
+ imported: make(map[string]*Package),
+ packages: make(map[*types.Package]*Package),
+ mode: mode,
+ canon: newCanonizer(),
+ ctxt: types.NewContext(),
}
}
@@ -301,7 +300,7 @@ func (prog *Program) CreatePackage(pkg *types.Package, files []*ast.File, info *
var printMu sync.Mutex
// AllPackages returns a new slice containing all packages created by
-// prog.CreatePackage in in unspecified order.
+// prog.CreatePackage in unspecified order.
func (prog *Program) AllPackages() []*Package {
pkgs := make([]*Package, 0, len(prog.packages))
for _, pkg := range prog.packages {
diff --git a/vendor/golang.org/x/tools/go/ssa/emit.go b/vendor/golang.org/x/tools/go/ssa/emit.go
index 549c9114d4..716299ffe6 100644
--- a/vendor/golang.org/x/tools/go/ssa/emit.go
+++ b/vendor/golang.org/x/tools/go/ssa/emit.go
@@ -12,7 +12,6 @@ import (
"go/token"
"go/types"
- "golang.org/x/tools/internal/aliases"
"golang.org/x/tools/internal/typeparams"
)
@@ -249,7 +248,7 @@ func emitConv(f *Function, val Value, typ types.Type) Value {
// Record the types of operands to MakeInterface, if
// non-parameterized, as they are the set of runtime types.
t := val.Type()
- if f.typeparams.Len() == 0 || !f.Prog.parameterized.isParameterized(t) {
+ if f.typeparams.Len() == 0 || !f.Prog.isParameterized(t) {
addRuntimeType(f.Prog, t)
}
@@ -277,18 +276,20 @@ func emitConv(f *Function, val Value, typ types.Type) Value {
sliceTo0ArrayPtr
convert
)
- classify := func(s, d types.Type) conversionCase {
+ // classify the conversion case of a source type us to a destination type ud.
+ // us and ud are underlying types (not *Named or *Alias)
+ classify := func(us, ud types.Type) conversionCase {
// Just a change of type, but not value or representation?
- if isValuePreserving(s, d) {
+ if isValuePreserving(us, ud) {
return changeType
}
// Conversion from slice to array or slice to array pointer?
- if slice, ok := aliases.Unalias(s).(*types.Slice); ok {
+ if slice, ok := us.(*types.Slice); ok {
var arr *types.Array
var ptr bool
// Conversion from slice to array pointer?
- switch d := aliases.Unalias(d).(type) {
+ switch d := ud.(type) {
case *types.Array:
arr = d
case *types.Pointer:
@@ -313,8 +314,8 @@ func emitConv(f *Function, val Value, typ types.Type) Value {
// The only remaining case in well-typed code is a representation-
// changing conversion of basic types (possibly with []byte/[]rune).
- if !isBasic(s) && !isBasic(d) {
- panic(fmt.Sprintf("in %s: cannot convert term %s (%s [within %s]) to type %s [within %s]", f, val, val.Type(), s, typ, d))
+ if !isBasic(us) && !isBasic(ud) {
+ panic(fmt.Sprintf("in %s: cannot convert term %s (%s [within %s]) to type %s [within %s]", f, val, val.Type(), us, typ, ud))
}
return convert
}
@@ -523,8 +524,8 @@ func emitTailCall(f *Function, call *Call) {
// value of a field.
func emitImplicitSelections(f *Function, v Value, indices []int, pos token.Pos) Value {
for _, index := range indices {
- if st, vptr := deref(v.Type()); vptr {
- fld := fieldOf(st, index)
+ if isPointerCore(v.Type()) {
+ fld := fieldOf(typeparams.MustDeref(v.Type()), index)
instr := &FieldAddr{
X: v,
Field: index,
@@ -533,7 +534,7 @@ func emitImplicitSelections(f *Function, v Value, indices []int, pos token.Pos)
instr.setType(types.NewPointer(fld.Type()))
v = f.emit(instr)
// Load the field's value iff indirectly embedded.
- if _, fldptr := deref(fld.Type()); fldptr {
+ if isPointerCore(fld.Type()) {
v = emitLoad(f, v)
}
} else {
@@ -557,8 +558,8 @@ func emitImplicitSelections(f *Function, v Value, indices []int, pos token.Pos)
// field's value.
// Ident id is used for position and debug info.
func emitFieldSelection(f *Function, v Value, index int, wantAddr bool, id *ast.Ident) Value {
- if st, vptr := deref(v.Type()); vptr {
- fld := fieldOf(st, index)
+ if isPointerCore(v.Type()) {
+ fld := fieldOf(typeparams.MustDeref(v.Type()), index)
instr := &FieldAddr{
X: v,
Field: index,
diff --git a/vendor/golang.org/x/tools/go/ssa/func.go b/vendor/golang.org/x/tools/go/ssa/func.go
index 4d3e39129c..f645fa1d8b 100644
--- a/vendor/golang.org/x/tools/go/ssa/func.go
+++ b/vendor/golang.org/x/tools/go/ssa/func.go
@@ -37,7 +37,8 @@ func (f *Function) typeOf(e ast.Expr) types.Type {
panic(fmt.Sprintf("no type for %T @ %s", e, f.Prog.Fset.Position(e.Pos())))
}
-// typ is the locally instantiated type of T. T==typ(T) if f is not an instantiation.
+// typ is the locally instantiated type of T.
+// If f is not an instantiation, then f.typ(T)==T.
func (f *Function) typ(T types.Type) types.Type {
return f.subst.typ(T)
}
@@ -106,6 +107,7 @@ type lblock struct {
// labelledBlock returns the branch target associated with the
// specified label, creating it if needed.
+// label should be a non-blank identifier (label.Name != "_").
func (f *Function) labelledBlock(label *ast.Ident) *lblock {
obj := f.objectOf(label).(*types.Label)
lb := f.lblocks[obj]
diff --git a/vendor/golang.org/x/tools/go/ssa/instantiate.go b/vendor/golang.org/x/tools/go/ssa/instantiate.go
index c155f6736a..e5e7162a8a 100644
--- a/vendor/golang.org/x/tools/go/ssa/instantiate.go
+++ b/vendor/golang.org/x/tools/go/ssa/instantiate.go
@@ -8,8 +8,6 @@ import (
"fmt"
"go/types"
"sync"
-
- "golang.org/x/tools/internal/typeparams"
)
// A generic records information about a generic origin function,
@@ -77,10 +75,10 @@ func createInstance(fn *Function, targs []types.Type, cr *creator) *Function {
subst *subster
build buildFunc
)
- if prog.mode&InstantiateGenerics != 0 && !prog.parameterized.anyParameterized(targs) {
+ if prog.mode&InstantiateGenerics != 0 && !prog.isParameterized(targs...) {
synthetic = fmt.Sprintf("instance of %s", fn.Name())
if fn.syntax != nil {
- scope := typeparams.OriginMethod(obj).Scope()
+ scope := obj.Origin().Scope()
subst = makeSubster(prog.ctxt, scope, fn.typeparams, targs, false)
build = (*builder).buildFromSyntax
} else {
@@ -112,3 +110,21 @@ func createInstance(fn *Function, targs []types.Type, cr *creator) *Function {
cr.Add(instance)
return instance
}
+
+// isParameterized reports whether any of the specified types contains
+// a free type parameter. It is safe to call concurrently.
+func (prog *Program) isParameterized(ts ...types.Type) bool {
+ prog.hasParamsMu.Lock()
+ defer prog.hasParamsMu.Unlock()
+
+ // TODO(adonovan): profile. If this operation is expensive,
+ // handle the most common but shallow cases such as T, pkg.T,
+ // *T without consulting the cache under the lock.
+
+ for _, t := range ts {
+ if prog.hasParams.Has(t) {
+ return true
+ }
+ }
+ return false
+}
diff --git a/vendor/golang.org/x/tools/go/ssa/methods.go b/vendor/golang.org/x/tools/go/ssa/methods.go
index 5f46a18484..58bd45b814 100644
--- a/vendor/golang.org/x/tools/go/ssa/methods.go
+++ b/vendor/golang.org/x/tools/go/ssa/methods.go
@@ -12,7 +12,6 @@ import (
"golang.org/x/tools/go/types/typeutil"
"golang.org/x/tools/internal/aliases"
- "golang.org/x/tools/internal/typeparams"
)
// MethodValue returns the Function implementing method sel, building
@@ -33,7 +32,7 @@ func (prog *Program) MethodValue(sel *types.Selection) *Function {
return nil // interface method or type parameter
}
- if prog.parameterized.isParameterized(T) {
+ if prog.isParameterized(T) {
return nil // generic method
}
@@ -59,10 +58,8 @@ func (prog *Program) MethodValue(sel *types.Selection) *Function {
fn, ok := mset.mapping[id]
if !ok {
obj := sel.Obj().(*types.Func)
- _, ptrObj := deptr(recvType(obj))
- _, ptrRecv := deptr(T)
needsPromotion := len(sel.Index()) > 1
- needsIndirection := !ptrObj && ptrRecv
+ needsIndirection := !isPointer(recvType(obj)) && isPointer(T)
if needsPromotion || needsIndirection {
fn = createWrapper(prog, toSelection(sel), &cr)
} else {
@@ -103,7 +100,7 @@ func (prog *Program) objectMethod(obj *types.Func, cr *creator) *Function {
}
// Instantiation of generic?
- if originObj := typeparams.OriginMethod(obj); originObj != obj {
+ if originObj := obj.Origin(); originObj != obj {
origin := prog.objectMethod(originObj, cr)
assert(origin.typeparams.Len() > 0, "origin is not generic")
targs := receiverTypeArgs(obj)
@@ -211,7 +208,7 @@ func forEachReachable(msets *typeutil.MethodSetCache, T types.Type, f func(types
switch T := T.(type) {
case *aliases.Alias:
- visit(aliases.Unalias(T), false)
+ visit(aliases.Unalias(T), skip) // emulates the pre-Alias behavior
case *types.Basic:
// nop
diff --git a/vendor/golang.org/x/tools/go/ssa/parameterized.go b/vendor/golang.org/x/tools/go/ssa/parameterized.go
deleted file mode 100644
index 74c541107e..0000000000
--- a/vendor/golang.org/x/tools/go/ssa/parameterized.go
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2022 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ssa
-
-import (
- "go/types"
- "sync"
-
- "golang.org/x/tools/internal/aliases"
- "golang.org/x/tools/internal/typeparams"
-)
-
-// tpWalker walks over types looking for parameterized types.
-//
-// NOTE: Adapted from go/types/infer.go. If that is exported in a future release remove this copy.
-type tpWalker struct {
- mu sync.Mutex
- seen map[types.Type]bool
-}
-
-// isParameterized reports whether t recursively contains a type parameter.
-// Thread-safe.
-func (w *tpWalker) isParameterized(t types.Type) bool {
- // TODO(adonovan): profile. If this operation is expensive,
- // handle the most common but shallow cases such as T, pkg.T,
- // *T without consulting the cache under the lock.
-
- w.mu.Lock()
- defer w.mu.Unlock()
- return w.isParameterizedLocked(t)
-}
-
-// Requires w.mu.
-func (w *tpWalker) isParameterizedLocked(typ types.Type) (res bool) {
- // NOTE: Adapted from go/types/infer.go. Try to keep in sync.
-
- // detect cycles
- if x, ok := w.seen[typ]; ok {
- return x
- }
- w.seen[typ] = false
- defer func() {
- w.seen[typ] = res
- }()
-
- switch t := typ.(type) {
- case nil, *types.Basic: // TODO(gri) should nil be handled here?
- break
-
- case *aliases.Alias:
- return w.isParameterizedLocked(aliases.Unalias(t))
-
- case *types.Array:
- return w.isParameterizedLocked(t.Elem())
-
- case *types.Slice:
- return w.isParameterizedLocked(t.Elem())
-
- case *types.Struct:
- for i, n := 0, t.NumFields(); i < n; i++ {
- if w.isParameterizedLocked(t.Field(i).Type()) {
- return true
- }
- }
-
- case *types.Pointer:
- return w.isParameterizedLocked(t.Elem())
-
- case *types.Tuple:
- n := t.Len()
- for i := 0; i < n; i++ {
- if w.isParameterizedLocked(t.At(i).Type()) {
- return true
- }
- }
-
- case *types.Signature:
- // t.tparams may not be nil if we are looking at a signature
- // of a generic function type (or an interface method) that is
- // part of the type we're testing. We don't care about these type
- // parameters.
- // Similarly, the receiver of a method may declare (rather than
- // use) type parameters, we don't care about those either.
- // Thus, we only need to look at the input and result parameters.
- return w.isParameterizedLocked(t.Params()) || w.isParameterizedLocked(t.Results())
-
- case *types.Interface:
- for i, n := 0, t.NumMethods(); i < n; i++ {
- if w.isParameterizedLocked(t.Method(i).Type()) {
- return true
- }
- }
- terms, err := typeparams.InterfaceTermSet(t)
- if err != nil {
- panic(err)
- }
- for _, term := range terms {
- if w.isParameterizedLocked(term.Type()) {
- return true
- }
- }
-
- case *types.Map:
- return w.isParameterizedLocked(t.Key()) || w.isParameterizedLocked(t.Elem())
-
- case *types.Chan:
- return w.isParameterizedLocked(t.Elem())
-
- case *types.Named:
- args := t.TypeArgs()
- // TODO(taking): this does not match go/types/infer.go. Check with rfindley.
- if params := t.TypeParams(); params.Len() > args.Len() {
- return true
- }
- for i, n := 0, args.Len(); i < n; i++ {
- if w.isParameterizedLocked(args.At(i)) {
- return true
- }
- }
- return w.isParameterizedLocked(t.Underlying()) // recurse for types local to parameterized functions
-
- case *types.TypeParam:
- return true
-
- default:
- panic(t) // unreachable
- }
-
- return false
-}
-
-// anyParameterized reports whether any element of ts is parameterized.
-// Thread-safe.
-func (w *tpWalker) anyParameterized(ts []types.Type) bool {
- w.mu.Lock()
- defer w.mu.Unlock()
- for _, t := range ts {
- if w.isParameterizedLocked(t) {
- return true
- }
- }
- return false
-}
diff --git a/vendor/golang.org/x/tools/go/ssa/source.go b/vendor/golang.org/x/tools/go/ssa/source.go
index 6700305bd9..7b71c88d12 100644
--- a/vendor/golang.org/x/tools/go/ssa/source.go
+++ b/vendor/golang.org/x/tools/go/ssa/source.go
@@ -14,8 +14,6 @@ import (
"go/ast"
"go/token"
"go/types"
-
- "golang.org/x/tools/internal/typeparams"
)
// EnclosingFunction returns the function that contains the syntax
@@ -122,7 +120,7 @@ func findNamedFunc(pkg *Package, pos token.Pos) *Function {
obj := mset.At(i).Obj().(*types.Func)
if obj.Pos() == pos {
// obj from MethodSet may not be the origin type.
- m := typeparams.OriginMethod(obj)
+ m := obj.Origin()
return pkg.objects[m].(*Function)
}
}
diff --git a/vendor/golang.org/x/tools/go/ssa/ssa.go b/vendor/golang.org/x/tools/go/ssa/ssa.go
index 30bf4bc677..5ff12d2f57 100644
--- a/vendor/golang.org/x/tools/go/ssa/ssa.go
+++ b/vendor/golang.org/x/tools/go/ssa/ssa.go
@@ -33,7 +33,9 @@ type Program struct {
methodsMu sync.Mutex
methodSets typeutil.Map // maps type to its concrete *methodSet
- parameterized tpWalker // memoization of whether a type refers to type parameters
+ // memoization of whether a type refers to type parameters
+ hasParamsMu sync.Mutex
+ hasParams typeparams.Free
runtimeTypesMu sync.Mutex
runtimeTypes typeutil.Map // set of runtime types (from MakeInterface)
diff --git a/vendor/golang.org/x/tools/go/ssa/subst.go b/vendor/golang.org/x/tools/go/ssa/subst.go
index 9f2f2f3000..e1b8e198c0 100644
--- a/vendor/golang.org/x/tools/go/ssa/subst.go
+++ b/vendor/golang.org/x/tools/go/ssa/subst.go
@@ -80,11 +80,7 @@ func (subst *subster) typ(t types.Type) (res types.Type) {
subst.cache[t] = res
}()
- // fall through if result r will be identical to t, types.Identical(r, t).
switch t := t.(type) {
- case *aliases.Alias:
- return subst.typ(aliases.Unalias(t))
-
case *types.TypeParam:
r := subst.replacements[t]
assert(r != nil, "type param without replacement encountered")
@@ -140,6 +136,9 @@ func (subst *subster) typ(t types.Type) (res types.Type) {
case *types.Interface:
return subst.interface_(t)
+ case *aliases.Alias:
+ return subst.alias(t)
+
case *types.Named:
return subst.named(t)
@@ -307,6 +306,18 @@ func (subst *subster) interface_(iface *types.Interface) *types.Interface {
return types.NewInterfaceType(methods, embeds).Complete()
}
+func (subst *subster) alias(t *aliases.Alias) types.Type {
+ // TODO(go.dev/issues/46477): support TypeParameters once these are available from go/types.
+ u := aliases.Unalias(t)
+ if s := subst.typ(u); s != u {
+ // If there is any change, do not create a new alias.
+ return s
+ }
+ // If there is no change, t did not reach any type parameter.
+ // Keep the Alias.
+ return t
+}
+
func (subst *subster) named(t *types.Named) types.Type {
// A named type may be:
// (1) ordinary named type (non-local scope, no type parameters, no type arguments),
diff --git a/vendor/golang.org/x/tools/go/ssa/util.go b/vendor/golang.org/x/tools/go/ssa/util.go
index 4d65259ed9..314ca2b6f7 100644
--- a/vendor/golang.org/x/tools/go/ssa/util.go
+++ b/vendor/golang.org/x/tools/go/ssa/util.go
@@ -51,8 +51,9 @@ func isNonTypeParamInterface(t types.Type) bool {
}
// isBasic reports whether t is a basic type.
+// t is assumed to be an Underlying type (not Named or Alias).
func isBasic(t types.Type) bool {
- _, ok := aliases.Unalias(t).(*types.Basic)
+ _, ok := t.(*types.Basic)
return ok
}
@@ -100,24 +101,22 @@ func isBasicConvTypes(tset termList) bool {
return all && basics >= 1 && tset.Len()-basics <= 1
}
-// deptr returns a pointer's element type and true; otherwise it returns (typ, false).
-// This function is oblivious to core types and is not suitable for generics.
+// isPointer reports whether t's underlying type is a pointer.
+func isPointer(t types.Type) bool {
+ return is[*types.Pointer](t.Underlying())
+}
+
+// isPointerCore reports whether t's core type is a pointer.
//
-// TODO: Deprecate this function once all usages have been audited.
-func deptr(typ types.Type) (types.Type, bool) {
- if p, ok := typ.Underlying().(*types.Pointer); ok {
- return p.Elem(), true
- }
- return typ, false
+// (Most pointer manipulation is related to receivers, in which case
+// isPointer is appropriate. tecallers can use isPointer(t).
+func isPointerCore(t types.Type) bool {
+ return is[*types.Pointer](typeparams.CoreType(t))
}
-// deref returns the element type of a type with a pointer core type and true;
-// otherwise it returns (typ, false).
-func deref(typ types.Type) (types.Type, bool) {
- if p, ok := typeparams.CoreType(typ).(*types.Pointer); ok {
- return p.Elem(), true
- }
- return typ, false
+func is[T any](x any) bool {
+ _, ok := x.(T)
+ return ok
}
// recvType returns the receiver type of method obj.
@@ -263,13 +262,40 @@ func (c *canonizer) List(ts []types.Type) *typeList {
return nil
}
+ unaliasAll := func(ts []types.Type) []types.Type {
+ // Is there some top level alias?
+ var found bool
+ for _, t := range ts {
+ if _, ok := t.(*aliases.Alias); ok {
+ found = true
+ break
+ }
+ }
+ if !found {
+ return ts // no top level alias
+ }
+
+ cp := make([]types.Type, len(ts)) // copy with top level aliases removed.
+ for i, t := range ts {
+ cp[i] = aliases.Unalias(t)
+ }
+ return cp
+ }
+ l := unaliasAll(ts)
+
c.mu.Lock()
defer c.mu.Unlock()
- return c.lists.rep(ts)
+ return c.lists.rep(l)
}
// Type returns a canonical representative of type T.
+// Removes top-level aliases.
+//
+// For performance, reasons the canonical instance is order-dependent,
+// and may contain deeply nested aliases.
func (c *canonizer) Type(T types.Type) types.Type {
+ T = aliases.Unalias(T) // remove the top level alias.
+
c.mu.Lock()
defer c.mu.Unlock()
diff --git a/vendor/golang.org/x/tools/go/ssa/wrappers.go b/vendor/golang.org/x/tools/go/ssa/wrappers.go
index 7c7ee4099e..b25c4c7897 100644
--- a/vendor/golang.org/x/tools/go/ssa/wrappers.go
+++ b/vendor/golang.org/x/tools/go/ssa/wrappers.go
@@ -24,6 +24,8 @@ import (
"go/token"
"go/types"
+
+ "golang.org/x/tools/internal/typeparams"
)
// -- wrappers -----------------------------------------------------------
@@ -97,14 +99,12 @@ func (b *builder) buildWrapper(fn *Function) {
indices := fn.method.index
var v Value = fn.Locals[0] // spilled receiver
- srdt, ptrRecv := deptr(fn.method.recv)
- if ptrRecv {
+ if isPointer(fn.method.recv) {
v = emitLoad(fn, v)
// For simple indirection wrappers, perform an informative nil-check:
// "value method (T).f called using nil *T pointer"
- _, ptrObj := deptr(recvType(fn.object))
- if len(indices) == 1 && !ptrObj {
+ if len(indices) == 1 && !isPointer(recvType(fn.object)) {
var c Call
c.Call.Value = &Builtin{
name: "ssa:wrapnilchk",
@@ -114,7 +114,7 @@ func (b *builder) buildWrapper(fn *Function) {
}
c.Call.Args = []Value{
v,
- stringConst(srdt.String()),
+ stringConst(typeparams.MustDeref(fn.method.recv).String()),
stringConst(fn.method.obj.Name()),
}
c.setType(v.Type())
@@ -138,7 +138,7 @@ func (b *builder) buildWrapper(fn *Function) {
var c Call
if r := recvType(fn.object); !types.IsInterface(r) { // concrete method
- if _, ptrObj := deptr(r); !ptrObj {
+ if !isPointer(r) {
v = emitLoad(fn, v)
}
c.Call.Value = fn.Prog.objectMethod(fn.object, b.created)
diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go
index 6a57ce3b13..a2386c347a 100644
--- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go
+++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go
@@ -30,7 +30,6 @@ import (
"strings"
"golang.org/x/tools/internal/aliases"
- "golang.org/x/tools/internal/typeparams"
"golang.org/x/tools/internal/typesinternal"
)
@@ -395,7 +394,7 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) {
// of objectpath will only be giving us origin methods, anyway, as referring
// to instantiated methods is usually not useful.
- if typeparams.OriginMethod(meth) != meth {
+ if meth.Origin() != meth {
return "", false
}
diff --git a/vendor/golang.org/x/tools/internal/analysisinternal/analysis.go b/vendor/golang.org/x/tools/internal/analysisinternal/analysis.go
index c3022a2862..eb830888aa 100644
--- a/vendor/golang.org/x/tools/internal/analysisinternal/analysis.go
+++ b/vendor/golang.org/x/tools/internal/analysisinternal/analysis.go
@@ -32,22 +32,22 @@ func TypeErrorEndPos(fset *token.FileSet, src []byte, start token.Pos) token.Pos
func ZeroValue(f *ast.File, pkg *types.Package, typ types.Type) ast.Expr {
// TODO(adonovan): think about generics, and also generic aliases.
under := aliases.Unalias(typ)
- // Don't call Underlying unconditionally: although it removed
+ // Don't call Underlying unconditionally: although it removes
// Named and Alias, it also removes TypeParam.
- if n, ok := typ.(*types.Named); ok {
+ if n, ok := under.(*types.Named); ok {
under = n.Underlying()
}
- switch u := under.(type) {
+ switch under := under.(type) {
case *types.Basic:
switch {
- case u.Info()&types.IsNumeric != 0:
+ case under.Info()&types.IsNumeric != 0:
return &ast.BasicLit{Kind: token.INT, Value: "0"}
- case u.Info()&types.IsBoolean != 0:
+ case under.Info()&types.IsBoolean != 0:
return &ast.Ident{Name: "false"}
- case u.Info()&types.IsString != 0:
+ case under.Info()&types.IsString != 0:
return &ast.BasicLit{Kind: token.STRING, Value: `""`}
default:
- panic(fmt.Sprintf("unknown basic type %v", u))
+ panic(fmt.Sprintf("unknown basic type %v", under))
}
case *types.Chan, *types.Interface, *types.Map, *types.Pointer, *types.Signature, *types.Slice, *types.Array:
return ast.NewIdent("nil")
@@ -178,7 +178,7 @@ func TypeExpr(f *ast.File, pkg *types.Package, typ types.Type) ast.Expr {
List: returns,
},
}
- case *types.Named:
+ case interface{ Obj() *types.TypeName }: // *types.{Alias,Named,TypeParam}
if t.Obj().Pkg() == nil {
return ast.NewIdent(t.Obj().Name())
}
diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go
index 638fc1d3b8..683bd7395a 100644
--- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go
+++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go
@@ -21,6 +21,7 @@ import (
"sort"
"strconv"
"strings"
+ "unsafe"
"golang.org/x/tools/go/types/objectpath"
"golang.org/x/tools/internal/aliases"
@@ -464,7 +465,7 @@ func (p *iexporter) doDecl(obj types.Object) {
switch obj := obj.(type) {
case *types.Var:
- w.tag('V')
+ w.tag(varTag)
w.pos(obj.Pos())
w.typ(obj.Type(), obj.Pkg())
@@ -482,9 +483,9 @@ func (p *iexporter) doDecl(obj types.Object) {
// Function.
if sig.TypeParams().Len() == 0 {
- w.tag('F')
+ w.tag(funcTag)
} else {
- w.tag('G')
+ w.tag(genericFuncTag)
}
w.pos(obj.Pos())
// The tparam list of the function type is the declaration of the type
@@ -500,7 +501,7 @@ func (p *iexporter) doDecl(obj types.Object) {
w.signature(sig)
case *types.Const:
- w.tag('C')
+ w.tag(constTag)
w.pos(obj.Pos())
w.value(obj.Type(), obj.Val())
@@ -508,7 +509,7 @@ func (p *iexporter) doDecl(obj types.Object) {
t := obj.Type()
if tparam, ok := aliases.Unalias(t).(*types.TypeParam); ok {
- w.tag('P')
+ w.tag(typeParamTag)
w.pos(obj.Pos())
constraint := tparam.Constraint()
if p.version >= iexportVersionGo1_18 {
@@ -523,8 +524,13 @@ func (p *iexporter) doDecl(obj types.Object) {
}
if obj.IsAlias() {
- w.tag('A')
+ w.tag(aliasTag)
w.pos(obj.Pos())
+ if alias, ok := t.(*aliases.Alias); ok {
+ // Preserve materialized aliases,
+ // even of non-exported types.
+ t = aliasRHS(alias)
+ }
w.typ(t, obj.Pkg())
break
}
@@ -536,9 +542,9 @@ func (p *iexporter) doDecl(obj types.Object) {
}
if named.TypeParams().Len() == 0 {
- w.tag('T')
+ w.tag(typeTag)
} else {
- w.tag('U')
+ w.tag(genericTypeTag)
}
w.pos(obj.Pos())
@@ -548,7 +554,7 @@ func (p *iexporter) doDecl(obj types.Object) {
w.tparamList(obj.Name(), named.TypeParams(), obj.Pkg())
}
- underlying := obj.Type().Underlying()
+ underlying := named.Underlying()
w.typ(underlying, obj.Pkg())
if types.IsInterface(t) {
@@ -739,7 +745,10 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) {
}()
}
switch t := t.(type) {
- // TODO(adonovan): support types.Alias.
+ case *aliases.Alias:
+ // TODO(adonovan): support parameterized aliases, following *types.Named.
+ w.startType(aliasType)
+ w.qualifiedType(t.Obj())
case *types.Named:
if targs := t.TypeArgs(); targs.Len() > 0 {
@@ -1322,3 +1331,19 @@ func (e internalError) Error() string { return "gcimporter: " + string(e) }
func internalErrorf(format string, args ...interface{}) error {
return internalError(fmt.Sprintf(format, args...))
}
+
+// aliasRHS removes exactly one Alias constructor.
+func aliasRHS(alias *aliases.Alias) types.Type {
+ // TODO(adonovan): if proposal #66559 is accepted, this will
+ // become Alias.RHS(alias). In the meantime, we must punch
+ // through the drywall.
+ type go123Alias struct {
+ _ *types.TypeName
+ _ *types.TypeParamList
+ RHS types.Type
+ _ types.Type
+ }
+ var raw *go123Alias
+ *(**aliases.Alias)(unsafe.Pointer(&raw)) = alias
+ return raw.RHS
+}
diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go
index 4d50eb8e58..2732121b5e 100644
--- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go
+++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go
@@ -80,6 +80,20 @@ const (
typeParamType
instanceType
unionType
+ aliasType
+)
+
+// Object tags
+const (
+ varTag = 'V'
+ funcTag = 'F'
+ genericFuncTag = 'G'
+ constTag = 'C'
+ aliasTag = 'A'
+ genericAliasTag = 'B'
+ typeParamTag = 'P'
+ typeTag = 'T'
+ genericTypeTag = 'U'
)
// IImportData imports a package from the serialized package data
@@ -324,7 +338,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte
}
// SetConstraint can't be called if the constraint type is not yet complete.
- // When type params are created in the 'P' case of (*importReader).obj(),
+ // When type params are created in the typeParamTag case of (*importReader).obj(),
// the associated constraint type may not be complete due to recursion.
// Therefore, we defer calling SetConstraint there, and call it here instead
// after all types are complete.
@@ -546,25 +560,29 @@ func (r *importReader) obj(name string) {
pos := r.pos()
switch tag {
- case 'A':
+ case aliasTag:
typ := r.typ()
-
- r.declare(types.NewTypeName(pos, r.currPkg, name, typ))
-
- case 'C':
+ // TODO(adonovan): support generic aliases:
+ // if tag == genericAliasTag {
+ // tparams := r.tparamList()
+ // alias.SetTypeParams(tparams)
+ // }
+ r.declare(aliases.NewAlias(pos, r.currPkg, name, typ))
+
+ case constTag:
typ, val := r.value()
r.declare(types.NewConst(pos, r.currPkg, name, typ, val))
- case 'F', 'G':
+ case funcTag, genericFuncTag:
var tparams []*types.TypeParam
- if tag == 'G' {
+ if tag == genericFuncTag {
tparams = r.tparamList()
}
sig := r.signature(nil, nil, tparams)
r.declare(types.NewFunc(pos, r.currPkg, name, sig))
- case 'T', 'U':
+ case typeTag, genericTypeTag:
// Types can be recursive. We need to setup a stub
// declaration before recursing.
obj := types.NewTypeName(pos, r.currPkg, name, nil)
@@ -572,7 +590,7 @@ func (r *importReader) obj(name string) {
// Declare obj before calling r.tparamList, so the new type name is recognized
// if used in the constraint of one of its own typeparams (see #48280).
r.declare(obj)
- if tag == 'U' {
+ if tag == genericTypeTag {
tparams := r.tparamList()
named.SetTypeParams(tparams)
}
@@ -604,7 +622,7 @@ func (r *importReader) obj(name string) {
}
}
- case 'P':
+ case typeParamTag:
// We need to "declare" a typeparam in order to have a name that
// can be referenced recursively (if needed) in the type param's
// bound.
@@ -637,7 +655,7 @@ func (r *importReader) obj(name string) {
// completely set up all types in ImportData.
r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint})
- case 'V':
+ case varTag:
typ := r.typ()
r.declare(types.NewVar(pos, r.currPkg, name, typ))
@@ -854,7 +872,7 @@ func (r *importReader) doType(base *types.Named) (res types.Type) {
errorf("unexpected kind tag in %q: %v", r.p.ipath, k)
return nil
- case definedType:
+ case aliasType, definedType:
pkg, name := r.qualifiedIdent()
r.p.doDecl(pkg, name)
return pkg.Scope().Lookup(name).(*types.TypeName).Type()
diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go
index f4edc46ab7..b3be452ae8 100644
--- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go
+++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go
@@ -524,7 +524,7 @@ func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) {
case pkgbits.ObjAlias:
pos := r.pos()
typ := r.typ()
- declare(types.NewTypeName(pos, objPkg, objName, typ))
+ declare(aliases.NewAlias(pos, objPkg, objName, typ))
case pkgbits.ObjConst:
pos := r.pos()
diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go
index 55312522dc..f7de3c8283 100644
--- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go
+++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go
@@ -158,12 +158,15 @@ type Invocation struct {
BuildFlags []string
// If ModFlag is set, the go command is invoked with -mod=ModFlag.
+ // TODO(rfindley): remove, in favor of Args.
ModFlag string
// If ModFile is set, the go command is invoked with -modfile=ModFile.
+ // TODO(rfindley): remove, in favor of Args.
ModFile string
// If Overlay is set, the go command is invoked with -overlay=Overlay.
+ // TODO(rfindley): remove, in favor of Args.
Overlay string
// If CleanEnv is set, the invocation will run only with the environment
diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go
index 6a18f63a44..5598032761 100644
--- a/vendor/golang.org/x/tools/internal/imports/fix.go
+++ b/vendor/golang.org/x/tools/internal/imports/fix.go
@@ -31,6 +31,7 @@ import (
"golang.org/x/tools/internal/event"
"golang.org/x/tools/internal/gocommand"
"golang.org/x/tools/internal/gopathwalk"
+ "golang.org/x/tools/internal/stdlib"
)
// importToGroup is a list of functions which map from an import path to
@@ -511,9 +512,9 @@ func (p *pass) assumeSiblingImportsValid() {
}
for left, rights := range refs {
if imp, ok := importsByName[left]; ok {
- if m, ok := stdlib[imp.ImportPath]; ok {
+ if m, ok := stdlib.PackageSymbols[imp.ImportPath]; ok {
// We have the stdlib in memory; no need to guess.
- rights = copyExports(m)
+ rights = symbolNameSet(m)
}
p.addCandidate(imp, &packageInfo{
// no name; we already know it.
@@ -641,7 +642,7 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena
dupCheck := map[string]struct{}{}
// Start off with the standard library.
- for importPath, exports := range stdlib {
+ for importPath, symbols := range stdlib.PackageSymbols {
p := &pkg{
dir: filepath.Join(goenv["GOROOT"], "src", importPath),
importPathShort: importPath,
@@ -650,6 +651,13 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena
}
dupCheck[importPath] = struct{}{}
if notSelf(p) && wrappedCallback.dirFound(p) && wrappedCallback.packageNameLoaded(p) {
+ var exports []stdlib.Symbol
+ for _, sym := range symbols {
+ switch sym.Kind {
+ case stdlib.Func, stdlib.Type, stdlib.Var, stdlib.Const:
+ exports = append(exports, sym)
+ }
+ }
wrappedCallback.exportsLoaded(p, exports)
}
}
@@ -670,7 +678,7 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena
dupCheck[pkg.importPathShort] = struct{}{}
return notSelf(pkg) && wrappedCallback.packageNameLoaded(pkg)
},
- exportsLoaded: func(pkg *pkg, exports []string) {
+ exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) {
// If we're an x_test, load the package under test's test variant.
if strings.HasSuffix(filePkg, "_test") && pkg.dir == filepath.Dir(filename) {
var err error
@@ -795,7 +803,7 @@ func GetImportPaths(ctx context.Context, wrapped func(ImportFix), searchPrefix,
// A PackageExport is a package and its exports.
type PackageExport struct {
Fix *ImportFix
- Exports []string
+ Exports []stdlib.Symbol
}
// GetPackageExports returns all known packages with name pkg and their exports.
@@ -810,8 +818,8 @@ func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchP
packageNameLoaded: func(pkg *pkg) bool {
return pkg.packageName == searchPkg
},
- exportsLoaded: func(pkg *pkg, exports []string) {
- sort.Strings(exports)
+ exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) {
+ sortSymbols(exports)
wrapped(PackageExport{
Fix: &ImportFix{
StmtInfo: ImportInfo{
@@ -988,8 +996,10 @@ func (e *ProcessEnv) GetResolver() (Resolver, error) {
// already know the view type.
if len(e.Env["GOMOD"]) == 0 && len(e.Env["GOWORK"]) == 0 {
e.resolver = newGopathResolver(e)
+ } else if r, err := newModuleResolver(e, e.ModCache); err != nil {
+ e.resolverErr = err
} else {
- e.resolver, e.resolverErr = newModuleResolver(e, e.ModCache)
+ e.resolver = Resolver(r)
}
}
@@ -1054,7 +1064,7 @@ func addStdlibCandidates(pass *pass, refs references) error {
if path.Base(pkg) == pass.f.Name.Name && filepath.Join(goenv["GOROOT"], "src", pkg) == pass.srcDir {
return
}
- exports := copyExports(stdlib[pkg])
+ exports := symbolNameSet(stdlib.PackageSymbols[pkg])
pass.addCandidate(
&ImportInfo{ImportPath: pkg},
&packageInfo{name: path.Base(pkg), exports: exports})
@@ -1066,7 +1076,7 @@ func addStdlibCandidates(pass *pass, refs references) error {
add("math/rand")
continue
}
- for importPath := range stdlib {
+ for importPath := range stdlib.PackageSymbols {
if path.Base(importPath) == left {
add(importPath)
}
@@ -1085,7 +1095,7 @@ type Resolver interface {
// loadExports returns the set of exported symbols in the package at dir.
// loadExports may be called concurrently.
- loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error)
+ loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error)
// scoreImportPath returns the relevance for an import path.
scoreImportPath(ctx context.Context, path string) float64
@@ -1114,7 +1124,7 @@ type scanCallback struct {
// If it returns true, the package's exports will be loaded.
packageNameLoaded func(pkg *pkg) bool
// exportsLoaded is called when a package's exports have been loaded.
- exportsLoaded func(pkg *pkg, exports []string)
+ exportsLoaded func(pkg *pkg, exports []stdlib.Symbol)
}
func addExternalCandidates(ctx context.Context, pass *pass, refs references, filename string) error {
@@ -1295,7 +1305,7 @@ func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (
// importPathToName finds out the actual package name, as declared in its .go files.
func importPathToName(bctx *build.Context, importPath, srcDir string) string {
// Fast path for standard library without going to disk.
- if _, ok := stdlib[importPath]; ok {
+ if stdlib.HasPackage(importPath) {
return path.Base(importPath) // stdlib packages always match their paths.
}
@@ -1493,7 +1503,7 @@ func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error
}
func (r *gopathResolver) scoreImportPath(ctx context.Context, path string) float64 {
- if _, ok := stdlib[path]; ok {
+ if stdlib.HasPackage(path) {
return MaxRelevance
}
return MaxRelevance - 1
@@ -1510,7 +1520,7 @@ func filterRoots(roots []gopathwalk.Root, include func(gopathwalk.Root) bool) []
return result
}
-func (r *gopathResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error) {
+func (r *gopathResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) {
if info, ok := r.cache.Load(pkg.dir); ok && !includeTest {
return r.cache.CacheExports(ctx, r.env, info)
}
@@ -1530,7 +1540,7 @@ func VendorlessPath(ipath string) string {
return ipath
}
-func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []string, error) {
+func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []stdlib.Symbol, error) {
// Look for non-test, buildable .go files which could provide exports.
all, err := os.ReadDir(dir)
if err != nil {
@@ -1554,7 +1564,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl
}
var pkgName string
- var exports []string
+ var exports []stdlib.Symbol
fset := token.NewFileSet()
for _, fi := range files {
select {
@@ -1581,21 +1591,41 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl
continue
}
pkgName = f.Name.Name
- for name := range f.Scope.Objects {
+ for name, obj := range f.Scope.Objects {
if ast.IsExported(name) {
- exports = append(exports, name)
+ var kind stdlib.Kind
+ switch obj.Kind {
+ case ast.Con:
+ kind = stdlib.Const
+ case ast.Typ:
+ kind = stdlib.Type
+ case ast.Var:
+ kind = stdlib.Var
+ case ast.Fun:
+ kind = stdlib.Func
+ }
+ exports = append(exports, stdlib.Symbol{
+ Name: name,
+ Kind: kind,
+ Version: 0, // unknown; be permissive
+ })
}
}
}
+ sortSymbols(exports)
if env.Logf != nil {
- sortedExports := append([]string(nil), exports...)
- sort.Strings(sortedExports)
- env.Logf("loaded exports in dir %v (package %v): %v", dir, pkgName, strings.Join(sortedExports, ", "))
+ env.Logf("loaded exports in dir %v (package %v): %v", dir, pkgName, exports)
}
return pkgName, exports, nil
}
+func sortSymbols(syms []stdlib.Symbol) {
+ sort.Slice(syms, func(i, j int) bool {
+ return syms[i].Name < syms[j].Name
+ })
+}
+
// findImport searches for a package with the given symbols.
// If no package is found, findImport returns ("", false, nil)
func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgName string, symbols map[string]bool) (*pkg, error) {
@@ -1662,7 +1692,7 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa
exportsMap := make(map[string]bool, len(exports))
for _, sym := range exports {
- exportsMap[sym] = true
+ exportsMap[sym.Name] = true
}
// If it doesn't have the right
@@ -1820,10 +1850,13 @@ func (fn visitFn) Visit(node ast.Node) ast.Visitor {
return fn(node)
}
-func copyExports(pkg []string) map[string]bool {
- m := make(map[string]bool, len(pkg))
- for _, v := range pkg {
- m[v] = true
+func symbolNameSet(symbols []stdlib.Symbol) map[string]bool {
+ names := make(map[string]bool)
+ for _, sym := range symbols {
+ switch sym.Kind {
+ case stdlib.Const, stdlib.Var, stdlib.Type, stdlib.Func:
+ names[sym.Name] = true
+ }
}
- return m
+ return names
}
diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go
index 660407548e..f83465520a 100644
--- a/vendor/golang.org/x/tools/internal/imports/imports.go
+++ b/vendor/golang.org/x/tools/internal/imports/imports.go
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-//go:generate go run mkstdlib.go
-
// Package imports implements a Go pretty-printer (like package "go/format")
// that also adds or removes import statements as necessary.
package imports
@@ -109,7 +107,7 @@ func ApplyFixes(fixes []*ImportFix, filename string, src []byte, opt *Options, e
}
// formatFile formats the file syntax tree.
-// It may mutate the token.FileSet.
+// It may mutate the token.FileSet and the ast.File.
//
// If an adjust function is provided, it is called after formatting
// with the original source (formatFile's src parameter) and the
diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go
index 3d0f38f6c2..21ef938978 100644
--- a/vendor/golang.org/x/tools/internal/imports/mod.go
+++ b/vendor/golang.org/x/tools/internal/imports/mod.go
@@ -21,6 +21,7 @@ import (
"golang.org/x/tools/internal/event"
"golang.org/x/tools/internal/gocommand"
"golang.org/x/tools/internal/gopathwalk"
+ "golang.org/x/tools/internal/stdlib"
)
// Notes(rfindley): ModuleResolver appears to be heavily optimized for scanning
@@ -313,15 +314,19 @@ func (r *ModuleResolver) ClearForNewScan() Resolver {
// TODO(rfindley): move this to a new env.go, consolidating ProcessEnv methods.
func (e *ProcessEnv) ClearModuleInfo() {
if r, ok := e.resolver.(*ModuleResolver); ok {
- resolver, resolverErr := newModuleResolver(e, e.ModCache)
- if resolverErr == nil {
- <-r.scanSema // acquire (guards caches)
- resolver.moduleCacheCache = r.moduleCacheCache
- resolver.otherCache = r.otherCache
- r.scanSema <- struct{}{} // release
+ resolver, err := newModuleResolver(e, e.ModCache)
+ if err != nil {
+ e.resolver = nil
+ e.resolverErr = err
+ return
}
- e.resolver = resolver
- e.resolverErr = resolverErr
+
+ <-r.scanSema // acquire (guards caches)
+ resolver.moduleCacheCache = r.moduleCacheCache
+ resolver.otherCache = r.otherCache
+ r.scanSema <- struct{}{} // release
+
+ e.UpdateResolver(resolver)
}
}
@@ -412,7 +417,7 @@ func (r *ModuleResolver) cachePackageName(info directoryPackageInfo) (string, er
return r.otherCache.CachePackageName(info)
}
-func (r *ModuleResolver) cacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []string, error) {
+func (r *ModuleResolver) cacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) {
if info.rootType == gopathwalk.RootModuleCache {
return r.moduleCacheCache.CacheExports(ctx, env, info)
}
@@ -632,7 +637,7 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error
}
func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) float64 {
- if _, ok := stdlib[path]; ok {
+ if stdlib.HasPackage(path) {
return MaxRelevance
}
mod, _ := r.findPackage(path)
@@ -710,7 +715,7 @@ func (r *ModuleResolver) canonicalize(info directoryPackageInfo) (*pkg, error) {
return res, nil
}
-func (r *ModuleResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error) {
+func (r *ModuleResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) {
if info, ok := r.cacheLoad(pkg.dir); ok && !includeTest {
return r.cacheExports(ctx, r.env, info)
}
diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go
index cfc5465765..b1192696b2 100644
--- a/vendor/golang.org/x/tools/internal/imports/mod_cache.go
+++ b/vendor/golang.org/x/tools/internal/imports/mod_cache.go
@@ -14,6 +14,7 @@ import (
"golang.org/x/mod/module"
"golang.org/x/tools/internal/gopathwalk"
+ "golang.org/x/tools/internal/stdlib"
)
// To find packages to import, the resolver needs to know about all of
@@ -73,7 +74,7 @@ type directoryPackageInfo struct {
// the default build context GOOS and GOARCH.
//
// We can make this explicit, and key exports by GOOS, GOARCH.
- exports []string
+ exports []stdlib.Symbol
}
// reachedStatus returns true when info has a status at least target and any error associated with
@@ -229,7 +230,7 @@ func (d *DirInfoCache) CachePackageName(info directoryPackageInfo) (string, erro
return info.packageName, info.err
}
-func (d *DirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []string, error) {
+func (d *DirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) {
if reached, _ := info.reachedStatus(exportsLoaded); reached {
return info.packageName, info.exports, info.err
}
diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go
index 1a0a7ebd9e..da8194fd96 100644
--- a/vendor/golang.org/x/tools/internal/imports/sortimports.go
+++ b/vendor/golang.org/x/tools/internal/imports/sortimports.go
@@ -18,7 +18,7 @@ import (
// sortImports sorts runs of consecutive import lines in import blocks in f.
// It also removes duplicate imports when it is possible to do so without data loss.
//
-// It may mutate the token.File.
+// It may mutate the token.File and the ast.File.
func sortImports(localPrefix string, tokFile *token.File, f *ast.File) {
for i, d := range f.Decls {
d, ok := d.(*ast.GenDecl)
diff --git a/vendor/golang.org/x/tools/internal/imports/zstdlib.go b/vendor/golang.org/x/tools/internal/imports/zstdlib.go
deleted file mode 100644
index 8db24df2ff..0000000000
--- a/vendor/golang.org/x/tools/internal/imports/zstdlib.go
+++ /dev/null
@@ -1,11406 +0,0 @@
-// Copyright 2022 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Code generated by mkstdlib.go. DO NOT EDIT.
-
-package imports
-
-var stdlib = map[string][]string{
- "archive/tar": {
- "ErrFieldTooLong",
- "ErrHeader",
- "ErrInsecurePath",
- "ErrWriteAfterClose",
- "ErrWriteTooLong",
- "FileInfoHeader",
- "Format",
- "FormatGNU",
- "FormatPAX",
- "FormatUSTAR",
- "FormatUnknown",
- "Header",
- "NewReader",
- "NewWriter",
- "Reader",
- "TypeBlock",
- "TypeChar",
- "TypeCont",
- "TypeDir",
- "TypeFifo",
- "TypeGNULongLink",
- "TypeGNULongName",
- "TypeGNUSparse",
- "TypeLink",
- "TypeReg",
- "TypeRegA",
- "TypeSymlink",
- "TypeXGlobalHeader",
- "TypeXHeader",
- "Writer",
- },
- "archive/zip": {
- "Compressor",
- "Decompressor",
- "Deflate",
- "ErrAlgorithm",
- "ErrChecksum",
- "ErrFormat",
- "ErrInsecurePath",
- "File",
- "FileHeader",
- "FileInfoHeader",
- "NewReader",
- "NewWriter",
- "OpenReader",
- "ReadCloser",
- "Reader",
- "RegisterCompressor",
- "RegisterDecompressor",
- "Store",
- "Writer",
- },
- "bufio": {
- "ErrAdvanceTooFar",
- "ErrBadReadCount",
- "ErrBufferFull",
- "ErrFinalToken",
- "ErrInvalidUnreadByte",
- "ErrInvalidUnreadRune",
- "ErrNegativeAdvance",
- "ErrNegativeCount",
- "ErrTooLong",
- "MaxScanTokenSize",
- "NewReadWriter",
- "NewReader",
- "NewReaderSize",
- "NewScanner",
- "NewWriter",
- "NewWriterSize",
- "ReadWriter",
- "Reader",
- "ScanBytes",
- "ScanLines",
- "ScanRunes",
- "ScanWords",
- "Scanner",
- "SplitFunc",
- "Writer",
- },
- "bytes": {
- "Buffer",
- "Clone",
- "Compare",
- "Contains",
- "ContainsAny",
- "ContainsFunc",
- "ContainsRune",
- "Count",
- "Cut",
- "CutPrefix",
- "CutSuffix",
- "Equal",
- "EqualFold",
- "ErrTooLarge",
- "Fields",
- "FieldsFunc",
- "HasPrefix",
- "HasSuffix",
- "Index",
- "IndexAny",
- "IndexByte",
- "IndexFunc",
- "IndexRune",
- "Join",
- "LastIndex",
- "LastIndexAny",
- "LastIndexByte",
- "LastIndexFunc",
- "Map",
- "MinRead",
- "NewBuffer",
- "NewBufferString",
- "NewReader",
- "Reader",
- "Repeat",
- "Replace",
- "ReplaceAll",
- "Runes",
- "Split",
- "SplitAfter",
- "SplitAfterN",
- "SplitN",
- "Title",
- "ToLower",
- "ToLowerSpecial",
- "ToTitle",
- "ToTitleSpecial",
- "ToUpper",
- "ToUpperSpecial",
- "ToValidUTF8",
- "Trim",
- "TrimFunc",
- "TrimLeft",
- "TrimLeftFunc",
- "TrimPrefix",
- "TrimRight",
- "TrimRightFunc",
- "TrimSpace",
- "TrimSuffix",
- },
- "cmp": {
- "Compare",
- "Less",
- "Or",
- "Ordered",
- },
- "compress/bzip2": {
- "NewReader",
- "StructuralError",
- },
- "compress/flate": {
- "BestCompression",
- "BestSpeed",
- "CorruptInputError",
- "DefaultCompression",
- "HuffmanOnly",
- "InternalError",
- "NewReader",
- "NewReaderDict",
- "NewWriter",
- "NewWriterDict",
- "NoCompression",
- "ReadError",
- "Reader",
- "Resetter",
- "WriteError",
- "Writer",
- },
- "compress/gzip": {
- "BestCompression",
- "BestSpeed",
- "DefaultCompression",
- "ErrChecksum",
- "ErrHeader",
- "Header",
- "HuffmanOnly",
- "NewReader",
- "NewWriter",
- "NewWriterLevel",
- "NoCompression",
- "Reader",
- "Writer",
- },
- "compress/lzw": {
- "LSB",
- "MSB",
- "NewReader",
- "NewWriter",
- "Order",
- "Reader",
- "Writer",
- },
- "compress/zlib": {
- "BestCompression",
- "BestSpeed",
- "DefaultCompression",
- "ErrChecksum",
- "ErrDictionary",
- "ErrHeader",
- "HuffmanOnly",
- "NewReader",
- "NewReaderDict",
- "NewWriter",
- "NewWriterLevel",
- "NewWriterLevelDict",
- "NoCompression",
- "Resetter",
- "Writer",
- },
- "container/heap": {
- "Fix",
- "Init",
- "Interface",
- "Pop",
- "Push",
- "Remove",
- },
- "container/list": {
- "Element",
- "List",
- "New",
- },
- "container/ring": {
- "New",
- "Ring",
- },
- "context": {
- "AfterFunc",
- "Background",
- "CancelCauseFunc",
- "CancelFunc",
- "Canceled",
- "Cause",
- "Context",
- "DeadlineExceeded",
- "TODO",
- "WithCancel",
- "WithCancelCause",
- "WithDeadline",
- "WithDeadlineCause",
- "WithTimeout",
- "WithTimeoutCause",
- "WithValue",
- "WithoutCancel",
- },
- "crypto": {
- "BLAKE2b_256",
- "BLAKE2b_384",
- "BLAKE2b_512",
- "BLAKE2s_256",
- "Decrypter",
- "DecrypterOpts",
- "Hash",
- "MD4",
- "MD5",
- "MD5SHA1",
- "PrivateKey",
- "PublicKey",
- "RIPEMD160",
- "RegisterHash",
- "SHA1",
- "SHA224",
- "SHA256",
- "SHA384",
- "SHA3_224",
- "SHA3_256",
- "SHA3_384",
- "SHA3_512",
- "SHA512",
- "SHA512_224",
- "SHA512_256",
- "Signer",
- "SignerOpts",
- },
- "crypto/aes": {
- "BlockSize",
- "KeySizeError",
- "NewCipher",
- },
- "crypto/cipher": {
- "AEAD",
- "Block",
- "BlockMode",
- "NewCBCDecrypter",
- "NewCBCEncrypter",
- "NewCFBDecrypter",
- "NewCFBEncrypter",
- "NewCTR",
- "NewGCM",
- "NewGCMWithNonceSize",
- "NewGCMWithTagSize",
- "NewOFB",
- "Stream",
- "StreamReader",
- "StreamWriter",
- },
- "crypto/des": {
- "BlockSize",
- "KeySizeError",
- "NewCipher",
- "NewTripleDESCipher",
- },
- "crypto/dsa": {
- "ErrInvalidPublicKey",
- "GenerateKey",
- "GenerateParameters",
- "L1024N160",
- "L2048N224",
- "L2048N256",
- "L3072N256",
- "ParameterSizes",
- "Parameters",
- "PrivateKey",
- "PublicKey",
- "Sign",
- "Verify",
- },
- "crypto/ecdh": {
- "Curve",
- "P256",
- "P384",
- "P521",
- "PrivateKey",
- "PublicKey",
- "X25519",
- },
- "crypto/ecdsa": {
- "GenerateKey",
- "PrivateKey",
- "PublicKey",
- "Sign",
- "SignASN1",
- "Verify",
- "VerifyASN1",
- },
- "crypto/ed25519": {
- "GenerateKey",
- "NewKeyFromSeed",
- "Options",
- "PrivateKey",
- "PrivateKeySize",
- "PublicKey",
- "PublicKeySize",
- "SeedSize",
- "Sign",
- "SignatureSize",
- "Verify",
- "VerifyWithOptions",
- },
- "crypto/elliptic": {
- "Curve",
- "CurveParams",
- "GenerateKey",
- "Marshal",
- "MarshalCompressed",
- "P224",
- "P256",
- "P384",
- "P521",
- "Unmarshal",
- "UnmarshalCompressed",
- },
- "crypto/hmac": {
- "Equal",
- "New",
- },
- "crypto/md5": {
- "BlockSize",
- "New",
- "Size",
- "Sum",
- },
- "crypto/rand": {
- "Int",
- "Prime",
- "Read",
- "Reader",
- },
- "crypto/rc4": {
- "Cipher",
- "KeySizeError",
- "NewCipher",
- },
- "crypto/rsa": {
- "CRTValue",
- "DecryptOAEP",
- "DecryptPKCS1v15",
- "DecryptPKCS1v15SessionKey",
- "EncryptOAEP",
- "EncryptPKCS1v15",
- "ErrDecryption",
- "ErrMessageTooLong",
- "ErrVerification",
- "GenerateKey",
- "GenerateMultiPrimeKey",
- "OAEPOptions",
- "PKCS1v15DecryptOptions",
- "PSSOptions",
- "PSSSaltLengthAuto",
- "PSSSaltLengthEqualsHash",
- "PrecomputedValues",
- "PrivateKey",
- "PublicKey",
- "SignPKCS1v15",
- "SignPSS",
- "VerifyPKCS1v15",
- "VerifyPSS",
- },
- "crypto/sha1": {
- "BlockSize",
- "New",
- "Size",
- "Sum",
- },
- "crypto/sha256": {
- "BlockSize",
- "New",
- "New224",
- "Size",
- "Size224",
- "Sum224",
- "Sum256",
- },
- "crypto/sha512": {
- "BlockSize",
- "New",
- "New384",
- "New512_224",
- "New512_256",
- "Size",
- "Size224",
- "Size256",
- "Size384",
- "Sum384",
- "Sum512",
- "Sum512_224",
- "Sum512_256",
- },
- "crypto/subtle": {
- "ConstantTimeByteEq",
- "ConstantTimeCompare",
- "ConstantTimeCopy",
- "ConstantTimeEq",
- "ConstantTimeLessOrEq",
- "ConstantTimeSelect",
- "XORBytes",
- },
- "crypto/tls": {
- "AlertError",
- "Certificate",
- "CertificateRequestInfo",
- "CertificateVerificationError",
- "CipherSuite",
- "CipherSuiteName",
- "CipherSuites",
- "Client",
- "ClientAuthType",
- "ClientHelloInfo",
- "ClientSessionCache",
- "ClientSessionState",
- "Config",
- "Conn",
- "ConnectionState",
- "CurveID",
- "CurveP256",
- "CurveP384",
- "CurveP521",
- "Dial",
- "DialWithDialer",
- "Dialer",
- "ECDSAWithP256AndSHA256",
- "ECDSAWithP384AndSHA384",
- "ECDSAWithP521AndSHA512",
- "ECDSAWithSHA1",
- "Ed25519",
- "InsecureCipherSuites",
- "Listen",
- "LoadX509KeyPair",
- "NewLRUClientSessionCache",
- "NewListener",
- "NewResumptionState",
- "NoClientCert",
- "PKCS1WithSHA1",
- "PKCS1WithSHA256",
- "PKCS1WithSHA384",
- "PKCS1WithSHA512",
- "PSSWithSHA256",
- "PSSWithSHA384",
- "PSSWithSHA512",
- "ParseSessionState",
- "QUICClient",
- "QUICConfig",
- "QUICConn",
- "QUICEncryptionLevel",
- "QUICEncryptionLevelApplication",
- "QUICEncryptionLevelEarly",
- "QUICEncryptionLevelHandshake",
- "QUICEncryptionLevelInitial",
- "QUICEvent",
- "QUICEventKind",
- "QUICHandshakeDone",
- "QUICNoEvent",
- "QUICRejectedEarlyData",
- "QUICServer",
- "QUICSessionTicketOptions",
- "QUICSetReadSecret",
- "QUICSetWriteSecret",
- "QUICTransportParameters",
- "QUICTransportParametersRequired",
- "QUICWriteData",
- "RecordHeaderError",
- "RenegotiateFreelyAsClient",
- "RenegotiateNever",
- "RenegotiateOnceAsClient",
- "RenegotiationSupport",
- "RequestClientCert",
- "RequireAndVerifyClientCert",
- "RequireAnyClientCert",
- "Server",
- "SessionState",
- "SignatureScheme",
- "TLS_AES_128_GCM_SHA256",
- "TLS_AES_256_GCM_SHA384",
- "TLS_CHACHA20_POLY1305_SHA256",
- "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
- "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
- "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
- "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
- "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
- "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
- "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
- "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
- "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
- "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
- "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
- "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
- "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
- "TLS_FALLBACK_SCSV",
- "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
- "TLS_RSA_WITH_AES_128_CBC_SHA",
- "TLS_RSA_WITH_AES_128_CBC_SHA256",
- "TLS_RSA_WITH_AES_128_GCM_SHA256",
- "TLS_RSA_WITH_AES_256_CBC_SHA",
- "TLS_RSA_WITH_AES_256_GCM_SHA384",
- "TLS_RSA_WITH_RC4_128_SHA",
- "VerifyClientCertIfGiven",
- "VersionName",
- "VersionSSL30",
- "VersionTLS10",
- "VersionTLS11",
- "VersionTLS12",
- "VersionTLS13",
- "X25519",
- "X509KeyPair",
- },
- "crypto/x509": {
- "CANotAuthorizedForExtKeyUsage",
- "CANotAuthorizedForThisName",
- "CertPool",
- "Certificate",
- "CertificateInvalidError",
- "CertificateRequest",
- "ConstraintViolationError",
- "CreateCertificate",
- "CreateCertificateRequest",
- "CreateRevocationList",
- "DSA",
- "DSAWithSHA1",
- "DSAWithSHA256",
- "DecryptPEMBlock",
- "ECDSA",
- "ECDSAWithSHA1",
- "ECDSAWithSHA256",
- "ECDSAWithSHA384",
- "ECDSAWithSHA512",
- "Ed25519",
- "EncryptPEMBlock",
- "ErrUnsupportedAlgorithm",
- "Expired",
- "ExtKeyUsage",
- "ExtKeyUsageAny",
- "ExtKeyUsageClientAuth",
- "ExtKeyUsageCodeSigning",
- "ExtKeyUsageEmailProtection",
- "ExtKeyUsageIPSECEndSystem",
- "ExtKeyUsageIPSECTunnel",
- "ExtKeyUsageIPSECUser",
- "ExtKeyUsageMicrosoftCommercialCodeSigning",
- "ExtKeyUsageMicrosoftKernelCodeSigning",
- "ExtKeyUsageMicrosoftServerGatedCrypto",
- "ExtKeyUsageNetscapeServerGatedCrypto",
- "ExtKeyUsageOCSPSigning",
- "ExtKeyUsageServerAuth",
- "ExtKeyUsageTimeStamping",
- "HostnameError",
- "IncompatibleUsage",
- "IncorrectPasswordError",
- "InsecureAlgorithmError",
- "InvalidReason",
- "IsEncryptedPEMBlock",
- "KeyUsage",
- "KeyUsageCRLSign",
- "KeyUsageCertSign",
- "KeyUsageContentCommitment",
- "KeyUsageDataEncipherment",
- "KeyUsageDecipherOnly",
- "KeyUsageDigitalSignature",
- "KeyUsageEncipherOnly",
- "KeyUsageKeyAgreement",
- "KeyUsageKeyEncipherment",
- "MD2WithRSA",
- "MD5WithRSA",
- "MarshalECPrivateKey",
- "MarshalPKCS1PrivateKey",
- "MarshalPKCS1PublicKey",
- "MarshalPKCS8PrivateKey",
- "MarshalPKIXPublicKey",
- "NameConstraintsWithoutSANs",
- "NameMismatch",
- "NewCertPool",
- "NotAuthorizedToSign",
- "OID",
- "OIDFromInts",
- "PEMCipher",
- "PEMCipher3DES",
- "PEMCipherAES128",
- "PEMCipherAES192",
- "PEMCipherAES256",
- "PEMCipherDES",
- "ParseCRL",
- "ParseCertificate",
- "ParseCertificateRequest",
- "ParseCertificates",
- "ParseDERCRL",
- "ParseECPrivateKey",
- "ParsePKCS1PrivateKey",
- "ParsePKCS1PublicKey",
- "ParsePKCS8PrivateKey",
- "ParsePKIXPublicKey",
- "ParseRevocationList",
- "PublicKeyAlgorithm",
- "PureEd25519",
- "RSA",
- "RevocationList",
- "RevocationListEntry",
- "SHA1WithRSA",
- "SHA256WithRSA",
- "SHA256WithRSAPSS",
- "SHA384WithRSA",
- "SHA384WithRSAPSS",
- "SHA512WithRSA",
- "SHA512WithRSAPSS",
- "SetFallbackRoots",
- "SignatureAlgorithm",
- "SystemCertPool",
- "SystemRootsError",
- "TooManyConstraints",
- "TooManyIntermediates",
- "UnconstrainedName",
- "UnhandledCriticalExtension",
- "UnknownAuthorityError",
- "UnknownPublicKeyAlgorithm",
- "UnknownSignatureAlgorithm",
- "VerifyOptions",
- },
- "crypto/x509/pkix": {
- "AlgorithmIdentifier",
- "AttributeTypeAndValue",
- "AttributeTypeAndValueSET",
- "CertificateList",
- "Extension",
- "Name",
- "RDNSequence",
- "RelativeDistinguishedNameSET",
- "RevokedCertificate",
- "TBSCertificateList",
- },
- "database/sql": {
- "ColumnType",
- "Conn",
- "DB",
- "DBStats",
- "Drivers",
- "ErrConnDone",
- "ErrNoRows",
- "ErrTxDone",
- "IsolationLevel",
- "LevelDefault",
- "LevelLinearizable",
- "LevelReadCommitted",
- "LevelReadUncommitted",
- "LevelRepeatableRead",
- "LevelSerializable",
- "LevelSnapshot",
- "LevelWriteCommitted",
- "Named",
- "NamedArg",
- "Null",
- "NullBool",
- "NullByte",
- "NullFloat64",
- "NullInt16",
- "NullInt32",
- "NullInt64",
- "NullString",
- "NullTime",
- "Open",
- "OpenDB",
- "Out",
- "RawBytes",
- "Register",
- "Result",
- "Row",
- "Rows",
- "Scanner",
- "Stmt",
- "Tx",
- "TxOptions",
- },
- "database/sql/driver": {
- "Bool",
- "ColumnConverter",
- "Conn",
- "ConnBeginTx",
- "ConnPrepareContext",
- "Connector",
- "DefaultParameterConverter",
- "Driver",
- "DriverContext",
- "ErrBadConn",
- "ErrRemoveArgument",
- "ErrSkip",
- "Execer",
- "ExecerContext",
- "Int32",
- "IsScanValue",
- "IsValue",
- "IsolationLevel",
- "NamedValue",
- "NamedValueChecker",
- "NotNull",
- "Null",
- "Pinger",
- "Queryer",
- "QueryerContext",
- "Result",
- "ResultNoRows",
- "Rows",
- "RowsAffected",
- "RowsColumnTypeDatabaseTypeName",
- "RowsColumnTypeLength",
- "RowsColumnTypeNullable",
- "RowsColumnTypePrecisionScale",
- "RowsColumnTypeScanType",
- "RowsNextResultSet",
- "SessionResetter",
- "Stmt",
- "StmtExecContext",
- "StmtQueryContext",
- "String",
- "Tx",
- "TxOptions",
- "Validator",
- "Value",
- "ValueConverter",
- "Valuer",
- },
- "debug/buildinfo": {
- "BuildInfo",
- "Read",
- "ReadFile",
- },
- "debug/dwarf": {
- "AddrType",
- "ArrayType",
- "Attr",
- "AttrAbstractOrigin",
- "AttrAccessibility",
- "AttrAddrBase",
- "AttrAddrClass",
- "AttrAlignment",
- "AttrAllocated",
- "AttrArtificial",
- "AttrAssociated",
- "AttrBaseTypes",
- "AttrBinaryScale",
- "AttrBitOffset",
- "AttrBitSize",
- "AttrByteSize",
- "AttrCallAllCalls",
- "AttrCallAllSourceCalls",
- "AttrCallAllTailCalls",
- "AttrCallColumn",
- "AttrCallDataLocation",
- "AttrCallDataValue",
- "AttrCallFile",
- "AttrCallLine",
- "AttrCallOrigin",
- "AttrCallPC",
- "AttrCallParameter",
- "AttrCallReturnPC",
- "AttrCallTailCall",
- "AttrCallTarget",
- "AttrCallTargetClobbered",
- "AttrCallValue",
- "AttrCalling",
- "AttrCommonRef",
- "AttrCompDir",
- "AttrConstExpr",
- "AttrConstValue",
- "AttrContainingType",
- "AttrCount",
- "AttrDataBitOffset",
- "AttrDataLocation",
- "AttrDataMemberLoc",
- "AttrDecimalScale",
- "AttrDecimalSign",
- "AttrDeclColumn",
- "AttrDeclFile",
- "AttrDeclLine",
- "AttrDeclaration",
- "AttrDefaultValue",
- "AttrDefaulted",
- "AttrDeleted",
- "AttrDescription",
- "AttrDigitCount",
- "AttrDiscr",
- "AttrDiscrList",
- "AttrDiscrValue",
- "AttrDwoName",
- "AttrElemental",
- "AttrEncoding",
- "AttrEndianity",
- "AttrEntrypc",
- "AttrEnumClass",
- "AttrExplicit",
- "AttrExportSymbols",
- "AttrExtension",
- "AttrExternal",
- "AttrFrameBase",
- "AttrFriend",
- "AttrHighpc",
- "AttrIdentifierCase",
- "AttrImport",
- "AttrInline",
- "AttrIsOptional",
- "AttrLanguage",
- "AttrLinkageName",
- "AttrLocation",
- "AttrLoclistsBase",
- "AttrLowerBound",
- "AttrLowpc",
- "AttrMacroInfo",
- "AttrMacros",
- "AttrMainSubprogram",
- "AttrMutable",
- "AttrName",
- "AttrNamelistItem",
- "AttrNoreturn",
- "AttrObjectPointer",
- "AttrOrdering",
- "AttrPictureString",
- "AttrPriority",
- "AttrProducer",
- "AttrPrototyped",
- "AttrPure",
- "AttrRanges",
- "AttrRank",
- "AttrRecursive",
- "AttrReference",
- "AttrReturnAddr",
- "AttrRnglistsBase",
- "AttrRvalueReference",
- "AttrSegment",
- "AttrSibling",
- "AttrSignature",
- "AttrSmall",
- "AttrSpecification",
- "AttrStartScope",
- "AttrStaticLink",
- "AttrStmtList",
- "AttrStrOffsetsBase",
- "AttrStride",
- "AttrStrideSize",
- "AttrStringLength",
- "AttrStringLengthBitSize",
- "AttrStringLengthByteSize",
- "AttrThreadsScaled",
- "AttrTrampoline",
- "AttrType",
- "AttrUpperBound",
- "AttrUseLocation",
- "AttrUseUTF8",
- "AttrVarParam",
- "AttrVirtuality",
- "AttrVisibility",
- "AttrVtableElemLoc",
- "BasicType",
- "BoolType",
- "CharType",
- "Class",
- "ClassAddrPtr",
- "ClassAddress",
- "ClassBlock",
- "ClassConstant",
- "ClassExprLoc",
- "ClassFlag",
- "ClassLinePtr",
- "ClassLocList",
- "ClassLocListPtr",
- "ClassMacPtr",
- "ClassRangeListPtr",
- "ClassReference",
- "ClassReferenceAlt",
- "ClassReferenceSig",
- "ClassRngList",
- "ClassRngListsPtr",
- "ClassStrOffsetsPtr",
- "ClassString",
- "ClassStringAlt",
- "ClassUnknown",
- "CommonType",
- "ComplexType",
- "Data",
- "DecodeError",
- "DotDotDotType",
- "Entry",
- "EnumType",
- "EnumValue",
- "ErrUnknownPC",
- "Field",
- "FloatType",
- "FuncType",
- "IntType",
- "LineEntry",
- "LineFile",
- "LineReader",
- "LineReaderPos",
- "New",
- "Offset",
- "PtrType",
- "QualType",
- "Reader",
- "StructField",
- "StructType",
- "Tag",
- "TagAccessDeclaration",
- "TagArrayType",
- "TagAtomicType",
- "TagBaseType",
- "TagCallSite",
- "TagCallSiteParameter",
- "TagCatchDwarfBlock",
- "TagClassType",
- "TagCoarrayType",
- "TagCommonDwarfBlock",
- "TagCommonInclusion",
- "TagCompileUnit",
- "TagCondition",
- "TagConstType",
- "TagConstant",
- "TagDwarfProcedure",
- "TagDynamicType",
- "TagEntryPoint",
- "TagEnumerationType",
- "TagEnumerator",
- "TagFileType",
- "TagFormalParameter",
- "TagFriend",
- "TagGenericSubrange",
- "TagImmutableType",
- "TagImportedDeclaration",
- "TagImportedModule",
- "TagImportedUnit",
- "TagInheritance",
- "TagInlinedSubroutine",
- "TagInterfaceType",
- "TagLabel",
- "TagLexDwarfBlock",
- "TagMember",
- "TagModule",
- "TagMutableType",
- "TagNamelist",
- "TagNamelistItem",
- "TagNamespace",
- "TagPackedType",
- "TagPartialUnit",
- "TagPointerType",
- "TagPtrToMemberType",
- "TagReferenceType",
- "TagRestrictType",
- "TagRvalueReferenceType",
- "TagSetType",
- "TagSharedType",
- "TagSkeletonUnit",
- "TagStringType",
- "TagStructType",
- "TagSubprogram",
- "TagSubrangeType",
- "TagSubroutineType",
- "TagTemplateAlias",
- "TagTemplateTypeParameter",
- "TagTemplateValueParameter",
- "TagThrownType",
- "TagTryDwarfBlock",
- "TagTypeUnit",
- "TagTypedef",
- "TagUnionType",
- "TagUnspecifiedParameters",
- "TagUnspecifiedType",
- "TagVariable",
- "TagVariant",
- "TagVariantPart",
- "TagVolatileType",
- "TagWithStmt",
- "Type",
- "TypedefType",
- "UcharType",
- "UintType",
- "UnspecifiedType",
- "UnsupportedType",
- "VoidType",
- },
- "debug/elf": {
- "ARM_MAGIC_TRAMP_NUMBER",
- "COMPRESS_HIOS",
- "COMPRESS_HIPROC",
- "COMPRESS_LOOS",
- "COMPRESS_LOPROC",
- "COMPRESS_ZLIB",
- "COMPRESS_ZSTD",
- "Chdr32",
- "Chdr64",
- "Class",
- "CompressionType",
- "DF_1_CONFALT",
- "DF_1_DIRECT",
- "DF_1_DISPRELDNE",
- "DF_1_DISPRELPND",
- "DF_1_EDITED",
- "DF_1_ENDFILTEE",
- "DF_1_GLOBAL",
- "DF_1_GLOBAUDIT",
- "DF_1_GROUP",
- "DF_1_IGNMULDEF",
- "DF_1_INITFIRST",
- "DF_1_INTERPOSE",
- "DF_1_KMOD",
- "DF_1_LOADFLTR",
- "DF_1_NOCOMMON",
- "DF_1_NODEFLIB",
- "DF_1_NODELETE",
- "DF_1_NODIRECT",
- "DF_1_NODUMP",
- "DF_1_NOHDR",
- "DF_1_NOKSYMS",
- "DF_1_NOOPEN",
- "DF_1_NORELOC",
- "DF_1_NOW",
- "DF_1_ORIGIN",
- "DF_1_PIE",
- "DF_1_SINGLETON",
- "DF_1_STUB",
- "DF_1_SYMINTPOSE",
- "DF_1_TRANS",
- "DF_1_WEAKFILTER",
- "DF_BIND_NOW",
- "DF_ORIGIN",
- "DF_STATIC_TLS",
- "DF_SYMBOLIC",
- "DF_TEXTREL",
- "DT_ADDRRNGHI",
- "DT_ADDRRNGLO",
- "DT_AUDIT",
- "DT_AUXILIARY",
- "DT_BIND_NOW",
- "DT_CHECKSUM",
- "DT_CONFIG",
- "DT_DEBUG",
- "DT_DEPAUDIT",
- "DT_ENCODING",
- "DT_FEATURE",
- "DT_FILTER",
- "DT_FINI",
- "DT_FINI_ARRAY",
- "DT_FINI_ARRAYSZ",
- "DT_FLAGS",
- "DT_FLAGS_1",
- "DT_GNU_CONFLICT",
- "DT_GNU_CONFLICTSZ",
- "DT_GNU_HASH",
- "DT_GNU_LIBLIST",
- "DT_GNU_LIBLISTSZ",
- "DT_GNU_PRELINKED",
- "DT_HASH",
- "DT_HIOS",
- "DT_HIPROC",
- "DT_INIT",
- "DT_INIT_ARRAY",
- "DT_INIT_ARRAYSZ",
- "DT_JMPREL",
- "DT_LOOS",
- "DT_LOPROC",
- "DT_MIPS_AUX_DYNAMIC",
- "DT_MIPS_BASE_ADDRESS",
- "DT_MIPS_COMPACT_SIZE",
- "DT_MIPS_CONFLICT",
- "DT_MIPS_CONFLICTNO",
- "DT_MIPS_CXX_FLAGS",
- "DT_MIPS_DELTA_CLASS",
- "DT_MIPS_DELTA_CLASSSYM",
- "DT_MIPS_DELTA_CLASSSYM_NO",
- "DT_MIPS_DELTA_CLASS_NO",
- "DT_MIPS_DELTA_INSTANCE",
- "DT_MIPS_DELTA_INSTANCE_NO",
- "DT_MIPS_DELTA_RELOC",
- "DT_MIPS_DELTA_RELOC_NO",
- "DT_MIPS_DELTA_SYM",
- "DT_MIPS_DELTA_SYM_NO",
- "DT_MIPS_DYNSTR_ALIGN",
- "DT_MIPS_FLAGS",
- "DT_MIPS_GOTSYM",
- "DT_MIPS_GP_VALUE",
- "DT_MIPS_HIDDEN_GOTIDX",
- "DT_MIPS_HIPAGENO",
- "DT_MIPS_ICHECKSUM",
- "DT_MIPS_INTERFACE",
- "DT_MIPS_INTERFACE_SIZE",
- "DT_MIPS_IVERSION",
- "DT_MIPS_LIBLIST",
- "DT_MIPS_LIBLISTNO",
- "DT_MIPS_LOCALPAGE_GOTIDX",
- "DT_MIPS_LOCAL_GOTIDX",
- "DT_MIPS_LOCAL_GOTNO",
- "DT_MIPS_MSYM",
- "DT_MIPS_OPTIONS",
- "DT_MIPS_PERF_SUFFIX",
- "DT_MIPS_PIXIE_INIT",
- "DT_MIPS_PLTGOT",
- "DT_MIPS_PROTECTED_GOTIDX",
- "DT_MIPS_RLD_MAP",
- "DT_MIPS_RLD_MAP_REL",
- "DT_MIPS_RLD_TEXT_RESOLVE_ADDR",
- "DT_MIPS_RLD_VERSION",
- "DT_MIPS_RWPLT",
- "DT_MIPS_SYMBOL_LIB",
- "DT_MIPS_SYMTABNO",
- "DT_MIPS_TIME_STAMP",
- "DT_MIPS_UNREFEXTNO",
- "DT_MOVEENT",
- "DT_MOVESZ",
- "DT_MOVETAB",
- "DT_NEEDED",
- "DT_NULL",
- "DT_PLTGOT",
- "DT_PLTPAD",
- "DT_PLTPADSZ",
- "DT_PLTREL",
- "DT_PLTRELSZ",
- "DT_POSFLAG_1",
- "DT_PPC64_GLINK",
- "DT_PPC64_OPD",
- "DT_PPC64_OPDSZ",
- "DT_PPC64_OPT",
- "DT_PPC_GOT",
- "DT_PPC_OPT",
- "DT_PREINIT_ARRAY",
- "DT_PREINIT_ARRAYSZ",
- "DT_REL",
- "DT_RELA",
- "DT_RELACOUNT",
- "DT_RELAENT",
- "DT_RELASZ",
- "DT_RELCOUNT",
- "DT_RELENT",
- "DT_RELSZ",
- "DT_RPATH",
- "DT_RUNPATH",
- "DT_SONAME",
- "DT_SPARC_REGISTER",
- "DT_STRSZ",
- "DT_STRTAB",
- "DT_SYMBOLIC",
- "DT_SYMENT",
- "DT_SYMINENT",
- "DT_SYMINFO",
- "DT_SYMINSZ",
- "DT_SYMTAB",
- "DT_SYMTAB_SHNDX",
- "DT_TEXTREL",
- "DT_TLSDESC_GOT",
- "DT_TLSDESC_PLT",
- "DT_USED",
- "DT_VALRNGHI",
- "DT_VALRNGLO",
- "DT_VERDEF",
- "DT_VERDEFNUM",
- "DT_VERNEED",
- "DT_VERNEEDNUM",
- "DT_VERSYM",
- "Data",
- "Dyn32",
- "Dyn64",
- "DynFlag",
- "DynFlag1",
- "DynTag",
- "EI_ABIVERSION",
- "EI_CLASS",
- "EI_DATA",
- "EI_NIDENT",
- "EI_OSABI",
- "EI_PAD",
- "EI_VERSION",
- "ELFCLASS32",
- "ELFCLASS64",
- "ELFCLASSNONE",
- "ELFDATA2LSB",
- "ELFDATA2MSB",
- "ELFDATANONE",
- "ELFMAG",
- "ELFOSABI_86OPEN",
- "ELFOSABI_AIX",
- "ELFOSABI_ARM",
- "ELFOSABI_AROS",
- "ELFOSABI_CLOUDABI",
- "ELFOSABI_FENIXOS",
- "ELFOSABI_FREEBSD",
- "ELFOSABI_HPUX",
- "ELFOSABI_HURD",
- "ELFOSABI_IRIX",
- "ELFOSABI_LINUX",
- "ELFOSABI_MODESTO",
- "ELFOSABI_NETBSD",
- "ELFOSABI_NONE",
- "ELFOSABI_NSK",
- "ELFOSABI_OPENBSD",
- "ELFOSABI_OPENVMS",
- "ELFOSABI_SOLARIS",
- "ELFOSABI_STANDALONE",
- "ELFOSABI_TRU64",
- "EM_386",
- "EM_486",
- "EM_56800EX",
- "EM_68HC05",
- "EM_68HC08",
- "EM_68HC11",
- "EM_68HC12",
- "EM_68HC16",
- "EM_68K",
- "EM_78KOR",
- "EM_8051",
- "EM_860",
- "EM_88K",
- "EM_960",
- "EM_AARCH64",
- "EM_ALPHA",
- "EM_ALPHA_STD",
- "EM_ALTERA_NIOS2",
- "EM_AMDGPU",
- "EM_ARC",
- "EM_ARCA",
- "EM_ARC_COMPACT",
- "EM_ARC_COMPACT2",
- "EM_ARM",
- "EM_AVR",
- "EM_AVR32",
- "EM_BA1",
- "EM_BA2",
- "EM_BLACKFIN",
- "EM_BPF",
- "EM_C166",
- "EM_CDP",
- "EM_CE",
- "EM_CLOUDSHIELD",
- "EM_COGE",
- "EM_COLDFIRE",
- "EM_COOL",
- "EM_COREA_1ST",
- "EM_COREA_2ND",
- "EM_CR",
- "EM_CR16",
- "EM_CRAYNV2",
- "EM_CRIS",
- "EM_CRX",
- "EM_CSR_KALIMBA",
- "EM_CUDA",
- "EM_CYPRESS_M8C",
- "EM_D10V",
- "EM_D30V",
- "EM_DSP24",
- "EM_DSPIC30F",
- "EM_DXP",
- "EM_ECOG1",
- "EM_ECOG16",
- "EM_ECOG1X",
- "EM_ECOG2",
- "EM_ETPU",
- "EM_EXCESS",
- "EM_F2MC16",
- "EM_FIREPATH",
- "EM_FR20",
- "EM_FR30",
- "EM_FT32",
- "EM_FX66",
- "EM_H8S",
- "EM_H8_300",
- "EM_H8_300H",
- "EM_H8_500",
- "EM_HUANY",
- "EM_IA_64",
- "EM_INTEL205",
- "EM_INTEL206",
- "EM_INTEL207",
- "EM_INTEL208",
- "EM_INTEL209",
- "EM_IP2K",
- "EM_JAVELIN",
- "EM_K10M",
- "EM_KM32",
- "EM_KMX16",
- "EM_KMX32",
- "EM_KMX8",
- "EM_KVARC",
- "EM_L10M",
- "EM_LANAI",
- "EM_LATTICEMICO32",
- "EM_LOONGARCH",
- "EM_M16C",
- "EM_M32",
- "EM_M32C",
- "EM_M32R",
- "EM_MANIK",
- "EM_MAX",
- "EM_MAXQ30",
- "EM_MCHP_PIC",
- "EM_MCST_ELBRUS",
- "EM_ME16",
- "EM_METAG",
- "EM_MICROBLAZE",
- "EM_MIPS",
- "EM_MIPS_RS3_LE",
- "EM_MIPS_RS4_BE",
- "EM_MIPS_X",
- "EM_MMA",
- "EM_MMDSP_PLUS",
- "EM_MMIX",
- "EM_MN10200",
- "EM_MN10300",
- "EM_MOXIE",
- "EM_MSP430",
- "EM_NCPU",
- "EM_NDR1",
- "EM_NDS32",
- "EM_NONE",
- "EM_NORC",
- "EM_NS32K",
- "EM_OPEN8",
- "EM_OPENRISC",
- "EM_PARISC",
- "EM_PCP",
- "EM_PDP10",
- "EM_PDP11",
- "EM_PDSP",
- "EM_PJ",
- "EM_PPC",
- "EM_PPC64",
- "EM_PRISM",
- "EM_QDSP6",
- "EM_R32C",
- "EM_RCE",
- "EM_RH32",
- "EM_RISCV",
- "EM_RL78",
- "EM_RS08",
- "EM_RX",
- "EM_S370",
- "EM_S390",
- "EM_SCORE7",
- "EM_SEP",
- "EM_SE_C17",
- "EM_SE_C33",
- "EM_SH",
- "EM_SHARC",
- "EM_SLE9X",
- "EM_SNP1K",
- "EM_SPARC",
- "EM_SPARC32PLUS",
- "EM_SPARCV9",
- "EM_ST100",
- "EM_ST19",
- "EM_ST200",
- "EM_ST7",
- "EM_ST9PLUS",
- "EM_STARCORE",
- "EM_STM8",
- "EM_STXP7X",
- "EM_SVX",
- "EM_TILE64",
- "EM_TILEGX",
- "EM_TILEPRO",
- "EM_TINYJ",
- "EM_TI_ARP32",
- "EM_TI_C2000",
- "EM_TI_C5500",
- "EM_TI_C6000",
- "EM_TI_PRU",
- "EM_TMM_GPP",
- "EM_TPC",
- "EM_TRICORE",
- "EM_TRIMEDIA",
- "EM_TSK3000",
- "EM_UNICORE",
- "EM_V800",
- "EM_V850",
- "EM_VAX",
- "EM_VIDEOCORE",
- "EM_VIDEOCORE3",
- "EM_VIDEOCORE5",
- "EM_VISIUM",
- "EM_VPP500",
- "EM_X86_64",
- "EM_XCORE",
- "EM_XGATE",
- "EM_XIMO16",
- "EM_XTENSA",
- "EM_Z80",
- "EM_ZSP",
- "ET_CORE",
- "ET_DYN",
- "ET_EXEC",
- "ET_HIOS",
- "ET_HIPROC",
- "ET_LOOS",
- "ET_LOPROC",
- "ET_NONE",
- "ET_REL",
- "EV_CURRENT",
- "EV_NONE",
- "ErrNoSymbols",
- "File",
- "FileHeader",
- "FormatError",
- "Header32",
- "Header64",
- "ImportedSymbol",
- "Machine",
- "NT_FPREGSET",
- "NT_PRPSINFO",
- "NT_PRSTATUS",
- "NType",
- "NewFile",
- "OSABI",
- "Open",
- "PF_MASKOS",
- "PF_MASKPROC",
- "PF_R",
- "PF_W",
- "PF_X",
- "PT_AARCH64_ARCHEXT",
- "PT_AARCH64_UNWIND",
- "PT_ARM_ARCHEXT",
- "PT_ARM_EXIDX",
- "PT_DYNAMIC",
- "PT_GNU_EH_FRAME",
- "PT_GNU_MBIND_HI",
- "PT_GNU_MBIND_LO",
- "PT_GNU_PROPERTY",
- "PT_GNU_RELRO",
- "PT_GNU_STACK",
- "PT_HIOS",
- "PT_HIPROC",
- "PT_INTERP",
- "PT_LOAD",
- "PT_LOOS",
- "PT_LOPROC",
- "PT_MIPS_ABIFLAGS",
- "PT_MIPS_OPTIONS",
- "PT_MIPS_REGINFO",
- "PT_MIPS_RTPROC",
- "PT_NOTE",
- "PT_NULL",
- "PT_OPENBSD_BOOTDATA",
- "PT_OPENBSD_RANDOMIZE",
- "PT_OPENBSD_WXNEEDED",
- "PT_PAX_FLAGS",
- "PT_PHDR",
- "PT_S390_PGSTE",
- "PT_SHLIB",
- "PT_SUNWSTACK",
- "PT_SUNW_EH_FRAME",
- "PT_TLS",
- "Prog",
- "Prog32",
- "Prog64",
- "ProgFlag",
- "ProgHeader",
- "ProgType",
- "R_386",
- "R_386_16",
- "R_386_32",
- "R_386_32PLT",
- "R_386_8",
- "R_386_COPY",
- "R_386_GLOB_DAT",
- "R_386_GOT32",
- "R_386_GOT32X",
- "R_386_GOTOFF",
- "R_386_GOTPC",
- "R_386_IRELATIVE",
- "R_386_JMP_SLOT",
- "R_386_NONE",
- "R_386_PC16",
- "R_386_PC32",
- "R_386_PC8",
- "R_386_PLT32",
- "R_386_RELATIVE",
- "R_386_SIZE32",
- "R_386_TLS_DESC",
- "R_386_TLS_DESC_CALL",
- "R_386_TLS_DTPMOD32",
- "R_386_TLS_DTPOFF32",
- "R_386_TLS_GD",
- "R_386_TLS_GD_32",
- "R_386_TLS_GD_CALL",
- "R_386_TLS_GD_POP",
- "R_386_TLS_GD_PUSH",
- "R_386_TLS_GOTDESC",
- "R_386_TLS_GOTIE",
- "R_386_TLS_IE",
- "R_386_TLS_IE_32",
- "R_386_TLS_LDM",
- "R_386_TLS_LDM_32",
- "R_386_TLS_LDM_CALL",
- "R_386_TLS_LDM_POP",
- "R_386_TLS_LDM_PUSH",
- "R_386_TLS_LDO_32",
- "R_386_TLS_LE",
- "R_386_TLS_LE_32",
- "R_386_TLS_TPOFF",
- "R_386_TLS_TPOFF32",
- "R_390",
- "R_390_12",
- "R_390_16",
- "R_390_20",
- "R_390_32",
- "R_390_64",
- "R_390_8",
- "R_390_COPY",
- "R_390_GLOB_DAT",
- "R_390_GOT12",
- "R_390_GOT16",
- "R_390_GOT20",
- "R_390_GOT32",
- "R_390_GOT64",
- "R_390_GOTENT",
- "R_390_GOTOFF",
- "R_390_GOTOFF16",
- "R_390_GOTOFF64",
- "R_390_GOTPC",
- "R_390_GOTPCDBL",
- "R_390_GOTPLT12",
- "R_390_GOTPLT16",
- "R_390_GOTPLT20",
- "R_390_GOTPLT32",
- "R_390_GOTPLT64",
- "R_390_GOTPLTENT",
- "R_390_GOTPLTOFF16",
- "R_390_GOTPLTOFF32",
- "R_390_GOTPLTOFF64",
- "R_390_JMP_SLOT",
- "R_390_NONE",
- "R_390_PC16",
- "R_390_PC16DBL",
- "R_390_PC32",
- "R_390_PC32DBL",
- "R_390_PC64",
- "R_390_PLT16DBL",
- "R_390_PLT32",
- "R_390_PLT32DBL",
- "R_390_PLT64",
- "R_390_RELATIVE",
- "R_390_TLS_DTPMOD",
- "R_390_TLS_DTPOFF",
- "R_390_TLS_GD32",
- "R_390_TLS_GD64",
- "R_390_TLS_GDCALL",
- "R_390_TLS_GOTIE12",
- "R_390_TLS_GOTIE20",
- "R_390_TLS_GOTIE32",
- "R_390_TLS_GOTIE64",
- "R_390_TLS_IE32",
- "R_390_TLS_IE64",
- "R_390_TLS_IEENT",
- "R_390_TLS_LDCALL",
- "R_390_TLS_LDM32",
- "R_390_TLS_LDM64",
- "R_390_TLS_LDO32",
- "R_390_TLS_LDO64",
- "R_390_TLS_LE32",
- "R_390_TLS_LE64",
- "R_390_TLS_LOAD",
- "R_390_TLS_TPOFF",
- "R_AARCH64",
- "R_AARCH64_ABS16",
- "R_AARCH64_ABS32",
- "R_AARCH64_ABS64",
- "R_AARCH64_ADD_ABS_LO12_NC",
- "R_AARCH64_ADR_GOT_PAGE",
- "R_AARCH64_ADR_PREL_LO21",
- "R_AARCH64_ADR_PREL_PG_HI21",
- "R_AARCH64_ADR_PREL_PG_HI21_NC",
- "R_AARCH64_CALL26",
- "R_AARCH64_CONDBR19",
- "R_AARCH64_COPY",
- "R_AARCH64_GLOB_DAT",
- "R_AARCH64_GOT_LD_PREL19",
- "R_AARCH64_IRELATIVE",
- "R_AARCH64_JUMP26",
- "R_AARCH64_JUMP_SLOT",
- "R_AARCH64_LD64_GOTOFF_LO15",
- "R_AARCH64_LD64_GOTPAGE_LO15",
- "R_AARCH64_LD64_GOT_LO12_NC",
- "R_AARCH64_LDST128_ABS_LO12_NC",
- "R_AARCH64_LDST16_ABS_LO12_NC",
- "R_AARCH64_LDST32_ABS_LO12_NC",
- "R_AARCH64_LDST64_ABS_LO12_NC",
- "R_AARCH64_LDST8_ABS_LO12_NC",
- "R_AARCH64_LD_PREL_LO19",
- "R_AARCH64_MOVW_SABS_G0",
- "R_AARCH64_MOVW_SABS_G1",
- "R_AARCH64_MOVW_SABS_G2",
- "R_AARCH64_MOVW_UABS_G0",
- "R_AARCH64_MOVW_UABS_G0_NC",
- "R_AARCH64_MOVW_UABS_G1",
- "R_AARCH64_MOVW_UABS_G1_NC",
- "R_AARCH64_MOVW_UABS_G2",
- "R_AARCH64_MOVW_UABS_G2_NC",
- "R_AARCH64_MOVW_UABS_G3",
- "R_AARCH64_NONE",
- "R_AARCH64_NULL",
- "R_AARCH64_P32_ABS16",
- "R_AARCH64_P32_ABS32",
- "R_AARCH64_P32_ADD_ABS_LO12_NC",
- "R_AARCH64_P32_ADR_GOT_PAGE",
- "R_AARCH64_P32_ADR_PREL_LO21",
- "R_AARCH64_P32_ADR_PREL_PG_HI21",
- "R_AARCH64_P32_CALL26",
- "R_AARCH64_P32_CONDBR19",
- "R_AARCH64_P32_COPY",
- "R_AARCH64_P32_GLOB_DAT",
- "R_AARCH64_P32_GOT_LD_PREL19",
- "R_AARCH64_P32_IRELATIVE",
- "R_AARCH64_P32_JUMP26",
- "R_AARCH64_P32_JUMP_SLOT",
- "R_AARCH64_P32_LD32_GOT_LO12_NC",
- "R_AARCH64_P32_LDST128_ABS_LO12_NC",
- "R_AARCH64_P32_LDST16_ABS_LO12_NC",
- "R_AARCH64_P32_LDST32_ABS_LO12_NC",
- "R_AARCH64_P32_LDST64_ABS_LO12_NC",
- "R_AARCH64_P32_LDST8_ABS_LO12_NC",
- "R_AARCH64_P32_LD_PREL_LO19",
- "R_AARCH64_P32_MOVW_SABS_G0",
- "R_AARCH64_P32_MOVW_UABS_G0",
- "R_AARCH64_P32_MOVW_UABS_G0_NC",
- "R_AARCH64_P32_MOVW_UABS_G1",
- "R_AARCH64_P32_PREL16",
- "R_AARCH64_P32_PREL32",
- "R_AARCH64_P32_RELATIVE",
- "R_AARCH64_P32_TLSDESC",
- "R_AARCH64_P32_TLSDESC_ADD_LO12_NC",
- "R_AARCH64_P32_TLSDESC_ADR_PAGE21",
- "R_AARCH64_P32_TLSDESC_ADR_PREL21",
- "R_AARCH64_P32_TLSDESC_CALL",
- "R_AARCH64_P32_TLSDESC_LD32_LO12_NC",
- "R_AARCH64_P32_TLSDESC_LD_PREL19",
- "R_AARCH64_P32_TLSGD_ADD_LO12_NC",
- "R_AARCH64_P32_TLSGD_ADR_PAGE21",
- "R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21",
- "R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC",
- "R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19",
- "R_AARCH64_P32_TLSLE_ADD_TPREL_HI12",
- "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12",
- "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC",
- "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0",
- "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC",
- "R_AARCH64_P32_TLSLE_MOVW_TPREL_G1",
- "R_AARCH64_P32_TLS_DTPMOD",
- "R_AARCH64_P32_TLS_DTPREL",
- "R_AARCH64_P32_TLS_TPREL",
- "R_AARCH64_P32_TSTBR14",
- "R_AARCH64_PREL16",
- "R_AARCH64_PREL32",
- "R_AARCH64_PREL64",
- "R_AARCH64_RELATIVE",
- "R_AARCH64_TLSDESC",
- "R_AARCH64_TLSDESC_ADD",
- "R_AARCH64_TLSDESC_ADD_LO12_NC",
- "R_AARCH64_TLSDESC_ADR_PAGE21",
- "R_AARCH64_TLSDESC_ADR_PREL21",
- "R_AARCH64_TLSDESC_CALL",
- "R_AARCH64_TLSDESC_LD64_LO12_NC",
- "R_AARCH64_TLSDESC_LDR",
- "R_AARCH64_TLSDESC_LD_PREL19",
- "R_AARCH64_TLSDESC_OFF_G0_NC",
- "R_AARCH64_TLSDESC_OFF_G1",
- "R_AARCH64_TLSGD_ADD_LO12_NC",
- "R_AARCH64_TLSGD_ADR_PAGE21",
- "R_AARCH64_TLSGD_ADR_PREL21",
- "R_AARCH64_TLSGD_MOVW_G0_NC",
- "R_AARCH64_TLSGD_MOVW_G1",
- "R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21",
- "R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC",
- "R_AARCH64_TLSIE_LD_GOTTPREL_PREL19",
- "R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC",
- "R_AARCH64_TLSIE_MOVW_GOTTPREL_G1",
- "R_AARCH64_TLSLD_ADR_PAGE21",
- "R_AARCH64_TLSLD_ADR_PREL21",
- "R_AARCH64_TLSLD_LDST128_DTPREL_LO12",
- "R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC",
- "R_AARCH64_TLSLE_ADD_TPREL_HI12",
- "R_AARCH64_TLSLE_ADD_TPREL_LO12",
- "R_AARCH64_TLSLE_ADD_TPREL_LO12_NC",
- "R_AARCH64_TLSLE_LDST128_TPREL_LO12",
- "R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC",
- "R_AARCH64_TLSLE_MOVW_TPREL_G0",
- "R_AARCH64_TLSLE_MOVW_TPREL_G0_NC",
- "R_AARCH64_TLSLE_MOVW_TPREL_G1",
- "R_AARCH64_TLSLE_MOVW_TPREL_G1_NC",
- "R_AARCH64_TLSLE_MOVW_TPREL_G2",
- "R_AARCH64_TLS_DTPMOD64",
- "R_AARCH64_TLS_DTPREL64",
- "R_AARCH64_TLS_TPREL64",
- "R_AARCH64_TSTBR14",
- "R_ALPHA",
- "R_ALPHA_BRADDR",
- "R_ALPHA_COPY",
- "R_ALPHA_GLOB_DAT",
- "R_ALPHA_GPDISP",
- "R_ALPHA_GPREL32",
- "R_ALPHA_GPRELHIGH",
- "R_ALPHA_GPRELLOW",
- "R_ALPHA_GPVALUE",
- "R_ALPHA_HINT",
- "R_ALPHA_IMMED_BR_HI32",
- "R_ALPHA_IMMED_GP_16",
- "R_ALPHA_IMMED_GP_HI32",
- "R_ALPHA_IMMED_LO32",
- "R_ALPHA_IMMED_SCN_HI32",
- "R_ALPHA_JMP_SLOT",
- "R_ALPHA_LITERAL",
- "R_ALPHA_LITUSE",
- "R_ALPHA_NONE",
- "R_ALPHA_OP_PRSHIFT",
- "R_ALPHA_OP_PSUB",
- "R_ALPHA_OP_PUSH",
- "R_ALPHA_OP_STORE",
- "R_ALPHA_REFLONG",
- "R_ALPHA_REFQUAD",
- "R_ALPHA_RELATIVE",
- "R_ALPHA_SREL16",
- "R_ALPHA_SREL32",
- "R_ALPHA_SREL64",
- "R_ARM",
- "R_ARM_ABS12",
- "R_ARM_ABS16",
- "R_ARM_ABS32",
- "R_ARM_ABS32_NOI",
- "R_ARM_ABS8",
- "R_ARM_ALU_PCREL_15_8",
- "R_ARM_ALU_PCREL_23_15",
- "R_ARM_ALU_PCREL_7_0",
- "R_ARM_ALU_PC_G0",
- "R_ARM_ALU_PC_G0_NC",
- "R_ARM_ALU_PC_G1",
- "R_ARM_ALU_PC_G1_NC",
- "R_ARM_ALU_PC_G2",
- "R_ARM_ALU_SBREL_19_12_NC",
- "R_ARM_ALU_SBREL_27_20_CK",
- "R_ARM_ALU_SB_G0",
- "R_ARM_ALU_SB_G0_NC",
- "R_ARM_ALU_SB_G1",
- "R_ARM_ALU_SB_G1_NC",
- "R_ARM_ALU_SB_G2",
- "R_ARM_AMP_VCALL9",
- "R_ARM_BASE_ABS",
- "R_ARM_CALL",
- "R_ARM_COPY",
- "R_ARM_GLOB_DAT",
- "R_ARM_GNU_VTENTRY",
- "R_ARM_GNU_VTINHERIT",
- "R_ARM_GOT32",
- "R_ARM_GOTOFF",
- "R_ARM_GOTOFF12",
- "R_ARM_GOTPC",
- "R_ARM_GOTRELAX",
- "R_ARM_GOT_ABS",
- "R_ARM_GOT_BREL12",
- "R_ARM_GOT_PREL",
- "R_ARM_IRELATIVE",
- "R_ARM_JUMP24",
- "R_ARM_JUMP_SLOT",
- "R_ARM_LDC_PC_G0",
- "R_ARM_LDC_PC_G1",
- "R_ARM_LDC_PC_G2",
- "R_ARM_LDC_SB_G0",
- "R_ARM_LDC_SB_G1",
- "R_ARM_LDC_SB_G2",
- "R_ARM_LDRS_PC_G0",
- "R_ARM_LDRS_PC_G1",
- "R_ARM_LDRS_PC_G2",
- "R_ARM_LDRS_SB_G0",
- "R_ARM_LDRS_SB_G1",
- "R_ARM_LDRS_SB_G2",
- "R_ARM_LDR_PC_G1",
- "R_ARM_LDR_PC_G2",
- "R_ARM_LDR_SBREL_11_10_NC",
- "R_ARM_LDR_SB_G0",
- "R_ARM_LDR_SB_G1",
- "R_ARM_LDR_SB_G2",
- "R_ARM_ME_TOO",
- "R_ARM_MOVT_ABS",
- "R_ARM_MOVT_BREL",
- "R_ARM_MOVT_PREL",
- "R_ARM_MOVW_ABS_NC",
- "R_ARM_MOVW_BREL",
- "R_ARM_MOVW_BREL_NC",
- "R_ARM_MOVW_PREL_NC",
- "R_ARM_NONE",
- "R_ARM_PC13",
- "R_ARM_PC24",
- "R_ARM_PLT32",
- "R_ARM_PLT32_ABS",
- "R_ARM_PREL31",
- "R_ARM_PRIVATE_0",
- "R_ARM_PRIVATE_1",
- "R_ARM_PRIVATE_10",
- "R_ARM_PRIVATE_11",
- "R_ARM_PRIVATE_12",
- "R_ARM_PRIVATE_13",
- "R_ARM_PRIVATE_14",
- "R_ARM_PRIVATE_15",
- "R_ARM_PRIVATE_2",
- "R_ARM_PRIVATE_3",
- "R_ARM_PRIVATE_4",
- "R_ARM_PRIVATE_5",
- "R_ARM_PRIVATE_6",
- "R_ARM_PRIVATE_7",
- "R_ARM_PRIVATE_8",
- "R_ARM_PRIVATE_9",
- "R_ARM_RABS32",
- "R_ARM_RBASE",
- "R_ARM_REL32",
- "R_ARM_REL32_NOI",
- "R_ARM_RELATIVE",
- "R_ARM_RPC24",
- "R_ARM_RREL32",
- "R_ARM_RSBREL32",
- "R_ARM_RXPC25",
- "R_ARM_SBREL31",
- "R_ARM_SBREL32",
- "R_ARM_SWI24",
- "R_ARM_TARGET1",
- "R_ARM_TARGET2",
- "R_ARM_THM_ABS5",
- "R_ARM_THM_ALU_ABS_G0_NC",
- "R_ARM_THM_ALU_ABS_G1_NC",
- "R_ARM_THM_ALU_ABS_G2_NC",
- "R_ARM_THM_ALU_ABS_G3",
- "R_ARM_THM_ALU_PREL_11_0",
- "R_ARM_THM_GOT_BREL12",
- "R_ARM_THM_JUMP11",
- "R_ARM_THM_JUMP19",
- "R_ARM_THM_JUMP24",
- "R_ARM_THM_JUMP6",
- "R_ARM_THM_JUMP8",
- "R_ARM_THM_MOVT_ABS",
- "R_ARM_THM_MOVT_BREL",
- "R_ARM_THM_MOVT_PREL",
- "R_ARM_THM_MOVW_ABS_NC",
- "R_ARM_THM_MOVW_BREL",
- "R_ARM_THM_MOVW_BREL_NC",
- "R_ARM_THM_MOVW_PREL_NC",
- "R_ARM_THM_PC12",
- "R_ARM_THM_PC22",
- "R_ARM_THM_PC8",
- "R_ARM_THM_RPC22",
- "R_ARM_THM_SWI8",
- "R_ARM_THM_TLS_CALL",
- "R_ARM_THM_TLS_DESCSEQ16",
- "R_ARM_THM_TLS_DESCSEQ32",
- "R_ARM_THM_XPC22",
- "R_ARM_TLS_CALL",
- "R_ARM_TLS_DESCSEQ",
- "R_ARM_TLS_DTPMOD32",
- "R_ARM_TLS_DTPOFF32",
- "R_ARM_TLS_GD32",
- "R_ARM_TLS_GOTDESC",
- "R_ARM_TLS_IE12GP",
- "R_ARM_TLS_IE32",
- "R_ARM_TLS_LDM32",
- "R_ARM_TLS_LDO12",
- "R_ARM_TLS_LDO32",
- "R_ARM_TLS_LE12",
- "R_ARM_TLS_LE32",
- "R_ARM_TLS_TPOFF32",
- "R_ARM_V4BX",
- "R_ARM_XPC25",
- "R_INFO",
- "R_INFO32",
- "R_LARCH",
- "R_LARCH_32",
- "R_LARCH_32_PCREL",
- "R_LARCH_64",
- "R_LARCH_64_PCREL",
- "R_LARCH_ABS64_HI12",
- "R_LARCH_ABS64_LO20",
- "R_LARCH_ABS_HI20",
- "R_LARCH_ABS_LO12",
- "R_LARCH_ADD16",
- "R_LARCH_ADD24",
- "R_LARCH_ADD32",
- "R_LARCH_ADD6",
- "R_LARCH_ADD64",
- "R_LARCH_ADD8",
- "R_LARCH_ADD_ULEB128",
- "R_LARCH_ALIGN",
- "R_LARCH_B16",
- "R_LARCH_B21",
- "R_LARCH_B26",
- "R_LARCH_CFA",
- "R_LARCH_COPY",
- "R_LARCH_DELETE",
- "R_LARCH_GNU_VTENTRY",
- "R_LARCH_GNU_VTINHERIT",
- "R_LARCH_GOT64_HI12",
- "R_LARCH_GOT64_LO20",
- "R_LARCH_GOT64_PC_HI12",
- "R_LARCH_GOT64_PC_LO20",
- "R_LARCH_GOT_HI20",
- "R_LARCH_GOT_LO12",
- "R_LARCH_GOT_PC_HI20",
- "R_LARCH_GOT_PC_LO12",
- "R_LARCH_IRELATIVE",
- "R_LARCH_JUMP_SLOT",
- "R_LARCH_MARK_LA",
- "R_LARCH_MARK_PCREL",
- "R_LARCH_NONE",
- "R_LARCH_PCALA64_HI12",
- "R_LARCH_PCALA64_LO20",
- "R_LARCH_PCALA_HI20",
- "R_LARCH_PCALA_LO12",
- "R_LARCH_PCREL20_S2",
- "R_LARCH_RELATIVE",
- "R_LARCH_RELAX",
- "R_LARCH_SOP_ADD",
- "R_LARCH_SOP_AND",
- "R_LARCH_SOP_ASSERT",
- "R_LARCH_SOP_IF_ELSE",
- "R_LARCH_SOP_NOT",
- "R_LARCH_SOP_POP_32_S_0_10_10_16_S2",
- "R_LARCH_SOP_POP_32_S_0_5_10_16_S2",
- "R_LARCH_SOP_POP_32_S_10_12",
- "R_LARCH_SOP_POP_32_S_10_16",
- "R_LARCH_SOP_POP_32_S_10_16_S2",
- "R_LARCH_SOP_POP_32_S_10_5",
- "R_LARCH_SOP_POP_32_S_5_20",
- "R_LARCH_SOP_POP_32_U",
- "R_LARCH_SOP_POP_32_U_10_12",
- "R_LARCH_SOP_PUSH_ABSOLUTE",
- "R_LARCH_SOP_PUSH_DUP",
- "R_LARCH_SOP_PUSH_GPREL",
- "R_LARCH_SOP_PUSH_PCREL",
- "R_LARCH_SOP_PUSH_PLT_PCREL",
- "R_LARCH_SOP_PUSH_TLS_GD",
- "R_LARCH_SOP_PUSH_TLS_GOT",
- "R_LARCH_SOP_PUSH_TLS_TPREL",
- "R_LARCH_SOP_SL",
- "R_LARCH_SOP_SR",
- "R_LARCH_SOP_SUB",
- "R_LARCH_SUB16",
- "R_LARCH_SUB24",
- "R_LARCH_SUB32",
- "R_LARCH_SUB6",
- "R_LARCH_SUB64",
- "R_LARCH_SUB8",
- "R_LARCH_SUB_ULEB128",
- "R_LARCH_TLS_DTPMOD32",
- "R_LARCH_TLS_DTPMOD64",
- "R_LARCH_TLS_DTPREL32",
- "R_LARCH_TLS_DTPREL64",
- "R_LARCH_TLS_GD_HI20",
- "R_LARCH_TLS_GD_PC_HI20",
- "R_LARCH_TLS_IE64_HI12",
- "R_LARCH_TLS_IE64_LO20",
- "R_LARCH_TLS_IE64_PC_HI12",
- "R_LARCH_TLS_IE64_PC_LO20",
- "R_LARCH_TLS_IE_HI20",
- "R_LARCH_TLS_IE_LO12",
- "R_LARCH_TLS_IE_PC_HI20",
- "R_LARCH_TLS_IE_PC_LO12",
- "R_LARCH_TLS_LD_HI20",
- "R_LARCH_TLS_LD_PC_HI20",
- "R_LARCH_TLS_LE64_HI12",
- "R_LARCH_TLS_LE64_LO20",
- "R_LARCH_TLS_LE_HI20",
- "R_LARCH_TLS_LE_LO12",
- "R_LARCH_TLS_TPREL32",
- "R_LARCH_TLS_TPREL64",
- "R_MIPS",
- "R_MIPS_16",
- "R_MIPS_26",
- "R_MIPS_32",
- "R_MIPS_64",
- "R_MIPS_ADD_IMMEDIATE",
- "R_MIPS_CALL16",
- "R_MIPS_CALL_HI16",
- "R_MIPS_CALL_LO16",
- "R_MIPS_DELETE",
- "R_MIPS_GOT16",
- "R_MIPS_GOT_DISP",
- "R_MIPS_GOT_HI16",
- "R_MIPS_GOT_LO16",
- "R_MIPS_GOT_OFST",
- "R_MIPS_GOT_PAGE",
- "R_MIPS_GPREL16",
- "R_MIPS_GPREL32",
- "R_MIPS_HI16",
- "R_MIPS_HIGHER",
- "R_MIPS_HIGHEST",
- "R_MIPS_INSERT_A",
- "R_MIPS_INSERT_B",
- "R_MIPS_JALR",
- "R_MIPS_LITERAL",
- "R_MIPS_LO16",
- "R_MIPS_NONE",
- "R_MIPS_PC16",
- "R_MIPS_PC32",
- "R_MIPS_PJUMP",
- "R_MIPS_REL16",
- "R_MIPS_REL32",
- "R_MIPS_RELGOT",
- "R_MIPS_SCN_DISP",
- "R_MIPS_SHIFT5",
- "R_MIPS_SHIFT6",
- "R_MIPS_SUB",
- "R_MIPS_TLS_DTPMOD32",
- "R_MIPS_TLS_DTPMOD64",
- "R_MIPS_TLS_DTPREL32",
- "R_MIPS_TLS_DTPREL64",
- "R_MIPS_TLS_DTPREL_HI16",
- "R_MIPS_TLS_DTPREL_LO16",
- "R_MIPS_TLS_GD",
- "R_MIPS_TLS_GOTTPREL",
- "R_MIPS_TLS_LDM",
- "R_MIPS_TLS_TPREL32",
- "R_MIPS_TLS_TPREL64",
- "R_MIPS_TLS_TPREL_HI16",
- "R_MIPS_TLS_TPREL_LO16",
- "R_PPC",
- "R_PPC64",
- "R_PPC64_ADDR14",
- "R_PPC64_ADDR14_BRNTAKEN",
- "R_PPC64_ADDR14_BRTAKEN",
- "R_PPC64_ADDR16",
- "R_PPC64_ADDR16_DS",
- "R_PPC64_ADDR16_HA",
- "R_PPC64_ADDR16_HI",
- "R_PPC64_ADDR16_HIGH",
- "R_PPC64_ADDR16_HIGHA",
- "R_PPC64_ADDR16_HIGHER",
- "R_PPC64_ADDR16_HIGHER34",
- "R_PPC64_ADDR16_HIGHERA",
- "R_PPC64_ADDR16_HIGHERA34",
- "R_PPC64_ADDR16_HIGHEST",
- "R_PPC64_ADDR16_HIGHEST34",
- "R_PPC64_ADDR16_HIGHESTA",
- "R_PPC64_ADDR16_HIGHESTA34",
- "R_PPC64_ADDR16_LO",
- "R_PPC64_ADDR16_LO_DS",
- "R_PPC64_ADDR24",
- "R_PPC64_ADDR32",
- "R_PPC64_ADDR64",
- "R_PPC64_ADDR64_LOCAL",
- "R_PPC64_COPY",
- "R_PPC64_D28",
- "R_PPC64_D34",
- "R_PPC64_D34_HA30",
- "R_PPC64_D34_HI30",
- "R_PPC64_D34_LO",
- "R_PPC64_DTPMOD64",
- "R_PPC64_DTPREL16",
- "R_PPC64_DTPREL16_DS",
- "R_PPC64_DTPREL16_HA",
- "R_PPC64_DTPREL16_HI",
- "R_PPC64_DTPREL16_HIGH",
- "R_PPC64_DTPREL16_HIGHA",
- "R_PPC64_DTPREL16_HIGHER",
- "R_PPC64_DTPREL16_HIGHERA",
- "R_PPC64_DTPREL16_HIGHEST",
- "R_PPC64_DTPREL16_HIGHESTA",
- "R_PPC64_DTPREL16_LO",
- "R_PPC64_DTPREL16_LO_DS",
- "R_PPC64_DTPREL34",
- "R_PPC64_DTPREL64",
- "R_PPC64_ENTRY",
- "R_PPC64_GLOB_DAT",
- "R_PPC64_GNU_VTENTRY",
- "R_PPC64_GNU_VTINHERIT",
- "R_PPC64_GOT16",
- "R_PPC64_GOT16_DS",
- "R_PPC64_GOT16_HA",
- "R_PPC64_GOT16_HI",
- "R_PPC64_GOT16_LO",
- "R_PPC64_GOT16_LO_DS",
- "R_PPC64_GOT_DTPREL16_DS",
- "R_PPC64_GOT_DTPREL16_HA",
- "R_PPC64_GOT_DTPREL16_HI",
- "R_PPC64_GOT_DTPREL16_LO_DS",
- "R_PPC64_GOT_DTPREL_PCREL34",
- "R_PPC64_GOT_PCREL34",
- "R_PPC64_GOT_TLSGD16",
- "R_PPC64_GOT_TLSGD16_HA",
- "R_PPC64_GOT_TLSGD16_HI",
- "R_PPC64_GOT_TLSGD16_LO",
- "R_PPC64_GOT_TLSGD_PCREL34",
- "R_PPC64_GOT_TLSLD16",
- "R_PPC64_GOT_TLSLD16_HA",
- "R_PPC64_GOT_TLSLD16_HI",
- "R_PPC64_GOT_TLSLD16_LO",
- "R_PPC64_GOT_TLSLD_PCREL34",
- "R_PPC64_GOT_TPREL16_DS",
- "R_PPC64_GOT_TPREL16_HA",
- "R_PPC64_GOT_TPREL16_HI",
- "R_PPC64_GOT_TPREL16_LO_DS",
- "R_PPC64_GOT_TPREL_PCREL34",
- "R_PPC64_IRELATIVE",
- "R_PPC64_JMP_IREL",
- "R_PPC64_JMP_SLOT",
- "R_PPC64_NONE",
- "R_PPC64_PCREL28",
- "R_PPC64_PCREL34",
- "R_PPC64_PCREL_OPT",
- "R_PPC64_PLT16_HA",
- "R_PPC64_PLT16_HI",
- "R_PPC64_PLT16_LO",
- "R_PPC64_PLT16_LO_DS",
- "R_PPC64_PLT32",
- "R_PPC64_PLT64",
- "R_PPC64_PLTCALL",
- "R_PPC64_PLTCALL_NOTOC",
- "R_PPC64_PLTGOT16",
- "R_PPC64_PLTGOT16_DS",
- "R_PPC64_PLTGOT16_HA",
- "R_PPC64_PLTGOT16_HI",
- "R_PPC64_PLTGOT16_LO",
- "R_PPC64_PLTGOT_LO_DS",
- "R_PPC64_PLTREL32",
- "R_PPC64_PLTREL64",
- "R_PPC64_PLTSEQ",
- "R_PPC64_PLTSEQ_NOTOC",
- "R_PPC64_PLT_PCREL34",
- "R_PPC64_PLT_PCREL34_NOTOC",
- "R_PPC64_REL14",
- "R_PPC64_REL14_BRNTAKEN",
- "R_PPC64_REL14_BRTAKEN",
- "R_PPC64_REL16",
- "R_PPC64_REL16DX_HA",
- "R_PPC64_REL16_HA",
- "R_PPC64_REL16_HI",
- "R_PPC64_REL16_HIGH",
- "R_PPC64_REL16_HIGHA",
- "R_PPC64_REL16_HIGHER",
- "R_PPC64_REL16_HIGHER34",
- "R_PPC64_REL16_HIGHERA",
- "R_PPC64_REL16_HIGHERA34",
- "R_PPC64_REL16_HIGHEST",
- "R_PPC64_REL16_HIGHEST34",
- "R_PPC64_REL16_HIGHESTA",
- "R_PPC64_REL16_HIGHESTA34",
- "R_PPC64_REL16_LO",
- "R_PPC64_REL24",
- "R_PPC64_REL24_NOTOC",
- "R_PPC64_REL24_P9NOTOC",
- "R_PPC64_REL30",
- "R_PPC64_REL32",
- "R_PPC64_REL64",
- "R_PPC64_RELATIVE",
- "R_PPC64_SECTOFF",
- "R_PPC64_SECTOFF_DS",
- "R_PPC64_SECTOFF_HA",
- "R_PPC64_SECTOFF_HI",
- "R_PPC64_SECTOFF_LO",
- "R_PPC64_SECTOFF_LO_DS",
- "R_PPC64_TLS",
- "R_PPC64_TLSGD",
- "R_PPC64_TLSLD",
- "R_PPC64_TOC",
- "R_PPC64_TOC16",
- "R_PPC64_TOC16_DS",
- "R_PPC64_TOC16_HA",
- "R_PPC64_TOC16_HI",
- "R_PPC64_TOC16_LO",
- "R_PPC64_TOC16_LO_DS",
- "R_PPC64_TOCSAVE",
- "R_PPC64_TPREL16",
- "R_PPC64_TPREL16_DS",
- "R_PPC64_TPREL16_HA",
- "R_PPC64_TPREL16_HI",
- "R_PPC64_TPREL16_HIGH",
- "R_PPC64_TPREL16_HIGHA",
- "R_PPC64_TPREL16_HIGHER",
- "R_PPC64_TPREL16_HIGHERA",
- "R_PPC64_TPREL16_HIGHEST",
- "R_PPC64_TPREL16_HIGHESTA",
- "R_PPC64_TPREL16_LO",
- "R_PPC64_TPREL16_LO_DS",
- "R_PPC64_TPREL34",
- "R_PPC64_TPREL64",
- "R_PPC64_UADDR16",
- "R_PPC64_UADDR32",
- "R_PPC64_UADDR64",
- "R_PPC_ADDR14",
- "R_PPC_ADDR14_BRNTAKEN",
- "R_PPC_ADDR14_BRTAKEN",
- "R_PPC_ADDR16",
- "R_PPC_ADDR16_HA",
- "R_PPC_ADDR16_HI",
- "R_PPC_ADDR16_LO",
- "R_PPC_ADDR24",
- "R_PPC_ADDR32",
- "R_PPC_COPY",
- "R_PPC_DTPMOD32",
- "R_PPC_DTPREL16",
- "R_PPC_DTPREL16_HA",
- "R_PPC_DTPREL16_HI",
- "R_PPC_DTPREL16_LO",
- "R_PPC_DTPREL32",
- "R_PPC_EMB_BIT_FLD",
- "R_PPC_EMB_MRKREF",
- "R_PPC_EMB_NADDR16",
- "R_PPC_EMB_NADDR16_HA",
- "R_PPC_EMB_NADDR16_HI",
- "R_PPC_EMB_NADDR16_LO",
- "R_PPC_EMB_NADDR32",
- "R_PPC_EMB_RELSDA",
- "R_PPC_EMB_RELSEC16",
- "R_PPC_EMB_RELST_HA",
- "R_PPC_EMB_RELST_HI",
- "R_PPC_EMB_RELST_LO",
- "R_PPC_EMB_SDA21",
- "R_PPC_EMB_SDA2I16",
- "R_PPC_EMB_SDA2REL",
- "R_PPC_EMB_SDAI16",
- "R_PPC_GLOB_DAT",
- "R_PPC_GOT16",
- "R_PPC_GOT16_HA",
- "R_PPC_GOT16_HI",
- "R_PPC_GOT16_LO",
- "R_PPC_GOT_TLSGD16",
- "R_PPC_GOT_TLSGD16_HA",
- "R_PPC_GOT_TLSGD16_HI",
- "R_PPC_GOT_TLSGD16_LO",
- "R_PPC_GOT_TLSLD16",
- "R_PPC_GOT_TLSLD16_HA",
- "R_PPC_GOT_TLSLD16_HI",
- "R_PPC_GOT_TLSLD16_LO",
- "R_PPC_GOT_TPREL16",
- "R_PPC_GOT_TPREL16_HA",
- "R_PPC_GOT_TPREL16_HI",
- "R_PPC_GOT_TPREL16_LO",
- "R_PPC_JMP_SLOT",
- "R_PPC_LOCAL24PC",
- "R_PPC_NONE",
- "R_PPC_PLT16_HA",
- "R_PPC_PLT16_HI",
- "R_PPC_PLT16_LO",
- "R_PPC_PLT32",
- "R_PPC_PLTREL24",
- "R_PPC_PLTREL32",
- "R_PPC_REL14",
- "R_PPC_REL14_BRNTAKEN",
- "R_PPC_REL14_BRTAKEN",
- "R_PPC_REL24",
- "R_PPC_REL32",
- "R_PPC_RELATIVE",
- "R_PPC_SDAREL16",
- "R_PPC_SECTOFF",
- "R_PPC_SECTOFF_HA",
- "R_PPC_SECTOFF_HI",
- "R_PPC_SECTOFF_LO",
- "R_PPC_TLS",
- "R_PPC_TPREL16",
- "R_PPC_TPREL16_HA",
- "R_PPC_TPREL16_HI",
- "R_PPC_TPREL16_LO",
- "R_PPC_TPREL32",
- "R_PPC_UADDR16",
- "R_PPC_UADDR32",
- "R_RISCV",
- "R_RISCV_32",
- "R_RISCV_32_PCREL",
- "R_RISCV_64",
- "R_RISCV_ADD16",
- "R_RISCV_ADD32",
- "R_RISCV_ADD64",
- "R_RISCV_ADD8",
- "R_RISCV_ALIGN",
- "R_RISCV_BRANCH",
- "R_RISCV_CALL",
- "R_RISCV_CALL_PLT",
- "R_RISCV_COPY",
- "R_RISCV_GNU_VTENTRY",
- "R_RISCV_GNU_VTINHERIT",
- "R_RISCV_GOT_HI20",
- "R_RISCV_GPREL_I",
- "R_RISCV_GPREL_S",
- "R_RISCV_HI20",
- "R_RISCV_JAL",
- "R_RISCV_JUMP_SLOT",
- "R_RISCV_LO12_I",
- "R_RISCV_LO12_S",
- "R_RISCV_NONE",
- "R_RISCV_PCREL_HI20",
- "R_RISCV_PCREL_LO12_I",
- "R_RISCV_PCREL_LO12_S",
- "R_RISCV_RELATIVE",
- "R_RISCV_RELAX",
- "R_RISCV_RVC_BRANCH",
- "R_RISCV_RVC_JUMP",
- "R_RISCV_RVC_LUI",
- "R_RISCV_SET16",
- "R_RISCV_SET32",
- "R_RISCV_SET6",
- "R_RISCV_SET8",
- "R_RISCV_SUB16",
- "R_RISCV_SUB32",
- "R_RISCV_SUB6",
- "R_RISCV_SUB64",
- "R_RISCV_SUB8",
- "R_RISCV_TLS_DTPMOD32",
- "R_RISCV_TLS_DTPMOD64",
- "R_RISCV_TLS_DTPREL32",
- "R_RISCV_TLS_DTPREL64",
- "R_RISCV_TLS_GD_HI20",
- "R_RISCV_TLS_GOT_HI20",
- "R_RISCV_TLS_TPREL32",
- "R_RISCV_TLS_TPREL64",
- "R_RISCV_TPREL_ADD",
- "R_RISCV_TPREL_HI20",
- "R_RISCV_TPREL_I",
- "R_RISCV_TPREL_LO12_I",
- "R_RISCV_TPREL_LO12_S",
- "R_RISCV_TPREL_S",
- "R_SPARC",
- "R_SPARC_10",
- "R_SPARC_11",
- "R_SPARC_13",
- "R_SPARC_16",
- "R_SPARC_22",
- "R_SPARC_32",
- "R_SPARC_5",
- "R_SPARC_6",
- "R_SPARC_64",
- "R_SPARC_7",
- "R_SPARC_8",
- "R_SPARC_COPY",
- "R_SPARC_DISP16",
- "R_SPARC_DISP32",
- "R_SPARC_DISP64",
- "R_SPARC_DISP8",
- "R_SPARC_GLOB_DAT",
- "R_SPARC_GLOB_JMP",
- "R_SPARC_GOT10",
- "R_SPARC_GOT13",
- "R_SPARC_GOT22",
- "R_SPARC_H44",
- "R_SPARC_HH22",
- "R_SPARC_HI22",
- "R_SPARC_HIPLT22",
- "R_SPARC_HIX22",
- "R_SPARC_HM10",
- "R_SPARC_JMP_SLOT",
- "R_SPARC_L44",
- "R_SPARC_LM22",
- "R_SPARC_LO10",
- "R_SPARC_LOPLT10",
- "R_SPARC_LOX10",
- "R_SPARC_M44",
- "R_SPARC_NONE",
- "R_SPARC_OLO10",
- "R_SPARC_PC10",
- "R_SPARC_PC22",
- "R_SPARC_PCPLT10",
- "R_SPARC_PCPLT22",
- "R_SPARC_PCPLT32",
- "R_SPARC_PC_HH22",
- "R_SPARC_PC_HM10",
- "R_SPARC_PC_LM22",
- "R_SPARC_PLT32",
- "R_SPARC_PLT64",
- "R_SPARC_REGISTER",
- "R_SPARC_RELATIVE",
- "R_SPARC_UA16",
- "R_SPARC_UA32",
- "R_SPARC_UA64",
- "R_SPARC_WDISP16",
- "R_SPARC_WDISP19",
- "R_SPARC_WDISP22",
- "R_SPARC_WDISP30",
- "R_SPARC_WPLT30",
- "R_SYM32",
- "R_SYM64",
- "R_TYPE32",
- "R_TYPE64",
- "R_X86_64",
- "R_X86_64_16",
- "R_X86_64_32",
- "R_X86_64_32S",
- "R_X86_64_64",
- "R_X86_64_8",
- "R_X86_64_COPY",
- "R_X86_64_DTPMOD64",
- "R_X86_64_DTPOFF32",
- "R_X86_64_DTPOFF64",
- "R_X86_64_GLOB_DAT",
- "R_X86_64_GOT32",
- "R_X86_64_GOT64",
- "R_X86_64_GOTOFF64",
- "R_X86_64_GOTPC32",
- "R_X86_64_GOTPC32_TLSDESC",
- "R_X86_64_GOTPC64",
- "R_X86_64_GOTPCREL",
- "R_X86_64_GOTPCREL64",
- "R_X86_64_GOTPCRELX",
- "R_X86_64_GOTPLT64",
- "R_X86_64_GOTTPOFF",
- "R_X86_64_IRELATIVE",
- "R_X86_64_JMP_SLOT",
- "R_X86_64_NONE",
- "R_X86_64_PC16",
- "R_X86_64_PC32",
- "R_X86_64_PC32_BND",
- "R_X86_64_PC64",
- "R_X86_64_PC8",
- "R_X86_64_PLT32",
- "R_X86_64_PLT32_BND",
- "R_X86_64_PLTOFF64",
- "R_X86_64_RELATIVE",
- "R_X86_64_RELATIVE64",
- "R_X86_64_REX_GOTPCRELX",
- "R_X86_64_SIZE32",
- "R_X86_64_SIZE64",
- "R_X86_64_TLSDESC",
- "R_X86_64_TLSDESC_CALL",
- "R_X86_64_TLSGD",
- "R_X86_64_TLSLD",
- "R_X86_64_TPOFF32",
- "R_X86_64_TPOFF64",
- "Rel32",
- "Rel64",
- "Rela32",
- "Rela64",
- "SHF_ALLOC",
- "SHF_COMPRESSED",
- "SHF_EXECINSTR",
- "SHF_GROUP",
- "SHF_INFO_LINK",
- "SHF_LINK_ORDER",
- "SHF_MASKOS",
- "SHF_MASKPROC",
- "SHF_MERGE",
- "SHF_OS_NONCONFORMING",
- "SHF_STRINGS",
- "SHF_TLS",
- "SHF_WRITE",
- "SHN_ABS",
- "SHN_COMMON",
- "SHN_HIOS",
- "SHN_HIPROC",
- "SHN_HIRESERVE",
- "SHN_LOOS",
- "SHN_LOPROC",
- "SHN_LORESERVE",
- "SHN_UNDEF",
- "SHN_XINDEX",
- "SHT_DYNAMIC",
- "SHT_DYNSYM",
- "SHT_FINI_ARRAY",
- "SHT_GNU_ATTRIBUTES",
- "SHT_GNU_HASH",
- "SHT_GNU_LIBLIST",
- "SHT_GNU_VERDEF",
- "SHT_GNU_VERNEED",
- "SHT_GNU_VERSYM",
- "SHT_GROUP",
- "SHT_HASH",
- "SHT_HIOS",
- "SHT_HIPROC",
- "SHT_HIUSER",
- "SHT_INIT_ARRAY",
- "SHT_LOOS",
- "SHT_LOPROC",
- "SHT_LOUSER",
- "SHT_MIPS_ABIFLAGS",
- "SHT_NOBITS",
- "SHT_NOTE",
- "SHT_NULL",
- "SHT_PREINIT_ARRAY",
- "SHT_PROGBITS",
- "SHT_REL",
- "SHT_RELA",
- "SHT_SHLIB",
- "SHT_STRTAB",
- "SHT_SYMTAB",
- "SHT_SYMTAB_SHNDX",
- "STB_GLOBAL",
- "STB_HIOS",
- "STB_HIPROC",
- "STB_LOCAL",
- "STB_LOOS",
- "STB_LOPROC",
- "STB_WEAK",
- "STT_COMMON",
- "STT_FILE",
- "STT_FUNC",
- "STT_HIOS",
- "STT_HIPROC",
- "STT_LOOS",
- "STT_LOPROC",
- "STT_NOTYPE",
- "STT_OBJECT",
- "STT_SECTION",
- "STT_TLS",
- "STV_DEFAULT",
- "STV_HIDDEN",
- "STV_INTERNAL",
- "STV_PROTECTED",
- "ST_BIND",
- "ST_INFO",
- "ST_TYPE",
- "ST_VISIBILITY",
- "Section",
- "Section32",
- "Section64",
- "SectionFlag",
- "SectionHeader",
- "SectionIndex",
- "SectionType",
- "Sym32",
- "Sym32Size",
- "Sym64",
- "Sym64Size",
- "SymBind",
- "SymType",
- "SymVis",
- "Symbol",
- "Type",
- "Version",
- },
- "debug/gosym": {
- "DecodingError",
- "Func",
- "LineTable",
- "NewLineTable",
- "NewTable",
- "Obj",
- "Sym",
- "Table",
- "UnknownFileError",
- "UnknownLineError",
- },
- "debug/macho": {
- "ARM64_RELOC_ADDEND",
- "ARM64_RELOC_BRANCH26",
- "ARM64_RELOC_GOT_LOAD_PAGE21",
- "ARM64_RELOC_GOT_LOAD_PAGEOFF12",
- "ARM64_RELOC_PAGE21",
- "ARM64_RELOC_PAGEOFF12",
- "ARM64_RELOC_POINTER_TO_GOT",
- "ARM64_RELOC_SUBTRACTOR",
- "ARM64_RELOC_TLVP_LOAD_PAGE21",
- "ARM64_RELOC_TLVP_LOAD_PAGEOFF12",
- "ARM64_RELOC_UNSIGNED",
- "ARM_RELOC_BR24",
- "ARM_RELOC_HALF",
- "ARM_RELOC_HALF_SECTDIFF",
- "ARM_RELOC_LOCAL_SECTDIFF",
- "ARM_RELOC_PAIR",
- "ARM_RELOC_PB_LA_PTR",
- "ARM_RELOC_SECTDIFF",
- "ARM_RELOC_VANILLA",
- "ARM_THUMB_32BIT_BRANCH",
- "ARM_THUMB_RELOC_BR22",
- "Cpu",
- "Cpu386",
- "CpuAmd64",
- "CpuArm",
- "CpuArm64",
- "CpuPpc",
- "CpuPpc64",
- "Dylib",
- "DylibCmd",
- "Dysymtab",
- "DysymtabCmd",
- "ErrNotFat",
- "FatArch",
- "FatArchHeader",
- "FatFile",
- "File",
- "FileHeader",
- "FlagAllModsBound",
- "FlagAllowStackExecution",
- "FlagAppExtensionSafe",
- "FlagBindAtLoad",
- "FlagBindsToWeak",
- "FlagCanonical",
- "FlagDeadStrippableDylib",
- "FlagDyldLink",
- "FlagForceFlat",
- "FlagHasTLVDescriptors",
- "FlagIncrLink",
- "FlagLazyInit",
- "FlagNoFixPrebinding",
- "FlagNoHeapExecution",
- "FlagNoMultiDefs",
- "FlagNoReexportedDylibs",
- "FlagNoUndefs",
- "FlagPIE",
- "FlagPrebindable",
- "FlagPrebound",
- "FlagRootSafe",
- "FlagSetuidSafe",
- "FlagSplitSegs",
- "FlagSubsectionsViaSymbols",
- "FlagTwoLevel",
- "FlagWeakDefines",
- "FormatError",
- "GENERIC_RELOC_LOCAL_SECTDIFF",
- "GENERIC_RELOC_PAIR",
- "GENERIC_RELOC_PB_LA_PTR",
- "GENERIC_RELOC_SECTDIFF",
- "GENERIC_RELOC_TLV",
- "GENERIC_RELOC_VANILLA",
- "Load",
- "LoadBytes",
- "LoadCmd",
- "LoadCmdDylib",
- "LoadCmdDylinker",
- "LoadCmdDysymtab",
- "LoadCmdRpath",
- "LoadCmdSegment",
- "LoadCmdSegment64",
- "LoadCmdSymtab",
- "LoadCmdThread",
- "LoadCmdUnixThread",
- "Magic32",
- "Magic64",
- "MagicFat",
- "NewFatFile",
- "NewFile",
- "Nlist32",
- "Nlist64",
- "Open",
- "OpenFat",
- "Regs386",
- "RegsAMD64",
- "Reloc",
- "RelocTypeARM",
- "RelocTypeARM64",
- "RelocTypeGeneric",
- "RelocTypeX86_64",
- "Rpath",
- "RpathCmd",
- "Section",
- "Section32",
- "Section64",
- "SectionHeader",
- "Segment",
- "Segment32",
- "Segment64",
- "SegmentHeader",
- "Symbol",
- "Symtab",
- "SymtabCmd",
- "Thread",
- "Type",
- "TypeBundle",
- "TypeDylib",
- "TypeExec",
- "TypeObj",
- "X86_64_RELOC_BRANCH",
- "X86_64_RELOC_GOT",
- "X86_64_RELOC_GOT_LOAD",
- "X86_64_RELOC_SIGNED",
- "X86_64_RELOC_SIGNED_1",
- "X86_64_RELOC_SIGNED_2",
- "X86_64_RELOC_SIGNED_4",
- "X86_64_RELOC_SUBTRACTOR",
- "X86_64_RELOC_TLV",
- "X86_64_RELOC_UNSIGNED",
- },
- "debug/pe": {
- "COFFSymbol",
- "COFFSymbolAuxFormat5",
- "COFFSymbolSize",
- "DataDirectory",
- "File",
- "FileHeader",
- "FormatError",
- "IMAGE_COMDAT_SELECT_ANY",
- "IMAGE_COMDAT_SELECT_ASSOCIATIVE",
- "IMAGE_COMDAT_SELECT_EXACT_MATCH",
- "IMAGE_COMDAT_SELECT_LARGEST",
- "IMAGE_COMDAT_SELECT_NODUPLICATES",
- "IMAGE_COMDAT_SELECT_SAME_SIZE",
- "IMAGE_DIRECTORY_ENTRY_ARCHITECTURE",
- "IMAGE_DIRECTORY_ENTRY_BASERELOC",
- "IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT",
- "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR",
- "IMAGE_DIRECTORY_ENTRY_DEBUG",
- "IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT",
- "IMAGE_DIRECTORY_ENTRY_EXCEPTION",
- "IMAGE_DIRECTORY_ENTRY_EXPORT",
- "IMAGE_DIRECTORY_ENTRY_GLOBALPTR",
- "IMAGE_DIRECTORY_ENTRY_IAT",
- "IMAGE_DIRECTORY_ENTRY_IMPORT",
- "IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG",
- "IMAGE_DIRECTORY_ENTRY_RESOURCE",
- "IMAGE_DIRECTORY_ENTRY_SECURITY",
- "IMAGE_DIRECTORY_ENTRY_TLS",
- "IMAGE_DLLCHARACTERISTICS_APPCONTAINER",
- "IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE",
- "IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY",
- "IMAGE_DLLCHARACTERISTICS_GUARD_CF",
- "IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA",
- "IMAGE_DLLCHARACTERISTICS_NO_BIND",
- "IMAGE_DLLCHARACTERISTICS_NO_ISOLATION",
- "IMAGE_DLLCHARACTERISTICS_NO_SEH",
- "IMAGE_DLLCHARACTERISTICS_NX_COMPAT",
- "IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE",
- "IMAGE_DLLCHARACTERISTICS_WDM_DRIVER",
- "IMAGE_FILE_32BIT_MACHINE",
- "IMAGE_FILE_AGGRESIVE_WS_TRIM",
- "IMAGE_FILE_BYTES_REVERSED_HI",
- "IMAGE_FILE_BYTES_REVERSED_LO",
- "IMAGE_FILE_DEBUG_STRIPPED",
- "IMAGE_FILE_DLL",
- "IMAGE_FILE_EXECUTABLE_IMAGE",
- "IMAGE_FILE_LARGE_ADDRESS_AWARE",
- "IMAGE_FILE_LINE_NUMS_STRIPPED",
- "IMAGE_FILE_LOCAL_SYMS_STRIPPED",
- "IMAGE_FILE_MACHINE_AM33",
- "IMAGE_FILE_MACHINE_AMD64",
- "IMAGE_FILE_MACHINE_ARM",
- "IMAGE_FILE_MACHINE_ARM64",
- "IMAGE_FILE_MACHINE_ARMNT",
- "IMAGE_FILE_MACHINE_EBC",
- "IMAGE_FILE_MACHINE_I386",
- "IMAGE_FILE_MACHINE_IA64",
- "IMAGE_FILE_MACHINE_LOONGARCH32",
- "IMAGE_FILE_MACHINE_LOONGARCH64",
- "IMAGE_FILE_MACHINE_M32R",
- "IMAGE_FILE_MACHINE_MIPS16",
- "IMAGE_FILE_MACHINE_MIPSFPU",
- "IMAGE_FILE_MACHINE_MIPSFPU16",
- "IMAGE_FILE_MACHINE_POWERPC",
- "IMAGE_FILE_MACHINE_POWERPCFP",
- "IMAGE_FILE_MACHINE_R4000",
- "IMAGE_FILE_MACHINE_RISCV128",
- "IMAGE_FILE_MACHINE_RISCV32",
- "IMAGE_FILE_MACHINE_RISCV64",
- "IMAGE_FILE_MACHINE_SH3",
- "IMAGE_FILE_MACHINE_SH3DSP",
- "IMAGE_FILE_MACHINE_SH4",
- "IMAGE_FILE_MACHINE_SH5",
- "IMAGE_FILE_MACHINE_THUMB",
- "IMAGE_FILE_MACHINE_UNKNOWN",
- "IMAGE_FILE_MACHINE_WCEMIPSV2",
- "IMAGE_FILE_NET_RUN_FROM_SWAP",
- "IMAGE_FILE_RELOCS_STRIPPED",
- "IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP",
- "IMAGE_FILE_SYSTEM",
- "IMAGE_FILE_UP_SYSTEM_ONLY",
- "IMAGE_SCN_CNT_CODE",
- "IMAGE_SCN_CNT_INITIALIZED_DATA",
- "IMAGE_SCN_CNT_UNINITIALIZED_DATA",
- "IMAGE_SCN_LNK_COMDAT",
- "IMAGE_SCN_MEM_DISCARDABLE",
- "IMAGE_SCN_MEM_EXECUTE",
- "IMAGE_SCN_MEM_READ",
- "IMAGE_SCN_MEM_WRITE",
- "IMAGE_SUBSYSTEM_EFI_APPLICATION",
- "IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER",
- "IMAGE_SUBSYSTEM_EFI_ROM",
- "IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER",
- "IMAGE_SUBSYSTEM_NATIVE",
- "IMAGE_SUBSYSTEM_NATIVE_WINDOWS",
- "IMAGE_SUBSYSTEM_OS2_CUI",
- "IMAGE_SUBSYSTEM_POSIX_CUI",
- "IMAGE_SUBSYSTEM_UNKNOWN",
- "IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION",
- "IMAGE_SUBSYSTEM_WINDOWS_CE_GUI",
- "IMAGE_SUBSYSTEM_WINDOWS_CUI",
- "IMAGE_SUBSYSTEM_WINDOWS_GUI",
- "IMAGE_SUBSYSTEM_XBOX",
- "ImportDirectory",
- "NewFile",
- "Open",
- "OptionalHeader32",
- "OptionalHeader64",
- "Reloc",
- "Section",
- "SectionHeader",
- "SectionHeader32",
- "StringTable",
- "Symbol",
- },
- "debug/plan9obj": {
- "ErrNoSymbols",
- "File",
- "FileHeader",
- "Magic386",
- "Magic64",
- "MagicAMD64",
- "MagicARM",
- "NewFile",
- "Open",
- "Section",
- "SectionHeader",
- "Sym",
- },
- "embed": {
- "FS",
- },
- "encoding": {
- "BinaryMarshaler",
- "BinaryUnmarshaler",
- "TextMarshaler",
- "TextUnmarshaler",
- },
- "encoding/ascii85": {
- "CorruptInputError",
- "Decode",
- "Encode",
- "MaxEncodedLen",
- "NewDecoder",
- "NewEncoder",
- },
- "encoding/asn1": {
- "BitString",
- "ClassApplication",
- "ClassContextSpecific",
- "ClassPrivate",
- "ClassUniversal",
- "Enumerated",
- "Flag",
- "Marshal",
- "MarshalWithParams",
- "NullBytes",
- "NullRawValue",
- "ObjectIdentifier",
- "RawContent",
- "RawValue",
- "StructuralError",
- "SyntaxError",
- "TagBMPString",
- "TagBitString",
- "TagBoolean",
- "TagEnum",
- "TagGeneralString",
- "TagGeneralizedTime",
- "TagIA5String",
- "TagInteger",
- "TagNull",
- "TagNumericString",
- "TagOID",
- "TagOctetString",
- "TagPrintableString",
- "TagSequence",
- "TagSet",
- "TagT61String",
- "TagUTCTime",
- "TagUTF8String",
- "Unmarshal",
- "UnmarshalWithParams",
- },
- "encoding/base32": {
- "CorruptInputError",
- "Encoding",
- "HexEncoding",
- "NewDecoder",
- "NewEncoder",
- "NewEncoding",
- "NoPadding",
- "StdEncoding",
- "StdPadding",
- },
- "encoding/base64": {
- "CorruptInputError",
- "Encoding",
- "NewDecoder",
- "NewEncoder",
- "NewEncoding",
- "NoPadding",
- "RawStdEncoding",
- "RawURLEncoding",
- "StdEncoding",
- "StdPadding",
- "URLEncoding",
- },
- "encoding/binary": {
- "AppendByteOrder",
- "AppendUvarint",
- "AppendVarint",
- "BigEndian",
- "ByteOrder",
- "LittleEndian",
- "MaxVarintLen16",
- "MaxVarintLen32",
- "MaxVarintLen64",
- "NativeEndian",
- "PutUvarint",
- "PutVarint",
- "Read",
- "ReadUvarint",
- "ReadVarint",
- "Size",
- "Uvarint",
- "Varint",
- "Write",
- },
- "encoding/csv": {
- "ErrBareQuote",
- "ErrFieldCount",
- "ErrQuote",
- "ErrTrailingComma",
- "NewReader",
- "NewWriter",
- "ParseError",
- "Reader",
- "Writer",
- },
- "encoding/gob": {
- "CommonType",
- "Decoder",
- "Encoder",
- "GobDecoder",
- "GobEncoder",
- "NewDecoder",
- "NewEncoder",
- "Register",
- "RegisterName",
- },
- "encoding/hex": {
- "AppendDecode",
- "AppendEncode",
- "Decode",
- "DecodeString",
- "DecodedLen",
- "Dump",
- "Dumper",
- "Encode",
- "EncodeToString",
- "EncodedLen",
- "ErrLength",
- "InvalidByteError",
- "NewDecoder",
- "NewEncoder",
- },
- "encoding/json": {
- "Compact",
- "Decoder",
- "Delim",
- "Encoder",
- "HTMLEscape",
- "Indent",
- "InvalidUTF8Error",
- "InvalidUnmarshalError",
- "Marshal",
- "MarshalIndent",
- "Marshaler",
- "MarshalerError",
- "NewDecoder",
- "NewEncoder",
- "Number",
- "RawMessage",
- "SyntaxError",
- "Token",
- "Unmarshal",
- "UnmarshalFieldError",
- "UnmarshalTypeError",
- "Unmarshaler",
- "UnsupportedTypeError",
- "UnsupportedValueError",
- "Valid",
- },
- "encoding/pem": {
- "Block",
- "Decode",
- "Encode",
- "EncodeToMemory",
- },
- "encoding/xml": {
- "Attr",
- "CharData",
- "Comment",
- "CopyToken",
- "Decoder",
- "Directive",
- "Encoder",
- "EndElement",
- "Escape",
- "EscapeText",
- "HTMLAutoClose",
- "HTMLEntity",
- "Header",
- "Marshal",
- "MarshalIndent",
- "Marshaler",
- "MarshalerAttr",
- "Name",
- "NewDecoder",
- "NewEncoder",
- "NewTokenDecoder",
- "ProcInst",
- "StartElement",
- "SyntaxError",
- "TagPathError",
- "Token",
- "TokenReader",
- "Unmarshal",
- "UnmarshalError",
- "Unmarshaler",
- "UnmarshalerAttr",
- "UnsupportedTypeError",
- },
- "errors": {
- "As",
- "ErrUnsupported",
- "Is",
- "Join",
- "New",
- "Unwrap",
- },
- "expvar": {
- "Do",
- "Float",
- "Func",
- "Get",
- "Handler",
- "Int",
- "KeyValue",
- "Map",
- "NewFloat",
- "NewInt",
- "NewMap",
- "NewString",
- "Publish",
- "String",
- "Var",
- },
- "flag": {
- "Arg",
- "Args",
- "Bool",
- "BoolFunc",
- "BoolVar",
- "CommandLine",
- "ContinueOnError",
- "Duration",
- "DurationVar",
- "ErrHelp",
- "ErrorHandling",
- "ExitOnError",
- "Flag",
- "FlagSet",
- "Float64",
- "Float64Var",
- "Func",
- "Getter",
- "Int",
- "Int64",
- "Int64Var",
- "IntVar",
- "Lookup",
- "NArg",
- "NFlag",
- "NewFlagSet",
- "PanicOnError",
- "Parse",
- "Parsed",
- "PrintDefaults",
- "Set",
- "String",
- "StringVar",
- "TextVar",
- "Uint",
- "Uint64",
- "Uint64Var",
- "UintVar",
- "UnquoteUsage",
- "Usage",
- "Value",
- "Var",
- "Visit",
- "VisitAll",
- },
- "fmt": {
- "Append",
- "Appendf",
- "Appendln",
- "Errorf",
- "FormatString",
- "Formatter",
- "Fprint",
- "Fprintf",
- "Fprintln",
- "Fscan",
- "Fscanf",
- "Fscanln",
- "GoStringer",
- "Print",
- "Printf",
- "Println",
- "Scan",
- "ScanState",
- "Scanf",
- "Scanln",
- "Scanner",
- "Sprint",
- "Sprintf",
- "Sprintln",
- "Sscan",
- "Sscanf",
- "Sscanln",
- "State",
- "Stringer",
- },
- "go/ast": {
- "ArrayType",
- "AssignStmt",
- "Bad",
- "BadDecl",
- "BadExpr",
- "BadStmt",
- "BasicLit",
- "BinaryExpr",
- "BlockStmt",
- "BranchStmt",
- "CallExpr",
- "CaseClause",
- "ChanDir",
- "ChanType",
- "CommClause",
- "Comment",
- "CommentGroup",
- "CommentMap",
- "CompositeLit",
- "Con",
- "Decl",
- "DeclStmt",
- "DeferStmt",
- "Ellipsis",
- "EmptyStmt",
- "Expr",
- "ExprStmt",
- "Field",
- "FieldFilter",
- "FieldList",
- "File",
- "FileExports",
- "Filter",
- "FilterDecl",
- "FilterFile",
- "FilterFuncDuplicates",
- "FilterImportDuplicates",
- "FilterPackage",
- "FilterUnassociatedComments",
- "ForStmt",
- "Fprint",
- "Fun",
- "FuncDecl",
- "FuncLit",
- "FuncType",
- "GenDecl",
- "GoStmt",
- "Ident",
- "IfStmt",
- "ImportSpec",
- "Importer",
- "IncDecStmt",
- "IndexExpr",
- "IndexListExpr",
- "Inspect",
- "InterfaceType",
- "IsExported",
- "IsGenerated",
- "KeyValueExpr",
- "LabeledStmt",
- "Lbl",
- "MapType",
- "MergeMode",
- "MergePackageFiles",
- "NewCommentMap",
- "NewIdent",
- "NewObj",
- "NewPackage",
- "NewScope",
- "Node",
- "NotNilFilter",
- "ObjKind",
- "Object",
- "Package",
- "PackageExports",
- "ParenExpr",
- "Pkg",
- "Print",
- "RECV",
- "RangeStmt",
- "ReturnStmt",
- "SEND",
- "Scope",
- "SelectStmt",
- "SelectorExpr",
- "SendStmt",
- "SliceExpr",
- "SortImports",
- "Spec",
- "StarExpr",
- "Stmt",
- "StructType",
- "SwitchStmt",
- "Typ",
- "TypeAssertExpr",
- "TypeSpec",
- "TypeSwitchStmt",
- "UnaryExpr",
- "Unparen",
- "ValueSpec",
- "Var",
- "Visitor",
- "Walk",
- },
- "go/build": {
- "AllowBinary",
- "ArchChar",
- "Context",
- "Default",
- "Directive",
- "FindOnly",
- "IgnoreVendor",
- "Import",
- "ImportComment",
- "ImportDir",
- "ImportMode",
- "IsLocalImport",
- "MultiplePackageError",
- "NoGoError",
- "Package",
- "ToolDir",
- },
- "go/build/constraint": {
- "AndExpr",
- "Expr",
- "GoVersion",
- "IsGoBuild",
- "IsPlusBuild",
- "NotExpr",
- "OrExpr",
- "Parse",
- "PlusBuildLines",
- "SyntaxError",
- "TagExpr",
- },
- "go/constant": {
- "BinaryOp",
- "BitLen",
- "Bool",
- "BoolVal",
- "Bytes",
- "Compare",
- "Complex",
- "Denom",
- "Float",
- "Float32Val",
- "Float64Val",
- "Imag",
- "Int",
- "Int64Val",
- "Kind",
- "Make",
- "MakeBool",
- "MakeFloat64",
- "MakeFromBytes",
- "MakeFromLiteral",
- "MakeImag",
- "MakeInt64",
- "MakeString",
- "MakeUint64",
- "MakeUnknown",
- "Num",
- "Real",
- "Shift",
- "Sign",
- "String",
- "StringVal",
- "ToComplex",
- "ToFloat",
- "ToInt",
- "Uint64Val",
- "UnaryOp",
- "Unknown",
- "Val",
- "Value",
- },
- "go/doc": {
- "AllDecls",
- "AllMethods",
- "Example",
- "Examples",
- "Filter",
- "Func",
- "IllegalPrefixes",
- "IsPredeclared",
- "Mode",
- "New",
- "NewFromFiles",
- "Note",
- "Package",
- "PreserveAST",
- "Synopsis",
- "ToHTML",
- "ToText",
- "Type",
- "Value",
- },
- "go/doc/comment": {
- "Block",
- "Code",
- "DefaultLookupPackage",
- "Doc",
- "DocLink",
- "Heading",
- "Italic",
- "Link",
- "LinkDef",
- "List",
- "ListItem",
- "Paragraph",
- "Parser",
- "Plain",
- "Printer",
- "Text",
- },
- "go/format": {
- "Node",
- "Source",
- },
- "go/importer": {
- "Default",
- "For",
- "ForCompiler",
- "Lookup",
- },
- "go/parser": {
- "AllErrors",
- "DeclarationErrors",
- "ImportsOnly",
- "Mode",
- "PackageClauseOnly",
- "ParseComments",
- "ParseDir",
- "ParseExpr",
- "ParseExprFrom",
- "ParseFile",
- "SkipObjectResolution",
- "SpuriousErrors",
- "Trace",
- },
- "go/printer": {
- "CommentedNode",
- "Config",
- "Fprint",
- "Mode",
- "RawFormat",
- "SourcePos",
- "TabIndent",
- "UseSpaces",
- },
- "go/scanner": {
- "Error",
- "ErrorHandler",
- "ErrorList",
- "Mode",
- "PrintError",
- "ScanComments",
- "Scanner",
- },
- "go/token": {
- "ADD",
- "ADD_ASSIGN",
- "AND",
- "AND_ASSIGN",
- "AND_NOT",
- "AND_NOT_ASSIGN",
- "ARROW",
- "ASSIGN",
- "BREAK",
- "CASE",
- "CHAN",
- "CHAR",
- "COLON",
- "COMMA",
- "COMMENT",
- "CONST",
- "CONTINUE",
- "DEC",
- "DEFAULT",
- "DEFER",
- "DEFINE",
- "ELLIPSIS",
- "ELSE",
- "EOF",
- "EQL",
- "FALLTHROUGH",
- "FLOAT",
- "FOR",
- "FUNC",
- "File",
- "FileSet",
- "GEQ",
- "GO",
- "GOTO",
- "GTR",
- "HighestPrec",
- "IDENT",
- "IF",
- "ILLEGAL",
- "IMAG",
- "IMPORT",
- "INC",
- "INT",
- "INTERFACE",
- "IsExported",
- "IsIdentifier",
- "IsKeyword",
- "LAND",
- "LBRACE",
- "LBRACK",
- "LEQ",
- "LOR",
- "LPAREN",
- "LSS",
- "Lookup",
- "LowestPrec",
- "MAP",
- "MUL",
- "MUL_ASSIGN",
- "NEQ",
- "NOT",
- "NewFileSet",
- "NoPos",
- "OR",
- "OR_ASSIGN",
- "PACKAGE",
- "PERIOD",
- "Pos",
- "Position",
- "QUO",
- "QUO_ASSIGN",
- "RANGE",
- "RBRACE",
- "RBRACK",
- "REM",
- "REM_ASSIGN",
- "RETURN",
- "RPAREN",
- "SELECT",
- "SEMICOLON",
- "SHL",
- "SHL_ASSIGN",
- "SHR",
- "SHR_ASSIGN",
- "STRING",
- "STRUCT",
- "SUB",
- "SUB_ASSIGN",
- "SWITCH",
- "TILDE",
- "TYPE",
- "Token",
- "UnaryPrec",
- "VAR",
- "XOR",
- "XOR_ASSIGN",
- },
- "go/types": {
- "Alias",
- "ArgumentError",
- "Array",
- "AssertableTo",
- "AssignableTo",
- "Basic",
- "BasicInfo",
- "BasicKind",
- "Bool",
- "Builtin",
- "Byte",
- "Chan",
- "ChanDir",
- "CheckExpr",
- "Checker",
- "Comparable",
- "Complex128",
- "Complex64",
- "Config",
- "Const",
- "Context",
- "ConvertibleTo",
- "DefPredeclaredTestFuncs",
- "Default",
- "Error",
- "Eval",
- "ExprString",
- "FieldVal",
- "Float32",
- "Float64",
- "Func",
- "Id",
- "Identical",
- "IdenticalIgnoreTags",
- "Implements",
- "ImportMode",
- "Importer",
- "ImporterFrom",
- "Info",
- "Initializer",
- "Instance",
- "Instantiate",
- "Int",
- "Int16",
- "Int32",
- "Int64",
- "Int8",
- "Interface",
- "Invalid",
- "IsBoolean",
- "IsComplex",
- "IsConstType",
- "IsFloat",
- "IsInteger",
- "IsInterface",
- "IsNumeric",
- "IsOrdered",
- "IsString",
- "IsUnsigned",
- "IsUntyped",
- "Label",
- "LookupFieldOrMethod",
- "Map",
- "MethodExpr",
- "MethodSet",
- "MethodVal",
- "MissingMethod",
- "Named",
- "NewAlias",
- "NewArray",
- "NewChan",
- "NewChecker",
- "NewConst",
- "NewContext",
- "NewField",
- "NewFunc",
- "NewInterface",
- "NewInterfaceType",
- "NewLabel",
- "NewMap",
- "NewMethodSet",
- "NewNamed",
- "NewPackage",
- "NewParam",
- "NewPkgName",
- "NewPointer",
- "NewScope",
- "NewSignature",
- "NewSignatureType",
- "NewSlice",
- "NewStruct",
- "NewTerm",
- "NewTuple",
- "NewTypeName",
- "NewTypeParam",
- "NewUnion",
- "NewVar",
- "Nil",
- "Object",
- "ObjectString",
- "Package",
- "PkgName",
- "Pointer",
- "Qualifier",
- "RecvOnly",
- "RelativeTo",
- "Rune",
- "Satisfies",
- "Scope",
- "Selection",
- "SelectionKind",
- "SelectionString",
- "SendOnly",
- "SendRecv",
- "Signature",
- "Sizes",
- "SizesFor",
- "Slice",
- "StdSizes",
- "String",
- "Struct",
- "Term",
- "Tuple",
- "Typ",
- "Type",
- "TypeAndValue",
- "TypeList",
- "TypeName",
- "TypeParam",
- "TypeParamList",
- "TypeString",
- "Uint",
- "Uint16",
- "Uint32",
- "Uint64",
- "Uint8",
- "Uintptr",
- "Unalias",
- "Union",
- "Universe",
- "Unsafe",
- "UnsafePointer",
- "UntypedBool",
- "UntypedComplex",
- "UntypedFloat",
- "UntypedInt",
- "UntypedNil",
- "UntypedRune",
- "UntypedString",
- "Var",
- "WriteExpr",
- "WriteSignature",
- "WriteType",
- },
- "go/version": {
- "Compare",
- "IsValid",
- "Lang",
- },
- "hash": {
- "Hash",
- "Hash32",
- "Hash64",
- },
- "hash/adler32": {
- "Checksum",
- "New",
- "Size",
- },
- "hash/crc32": {
- "Castagnoli",
- "Checksum",
- "ChecksumIEEE",
- "IEEE",
- "IEEETable",
- "Koopman",
- "MakeTable",
- "New",
- "NewIEEE",
- "Size",
- "Table",
- "Update",
- },
- "hash/crc64": {
- "Checksum",
- "ECMA",
- "ISO",
- "MakeTable",
- "New",
- "Size",
- "Table",
- "Update",
- },
- "hash/fnv": {
- "New128",
- "New128a",
- "New32",
- "New32a",
- "New64",
- "New64a",
- },
- "hash/maphash": {
- "Bytes",
- "Hash",
- "MakeSeed",
- "Seed",
- "String",
- },
- "html": {
- "EscapeString",
- "UnescapeString",
- },
- "html/template": {
- "CSS",
- "ErrAmbigContext",
- "ErrBadHTML",
- "ErrBranchEnd",
- "ErrEndContext",
- "ErrJSTemplate",
- "ErrNoSuchTemplate",
- "ErrOutputContext",
- "ErrPartialCharset",
- "ErrPartialEscape",
- "ErrPredefinedEscaper",
- "ErrRangeLoopReentry",
- "ErrSlashAmbig",
- "Error",
- "ErrorCode",
- "FuncMap",
- "HTML",
- "HTMLAttr",
- "HTMLEscape",
- "HTMLEscapeString",
- "HTMLEscaper",
- "IsTrue",
- "JS",
- "JSEscape",
- "JSEscapeString",
- "JSEscaper",
- "JSStr",
- "Must",
- "New",
- "OK",
- "ParseFS",
- "ParseFiles",
- "ParseGlob",
- "Srcset",
- "Template",
- "URL",
- "URLQueryEscaper",
- },
- "image": {
- "Alpha",
- "Alpha16",
- "Black",
- "CMYK",
- "Config",
- "Decode",
- "DecodeConfig",
- "ErrFormat",
- "Gray",
- "Gray16",
- "Image",
- "NRGBA",
- "NRGBA64",
- "NYCbCrA",
- "NewAlpha",
- "NewAlpha16",
- "NewCMYK",
- "NewGray",
- "NewGray16",
- "NewNRGBA",
- "NewNRGBA64",
- "NewNYCbCrA",
- "NewPaletted",
- "NewRGBA",
- "NewRGBA64",
- "NewUniform",
- "NewYCbCr",
- "Opaque",
- "Paletted",
- "PalettedImage",
- "Point",
- "Pt",
- "RGBA",
- "RGBA64",
- "RGBA64Image",
- "Rect",
- "Rectangle",
- "RegisterFormat",
- "Transparent",
- "Uniform",
- "White",
- "YCbCr",
- "YCbCrSubsampleRatio",
- "YCbCrSubsampleRatio410",
- "YCbCrSubsampleRatio411",
- "YCbCrSubsampleRatio420",
- "YCbCrSubsampleRatio422",
- "YCbCrSubsampleRatio440",
- "YCbCrSubsampleRatio444",
- "ZP",
- "ZR",
- },
- "image/color": {
- "Alpha",
- "Alpha16",
- "Alpha16Model",
- "AlphaModel",
- "Black",
- "CMYK",
- "CMYKModel",
- "CMYKToRGB",
- "Color",
- "Gray",
- "Gray16",
- "Gray16Model",
- "GrayModel",
- "Model",
- "ModelFunc",
- "NRGBA",
- "NRGBA64",
- "NRGBA64Model",
- "NRGBAModel",
- "NYCbCrA",
- "NYCbCrAModel",
- "Opaque",
- "Palette",
- "RGBA",
- "RGBA64",
- "RGBA64Model",
- "RGBAModel",
- "RGBToCMYK",
- "RGBToYCbCr",
- "Transparent",
- "White",
- "YCbCr",
- "YCbCrModel",
- "YCbCrToRGB",
- },
- "image/color/palette": {
- "Plan9",
- "WebSafe",
- },
- "image/draw": {
- "Draw",
- "DrawMask",
- "Drawer",
- "FloydSteinberg",
- "Image",
- "Op",
- "Over",
- "Quantizer",
- "RGBA64Image",
- "Src",
- },
- "image/gif": {
- "Decode",
- "DecodeAll",
- "DecodeConfig",
- "DisposalBackground",
- "DisposalNone",
- "DisposalPrevious",
- "Encode",
- "EncodeAll",
- "GIF",
- "Options",
- },
- "image/jpeg": {
- "Decode",
- "DecodeConfig",
- "DefaultQuality",
- "Encode",
- "FormatError",
- "Options",
- "Reader",
- "UnsupportedError",
- },
- "image/png": {
- "BestCompression",
- "BestSpeed",
- "CompressionLevel",
- "Decode",
- "DecodeConfig",
- "DefaultCompression",
- "Encode",
- "Encoder",
- "EncoderBuffer",
- "EncoderBufferPool",
- "FormatError",
- "NoCompression",
- "UnsupportedError",
- },
- "index/suffixarray": {
- "Index",
- "New",
- },
- "io": {
- "ByteReader",
- "ByteScanner",
- "ByteWriter",
- "Closer",
- "Copy",
- "CopyBuffer",
- "CopyN",
- "Discard",
- "EOF",
- "ErrClosedPipe",
- "ErrNoProgress",
- "ErrShortBuffer",
- "ErrShortWrite",
- "ErrUnexpectedEOF",
- "LimitReader",
- "LimitedReader",
- "MultiReader",
- "MultiWriter",
- "NewOffsetWriter",
- "NewSectionReader",
- "NopCloser",
- "OffsetWriter",
- "Pipe",
- "PipeReader",
- "PipeWriter",
- "ReadAll",
- "ReadAtLeast",
- "ReadCloser",
- "ReadFull",
- "ReadSeekCloser",
- "ReadSeeker",
- "ReadWriteCloser",
- "ReadWriteSeeker",
- "ReadWriter",
- "Reader",
- "ReaderAt",
- "ReaderFrom",
- "RuneReader",
- "RuneScanner",
- "SectionReader",
- "SeekCurrent",
- "SeekEnd",
- "SeekStart",
- "Seeker",
- "StringWriter",
- "TeeReader",
- "WriteCloser",
- "WriteSeeker",
- "WriteString",
- "Writer",
- "WriterAt",
- "WriterTo",
- },
- "io/fs": {
- "DirEntry",
- "ErrClosed",
- "ErrExist",
- "ErrInvalid",
- "ErrNotExist",
- "ErrPermission",
- "FS",
- "File",
- "FileInfo",
- "FileInfoToDirEntry",
- "FileMode",
- "FormatDirEntry",
- "FormatFileInfo",
- "Glob",
- "GlobFS",
- "ModeAppend",
- "ModeCharDevice",
- "ModeDevice",
- "ModeDir",
- "ModeExclusive",
- "ModeIrregular",
- "ModeNamedPipe",
- "ModePerm",
- "ModeSetgid",
- "ModeSetuid",
- "ModeSocket",
- "ModeSticky",
- "ModeSymlink",
- "ModeTemporary",
- "ModeType",
- "PathError",
- "ReadDir",
- "ReadDirFS",
- "ReadDirFile",
- "ReadFile",
- "ReadFileFS",
- "SkipAll",
- "SkipDir",
- "Stat",
- "StatFS",
- "Sub",
- "SubFS",
- "ValidPath",
- "WalkDir",
- "WalkDirFunc",
- },
- "io/ioutil": {
- "Discard",
- "NopCloser",
- "ReadAll",
- "ReadDir",
- "ReadFile",
- "TempDir",
- "TempFile",
- "WriteFile",
- },
- "log": {
- "Default",
- "Fatal",
- "Fatalf",
- "Fatalln",
- "Flags",
- "LUTC",
- "Ldate",
- "Llongfile",
- "Lmicroseconds",
- "Lmsgprefix",
- "Logger",
- "Lshortfile",
- "LstdFlags",
- "Ltime",
- "New",
- "Output",
- "Panic",
- "Panicf",
- "Panicln",
- "Prefix",
- "Print",
- "Printf",
- "Println",
- "SetFlags",
- "SetOutput",
- "SetPrefix",
- "Writer",
- },
- "log/slog": {
- "Any",
- "AnyValue",
- "Attr",
- "Bool",
- "BoolValue",
- "Debug",
- "DebugContext",
- "Default",
- "Duration",
- "DurationValue",
- "Error",
- "ErrorContext",
- "Float64",
- "Float64Value",
- "Group",
- "GroupValue",
- "Handler",
- "HandlerOptions",
- "Info",
- "InfoContext",
- "Int",
- "Int64",
- "Int64Value",
- "IntValue",
- "JSONHandler",
- "Kind",
- "KindAny",
- "KindBool",
- "KindDuration",
- "KindFloat64",
- "KindGroup",
- "KindInt64",
- "KindLogValuer",
- "KindString",
- "KindTime",
- "KindUint64",
- "Level",
- "LevelDebug",
- "LevelError",
- "LevelInfo",
- "LevelKey",
- "LevelVar",
- "LevelWarn",
- "Leveler",
- "Log",
- "LogAttrs",
- "LogValuer",
- "Logger",
- "MessageKey",
- "New",
- "NewJSONHandler",
- "NewLogLogger",
- "NewRecord",
- "NewTextHandler",
- "Record",
- "SetDefault",
- "SetLogLoggerLevel",
- "Source",
- "SourceKey",
- "String",
- "StringValue",
- "TextHandler",
- "Time",
- "TimeKey",
- "TimeValue",
- "Uint64",
- "Uint64Value",
- "Value",
- "Warn",
- "WarnContext",
- "With",
- },
- "log/syslog": {
- "Dial",
- "LOG_ALERT",
- "LOG_AUTH",
- "LOG_AUTHPRIV",
- "LOG_CRIT",
- "LOG_CRON",
- "LOG_DAEMON",
- "LOG_DEBUG",
- "LOG_EMERG",
- "LOG_ERR",
- "LOG_FTP",
- "LOG_INFO",
- "LOG_KERN",
- "LOG_LOCAL0",
- "LOG_LOCAL1",
- "LOG_LOCAL2",
- "LOG_LOCAL3",
- "LOG_LOCAL4",
- "LOG_LOCAL5",
- "LOG_LOCAL6",
- "LOG_LOCAL7",
- "LOG_LPR",
- "LOG_MAIL",
- "LOG_NEWS",
- "LOG_NOTICE",
- "LOG_SYSLOG",
- "LOG_USER",
- "LOG_UUCP",
- "LOG_WARNING",
- "New",
- "NewLogger",
- "Priority",
- "Writer",
- },
- "maps": {
- "Clone",
- "Copy",
- "DeleteFunc",
- "Equal",
- "EqualFunc",
- },
- "math": {
- "Abs",
- "Acos",
- "Acosh",
- "Asin",
- "Asinh",
- "Atan",
- "Atan2",
- "Atanh",
- "Cbrt",
- "Ceil",
- "Copysign",
- "Cos",
- "Cosh",
- "Dim",
- "E",
- "Erf",
- "Erfc",
- "Erfcinv",
- "Erfinv",
- "Exp",
- "Exp2",
- "Expm1",
- "FMA",
- "Float32bits",
- "Float32frombits",
- "Float64bits",
- "Float64frombits",
- "Floor",
- "Frexp",
- "Gamma",
- "Hypot",
- "Ilogb",
- "Inf",
- "IsInf",
- "IsNaN",
- "J0",
- "J1",
- "Jn",
- "Ldexp",
- "Lgamma",
- "Ln10",
- "Ln2",
- "Log",
- "Log10",
- "Log10E",
- "Log1p",
- "Log2",
- "Log2E",
- "Logb",
- "Max",
- "MaxFloat32",
- "MaxFloat64",
- "MaxInt",
- "MaxInt16",
- "MaxInt32",
- "MaxInt64",
- "MaxInt8",
- "MaxUint",
- "MaxUint16",
- "MaxUint32",
- "MaxUint64",
- "MaxUint8",
- "Min",
- "MinInt",
- "MinInt16",
- "MinInt32",
- "MinInt64",
- "MinInt8",
- "Mod",
- "Modf",
- "NaN",
- "Nextafter",
- "Nextafter32",
- "Phi",
- "Pi",
- "Pow",
- "Pow10",
- "Remainder",
- "Round",
- "RoundToEven",
- "Signbit",
- "Sin",
- "Sincos",
- "Sinh",
- "SmallestNonzeroFloat32",
- "SmallestNonzeroFloat64",
- "Sqrt",
- "Sqrt2",
- "SqrtE",
- "SqrtPhi",
- "SqrtPi",
- "Tan",
- "Tanh",
- "Trunc",
- "Y0",
- "Y1",
- "Yn",
- },
- "math/big": {
- "Above",
- "Accuracy",
- "AwayFromZero",
- "Below",
- "ErrNaN",
- "Exact",
- "Float",
- "Int",
- "Jacobi",
- "MaxBase",
- "MaxExp",
- "MaxPrec",
- "MinExp",
- "NewFloat",
- "NewInt",
- "NewRat",
- "ParseFloat",
- "Rat",
- "RoundingMode",
- "ToNearestAway",
- "ToNearestEven",
- "ToNegativeInf",
- "ToPositiveInf",
- "ToZero",
- "Word",
- },
- "math/bits": {
- "Add",
- "Add32",
- "Add64",
- "Div",
- "Div32",
- "Div64",
- "LeadingZeros",
- "LeadingZeros16",
- "LeadingZeros32",
- "LeadingZeros64",
- "LeadingZeros8",
- "Len",
- "Len16",
- "Len32",
- "Len64",
- "Len8",
- "Mul",
- "Mul32",
- "Mul64",
- "OnesCount",
- "OnesCount16",
- "OnesCount32",
- "OnesCount64",
- "OnesCount8",
- "Rem",
- "Rem32",
- "Rem64",
- "Reverse",
- "Reverse16",
- "Reverse32",
- "Reverse64",
- "Reverse8",
- "ReverseBytes",
- "ReverseBytes16",
- "ReverseBytes32",
- "ReverseBytes64",
- "RotateLeft",
- "RotateLeft16",
- "RotateLeft32",
- "RotateLeft64",
- "RotateLeft8",
- "Sub",
- "Sub32",
- "Sub64",
- "TrailingZeros",
- "TrailingZeros16",
- "TrailingZeros32",
- "TrailingZeros64",
- "TrailingZeros8",
- "UintSize",
- },
- "math/cmplx": {
- "Abs",
- "Acos",
- "Acosh",
- "Asin",
- "Asinh",
- "Atan",
- "Atanh",
- "Conj",
- "Cos",
- "Cosh",
- "Cot",
- "Exp",
- "Inf",
- "IsInf",
- "IsNaN",
- "Log",
- "Log10",
- "NaN",
- "Phase",
- "Polar",
- "Pow",
- "Rect",
- "Sin",
- "Sinh",
- "Sqrt",
- "Tan",
- "Tanh",
- },
- "math/rand": {
- "ExpFloat64",
- "Float32",
- "Float64",
- "Int",
- "Int31",
- "Int31n",
- "Int63",
- "Int63n",
- "Intn",
- "New",
- "NewSource",
- "NewZipf",
- "NormFloat64",
- "Perm",
- "Rand",
- "Read",
- "Seed",
- "Shuffle",
- "Source",
- "Source64",
- "Uint32",
- "Uint64",
- "Zipf",
- },
- "math/rand/v2": {
- "ChaCha8",
- "ExpFloat64",
- "Float32",
- "Float64",
- "Int",
- "Int32",
- "Int32N",
- "Int64",
- "Int64N",
- "IntN",
- "N",
- "New",
- "NewChaCha8",
- "NewPCG",
- "NewZipf",
- "NormFloat64",
- "PCG",
- "Perm",
- "Rand",
- "Shuffle",
- "Source",
- "Uint32",
- "Uint32N",
- "Uint64",
- "Uint64N",
- "UintN",
- "Zipf",
- },
- "mime": {
- "AddExtensionType",
- "BEncoding",
- "ErrInvalidMediaParameter",
- "ExtensionsByType",
- "FormatMediaType",
- "ParseMediaType",
- "QEncoding",
- "TypeByExtension",
- "WordDecoder",
- "WordEncoder",
- },
- "mime/multipart": {
- "ErrMessageTooLarge",
- "File",
- "FileHeader",
- "Form",
- "NewReader",
- "NewWriter",
- "Part",
- "Reader",
- "Writer",
- },
- "mime/quotedprintable": {
- "NewReader",
- "NewWriter",
- "Reader",
- "Writer",
- },
- "net": {
- "Addr",
- "AddrError",
- "Buffers",
- "CIDRMask",
- "Conn",
- "DNSConfigError",
- "DNSError",
- "DefaultResolver",
- "Dial",
- "DialIP",
- "DialTCP",
- "DialTimeout",
- "DialUDP",
- "DialUnix",
- "Dialer",
- "ErrClosed",
- "ErrWriteToConnected",
- "Error",
- "FileConn",
- "FileListener",
- "FilePacketConn",
- "FlagBroadcast",
- "FlagLoopback",
- "FlagMulticast",
- "FlagPointToPoint",
- "FlagRunning",
- "FlagUp",
- "Flags",
- "HardwareAddr",
- "IP",
- "IPAddr",
- "IPConn",
- "IPMask",
- "IPNet",
- "IPv4",
- "IPv4Mask",
- "IPv4allrouter",
- "IPv4allsys",
- "IPv4bcast",
- "IPv4len",
- "IPv4zero",
- "IPv6interfacelocalallnodes",
- "IPv6len",
- "IPv6linklocalallnodes",
- "IPv6linklocalallrouters",
- "IPv6loopback",
- "IPv6unspecified",
- "IPv6zero",
- "Interface",
- "InterfaceAddrs",
- "InterfaceByIndex",
- "InterfaceByName",
- "Interfaces",
- "InvalidAddrError",
- "JoinHostPort",
- "Listen",
- "ListenConfig",
- "ListenIP",
- "ListenMulticastUDP",
- "ListenPacket",
- "ListenTCP",
- "ListenUDP",
- "ListenUnix",
- "ListenUnixgram",
- "Listener",
- "LookupAddr",
- "LookupCNAME",
- "LookupHost",
- "LookupIP",
- "LookupMX",
- "LookupNS",
- "LookupPort",
- "LookupSRV",
- "LookupTXT",
- "MX",
- "NS",
- "OpError",
- "PacketConn",
- "ParseCIDR",
- "ParseError",
- "ParseIP",
- "ParseMAC",
- "Pipe",
- "ResolveIPAddr",
- "ResolveTCPAddr",
- "ResolveUDPAddr",
- "ResolveUnixAddr",
- "Resolver",
- "SRV",
- "SplitHostPort",
- "TCPAddr",
- "TCPAddrFromAddrPort",
- "TCPConn",
- "TCPListener",
- "UDPAddr",
- "UDPAddrFromAddrPort",
- "UDPConn",
- "UnixAddr",
- "UnixConn",
- "UnixListener",
- "UnknownNetworkError",
- },
- "net/http": {
- "AllowQuerySemicolons",
- "CanonicalHeaderKey",
- "Client",
- "CloseNotifier",
- "ConnState",
- "Cookie",
- "CookieJar",
- "DefaultClient",
- "DefaultMaxHeaderBytes",
- "DefaultMaxIdleConnsPerHost",
- "DefaultServeMux",
- "DefaultTransport",
- "DetectContentType",
- "Dir",
- "ErrAbortHandler",
- "ErrBodyNotAllowed",
- "ErrBodyReadAfterClose",
- "ErrContentLength",
- "ErrHandlerTimeout",
- "ErrHeaderTooLong",
- "ErrHijacked",
- "ErrLineTooLong",
- "ErrMissingBoundary",
- "ErrMissingContentLength",
- "ErrMissingFile",
- "ErrNoCookie",
- "ErrNoLocation",
- "ErrNotMultipart",
- "ErrNotSupported",
- "ErrSchemeMismatch",
- "ErrServerClosed",
- "ErrShortBody",
- "ErrSkipAltProtocol",
- "ErrUnexpectedTrailer",
- "ErrUseLastResponse",
- "ErrWriteAfterFlush",
- "Error",
- "FS",
- "File",
- "FileServer",
- "FileServerFS",
- "FileSystem",
- "Flusher",
- "Get",
- "Handle",
- "HandleFunc",
- "Handler",
- "HandlerFunc",
- "Head",
- "Header",
- "Hijacker",
- "ListenAndServe",
- "ListenAndServeTLS",
- "LocalAddrContextKey",
- "MaxBytesError",
- "MaxBytesHandler",
- "MaxBytesReader",
- "MethodConnect",
- "MethodDelete",
- "MethodGet",
- "MethodHead",
- "MethodOptions",
- "MethodPatch",
- "MethodPost",
- "MethodPut",
- "MethodTrace",
- "NewFileTransport",
- "NewFileTransportFS",
- "NewRequest",
- "NewRequestWithContext",
- "NewResponseController",
- "NewServeMux",
- "NoBody",
- "NotFound",
- "NotFoundHandler",
- "ParseHTTPVersion",
- "ParseTime",
- "Post",
- "PostForm",
- "ProtocolError",
- "ProxyFromEnvironment",
- "ProxyURL",
- "PushOptions",
- "Pusher",
- "ReadRequest",
- "ReadResponse",
- "Redirect",
- "RedirectHandler",
- "Request",
- "Response",
- "ResponseController",
- "ResponseWriter",
- "RoundTripper",
- "SameSite",
- "SameSiteDefaultMode",
- "SameSiteLaxMode",
- "SameSiteNoneMode",
- "SameSiteStrictMode",
- "Serve",
- "ServeContent",
- "ServeFile",
- "ServeFileFS",
- "ServeMux",
- "ServeTLS",
- "Server",
- "ServerContextKey",
- "SetCookie",
- "StateActive",
- "StateClosed",
- "StateHijacked",
- "StateIdle",
- "StateNew",
- "StatusAccepted",
- "StatusAlreadyReported",
- "StatusBadGateway",
- "StatusBadRequest",
- "StatusConflict",
- "StatusContinue",
- "StatusCreated",
- "StatusEarlyHints",
- "StatusExpectationFailed",
- "StatusFailedDependency",
- "StatusForbidden",
- "StatusFound",
- "StatusGatewayTimeout",
- "StatusGone",
- "StatusHTTPVersionNotSupported",
- "StatusIMUsed",
- "StatusInsufficientStorage",
- "StatusInternalServerError",
- "StatusLengthRequired",
- "StatusLocked",
- "StatusLoopDetected",
- "StatusMethodNotAllowed",
- "StatusMisdirectedRequest",
- "StatusMovedPermanently",
- "StatusMultiStatus",
- "StatusMultipleChoices",
- "StatusNetworkAuthenticationRequired",
- "StatusNoContent",
- "StatusNonAuthoritativeInfo",
- "StatusNotAcceptable",
- "StatusNotExtended",
- "StatusNotFound",
- "StatusNotImplemented",
- "StatusNotModified",
- "StatusOK",
- "StatusPartialContent",
- "StatusPaymentRequired",
- "StatusPermanentRedirect",
- "StatusPreconditionFailed",
- "StatusPreconditionRequired",
- "StatusProcessing",
- "StatusProxyAuthRequired",
- "StatusRequestEntityTooLarge",
- "StatusRequestHeaderFieldsTooLarge",
- "StatusRequestTimeout",
- "StatusRequestURITooLong",
- "StatusRequestedRangeNotSatisfiable",
- "StatusResetContent",
- "StatusSeeOther",
- "StatusServiceUnavailable",
- "StatusSwitchingProtocols",
- "StatusTeapot",
- "StatusTemporaryRedirect",
- "StatusText",
- "StatusTooEarly",
- "StatusTooManyRequests",
- "StatusUnauthorized",
- "StatusUnavailableForLegalReasons",
- "StatusUnprocessableEntity",
- "StatusUnsupportedMediaType",
- "StatusUpgradeRequired",
- "StatusUseProxy",
- "StatusVariantAlsoNegotiates",
- "StripPrefix",
- "TimeFormat",
- "TimeoutHandler",
- "TrailerPrefix",
- "Transport",
- },
- "net/http/cgi": {
- "Handler",
- "Request",
- "RequestFromMap",
- "Serve",
- },
- "net/http/cookiejar": {
- "Jar",
- "New",
- "Options",
- "PublicSuffixList",
- },
- "net/http/fcgi": {
- "ErrConnClosed",
- "ErrRequestAborted",
- "ProcessEnv",
- "Serve",
- },
- "net/http/httptest": {
- "DefaultRemoteAddr",
- "NewRecorder",
- "NewRequest",
- "NewServer",
- "NewTLSServer",
- "NewUnstartedServer",
- "ResponseRecorder",
- "Server",
- },
- "net/http/httptrace": {
- "ClientTrace",
- "ContextClientTrace",
- "DNSDoneInfo",
- "DNSStartInfo",
- "GotConnInfo",
- "WithClientTrace",
- "WroteRequestInfo",
- },
- "net/http/httputil": {
- "BufferPool",
- "ClientConn",
- "DumpRequest",
- "DumpRequestOut",
- "DumpResponse",
- "ErrClosed",
- "ErrLineTooLong",
- "ErrPersistEOF",
- "ErrPipeline",
- "NewChunkedReader",
- "NewChunkedWriter",
- "NewClientConn",
- "NewProxyClientConn",
- "NewServerConn",
- "NewSingleHostReverseProxy",
- "ProxyRequest",
- "ReverseProxy",
- "ServerConn",
- },
- "net/http/pprof": {
- "Cmdline",
- "Handler",
- "Index",
- "Profile",
- "Symbol",
- "Trace",
- },
- "net/mail": {
- "Address",
- "AddressParser",
- "ErrHeaderNotPresent",
- "Header",
- "Message",
- "ParseAddress",
- "ParseAddressList",
- "ParseDate",
- "ReadMessage",
- },
- "net/netip": {
- "Addr",
- "AddrFrom16",
- "AddrFrom4",
- "AddrFromSlice",
- "AddrPort",
- "AddrPortFrom",
- "IPv4Unspecified",
- "IPv6LinkLocalAllNodes",
- "IPv6LinkLocalAllRouters",
- "IPv6Loopback",
- "IPv6Unspecified",
- "MustParseAddr",
- "MustParseAddrPort",
- "MustParsePrefix",
- "ParseAddr",
- "ParseAddrPort",
- "ParsePrefix",
- "Prefix",
- "PrefixFrom",
- },
- "net/rpc": {
- "Accept",
- "Call",
- "Client",
- "ClientCodec",
- "DefaultDebugPath",
- "DefaultRPCPath",
- "DefaultServer",
- "Dial",
- "DialHTTP",
- "DialHTTPPath",
- "ErrShutdown",
- "HandleHTTP",
- "NewClient",
- "NewClientWithCodec",
- "NewServer",
- "Register",
- "RegisterName",
- "Request",
- "Response",
- "ServeCodec",
- "ServeConn",
- "ServeRequest",
- "Server",
- "ServerCodec",
- "ServerError",
- },
- "net/rpc/jsonrpc": {
- "Dial",
- "NewClient",
- "NewClientCodec",
- "NewServerCodec",
- "ServeConn",
- },
- "net/smtp": {
- "Auth",
- "CRAMMD5Auth",
- "Client",
- "Dial",
- "NewClient",
- "PlainAuth",
- "SendMail",
- "ServerInfo",
- },
- "net/textproto": {
- "CanonicalMIMEHeaderKey",
- "Conn",
- "Dial",
- "Error",
- "MIMEHeader",
- "NewConn",
- "NewReader",
- "NewWriter",
- "Pipeline",
- "ProtocolError",
- "Reader",
- "TrimBytes",
- "TrimString",
- "Writer",
- },
- "net/url": {
- "Error",
- "EscapeError",
- "InvalidHostError",
- "JoinPath",
- "Parse",
- "ParseQuery",
- "ParseRequestURI",
- "PathEscape",
- "PathUnescape",
- "QueryEscape",
- "QueryUnescape",
- "URL",
- "User",
- "UserPassword",
- "Userinfo",
- "Values",
- },
- "os": {
- "Args",
- "Chdir",
- "Chmod",
- "Chown",
- "Chtimes",
- "Clearenv",
- "Create",
- "CreateTemp",
- "DevNull",
- "DirEntry",
- "DirFS",
- "Environ",
- "ErrClosed",
- "ErrDeadlineExceeded",
- "ErrExist",
- "ErrInvalid",
- "ErrNoDeadline",
- "ErrNotExist",
- "ErrPermission",
- "ErrProcessDone",
- "Executable",
- "Exit",
- "Expand",
- "ExpandEnv",
- "File",
- "FileInfo",
- "FileMode",
- "FindProcess",
- "Getegid",
- "Getenv",
- "Geteuid",
- "Getgid",
- "Getgroups",
- "Getpagesize",
- "Getpid",
- "Getppid",
- "Getuid",
- "Getwd",
- "Hostname",
- "Interrupt",
- "IsExist",
- "IsNotExist",
- "IsPathSeparator",
- "IsPermission",
- "IsTimeout",
- "Kill",
- "Lchown",
- "Link",
- "LinkError",
- "LookupEnv",
- "Lstat",
- "Mkdir",
- "MkdirAll",
- "MkdirTemp",
- "ModeAppend",
- "ModeCharDevice",
- "ModeDevice",
- "ModeDir",
- "ModeExclusive",
- "ModeIrregular",
- "ModeNamedPipe",
- "ModePerm",
- "ModeSetgid",
- "ModeSetuid",
- "ModeSocket",
- "ModeSticky",
- "ModeSymlink",
- "ModeTemporary",
- "ModeType",
- "NewFile",
- "NewSyscallError",
- "O_APPEND",
- "O_CREATE",
- "O_EXCL",
- "O_RDONLY",
- "O_RDWR",
- "O_SYNC",
- "O_TRUNC",
- "O_WRONLY",
- "Open",
- "OpenFile",
- "PathError",
- "PathListSeparator",
- "PathSeparator",
- "Pipe",
- "ProcAttr",
- "Process",
- "ProcessState",
- "ReadDir",
- "ReadFile",
- "Readlink",
- "Remove",
- "RemoveAll",
- "Rename",
- "SEEK_CUR",
- "SEEK_END",
- "SEEK_SET",
- "SameFile",
- "Setenv",
- "Signal",
- "StartProcess",
- "Stat",
- "Stderr",
- "Stdin",
- "Stdout",
- "Symlink",
- "SyscallError",
- "TempDir",
- "Truncate",
- "Unsetenv",
- "UserCacheDir",
- "UserConfigDir",
- "UserHomeDir",
- "WriteFile",
- },
- "os/exec": {
- "Cmd",
- "Command",
- "CommandContext",
- "ErrDot",
- "ErrNotFound",
- "ErrWaitDelay",
- "Error",
- "ExitError",
- "LookPath",
- },
- "os/signal": {
- "Ignore",
- "Ignored",
- "Notify",
- "NotifyContext",
- "Reset",
- "Stop",
- },
- "os/user": {
- "Current",
- "Group",
- "Lookup",
- "LookupGroup",
- "LookupGroupId",
- "LookupId",
- "UnknownGroupError",
- "UnknownGroupIdError",
- "UnknownUserError",
- "UnknownUserIdError",
- "User",
- },
- "path": {
- "Base",
- "Clean",
- "Dir",
- "ErrBadPattern",
- "Ext",
- "IsAbs",
- "Join",
- "Match",
- "Split",
- },
- "path/filepath": {
- "Abs",
- "Base",
- "Clean",
- "Dir",
- "ErrBadPattern",
- "EvalSymlinks",
- "Ext",
- "FromSlash",
- "Glob",
- "HasPrefix",
- "IsAbs",
- "IsLocal",
- "Join",
- "ListSeparator",
- "Match",
- "Rel",
- "Separator",
- "SkipAll",
- "SkipDir",
- "Split",
- "SplitList",
- "ToSlash",
- "VolumeName",
- "Walk",
- "WalkDir",
- "WalkFunc",
- },
- "plugin": {
- "Open",
- "Plugin",
- "Symbol",
- },
- "reflect": {
- "Append",
- "AppendSlice",
- "Array",
- "ArrayOf",
- "Bool",
- "BothDir",
- "Chan",
- "ChanDir",
- "ChanOf",
- "Complex128",
- "Complex64",
- "Copy",
- "DeepEqual",
- "Float32",
- "Float64",
- "Func",
- "FuncOf",
- "Indirect",
- "Int",
- "Int16",
- "Int32",
- "Int64",
- "Int8",
- "Interface",
- "Invalid",
- "Kind",
- "MakeChan",
- "MakeFunc",
- "MakeMap",
- "MakeMapWithSize",
- "MakeSlice",
- "Map",
- "MapIter",
- "MapOf",
- "Method",
- "New",
- "NewAt",
- "Pointer",
- "PointerTo",
- "Ptr",
- "PtrTo",
- "RecvDir",
- "Select",
- "SelectCase",
- "SelectDefault",
- "SelectDir",
- "SelectRecv",
- "SelectSend",
- "SendDir",
- "Slice",
- "SliceHeader",
- "SliceOf",
- "String",
- "StringHeader",
- "Struct",
- "StructField",
- "StructOf",
- "StructTag",
- "Swapper",
- "Type",
- "TypeFor",
- "TypeOf",
- "Uint",
- "Uint16",
- "Uint32",
- "Uint64",
- "Uint8",
- "Uintptr",
- "UnsafePointer",
- "Value",
- "ValueError",
- "ValueOf",
- "VisibleFields",
- "Zero",
- },
- "regexp": {
- "Compile",
- "CompilePOSIX",
- "Match",
- "MatchReader",
- "MatchString",
- "MustCompile",
- "MustCompilePOSIX",
- "QuoteMeta",
- "Regexp",
- },
- "regexp/syntax": {
- "ClassNL",
- "Compile",
- "DotNL",
- "EmptyBeginLine",
- "EmptyBeginText",
- "EmptyEndLine",
- "EmptyEndText",
- "EmptyNoWordBoundary",
- "EmptyOp",
- "EmptyOpContext",
- "EmptyWordBoundary",
- "ErrInternalError",
- "ErrInvalidCharClass",
- "ErrInvalidCharRange",
- "ErrInvalidEscape",
- "ErrInvalidNamedCapture",
- "ErrInvalidPerlOp",
- "ErrInvalidRepeatOp",
- "ErrInvalidRepeatSize",
- "ErrInvalidUTF8",
- "ErrLarge",
- "ErrMissingBracket",
- "ErrMissingParen",
- "ErrMissingRepeatArgument",
- "ErrNestingDepth",
- "ErrTrailingBackslash",
- "ErrUnexpectedParen",
- "Error",
- "ErrorCode",
- "Flags",
- "FoldCase",
- "Inst",
- "InstAlt",
- "InstAltMatch",
- "InstCapture",
- "InstEmptyWidth",
- "InstFail",
- "InstMatch",
- "InstNop",
- "InstOp",
- "InstRune",
- "InstRune1",
- "InstRuneAny",
- "InstRuneAnyNotNL",
- "IsWordChar",
- "Literal",
- "MatchNL",
- "NonGreedy",
- "OneLine",
- "Op",
- "OpAlternate",
- "OpAnyChar",
- "OpAnyCharNotNL",
- "OpBeginLine",
- "OpBeginText",
- "OpCapture",
- "OpCharClass",
- "OpConcat",
- "OpEmptyMatch",
- "OpEndLine",
- "OpEndText",
- "OpLiteral",
- "OpNoMatch",
- "OpNoWordBoundary",
- "OpPlus",
- "OpQuest",
- "OpRepeat",
- "OpStar",
- "OpWordBoundary",
- "POSIX",
- "Parse",
- "Perl",
- "PerlX",
- "Prog",
- "Regexp",
- "Simple",
- "UnicodeGroups",
- "WasDollar",
- },
- "runtime": {
- "BlockProfile",
- "BlockProfileRecord",
- "Breakpoint",
- "CPUProfile",
- "Caller",
- "Callers",
- "CallersFrames",
- "Compiler",
- "Error",
- "Frame",
- "Frames",
- "Func",
- "FuncForPC",
- "GC",
- "GOARCH",
- "GOMAXPROCS",
- "GOOS",
- "GOROOT",
- "Goexit",
- "GoroutineProfile",
- "Gosched",
- "KeepAlive",
- "LockOSThread",
- "MemProfile",
- "MemProfileRate",
- "MemProfileRecord",
- "MemStats",
- "MutexProfile",
- "NumCPU",
- "NumCgoCall",
- "NumGoroutine",
- "PanicNilError",
- "Pinner",
- "ReadMemStats",
- "ReadTrace",
- "SetBlockProfileRate",
- "SetCPUProfileRate",
- "SetCgoTraceback",
- "SetFinalizer",
- "SetMutexProfileFraction",
- "Stack",
- "StackRecord",
- "StartTrace",
- "StopTrace",
- "ThreadCreateProfile",
- "TypeAssertionError",
- "UnlockOSThread",
- "Version",
- },
- "runtime/cgo": {
- "Handle",
- "Incomplete",
- "NewHandle",
- },
- "runtime/coverage": {
- "ClearCounters",
- "WriteCounters",
- "WriteCountersDir",
- "WriteMeta",
- "WriteMetaDir",
- },
- "runtime/debug": {
- "BuildInfo",
- "BuildSetting",
- "FreeOSMemory",
- "GCStats",
- "Module",
- "ParseBuildInfo",
- "PrintStack",
- "ReadBuildInfo",
- "ReadGCStats",
- "SetGCPercent",
- "SetMaxStack",
- "SetMaxThreads",
- "SetMemoryLimit",
- "SetPanicOnFault",
- "SetTraceback",
- "Stack",
- "WriteHeapDump",
- },
- "runtime/metrics": {
- "All",
- "Description",
- "Float64Histogram",
- "KindBad",
- "KindFloat64",
- "KindFloat64Histogram",
- "KindUint64",
- "Read",
- "Sample",
- "Value",
- "ValueKind",
- },
- "runtime/pprof": {
- "Do",
- "ForLabels",
- "Label",
- "LabelSet",
- "Labels",
- "Lookup",
- "NewProfile",
- "Profile",
- "Profiles",
- "SetGoroutineLabels",
- "StartCPUProfile",
- "StopCPUProfile",
- "WithLabels",
- "WriteHeapProfile",
- },
- "runtime/trace": {
- "IsEnabled",
- "Log",
- "Logf",
- "NewTask",
- "Region",
- "Start",
- "StartRegion",
- "Stop",
- "Task",
- "WithRegion",
- },
- "slices": {
- "BinarySearch",
- "BinarySearchFunc",
- "Clip",
- "Clone",
- "Compact",
- "CompactFunc",
- "Compare",
- "CompareFunc",
- "Concat",
- "Contains",
- "ContainsFunc",
- "Delete",
- "DeleteFunc",
- "Equal",
- "EqualFunc",
- "Grow",
- "Index",
- "IndexFunc",
- "Insert",
- "IsSorted",
- "IsSortedFunc",
- "Max",
- "MaxFunc",
- "Min",
- "MinFunc",
- "Replace",
- "Reverse",
- "Sort",
- "SortFunc",
- "SortStableFunc",
- },
- "sort": {
- "Find",
- "Float64Slice",
- "Float64s",
- "Float64sAreSorted",
- "IntSlice",
- "Interface",
- "Ints",
- "IntsAreSorted",
- "IsSorted",
- "Reverse",
- "Search",
- "SearchFloat64s",
- "SearchInts",
- "SearchStrings",
- "Slice",
- "SliceIsSorted",
- "SliceStable",
- "Sort",
- "Stable",
- "StringSlice",
- "Strings",
- "StringsAreSorted",
- },
- "strconv": {
- "AppendBool",
- "AppendFloat",
- "AppendInt",
- "AppendQuote",
- "AppendQuoteRune",
- "AppendQuoteRuneToASCII",
- "AppendQuoteRuneToGraphic",
- "AppendQuoteToASCII",
- "AppendQuoteToGraphic",
- "AppendUint",
- "Atoi",
- "CanBackquote",
- "ErrRange",
- "ErrSyntax",
- "FormatBool",
- "FormatComplex",
- "FormatFloat",
- "FormatInt",
- "FormatUint",
- "IntSize",
- "IsGraphic",
- "IsPrint",
- "Itoa",
- "NumError",
- "ParseBool",
- "ParseComplex",
- "ParseFloat",
- "ParseInt",
- "ParseUint",
- "Quote",
- "QuoteRune",
- "QuoteRuneToASCII",
- "QuoteRuneToGraphic",
- "QuoteToASCII",
- "QuoteToGraphic",
- "QuotedPrefix",
- "Unquote",
- "UnquoteChar",
- },
- "strings": {
- "Builder",
- "Clone",
- "Compare",
- "Contains",
- "ContainsAny",
- "ContainsFunc",
- "ContainsRune",
- "Count",
- "Cut",
- "CutPrefix",
- "CutSuffix",
- "EqualFold",
- "Fields",
- "FieldsFunc",
- "HasPrefix",
- "HasSuffix",
- "Index",
- "IndexAny",
- "IndexByte",
- "IndexFunc",
- "IndexRune",
- "Join",
- "LastIndex",
- "LastIndexAny",
- "LastIndexByte",
- "LastIndexFunc",
- "Map",
- "NewReader",
- "NewReplacer",
- "Reader",
- "Repeat",
- "Replace",
- "ReplaceAll",
- "Replacer",
- "Split",
- "SplitAfter",
- "SplitAfterN",
- "SplitN",
- "Title",
- "ToLower",
- "ToLowerSpecial",
- "ToTitle",
- "ToTitleSpecial",
- "ToUpper",
- "ToUpperSpecial",
- "ToValidUTF8",
- "Trim",
- "TrimFunc",
- "TrimLeft",
- "TrimLeftFunc",
- "TrimPrefix",
- "TrimRight",
- "TrimRightFunc",
- "TrimSpace",
- "TrimSuffix",
- },
- "sync": {
- "Cond",
- "Locker",
- "Map",
- "Mutex",
- "NewCond",
- "Once",
- "OnceFunc",
- "OnceValue",
- "OnceValues",
- "Pool",
- "RWMutex",
- "WaitGroup",
- },
- "sync/atomic": {
- "AddInt32",
- "AddInt64",
- "AddUint32",
- "AddUint64",
- "AddUintptr",
- "Bool",
- "CompareAndSwapInt32",
- "CompareAndSwapInt64",
- "CompareAndSwapPointer",
- "CompareAndSwapUint32",
- "CompareAndSwapUint64",
- "CompareAndSwapUintptr",
- "Int32",
- "Int64",
- "LoadInt32",
- "LoadInt64",
- "LoadPointer",
- "LoadUint32",
- "LoadUint64",
- "LoadUintptr",
- "Pointer",
- "StoreInt32",
- "StoreInt64",
- "StorePointer",
- "StoreUint32",
- "StoreUint64",
- "StoreUintptr",
- "SwapInt32",
- "SwapInt64",
- "SwapPointer",
- "SwapUint32",
- "SwapUint64",
- "SwapUintptr",
- "Uint32",
- "Uint64",
- "Uintptr",
- "Value",
- },
- "syscall": {
- "AF_ALG",
- "AF_APPLETALK",
- "AF_ARP",
- "AF_ASH",
- "AF_ATM",
- "AF_ATMPVC",
- "AF_ATMSVC",
- "AF_AX25",
- "AF_BLUETOOTH",
- "AF_BRIDGE",
- "AF_CAIF",
- "AF_CAN",
- "AF_CCITT",
- "AF_CHAOS",
- "AF_CNT",
- "AF_COIP",
- "AF_DATAKIT",
- "AF_DECnet",
- "AF_DLI",
- "AF_E164",
- "AF_ECMA",
- "AF_ECONET",
- "AF_ENCAP",
- "AF_FILE",
- "AF_HYLINK",
- "AF_IEEE80211",
- "AF_IEEE802154",
- "AF_IMPLINK",
- "AF_INET",
- "AF_INET6",
- "AF_INET6_SDP",
- "AF_INET_SDP",
- "AF_IPX",
- "AF_IRDA",
- "AF_ISDN",
- "AF_ISO",
- "AF_IUCV",
- "AF_KEY",
- "AF_LAT",
- "AF_LINK",
- "AF_LLC",
- "AF_LOCAL",
- "AF_MAX",
- "AF_MPLS",
- "AF_NATM",
- "AF_NDRV",
- "AF_NETBEUI",
- "AF_NETBIOS",
- "AF_NETGRAPH",
- "AF_NETLINK",
- "AF_NETROM",
- "AF_NS",
- "AF_OROUTE",
- "AF_OSI",
- "AF_PACKET",
- "AF_PHONET",
- "AF_PPP",
- "AF_PPPOX",
- "AF_PUP",
- "AF_RDS",
- "AF_RESERVED_36",
- "AF_ROSE",
- "AF_ROUTE",
- "AF_RXRPC",
- "AF_SCLUSTER",
- "AF_SECURITY",
- "AF_SIP",
- "AF_SLOW",
- "AF_SNA",
- "AF_SYSTEM",
- "AF_TIPC",
- "AF_UNIX",
- "AF_UNSPEC",
- "AF_UTUN",
- "AF_VENDOR00",
- "AF_VENDOR01",
- "AF_VENDOR02",
- "AF_VENDOR03",
- "AF_VENDOR04",
- "AF_VENDOR05",
- "AF_VENDOR06",
- "AF_VENDOR07",
- "AF_VENDOR08",
- "AF_VENDOR09",
- "AF_VENDOR10",
- "AF_VENDOR11",
- "AF_VENDOR12",
- "AF_VENDOR13",
- "AF_VENDOR14",
- "AF_VENDOR15",
- "AF_VENDOR16",
- "AF_VENDOR17",
- "AF_VENDOR18",
- "AF_VENDOR19",
- "AF_VENDOR20",
- "AF_VENDOR21",
- "AF_VENDOR22",
- "AF_VENDOR23",
- "AF_VENDOR24",
- "AF_VENDOR25",
- "AF_VENDOR26",
- "AF_VENDOR27",
- "AF_VENDOR28",
- "AF_VENDOR29",
- "AF_VENDOR30",
- "AF_VENDOR31",
- "AF_VENDOR32",
- "AF_VENDOR33",
- "AF_VENDOR34",
- "AF_VENDOR35",
- "AF_VENDOR36",
- "AF_VENDOR37",
- "AF_VENDOR38",
- "AF_VENDOR39",
- "AF_VENDOR40",
- "AF_VENDOR41",
- "AF_VENDOR42",
- "AF_VENDOR43",
- "AF_VENDOR44",
- "AF_VENDOR45",
- "AF_VENDOR46",
- "AF_VENDOR47",
- "AF_WANPIPE",
- "AF_X25",
- "AI_CANONNAME",
- "AI_NUMERICHOST",
- "AI_PASSIVE",
- "APPLICATION_ERROR",
- "ARPHRD_ADAPT",
- "ARPHRD_APPLETLK",
- "ARPHRD_ARCNET",
- "ARPHRD_ASH",
- "ARPHRD_ATM",
- "ARPHRD_AX25",
- "ARPHRD_BIF",
- "ARPHRD_CHAOS",
- "ARPHRD_CISCO",
- "ARPHRD_CSLIP",
- "ARPHRD_CSLIP6",
- "ARPHRD_DDCMP",
- "ARPHRD_DLCI",
- "ARPHRD_ECONET",
- "ARPHRD_EETHER",
- "ARPHRD_ETHER",
- "ARPHRD_EUI64",
- "ARPHRD_FCAL",
- "ARPHRD_FCFABRIC",
- "ARPHRD_FCPL",
- "ARPHRD_FCPP",
- "ARPHRD_FDDI",
- "ARPHRD_FRAD",
- "ARPHRD_FRELAY",
- "ARPHRD_HDLC",
- "ARPHRD_HIPPI",
- "ARPHRD_HWX25",
- "ARPHRD_IEEE1394",
- "ARPHRD_IEEE802",
- "ARPHRD_IEEE80211",
- "ARPHRD_IEEE80211_PRISM",
- "ARPHRD_IEEE80211_RADIOTAP",
- "ARPHRD_IEEE802154",
- "ARPHRD_IEEE802154_PHY",
- "ARPHRD_IEEE802_TR",
- "ARPHRD_INFINIBAND",
- "ARPHRD_IPDDP",
- "ARPHRD_IPGRE",
- "ARPHRD_IRDA",
- "ARPHRD_LAPB",
- "ARPHRD_LOCALTLK",
- "ARPHRD_LOOPBACK",
- "ARPHRD_METRICOM",
- "ARPHRD_NETROM",
- "ARPHRD_NONE",
- "ARPHRD_PIMREG",
- "ARPHRD_PPP",
- "ARPHRD_PRONET",
- "ARPHRD_RAWHDLC",
- "ARPHRD_ROSE",
- "ARPHRD_RSRVD",
- "ARPHRD_SIT",
- "ARPHRD_SKIP",
- "ARPHRD_SLIP",
- "ARPHRD_SLIP6",
- "ARPHRD_STRIP",
- "ARPHRD_TUNNEL",
- "ARPHRD_TUNNEL6",
- "ARPHRD_VOID",
- "ARPHRD_X25",
- "AUTHTYPE_CLIENT",
- "AUTHTYPE_SERVER",
- "Accept",
- "Accept4",
- "AcceptEx",
- "Access",
- "Acct",
- "AddrinfoW",
- "Adjtime",
- "Adjtimex",
- "AllThreadsSyscall",
- "AllThreadsSyscall6",
- "AttachLsf",
- "B0",
- "B1000000",
- "B110",
- "B115200",
- "B1152000",
- "B1200",
- "B134",
- "B14400",
- "B150",
- "B1500000",
- "B1800",
- "B19200",
- "B200",
- "B2000000",
- "B230400",
- "B2400",
- "B2500000",
- "B28800",
- "B300",
- "B3000000",
- "B3500000",
- "B38400",
- "B4000000",
- "B460800",
- "B4800",
- "B50",
- "B500000",
- "B57600",
- "B576000",
- "B600",
- "B7200",
- "B75",
- "B76800",
- "B921600",
- "B9600",
- "BASE_PROTOCOL",
- "BIOCFEEDBACK",
- "BIOCFLUSH",
- "BIOCGBLEN",
- "BIOCGDIRECTION",
- "BIOCGDIRFILT",
- "BIOCGDLT",
- "BIOCGDLTLIST",
- "BIOCGETBUFMODE",
- "BIOCGETIF",
- "BIOCGETZMAX",
- "BIOCGFEEDBACK",
- "BIOCGFILDROP",
- "BIOCGHDRCMPLT",
- "BIOCGRSIG",
- "BIOCGRTIMEOUT",
- "BIOCGSEESENT",
- "BIOCGSTATS",
- "BIOCGSTATSOLD",
- "BIOCGTSTAMP",
- "BIOCIMMEDIATE",
- "BIOCLOCK",
- "BIOCPROMISC",
- "BIOCROTZBUF",
- "BIOCSBLEN",
- "BIOCSDIRECTION",
- "BIOCSDIRFILT",
- "BIOCSDLT",
- "BIOCSETBUFMODE",
- "BIOCSETF",
- "BIOCSETFNR",
- "BIOCSETIF",
- "BIOCSETWF",
- "BIOCSETZBUF",
- "BIOCSFEEDBACK",
- "BIOCSFILDROP",
- "BIOCSHDRCMPLT",
- "BIOCSRSIG",
- "BIOCSRTIMEOUT",
- "BIOCSSEESENT",
- "BIOCSTCPF",
- "BIOCSTSTAMP",
- "BIOCSUDPF",
- "BIOCVERSION",
- "BPF_A",
- "BPF_ABS",
- "BPF_ADD",
- "BPF_ALIGNMENT",
- "BPF_ALIGNMENT32",
- "BPF_ALU",
- "BPF_AND",
- "BPF_B",
- "BPF_BUFMODE_BUFFER",
- "BPF_BUFMODE_ZBUF",
- "BPF_DFLTBUFSIZE",
- "BPF_DIRECTION_IN",
- "BPF_DIRECTION_OUT",
- "BPF_DIV",
- "BPF_H",
- "BPF_IMM",
- "BPF_IND",
- "BPF_JA",
- "BPF_JEQ",
- "BPF_JGE",
- "BPF_JGT",
- "BPF_JMP",
- "BPF_JSET",
- "BPF_K",
- "BPF_LD",
- "BPF_LDX",
- "BPF_LEN",
- "BPF_LSH",
- "BPF_MAJOR_VERSION",
- "BPF_MAXBUFSIZE",
- "BPF_MAXINSNS",
- "BPF_MEM",
- "BPF_MEMWORDS",
- "BPF_MINBUFSIZE",
- "BPF_MINOR_VERSION",
- "BPF_MISC",
- "BPF_MSH",
- "BPF_MUL",
- "BPF_NEG",
- "BPF_OR",
- "BPF_RELEASE",
- "BPF_RET",
- "BPF_RSH",
- "BPF_ST",
- "BPF_STX",
- "BPF_SUB",
- "BPF_TAX",
- "BPF_TXA",
- "BPF_T_BINTIME",
- "BPF_T_BINTIME_FAST",
- "BPF_T_BINTIME_MONOTONIC",
- "BPF_T_BINTIME_MONOTONIC_FAST",
- "BPF_T_FAST",
- "BPF_T_FLAG_MASK",
- "BPF_T_FORMAT_MASK",
- "BPF_T_MICROTIME",
- "BPF_T_MICROTIME_FAST",
- "BPF_T_MICROTIME_MONOTONIC",
- "BPF_T_MICROTIME_MONOTONIC_FAST",
- "BPF_T_MONOTONIC",
- "BPF_T_MONOTONIC_FAST",
- "BPF_T_NANOTIME",
- "BPF_T_NANOTIME_FAST",
- "BPF_T_NANOTIME_MONOTONIC",
- "BPF_T_NANOTIME_MONOTONIC_FAST",
- "BPF_T_NONE",
- "BPF_T_NORMAL",
- "BPF_W",
- "BPF_X",
- "BRKINT",
- "Bind",
- "BindToDevice",
- "BpfBuflen",
- "BpfDatalink",
- "BpfHdr",
- "BpfHeadercmpl",
- "BpfInsn",
- "BpfInterface",
- "BpfJump",
- "BpfProgram",
- "BpfStat",
- "BpfStats",
- "BpfStmt",
- "BpfTimeout",
- "BpfTimeval",
- "BpfVersion",
- "BpfZbuf",
- "BpfZbufHeader",
- "ByHandleFileInformation",
- "BytePtrFromString",
- "ByteSliceFromString",
- "CCR0_FLUSH",
- "CERT_CHAIN_POLICY_AUTHENTICODE",
- "CERT_CHAIN_POLICY_AUTHENTICODE_TS",
- "CERT_CHAIN_POLICY_BASE",
- "CERT_CHAIN_POLICY_BASIC_CONSTRAINTS",
- "CERT_CHAIN_POLICY_EV",
- "CERT_CHAIN_POLICY_MICROSOFT_ROOT",
- "CERT_CHAIN_POLICY_NT_AUTH",
- "CERT_CHAIN_POLICY_SSL",
- "CERT_E_CN_NO_MATCH",
- "CERT_E_EXPIRED",
- "CERT_E_PURPOSE",
- "CERT_E_ROLE",
- "CERT_E_UNTRUSTEDROOT",
- "CERT_STORE_ADD_ALWAYS",
- "CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG",
- "CERT_STORE_PROV_MEMORY",
- "CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT",
- "CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT",
- "CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT",
- "CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT",
- "CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT",
- "CERT_TRUST_INVALID_BASIC_CONSTRAINTS",
- "CERT_TRUST_INVALID_EXTENSION",
- "CERT_TRUST_INVALID_NAME_CONSTRAINTS",
- "CERT_TRUST_INVALID_POLICY_CONSTRAINTS",
- "CERT_TRUST_IS_CYCLIC",
- "CERT_TRUST_IS_EXPLICIT_DISTRUST",
- "CERT_TRUST_IS_NOT_SIGNATURE_VALID",
- "CERT_TRUST_IS_NOT_TIME_VALID",
- "CERT_TRUST_IS_NOT_VALID_FOR_USAGE",
- "CERT_TRUST_IS_OFFLINE_REVOCATION",
- "CERT_TRUST_IS_REVOKED",
- "CERT_TRUST_IS_UNTRUSTED_ROOT",
- "CERT_TRUST_NO_ERROR",
- "CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY",
- "CERT_TRUST_REVOCATION_STATUS_UNKNOWN",
- "CFLUSH",
- "CLOCAL",
- "CLONE_CHILD_CLEARTID",
- "CLONE_CHILD_SETTID",
- "CLONE_CLEAR_SIGHAND",
- "CLONE_CSIGNAL",
- "CLONE_DETACHED",
- "CLONE_FILES",
- "CLONE_FS",
- "CLONE_INTO_CGROUP",
- "CLONE_IO",
- "CLONE_NEWCGROUP",
- "CLONE_NEWIPC",
- "CLONE_NEWNET",
- "CLONE_NEWNS",
- "CLONE_NEWPID",
- "CLONE_NEWTIME",
- "CLONE_NEWUSER",
- "CLONE_NEWUTS",
- "CLONE_PARENT",
- "CLONE_PARENT_SETTID",
- "CLONE_PID",
- "CLONE_PIDFD",
- "CLONE_PTRACE",
- "CLONE_SETTLS",
- "CLONE_SIGHAND",
- "CLONE_SYSVSEM",
- "CLONE_THREAD",
- "CLONE_UNTRACED",
- "CLONE_VFORK",
- "CLONE_VM",
- "CPUID_CFLUSH",
- "CREAD",
- "CREATE_ALWAYS",
- "CREATE_NEW",
- "CREATE_NEW_PROCESS_GROUP",
- "CREATE_UNICODE_ENVIRONMENT",
- "CRYPT_DEFAULT_CONTAINER_OPTIONAL",
- "CRYPT_DELETEKEYSET",
- "CRYPT_MACHINE_KEYSET",
- "CRYPT_NEWKEYSET",
- "CRYPT_SILENT",
- "CRYPT_VERIFYCONTEXT",
- "CS5",
- "CS6",
- "CS7",
- "CS8",
- "CSIZE",
- "CSTART",
- "CSTATUS",
- "CSTOP",
- "CSTOPB",
- "CSUSP",
- "CTL_MAXNAME",
- "CTL_NET",
- "CTL_QUERY",
- "CTRL_BREAK_EVENT",
- "CTRL_CLOSE_EVENT",
- "CTRL_C_EVENT",
- "CTRL_LOGOFF_EVENT",
- "CTRL_SHUTDOWN_EVENT",
- "CancelIo",
- "CancelIoEx",
- "CertAddCertificateContextToStore",
- "CertChainContext",
- "CertChainElement",
- "CertChainPara",
- "CertChainPolicyPara",
- "CertChainPolicyStatus",
- "CertCloseStore",
- "CertContext",
- "CertCreateCertificateContext",
- "CertEnhKeyUsage",
- "CertEnumCertificatesInStore",
- "CertFreeCertificateChain",
- "CertFreeCertificateContext",
- "CertGetCertificateChain",
- "CertInfo",
- "CertOpenStore",
- "CertOpenSystemStore",
- "CertRevocationCrlInfo",
- "CertRevocationInfo",
- "CertSimpleChain",
- "CertTrustListInfo",
- "CertTrustStatus",
- "CertUsageMatch",
- "CertVerifyCertificateChainPolicy",
- "Chdir",
- "CheckBpfVersion",
- "Chflags",
- "Chmod",
- "Chown",
- "Chroot",
- "Clearenv",
- "Close",
- "CloseHandle",
- "CloseOnExec",
- "Closesocket",
- "CmsgLen",
- "CmsgSpace",
- "Cmsghdr",
- "CommandLineToArgv",
- "ComputerName",
- "Conn",
- "Connect",
- "ConnectEx",
- "ConvertSidToStringSid",
- "ConvertStringSidToSid",
- "CopySid",
- "Creat",
- "CreateDirectory",
- "CreateFile",
- "CreateFileMapping",
- "CreateHardLink",
- "CreateIoCompletionPort",
- "CreatePipe",
- "CreateProcess",
- "CreateProcessAsUser",
- "CreateSymbolicLink",
- "CreateToolhelp32Snapshot",
- "Credential",
- "CryptAcquireContext",
- "CryptGenRandom",
- "CryptReleaseContext",
- "DIOCBSFLUSH",
- "DIOCOSFPFLUSH",
- "DLL",
- "DLLError",
- "DLT_A429",
- "DLT_A653_ICM",
- "DLT_AIRONET_HEADER",
- "DLT_AOS",
- "DLT_APPLE_IP_OVER_IEEE1394",
- "DLT_ARCNET",
- "DLT_ARCNET_LINUX",
- "DLT_ATM_CLIP",
- "DLT_ATM_RFC1483",
- "DLT_AURORA",
- "DLT_AX25",
- "DLT_AX25_KISS",
- "DLT_BACNET_MS_TP",
- "DLT_BLUETOOTH_HCI_H4",
- "DLT_BLUETOOTH_HCI_H4_WITH_PHDR",
- "DLT_CAN20B",
- "DLT_CAN_SOCKETCAN",
- "DLT_CHAOS",
- "DLT_CHDLC",
- "DLT_CISCO_IOS",
- "DLT_C_HDLC",
- "DLT_C_HDLC_WITH_DIR",
- "DLT_DBUS",
- "DLT_DECT",
- "DLT_DOCSIS",
- "DLT_DVB_CI",
- "DLT_ECONET",
- "DLT_EN10MB",
- "DLT_EN3MB",
- "DLT_ENC",
- "DLT_ERF",
- "DLT_ERF_ETH",
- "DLT_ERF_POS",
- "DLT_FC_2",
- "DLT_FC_2_WITH_FRAME_DELIMS",
- "DLT_FDDI",
- "DLT_FLEXRAY",
- "DLT_FRELAY",
- "DLT_FRELAY_WITH_DIR",
- "DLT_GCOM_SERIAL",
- "DLT_GCOM_T1E1",
- "DLT_GPF_F",
- "DLT_GPF_T",
- "DLT_GPRS_LLC",
- "DLT_GSMTAP_ABIS",
- "DLT_GSMTAP_UM",
- "DLT_HDLC",
- "DLT_HHDLC",
- "DLT_HIPPI",
- "DLT_IBM_SN",
- "DLT_IBM_SP",
- "DLT_IEEE802",
- "DLT_IEEE802_11",
- "DLT_IEEE802_11_RADIO",
- "DLT_IEEE802_11_RADIO_AVS",
- "DLT_IEEE802_15_4",
- "DLT_IEEE802_15_4_LINUX",
- "DLT_IEEE802_15_4_NOFCS",
- "DLT_IEEE802_15_4_NONASK_PHY",
- "DLT_IEEE802_16_MAC_CPS",
- "DLT_IEEE802_16_MAC_CPS_RADIO",
- "DLT_IPFILTER",
- "DLT_IPMB",
- "DLT_IPMB_LINUX",
- "DLT_IPNET",
- "DLT_IPOIB",
- "DLT_IPV4",
- "DLT_IPV6",
- "DLT_IP_OVER_FC",
- "DLT_JUNIPER_ATM1",
- "DLT_JUNIPER_ATM2",
- "DLT_JUNIPER_ATM_CEMIC",
- "DLT_JUNIPER_CHDLC",
- "DLT_JUNIPER_ES",
- "DLT_JUNIPER_ETHER",
- "DLT_JUNIPER_FIBRECHANNEL",
- "DLT_JUNIPER_FRELAY",
- "DLT_JUNIPER_GGSN",
- "DLT_JUNIPER_ISM",
- "DLT_JUNIPER_MFR",
- "DLT_JUNIPER_MLFR",
- "DLT_JUNIPER_MLPPP",
- "DLT_JUNIPER_MONITOR",
- "DLT_JUNIPER_PIC_PEER",
- "DLT_JUNIPER_PPP",
- "DLT_JUNIPER_PPPOE",
- "DLT_JUNIPER_PPPOE_ATM",
- "DLT_JUNIPER_SERVICES",
- "DLT_JUNIPER_SRX_E2E",
- "DLT_JUNIPER_ST",
- "DLT_JUNIPER_VP",
- "DLT_JUNIPER_VS",
- "DLT_LAPB_WITH_DIR",
- "DLT_LAPD",
- "DLT_LIN",
- "DLT_LINUX_EVDEV",
- "DLT_LINUX_IRDA",
- "DLT_LINUX_LAPD",
- "DLT_LINUX_PPP_WITHDIRECTION",
- "DLT_LINUX_SLL",
- "DLT_LOOP",
- "DLT_LTALK",
- "DLT_MATCHING_MAX",
- "DLT_MATCHING_MIN",
- "DLT_MFR",
- "DLT_MOST",
- "DLT_MPEG_2_TS",
- "DLT_MPLS",
- "DLT_MTP2",
- "DLT_MTP2_WITH_PHDR",
- "DLT_MTP3",
- "DLT_MUX27010",
- "DLT_NETANALYZER",
- "DLT_NETANALYZER_TRANSPARENT",
- "DLT_NFC_LLCP",
- "DLT_NFLOG",
- "DLT_NG40",
- "DLT_NULL",
- "DLT_PCI_EXP",
- "DLT_PFLOG",
- "DLT_PFSYNC",
- "DLT_PPI",
- "DLT_PPP",
- "DLT_PPP_BSDOS",
- "DLT_PPP_ETHER",
- "DLT_PPP_PPPD",
- "DLT_PPP_SERIAL",
- "DLT_PPP_WITH_DIR",
- "DLT_PPP_WITH_DIRECTION",
- "DLT_PRISM_HEADER",
- "DLT_PRONET",
- "DLT_RAIF1",
- "DLT_RAW",
- "DLT_RAWAF_MASK",
- "DLT_RIO",
- "DLT_SCCP",
- "DLT_SITA",
- "DLT_SLIP",
- "DLT_SLIP_BSDOS",
- "DLT_STANAG_5066_D_PDU",
- "DLT_SUNATM",
- "DLT_SYMANTEC_FIREWALL",
- "DLT_TZSP",
- "DLT_USB",
- "DLT_USB_LINUX",
- "DLT_USB_LINUX_MMAPPED",
- "DLT_USER0",
- "DLT_USER1",
- "DLT_USER10",
- "DLT_USER11",
- "DLT_USER12",
- "DLT_USER13",
- "DLT_USER14",
- "DLT_USER15",
- "DLT_USER2",
- "DLT_USER3",
- "DLT_USER4",
- "DLT_USER5",
- "DLT_USER6",
- "DLT_USER7",
- "DLT_USER8",
- "DLT_USER9",
- "DLT_WIHART",
- "DLT_X2E_SERIAL",
- "DLT_X2E_XORAYA",
- "DNSMXData",
- "DNSPTRData",
- "DNSRecord",
- "DNSSRVData",
- "DNSTXTData",
- "DNS_INFO_NO_RECORDS",
- "DNS_TYPE_A",
- "DNS_TYPE_A6",
- "DNS_TYPE_AAAA",
- "DNS_TYPE_ADDRS",
- "DNS_TYPE_AFSDB",
- "DNS_TYPE_ALL",
- "DNS_TYPE_ANY",
- "DNS_TYPE_ATMA",
- "DNS_TYPE_AXFR",
- "DNS_TYPE_CERT",
- "DNS_TYPE_CNAME",
- "DNS_TYPE_DHCID",
- "DNS_TYPE_DNAME",
- "DNS_TYPE_DNSKEY",
- "DNS_TYPE_DS",
- "DNS_TYPE_EID",
- "DNS_TYPE_GID",
- "DNS_TYPE_GPOS",
- "DNS_TYPE_HINFO",
- "DNS_TYPE_ISDN",
- "DNS_TYPE_IXFR",
- "DNS_TYPE_KEY",
- "DNS_TYPE_KX",
- "DNS_TYPE_LOC",
- "DNS_TYPE_MAILA",
- "DNS_TYPE_MAILB",
- "DNS_TYPE_MB",
- "DNS_TYPE_MD",
- "DNS_TYPE_MF",
- "DNS_TYPE_MG",
- "DNS_TYPE_MINFO",
- "DNS_TYPE_MR",
- "DNS_TYPE_MX",
- "DNS_TYPE_NAPTR",
- "DNS_TYPE_NBSTAT",
- "DNS_TYPE_NIMLOC",
- "DNS_TYPE_NS",
- "DNS_TYPE_NSAP",
- "DNS_TYPE_NSAPPTR",
- "DNS_TYPE_NSEC",
- "DNS_TYPE_NULL",
- "DNS_TYPE_NXT",
- "DNS_TYPE_OPT",
- "DNS_TYPE_PTR",
- "DNS_TYPE_PX",
- "DNS_TYPE_RP",
- "DNS_TYPE_RRSIG",
- "DNS_TYPE_RT",
- "DNS_TYPE_SIG",
- "DNS_TYPE_SINK",
- "DNS_TYPE_SOA",
- "DNS_TYPE_SRV",
- "DNS_TYPE_TEXT",
- "DNS_TYPE_TKEY",
- "DNS_TYPE_TSIG",
- "DNS_TYPE_UID",
- "DNS_TYPE_UINFO",
- "DNS_TYPE_UNSPEC",
- "DNS_TYPE_WINS",
- "DNS_TYPE_WINSR",
- "DNS_TYPE_WKS",
- "DNS_TYPE_X25",
- "DT_BLK",
- "DT_CHR",
- "DT_DIR",
- "DT_FIFO",
- "DT_LNK",
- "DT_REG",
- "DT_SOCK",
- "DT_UNKNOWN",
- "DT_WHT",
- "DUPLICATE_CLOSE_SOURCE",
- "DUPLICATE_SAME_ACCESS",
- "DeleteFile",
- "DetachLsf",
- "DeviceIoControl",
- "Dirent",
- "DnsNameCompare",
- "DnsQuery",
- "DnsRecordListFree",
- "DnsSectionAdditional",
- "DnsSectionAnswer",
- "DnsSectionAuthority",
- "DnsSectionQuestion",
- "Dup",
- "Dup2",
- "Dup3",
- "DuplicateHandle",
- "E2BIG",
- "EACCES",
- "EADDRINUSE",
- "EADDRNOTAVAIL",
- "EADV",
- "EAFNOSUPPORT",
- "EAGAIN",
- "EALREADY",
- "EAUTH",
- "EBADARCH",
- "EBADE",
- "EBADEXEC",
- "EBADF",
- "EBADFD",
- "EBADMACHO",
- "EBADMSG",
- "EBADR",
- "EBADRPC",
- "EBADRQC",
- "EBADSLT",
- "EBFONT",
- "EBUSY",
- "ECANCELED",
- "ECAPMODE",
- "ECHILD",
- "ECHO",
- "ECHOCTL",
- "ECHOE",
- "ECHOK",
- "ECHOKE",
- "ECHONL",
- "ECHOPRT",
- "ECHRNG",
- "ECOMM",
- "ECONNABORTED",
- "ECONNREFUSED",
- "ECONNRESET",
- "EDEADLK",
- "EDEADLOCK",
- "EDESTADDRREQ",
- "EDEVERR",
- "EDOM",
- "EDOOFUS",
- "EDOTDOT",
- "EDQUOT",
- "EEXIST",
- "EFAULT",
- "EFBIG",
- "EFER_LMA",
- "EFER_LME",
- "EFER_NXE",
- "EFER_SCE",
- "EFTYPE",
- "EHOSTDOWN",
- "EHOSTUNREACH",
- "EHWPOISON",
- "EIDRM",
- "EILSEQ",
- "EINPROGRESS",
- "EINTR",
- "EINVAL",
- "EIO",
- "EIPSEC",
- "EISCONN",
- "EISDIR",
- "EISNAM",
- "EKEYEXPIRED",
- "EKEYREJECTED",
- "EKEYREVOKED",
- "EL2HLT",
- "EL2NSYNC",
- "EL3HLT",
- "EL3RST",
- "ELAST",
- "ELF_NGREG",
- "ELF_PRARGSZ",
- "ELIBACC",
- "ELIBBAD",
- "ELIBEXEC",
- "ELIBMAX",
- "ELIBSCN",
- "ELNRNG",
- "ELOOP",
- "EMEDIUMTYPE",
- "EMFILE",
- "EMLINK",
- "EMSGSIZE",
- "EMT_TAGOVF",
- "EMULTIHOP",
- "EMUL_ENABLED",
- "EMUL_LINUX",
- "EMUL_LINUX32",
- "EMUL_MAXID",
- "EMUL_NATIVE",
- "ENAMETOOLONG",
- "ENAVAIL",
- "ENDRUNDISC",
- "ENEEDAUTH",
- "ENETDOWN",
- "ENETRESET",
- "ENETUNREACH",
- "ENFILE",
- "ENOANO",
- "ENOATTR",
- "ENOBUFS",
- "ENOCSI",
- "ENODATA",
- "ENODEV",
- "ENOENT",
- "ENOEXEC",
- "ENOKEY",
- "ENOLCK",
- "ENOLINK",
- "ENOMEDIUM",
- "ENOMEM",
- "ENOMSG",
- "ENONET",
- "ENOPKG",
- "ENOPOLICY",
- "ENOPROTOOPT",
- "ENOSPC",
- "ENOSR",
- "ENOSTR",
- "ENOSYS",
- "ENOTBLK",
- "ENOTCAPABLE",
- "ENOTCONN",
- "ENOTDIR",
- "ENOTEMPTY",
- "ENOTNAM",
- "ENOTRECOVERABLE",
- "ENOTSOCK",
- "ENOTSUP",
- "ENOTTY",
- "ENOTUNIQ",
- "ENXIO",
- "EN_SW_CTL_INF",
- "EN_SW_CTL_PREC",
- "EN_SW_CTL_ROUND",
- "EN_SW_DATACHAIN",
- "EN_SW_DENORM",
- "EN_SW_INVOP",
- "EN_SW_OVERFLOW",
- "EN_SW_PRECLOSS",
- "EN_SW_UNDERFLOW",
- "EN_SW_ZERODIV",
- "EOPNOTSUPP",
- "EOVERFLOW",
- "EOWNERDEAD",
- "EPERM",
- "EPFNOSUPPORT",
- "EPIPE",
- "EPOLLERR",
- "EPOLLET",
- "EPOLLHUP",
- "EPOLLIN",
- "EPOLLMSG",
- "EPOLLONESHOT",
- "EPOLLOUT",
- "EPOLLPRI",
- "EPOLLRDBAND",
- "EPOLLRDHUP",
- "EPOLLRDNORM",
- "EPOLLWRBAND",
- "EPOLLWRNORM",
- "EPOLL_CLOEXEC",
- "EPOLL_CTL_ADD",
- "EPOLL_CTL_DEL",
- "EPOLL_CTL_MOD",
- "EPOLL_NONBLOCK",
- "EPROCLIM",
- "EPROCUNAVAIL",
- "EPROGMISMATCH",
- "EPROGUNAVAIL",
- "EPROTO",
- "EPROTONOSUPPORT",
- "EPROTOTYPE",
- "EPWROFF",
- "EQFULL",
- "ERANGE",
- "EREMCHG",
- "EREMOTE",
- "EREMOTEIO",
- "ERESTART",
- "ERFKILL",
- "EROFS",
- "ERPCMISMATCH",
- "ERROR_ACCESS_DENIED",
- "ERROR_ALREADY_EXISTS",
- "ERROR_BROKEN_PIPE",
- "ERROR_BUFFER_OVERFLOW",
- "ERROR_DIR_NOT_EMPTY",
- "ERROR_ENVVAR_NOT_FOUND",
- "ERROR_FILE_EXISTS",
- "ERROR_FILE_NOT_FOUND",
- "ERROR_HANDLE_EOF",
- "ERROR_INSUFFICIENT_BUFFER",
- "ERROR_IO_PENDING",
- "ERROR_MOD_NOT_FOUND",
- "ERROR_MORE_DATA",
- "ERROR_NETNAME_DELETED",
- "ERROR_NOT_FOUND",
- "ERROR_NO_MORE_FILES",
- "ERROR_OPERATION_ABORTED",
- "ERROR_PATH_NOT_FOUND",
- "ERROR_PRIVILEGE_NOT_HELD",
- "ERROR_PROC_NOT_FOUND",
- "ESHLIBVERS",
- "ESHUTDOWN",
- "ESOCKTNOSUPPORT",
- "ESPIPE",
- "ESRCH",
- "ESRMNT",
- "ESTALE",
- "ESTRPIPE",
- "ETHERCAP_JUMBO_MTU",
- "ETHERCAP_VLAN_HWTAGGING",
- "ETHERCAP_VLAN_MTU",
- "ETHERMIN",
- "ETHERMTU",
- "ETHERMTU_JUMBO",
- "ETHERTYPE_8023",
- "ETHERTYPE_AARP",
- "ETHERTYPE_ACCTON",
- "ETHERTYPE_AEONIC",
- "ETHERTYPE_ALPHA",
- "ETHERTYPE_AMBER",
- "ETHERTYPE_AMOEBA",
- "ETHERTYPE_AOE",
- "ETHERTYPE_APOLLO",
- "ETHERTYPE_APOLLODOMAIN",
- "ETHERTYPE_APPLETALK",
- "ETHERTYPE_APPLITEK",
- "ETHERTYPE_ARGONAUT",
- "ETHERTYPE_ARP",
- "ETHERTYPE_AT",
- "ETHERTYPE_ATALK",
- "ETHERTYPE_ATOMIC",
- "ETHERTYPE_ATT",
- "ETHERTYPE_ATTSTANFORD",
- "ETHERTYPE_AUTOPHON",
- "ETHERTYPE_AXIS",
- "ETHERTYPE_BCLOOP",
- "ETHERTYPE_BOFL",
- "ETHERTYPE_CABLETRON",
- "ETHERTYPE_CHAOS",
- "ETHERTYPE_COMDESIGN",
- "ETHERTYPE_COMPUGRAPHIC",
- "ETHERTYPE_COUNTERPOINT",
- "ETHERTYPE_CRONUS",
- "ETHERTYPE_CRONUSVLN",
- "ETHERTYPE_DCA",
- "ETHERTYPE_DDE",
- "ETHERTYPE_DEBNI",
- "ETHERTYPE_DECAM",
- "ETHERTYPE_DECCUST",
- "ETHERTYPE_DECDIAG",
- "ETHERTYPE_DECDNS",
- "ETHERTYPE_DECDTS",
- "ETHERTYPE_DECEXPER",
- "ETHERTYPE_DECLAST",
- "ETHERTYPE_DECLTM",
- "ETHERTYPE_DECMUMPS",
- "ETHERTYPE_DECNETBIOS",
- "ETHERTYPE_DELTACON",
- "ETHERTYPE_DIDDLE",
- "ETHERTYPE_DLOG1",
- "ETHERTYPE_DLOG2",
- "ETHERTYPE_DN",
- "ETHERTYPE_DOGFIGHT",
- "ETHERTYPE_DSMD",
- "ETHERTYPE_ECMA",
- "ETHERTYPE_ENCRYPT",
- "ETHERTYPE_ES",
- "ETHERTYPE_EXCELAN",
- "ETHERTYPE_EXPERDATA",
- "ETHERTYPE_FLIP",
- "ETHERTYPE_FLOWCONTROL",
- "ETHERTYPE_FRARP",
- "ETHERTYPE_GENDYN",
- "ETHERTYPE_HAYES",
- "ETHERTYPE_HIPPI_FP",
- "ETHERTYPE_HITACHI",
- "ETHERTYPE_HP",
- "ETHERTYPE_IEEEPUP",
- "ETHERTYPE_IEEEPUPAT",
- "ETHERTYPE_IMLBL",
- "ETHERTYPE_IMLBLDIAG",
- "ETHERTYPE_IP",
- "ETHERTYPE_IPAS",
- "ETHERTYPE_IPV6",
- "ETHERTYPE_IPX",
- "ETHERTYPE_IPXNEW",
- "ETHERTYPE_KALPANA",
- "ETHERTYPE_LANBRIDGE",
- "ETHERTYPE_LANPROBE",
- "ETHERTYPE_LAT",
- "ETHERTYPE_LBACK",
- "ETHERTYPE_LITTLE",
- "ETHERTYPE_LLDP",
- "ETHERTYPE_LOGICRAFT",
- "ETHERTYPE_LOOPBACK",
- "ETHERTYPE_MATRA",
- "ETHERTYPE_MAX",
- "ETHERTYPE_MERIT",
- "ETHERTYPE_MICP",
- "ETHERTYPE_MOPDL",
- "ETHERTYPE_MOPRC",
- "ETHERTYPE_MOTOROLA",
- "ETHERTYPE_MPLS",
- "ETHERTYPE_MPLS_MCAST",
- "ETHERTYPE_MUMPS",
- "ETHERTYPE_NBPCC",
- "ETHERTYPE_NBPCLAIM",
- "ETHERTYPE_NBPCLREQ",
- "ETHERTYPE_NBPCLRSP",
- "ETHERTYPE_NBPCREQ",
- "ETHERTYPE_NBPCRSP",
- "ETHERTYPE_NBPDG",
- "ETHERTYPE_NBPDGB",
- "ETHERTYPE_NBPDLTE",
- "ETHERTYPE_NBPRAR",
- "ETHERTYPE_NBPRAS",
- "ETHERTYPE_NBPRST",
- "ETHERTYPE_NBPSCD",
- "ETHERTYPE_NBPVCD",
- "ETHERTYPE_NBS",
- "ETHERTYPE_NCD",
- "ETHERTYPE_NESTAR",
- "ETHERTYPE_NETBEUI",
- "ETHERTYPE_NOVELL",
- "ETHERTYPE_NS",
- "ETHERTYPE_NSAT",
- "ETHERTYPE_NSCOMPAT",
- "ETHERTYPE_NTRAILER",
- "ETHERTYPE_OS9",
- "ETHERTYPE_OS9NET",
- "ETHERTYPE_PACER",
- "ETHERTYPE_PAE",
- "ETHERTYPE_PCS",
- "ETHERTYPE_PLANNING",
- "ETHERTYPE_PPP",
- "ETHERTYPE_PPPOE",
- "ETHERTYPE_PPPOEDISC",
- "ETHERTYPE_PRIMENTS",
- "ETHERTYPE_PUP",
- "ETHERTYPE_PUPAT",
- "ETHERTYPE_QINQ",
- "ETHERTYPE_RACAL",
- "ETHERTYPE_RATIONAL",
- "ETHERTYPE_RAWFR",
- "ETHERTYPE_RCL",
- "ETHERTYPE_RDP",
- "ETHERTYPE_RETIX",
- "ETHERTYPE_REVARP",
- "ETHERTYPE_SCA",
- "ETHERTYPE_SECTRA",
- "ETHERTYPE_SECUREDATA",
- "ETHERTYPE_SGITW",
- "ETHERTYPE_SG_BOUNCE",
- "ETHERTYPE_SG_DIAG",
- "ETHERTYPE_SG_NETGAMES",
- "ETHERTYPE_SG_RESV",
- "ETHERTYPE_SIMNET",
- "ETHERTYPE_SLOW",
- "ETHERTYPE_SLOWPROTOCOLS",
- "ETHERTYPE_SNA",
- "ETHERTYPE_SNMP",
- "ETHERTYPE_SONIX",
- "ETHERTYPE_SPIDER",
- "ETHERTYPE_SPRITE",
- "ETHERTYPE_STP",
- "ETHERTYPE_TALARIS",
- "ETHERTYPE_TALARISMC",
- "ETHERTYPE_TCPCOMP",
- "ETHERTYPE_TCPSM",
- "ETHERTYPE_TEC",
- "ETHERTYPE_TIGAN",
- "ETHERTYPE_TRAIL",
- "ETHERTYPE_TRANSETHER",
- "ETHERTYPE_TYMSHARE",
- "ETHERTYPE_UBBST",
- "ETHERTYPE_UBDEBUG",
- "ETHERTYPE_UBDIAGLOOP",
- "ETHERTYPE_UBDL",
- "ETHERTYPE_UBNIU",
- "ETHERTYPE_UBNMC",
- "ETHERTYPE_VALID",
- "ETHERTYPE_VARIAN",
- "ETHERTYPE_VAXELN",
- "ETHERTYPE_VEECO",
- "ETHERTYPE_VEXP",
- "ETHERTYPE_VGLAB",
- "ETHERTYPE_VINES",
- "ETHERTYPE_VINESECHO",
- "ETHERTYPE_VINESLOOP",
- "ETHERTYPE_VITAL",
- "ETHERTYPE_VLAN",
- "ETHERTYPE_VLTLMAN",
- "ETHERTYPE_VPROD",
- "ETHERTYPE_VURESERVED",
- "ETHERTYPE_WATERLOO",
- "ETHERTYPE_WELLFLEET",
- "ETHERTYPE_X25",
- "ETHERTYPE_X75",
- "ETHERTYPE_XNSSM",
- "ETHERTYPE_XTP",
- "ETHER_ADDR_LEN",
- "ETHER_ALIGN",
- "ETHER_CRC_LEN",
- "ETHER_CRC_POLY_BE",
- "ETHER_CRC_POLY_LE",
- "ETHER_HDR_LEN",
- "ETHER_MAX_DIX_LEN",
- "ETHER_MAX_LEN",
- "ETHER_MAX_LEN_JUMBO",
- "ETHER_MIN_LEN",
- "ETHER_PPPOE_ENCAP_LEN",
- "ETHER_TYPE_LEN",
- "ETHER_VLAN_ENCAP_LEN",
- "ETH_P_1588",
- "ETH_P_8021Q",
- "ETH_P_802_2",
- "ETH_P_802_3",
- "ETH_P_AARP",
- "ETH_P_ALL",
- "ETH_P_AOE",
- "ETH_P_ARCNET",
- "ETH_P_ARP",
- "ETH_P_ATALK",
- "ETH_P_ATMFATE",
- "ETH_P_ATMMPOA",
- "ETH_P_AX25",
- "ETH_P_BPQ",
- "ETH_P_CAIF",
- "ETH_P_CAN",
- "ETH_P_CONTROL",
- "ETH_P_CUST",
- "ETH_P_DDCMP",
- "ETH_P_DEC",
- "ETH_P_DIAG",
- "ETH_P_DNA_DL",
- "ETH_P_DNA_RC",
- "ETH_P_DNA_RT",
- "ETH_P_DSA",
- "ETH_P_ECONET",
- "ETH_P_EDSA",
- "ETH_P_FCOE",
- "ETH_P_FIP",
- "ETH_P_HDLC",
- "ETH_P_IEEE802154",
- "ETH_P_IEEEPUP",
- "ETH_P_IEEEPUPAT",
- "ETH_P_IP",
- "ETH_P_IPV6",
- "ETH_P_IPX",
- "ETH_P_IRDA",
- "ETH_P_LAT",
- "ETH_P_LINK_CTL",
- "ETH_P_LOCALTALK",
- "ETH_P_LOOP",
- "ETH_P_MOBITEX",
- "ETH_P_MPLS_MC",
- "ETH_P_MPLS_UC",
- "ETH_P_PAE",
- "ETH_P_PAUSE",
- "ETH_P_PHONET",
- "ETH_P_PPPTALK",
- "ETH_P_PPP_DISC",
- "ETH_P_PPP_MP",
- "ETH_P_PPP_SES",
- "ETH_P_PUP",
- "ETH_P_PUPAT",
- "ETH_P_RARP",
- "ETH_P_SCA",
- "ETH_P_SLOW",
- "ETH_P_SNAP",
- "ETH_P_TEB",
- "ETH_P_TIPC",
- "ETH_P_TRAILER",
- "ETH_P_TR_802_2",
- "ETH_P_WAN_PPP",
- "ETH_P_WCCP",
- "ETH_P_X25",
- "ETIME",
- "ETIMEDOUT",
- "ETOOMANYREFS",
- "ETXTBSY",
- "EUCLEAN",
- "EUNATCH",
- "EUSERS",
- "EVFILT_AIO",
- "EVFILT_FS",
- "EVFILT_LIO",
- "EVFILT_MACHPORT",
- "EVFILT_PROC",
- "EVFILT_READ",
- "EVFILT_SIGNAL",
- "EVFILT_SYSCOUNT",
- "EVFILT_THREADMARKER",
- "EVFILT_TIMER",
- "EVFILT_USER",
- "EVFILT_VM",
- "EVFILT_VNODE",
- "EVFILT_WRITE",
- "EV_ADD",
- "EV_CLEAR",
- "EV_DELETE",
- "EV_DISABLE",
- "EV_DISPATCH",
- "EV_DROP",
- "EV_ENABLE",
- "EV_EOF",
- "EV_ERROR",
- "EV_FLAG0",
- "EV_FLAG1",
- "EV_ONESHOT",
- "EV_OOBAND",
- "EV_POLL",
- "EV_RECEIPT",
- "EV_SYSFLAGS",
- "EWINDOWS",
- "EWOULDBLOCK",
- "EXDEV",
- "EXFULL",
- "EXTA",
- "EXTB",
- "EXTPROC",
- "Environ",
- "EpollCreate",
- "EpollCreate1",
- "EpollCtl",
- "EpollEvent",
- "EpollWait",
- "Errno",
- "EscapeArg",
- "Exchangedata",
- "Exec",
- "Exit",
- "ExitProcess",
- "FD_CLOEXEC",
- "FD_SETSIZE",
- "FILE_ACTION_ADDED",
- "FILE_ACTION_MODIFIED",
- "FILE_ACTION_REMOVED",
- "FILE_ACTION_RENAMED_NEW_NAME",
- "FILE_ACTION_RENAMED_OLD_NAME",
- "FILE_APPEND_DATA",
- "FILE_ATTRIBUTE_ARCHIVE",
- "FILE_ATTRIBUTE_DIRECTORY",
- "FILE_ATTRIBUTE_HIDDEN",
- "FILE_ATTRIBUTE_NORMAL",
- "FILE_ATTRIBUTE_READONLY",
- "FILE_ATTRIBUTE_REPARSE_POINT",
- "FILE_ATTRIBUTE_SYSTEM",
- "FILE_BEGIN",
- "FILE_CURRENT",
- "FILE_END",
- "FILE_FLAG_BACKUP_SEMANTICS",
- "FILE_FLAG_OPEN_REPARSE_POINT",
- "FILE_FLAG_OVERLAPPED",
- "FILE_LIST_DIRECTORY",
- "FILE_MAP_COPY",
- "FILE_MAP_EXECUTE",
- "FILE_MAP_READ",
- "FILE_MAP_WRITE",
- "FILE_NOTIFY_CHANGE_ATTRIBUTES",
- "FILE_NOTIFY_CHANGE_CREATION",
- "FILE_NOTIFY_CHANGE_DIR_NAME",
- "FILE_NOTIFY_CHANGE_FILE_NAME",
- "FILE_NOTIFY_CHANGE_LAST_ACCESS",
- "FILE_NOTIFY_CHANGE_LAST_WRITE",
- "FILE_NOTIFY_CHANGE_SIZE",
- "FILE_SHARE_DELETE",
- "FILE_SHARE_READ",
- "FILE_SHARE_WRITE",
- "FILE_SKIP_COMPLETION_PORT_ON_SUCCESS",
- "FILE_SKIP_SET_EVENT_ON_HANDLE",
- "FILE_TYPE_CHAR",
- "FILE_TYPE_DISK",
- "FILE_TYPE_PIPE",
- "FILE_TYPE_REMOTE",
- "FILE_TYPE_UNKNOWN",
- "FILE_WRITE_ATTRIBUTES",
- "FLUSHO",
- "FORMAT_MESSAGE_ALLOCATE_BUFFER",
- "FORMAT_MESSAGE_ARGUMENT_ARRAY",
- "FORMAT_MESSAGE_FROM_HMODULE",
- "FORMAT_MESSAGE_FROM_STRING",
- "FORMAT_MESSAGE_FROM_SYSTEM",
- "FORMAT_MESSAGE_IGNORE_INSERTS",
- "FORMAT_MESSAGE_MAX_WIDTH_MASK",
- "FSCTL_GET_REPARSE_POINT",
- "F_ADDFILESIGS",
- "F_ADDSIGS",
- "F_ALLOCATEALL",
- "F_ALLOCATECONTIG",
- "F_CANCEL",
- "F_CHKCLEAN",
- "F_CLOSEM",
- "F_DUP2FD",
- "F_DUP2FD_CLOEXEC",
- "F_DUPFD",
- "F_DUPFD_CLOEXEC",
- "F_EXLCK",
- "F_FINDSIGS",
- "F_FLUSH_DATA",
- "F_FREEZE_FS",
- "F_FSCTL",
- "F_FSDIRMASK",
- "F_FSIN",
- "F_FSINOUT",
- "F_FSOUT",
- "F_FSPRIV",
- "F_FSVOID",
- "F_FULLFSYNC",
- "F_GETCODEDIR",
- "F_GETFD",
- "F_GETFL",
- "F_GETLEASE",
- "F_GETLK",
- "F_GETLK64",
- "F_GETLKPID",
- "F_GETNOSIGPIPE",
- "F_GETOWN",
- "F_GETOWN_EX",
- "F_GETPATH",
- "F_GETPATH_MTMINFO",
- "F_GETPIPE_SZ",
- "F_GETPROTECTIONCLASS",
- "F_GETPROTECTIONLEVEL",
- "F_GETSIG",
- "F_GLOBAL_NOCACHE",
- "F_LOCK",
- "F_LOG2PHYS",
- "F_LOG2PHYS_EXT",
- "F_MARKDEPENDENCY",
- "F_MAXFD",
- "F_NOCACHE",
- "F_NODIRECT",
- "F_NOTIFY",
- "F_OGETLK",
- "F_OK",
- "F_OSETLK",
- "F_OSETLKW",
- "F_PARAM_MASK",
- "F_PARAM_MAX",
- "F_PATHPKG_CHECK",
- "F_PEOFPOSMODE",
- "F_PREALLOCATE",
- "F_RDADVISE",
- "F_RDAHEAD",
- "F_RDLCK",
- "F_READAHEAD",
- "F_READBOOTSTRAP",
- "F_SETBACKINGSTORE",
- "F_SETFD",
- "F_SETFL",
- "F_SETLEASE",
- "F_SETLK",
- "F_SETLK64",
- "F_SETLKW",
- "F_SETLKW64",
- "F_SETLKWTIMEOUT",
- "F_SETLK_REMOTE",
- "F_SETNOSIGPIPE",
- "F_SETOWN",
- "F_SETOWN_EX",
- "F_SETPIPE_SZ",
- "F_SETPROTECTIONCLASS",
- "F_SETSIG",
- "F_SETSIZE",
- "F_SHLCK",
- "F_SINGLE_WRITER",
- "F_TEST",
- "F_THAW_FS",
- "F_TLOCK",
- "F_TRANSCODEKEY",
- "F_ULOCK",
- "F_UNLCK",
- "F_UNLCKSYS",
- "F_VOLPOSMODE",
- "F_WRITEBOOTSTRAP",
- "F_WRLCK",
- "Faccessat",
- "Fallocate",
- "Fbootstraptransfer_t",
- "Fchdir",
- "Fchflags",
- "Fchmod",
- "Fchmodat",
- "Fchown",
- "Fchownat",
- "FcntlFlock",
- "FdSet",
- "Fdatasync",
- "FileNotifyInformation",
- "Filetime",
- "FindClose",
- "FindFirstFile",
- "FindNextFile",
- "Flock",
- "Flock_t",
- "FlushBpf",
- "FlushFileBuffers",
- "FlushViewOfFile",
- "ForkExec",
- "ForkLock",
- "FormatMessage",
- "Fpathconf",
- "FreeAddrInfoW",
- "FreeEnvironmentStrings",
- "FreeLibrary",
- "Fsid",
- "Fstat",
- "Fstatat",
- "Fstatfs",
- "Fstore_t",
- "Fsync",
- "Ftruncate",
- "FullPath",
- "Futimes",
- "Futimesat",
- "GENERIC_ALL",
- "GENERIC_EXECUTE",
- "GENERIC_READ",
- "GENERIC_WRITE",
- "GUID",
- "GetAcceptExSockaddrs",
- "GetAdaptersInfo",
- "GetAddrInfoW",
- "GetCommandLine",
- "GetComputerName",
- "GetConsoleMode",
- "GetCurrentDirectory",
- "GetCurrentProcess",
- "GetEnvironmentStrings",
- "GetEnvironmentVariable",
- "GetExitCodeProcess",
- "GetFileAttributes",
- "GetFileAttributesEx",
- "GetFileExInfoStandard",
- "GetFileExMaxInfoLevel",
- "GetFileInformationByHandle",
- "GetFileType",
- "GetFullPathName",
- "GetHostByName",
- "GetIfEntry",
- "GetLastError",
- "GetLengthSid",
- "GetLongPathName",
- "GetProcAddress",
- "GetProcessTimes",
- "GetProtoByName",
- "GetQueuedCompletionStatus",
- "GetServByName",
- "GetShortPathName",
- "GetStartupInfo",
- "GetStdHandle",
- "GetSystemTimeAsFileTime",
- "GetTempPath",
- "GetTimeZoneInformation",
- "GetTokenInformation",
- "GetUserNameEx",
- "GetUserProfileDirectory",
- "GetVersion",
- "Getcwd",
- "Getdents",
- "Getdirentries",
- "Getdtablesize",
- "Getegid",
- "Getenv",
- "Geteuid",
- "Getfsstat",
- "Getgid",
- "Getgroups",
- "Getpagesize",
- "Getpeername",
- "Getpgid",
- "Getpgrp",
- "Getpid",
- "Getppid",
- "Getpriority",
- "Getrlimit",
- "Getrusage",
- "Getsid",
- "Getsockname",
- "Getsockopt",
- "GetsockoptByte",
- "GetsockoptICMPv6Filter",
- "GetsockoptIPMreq",
- "GetsockoptIPMreqn",
- "GetsockoptIPv6MTUInfo",
- "GetsockoptIPv6Mreq",
- "GetsockoptInet4Addr",
- "GetsockoptInt",
- "GetsockoptUcred",
- "Gettid",
- "Gettimeofday",
- "Getuid",
- "Getwd",
- "Getxattr",
- "HANDLE_FLAG_INHERIT",
- "HKEY_CLASSES_ROOT",
- "HKEY_CURRENT_CONFIG",
- "HKEY_CURRENT_USER",
- "HKEY_DYN_DATA",
- "HKEY_LOCAL_MACHINE",
- "HKEY_PERFORMANCE_DATA",
- "HKEY_USERS",
- "HUPCL",
- "Handle",
- "Hostent",
- "ICANON",
- "ICMP6_FILTER",
- "ICMPV6_FILTER",
- "ICMPv6Filter",
- "ICRNL",
- "IEXTEN",
- "IFAN_ARRIVAL",
- "IFAN_DEPARTURE",
- "IFA_ADDRESS",
- "IFA_ANYCAST",
- "IFA_BROADCAST",
- "IFA_CACHEINFO",
- "IFA_F_DADFAILED",
- "IFA_F_DEPRECATED",
- "IFA_F_HOMEADDRESS",
- "IFA_F_NODAD",
- "IFA_F_OPTIMISTIC",
- "IFA_F_PERMANENT",
- "IFA_F_SECONDARY",
- "IFA_F_TEMPORARY",
- "IFA_F_TENTATIVE",
- "IFA_LABEL",
- "IFA_LOCAL",
- "IFA_MAX",
- "IFA_MULTICAST",
- "IFA_ROUTE",
- "IFA_UNSPEC",
- "IFF_ALLMULTI",
- "IFF_ALTPHYS",
- "IFF_AUTOMEDIA",
- "IFF_BROADCAST",
- "IFF_CANTCHANGE",
- "IFF_CANTCONFIG",
- "IFF_DEBUG",
- "IFF_DRV_OACTIVE",
- "IFF_DRV_RUNNING",
- "IFF_DYING",
- "IFF_DYNAMIC",
- "IFF_LINK0",
- "IFF_LINK1",
- "IFF_LINK2",
- "IFF_LOOPBACK",
- "IFF_MASTER",
- "IFF_MONITOR",
- "IFF_MULTICAST",
- "IFF_NOARP",
- "IFF_NOTRAILERS",
- "IFF_NO_PI",
- "IFF_OACTIVE",
- "IFF_ONE_QUEUE",
- "IFF_POINTOPOINT",
- "IFF_POINTTOPOINT",
- "IFF_PORTSEL",
- "IFF_PPROMISC",
- "IFF_PROMISC",
- "IFF_RENAMING",
- "IFF_RUNNING",
- "IFF_SIMPLEX",
- "IFF_SLAVE",
- "IFF_SMART",
- "IFF_STATICARP",
- "IFF_TAP",
- "IFF_TUN",
- "IFF_TUN_EXCL",
- "IFF_UP",
- "IFF_VNET_HDR",
- "IFLA_ADDRESS",
- "IFLA_BROADCAST",
- "IFLA_COST",
- "IFLA_IFALIAS",
- "IFLA_IFNAME",
- "IFLA_LINK",
- "IFLA_LINKINFO",
- "IFLA_LINKMODE",
- "IFLA_MAP",
- "IFLA_MASTER",
- "IFLA_MAX",
- "IFLA_MTU",
- "IFLA_NET_NS_PID",
- "IFLA_OPERSTATE",
- "IFLA_PRIORITY",
- "IFLA_PROTINFO",
- "IFLA_QDISC",
- "IFLA_STATS",
- "IFLA_TXQLEN",
- "IFLA_UNSPEC",
- "IFLA_WEIGHT",
- "IFLA_WIRELESS",
- "IFNAMSIZ",
- "IFT_1822",
- "IFT_A12MPPSWITCH",
- "IFT_AAL2",
- "IFT_AAL5",
- "IFT_ADSL",
- "IFT_AFLANE8023",
- "IFT_AFLANE8025",
- "IFT_ARAP",
- "IFT_ARCNET",
- "IFT_ARCNETPLUS",
- "IFT_ASYNC",
- "IFT_ATM",
- "IFT_ATMDXI",
- "IFT_ATMFUNI",
- "IFT_ATMIMA",
- "IFT_ATMLOGICAL",
- "IFT_ATMRADIO",
- "IFT_ATMSUBINTERFACE",
- "IFT_ATMVCIENDPT",
- "IFT_ATMVIRTUAL",
- "IFT_BGPPOLICYACCOUNTING",
- "IFT_BLUETOOTH",
- "IFT_BRIDGE",
- "IFT_BSC",
- "IFT_CARP",
- "IFT_CCTEMUL",
- "IFT_CELLULAR",
- "IFT_CEPT",
- "IFT_CES",
- "IFT_CHANNEL",
- "IFT_CNR",
- "IFT_COFFEE",
- "IFT_COMPOSITELINK",
- "IFT_DCN",
- "IFT_DIGITALPOWERLINE",
- "IFT_DIGITALWRAPPEROVERHEADCHANNEL",
- "IFT_DLSW",
- "IFT_DOCSCABLEDOWNSTREAM",
- "IFT_DOCSCABLEMACLAYER",
- "IFT_DOCSCABLEUPSTREAM",
- "IFT_DOCSCABLEUPSTREAMCHANNEL",
- "IFT_DS0",
- "IFT_DS0BUNDLE",
- "IFT_DS1FDL",
- "IFT_DS3",
- "IFT_DTM",
- "IFT_DUMMY",
- "IFT_DVBASILN",
- "IFT_DVBASIOUT",
- "IFT_DVBRCCDOWNSTREAM",
- "IFT_DVBRCCMACLAYER",
- "IFT_DVBRCCUPSTREAM",
- "IFT_ECONET",
- "IFT_ENC",
- "IFT_EON",
- "IFT_EPLRS",
- "IFT_ESCON",
- "IFT_ETHER",
- "IFT_FAITH",
- "IFT_FAST",
- "IFT_FASTETHER",
- "IFT_FASTETHERFX",
- "IFT_FDDI",
- "IFT_FIBRECHANNEL",
- "IFT_FRAMERELAYINTERCONNECT",
- "IFT_FRAMERELAYMPI",
- "IFT_FRDLCIENDPT",
- "IFT_FRELAY",
- "IFT_FRELAYDCE",
- "IFT_FRF16MFRBUNDLE",
- "IFT_FRFORWARD",
- "IFT_G703AT2MB",
- "IFT_G703AT64K",
- "IFT_GIF",
- "IFT_GIGABITETHERNET",
- "IFT_GR303IDT",
- "IFT_GR303RDT",
- "IFT_H323GATEKEEPER",
- "IFT_H323PROXY",
- "IFT_HDH1822",
- "IFT_HDLC",
- "IFT_HDSL2",
- "IFT_HIPERLAN2",
- "IFT_HIPPI",
- "IFT_HIPPIINTERFACE",
- "IFT_HOSTPAD",
- "IFT_HSSI",
- "IFT_HY",
- "IFT_IBM370PARCHAN",
- "IFT_IDSL",
- "IFT_IEEE1394",
- "IFT_IEEE80211",
- "IFT_IEEE80212",
- "IFT_IEEE8023ADLAG",
- "IFT_IFGSN",
- "IFT_IMT",
- "IFT_INFINIBAND",
- "IFT_INTERLEAVE",
- "IFT_IP",
- "IFT_IPFORWARD",
- "IFT_IPOVERATM",
- "IFT_IPOVERCDLC",
- "IFT_IPOVERCLAW",
- "IFT_IPSWITCH",
- "IFT_IPXIP",
- "IFT_ISDN",
- "IFT_ISDNBASIC",
- "IFT_ISDNPRIMARY",
- "IFT_ISDNS",
- "IFT_ISDNU",
- "IFT_ISO88022LLC",
- "IFT_ISO88023",
- "IFT_ISO88024",
- "IFT_ISO88025",
- "IFT_ISO88025CRFPINT",
- "IFT_ISO88025DTR",
- "IFT_ISO88025FIBER",
- "IFT_ISO88026",
- "IFT_ISUP",
- "IFT_L2VLAN",
- "IFT_L3IPVLAN",
- "IFT_L3IPXVLAN",
- "IFT_LAPB",
- "IFT_LAPD",
- "IFT_LAPF",
- "IFT_LINEGROUP",
- "IFT_LOCALTALK",
- "IFT_LOOP",
- "IFT_MEDIAMAILOVERIP",
- "IFT_MFSIGLINK",
- "IFT_MIOX25",
- "IFT_MODEM",
- "IFT_MPC",
- "IFT_MPLS",
- "IFT_MPLSTUNNEL",
- "IFT_MSDSL",
- "IFT_MVL",
- "IFT_MYRINET",
- "IFT_NFAS",
- "IFT_NSIP",
- "IFT_OPTICALCHANNEL",
- "IFT_OPTICALTRANSPORT",
- "IFT_OTHER",
- "IFT_P10",
- "IFT_P80",
- "IFT_PARA",
- "IFT_PDP",
- "IFT_PFLOG",
- "IFT_PFLOW",
- "IFT_PFSYNC",
- "IFT_PLC",
- "IFT_PON155",
- "IFT_PON622",
- "IFT_POS",
- "IFT_PPP",
- "IFT_PPPMULTILINKBUNDLE",
- "IFT_PROPATM",
- "IFT_PROPBWAP2MP",
- "IFT_PROPCNLS",
- "IFT_PROPDOCSWIRELESSDOWNSTREAM",
- "IFT_PROPDOCSWIRELESSMACLAYER",
- "IFT_PROPDOCSWIRELESSUPSTREAM",
- "IFT_PROPMUX",
- "IFT_PROPVIRTUAL",
- "IFT_PROPWIRELESSP2P",
- "IFT_PTPSERIAL",
- "IFT_PVC",
- "IFT_Q2931",
- "IFT_QLLC",
- "IFT_RADIOMAC",
- "IFT_RADSL",
- "IFT_REACHDSL",
- "IFT_RFC1483",
- "IFT_RS232",
- "IFT_RSRB",
- "IFT_SDLC",
- "IFT_SDSL",
- "IFT_SHDSL",
- "IFT_SIP",
- "IFT_SIPSIG",
- "IFT_SIPTG",
- "IFT_SLIP",
- "IFT_SMDSDXI",
- "IFT_SMDSICIP",
- "IFT_SONET",
- "IFT_SONETOVERHEADCHANNEL",
- "IFT_SONETPATH",
- "IFT_SONETVT",
- "IFT_SRP",
- "IFT_SS7SIGLINK",
- "IFT_STACKTOSTACK",
- "IFT_STARLAN",
- "IFT_STF",
- "IFT_T1",
- "IFT_TDLC",
- "IFT_TELINK",
- "IFT_TERMPAD",
- "IFT_TR008",
- "IFT_TRANSPHDLC",
- "IFT_TUNNEL",
- "IFT_ULTRA",
- "IFT_USB",
- "IFT_V11",
- "IFT_V35",
- "IFT_V36",
- "IFT_V37",
- "IFT_VDSL",
- "IFT_VIRTUALIPADDRESS",
- "IFT_VIRTUALTG",
- "IFT_VOICEDID",
- "IFT_VOICEEM",
- "IFT_VOICEEMFGD",
- "IFT_VOICEENCAP",
- "IFT_VOICEFGDEANA",
- "IFT_VOICEFXO",
- "IFT_VOICEFXS",
- "IFT_VOICEOVERATM",
- "IFT_VOICEOVERCABLE",
- "IFT_VOICEOVERFRAMERELAY",
- "IFT_VOICEOVERIP",
- "IFT_X213",
- "IFT_X25",
- "IFT_X25DDN",
- "IFT_X25HUNTGROUP",
- "IFT_X25MLP",
- "IFT_X25PLE",
- "IFT_XETHER",
- "IGNBRK",
- "IGNCR",
- "IGNORE",
- "IGNPAR",
- "IMAXBEL",
- "INFINITE",
- "INLCR",
- "INPCK",
- "INVALID_FILE_ATTRIBUTES",
- "IN_ACCESS",
- "IN_ALL_EVENTS",
- "IN_ATTRIB",
- "IN_CLASSA_HOST",
- "IN_CLASSA_MAX",
- "IN_CLASSA_NET",
- "IN_CLASSA_NSHIFT",
- "IN_CLASSB_HOST",
- "IN_CLASSB_MAX",
- "IN_CLASSB_NET",
- "IN_CLASSB_NSHIFT",
- "IN_CLASSC_HOST",
- "IN_CLASSC_NET",
- "IN_CLASSC_NSHIFT",
- "IN_CLASSD_HOST",
- "IN_CLASSD_NET",
- "IN_CLASSD_NSHIFT",
- "IN_CLOEXEC",
- "IN_CLOSE",
- "IN_CLOSE_NOWRITE",
- "IN_CLOSE_WRITE",
- "IN_CREATE",
- "IN_DELETE",
- "IN_DELETE_SELF",
- "IN_DONT_FOLLOW",
- "IN_EXCL_UNLINK",
- "IN_IGNORED",
- "IN_ISDIR",
- "IN_LINKLOCALNETNUM",
- "IN_LOOPBACKNET",
- "IN_MASK_ADD",
- "IN_MODIFY",
- "IN_MOVE",
- "IN_MOVED_FROM",
- "IN_MOVED_TO",
- "IN_MOVE_SELF",
- "IN_NONBLOCK",
- "IN_ONESHOT",
- "IN_ONLYDIR",
- "IN_OPEN",
- "IN_Q_OVERFLOW",
- "IN_RFC3021_HOST",
- "IN_RFC3021_MASK",
- "IN_RFC3021_NET",
- "IN_RFC3021_NSHIFT",
- "IN_UNMOUNT",
- "IOC_IN",
- "IOC_INOUT",
- "IOC_OUT",
- "IOC_VENDOR",
- "IOC_WS2",
- "IO_REPARSE_TAG_SYMLINK",
- "IPMreq",
- "IPMreqn",
- "IPPROTO_3PC",
- "IPPROTO_ADFS",
- "IPPROTO_AH",
- "IPPROTO_AHIP",
- "IPPROTO_APES",
- "IPPROTO_ARGUS",
- "IPPROTO_AX25",
- "IPPROTO_BHA",
- "IPPROTO_BLT",
- "IPPROTO_BRSATMON",
- "IPPROTO_CARP",
- "IPPROTO_CFTP",
- "IPPROTO_CHAOS",
- "IPPROTO_CMTP",
- "IPPROTO_COMP",
- "IPPROTO_CPHB",
- "IPPROTO_CPNX",
- "IPPROTO_DCCP",
- "IPPROTO_DDP",
- "IPPROTO_DGP",
- "IPPROTO_DIVERT",
- "IPPROTO_DIVERT_INIT",
- "IPPROTO_DIVERT_RESP",
- "IPPROTO_DONE",
- "IPPROTO_DSTOPTS",
- "IPPROTO_EGP",
- "IPPROTO_EMCON",
- "IPPROTO_ENCAP",
- "IPPROTO_EON",
- "IPPROTO_ESP",
- "IPPROTO_ETHERIP",
- "IPPROTO_FRAGMENT",
- "IPPROTO_GGP",
- "IPPROTO_GMTP",
- "IPPROTO_GRE",
- "IPPROTO_HELLO",
- "IPPROTO_HMP",
- "IPPROTO_HOPOPTS",
- "IPPROTO_ICMP",
- "IPPROTO_ICMPV6",
- "IPPROTO_IDP",
- "IPPROTO_IDPR",
- "IPPROTO_IDRP",
- "IPPROTO_IGMP",
- "IPPROTO_IGP",
- "IPPROTO_IGRP",
- "IPPROTO_IL",
- "IPPROTO_INLSP",
- "IPPROTO_INP",
- "IPPROTO_IP",
- "IPPROTO_IPCOMP",
- "IPPROTO_IPCV",
- "IPPROTO_IPEIP",
- "IPPROTO_IPIP",
- "IPPROTO_IPPC",
- "IPPROTO_IPV4",
- "IPPROTO_IPV6",
- "IPPROTO_IPV6_ICMP",
- "IPPROTO_IRTP",
- "IPPROTO_KRYPTOLAN",
- "IPPROTO_LARP",
- "IPPROTO_LEAF1",
- "IPPROTO_LEAF2",
- "IPPROTO_MAX",
- "IPPROTO_MAXID",
- "IPPROTO_MEAS",
- "IPPROTO_MH",
- "IPPROTO_MHRP",
- "IPPROTO_MICP",
- "IPPROTO_MOBILE",
- "IPPROTO_MPLS",
- "IPPROTO_MTP",
- "IPPROTO_MUX",
- "IPPROTO_ND",
- "IPPROTO_NHRP",
- "IPPROTO_NONE",
- "IPPROTO_NSP",
- "IPPROTO_NVPII",
- "IPPROTO_OLD_DIVERT",
- "IPPROTO_OSPFIGP",
- "IPPROTO_PFSYNC",
- "IPPROTO_PGM",
- "IPPROTO_PIGP",
- "IPPROTO_PIM",
- "IPPROTO_PRM",
- "IPPROTO_PUP",
- "IPPROTO_PVP",
- "IPPROTO_RAW",
- "IPPROTO_RCCMON",
- "IPPROTO_RDP",
- "IPPROTO_ROUTING",
- "IPPROTO_RSVP",
- "IPPROTO_RVD",
- "IPPROTO_SATEXPAK",
- "IPPROTO_SATMON",
- "IPPROTO_SCCSP",
- "IPPROTO_SCTP",
- "IPPROTO_SDRP",
- "IPPROTO_SEND",
- "IPPROTO_SEP",
- "IPPROTO_SKIP",
- "IPPROTO_SPACER",
- "IPPROTO_SRPC",
- "IPPROTO_ST",
- "IPPROTO_SVMTP",
- "IPPROTO_SWIPE",
- "IPPROTO_TCF",
- "IPPROTO_TCP",
- "IPPROTO_TLSP",
- "IPPROTO_TP",
- "IPPROTO_TPXX",
- "IPPROTO_TRUNK1",
- "IPPROTO_TRUNK2",
- "IPPROTO_TTP",
- "IPPROTO_UDP",
- "IPPROTO_UDPLITE",
- "IPPROTO_VINES",
- "IPPROTO_VISA",
- "IPPROTO_VMTP",
- "IPPROTO_VRRP",
- "IPPROTO_WBEXPAK",
- "IPPROTO_WBMON",
- "IPPROTO_WSN",
- "IPPROTO_XNET",
- "IPPROTO_XTP",
- "IPV6_2292DSTOPTS",
- "IPV6_2292HOPLIMIT",
- "IPV6_2292HOPOPTS",
- "IPV6_2292NEXTHOP",
- "IPV6_2292PKTINFO",
- "IPV6_2292PKTOPTIONS",
- "IPV6_2292RTHDR",
- "IPV6_ADDRFORM",
- "IPV6_ADD_MEMBERSHIP",
- "IPV6_AUTHHDR",
- "IPV6_AUTH_LEVEL",
- "IPV6_AUTOFLOWLABEL",
- "IPV6_BINDANY",
- "IPV6_BINDV6ONLY",
- "IPV6_BOUND_IF",
- "IPV6_CHECKSUM",
- "IPV6_DEFAULT_MULTICAST_HOPS",
- "IPV6_DEFAULT_MULTICAST_LOOP",
- "IPV6_DEFHLIM",
- "IPV6_DONTFRAG",
- "IPV6_DROP_MEMBERSHIP",
- "IPV6_DSTOPTS",
- "IPV6_ESP_NETWORK_LEVEL",
- "IPV6_ESP_TRANS_LEVEL",
- "IPV6_FAITH",
- "IPV6_FLOWINFO_MASK",
- "IPV6_FLOWLABEL_MASK",
- "IPV6_FRAGTTL",
- "IPV6_FW_ADD",
- "IPV6_FW_DEL",
- "IPV6_FW_FLUSH",
- "IPV6_FW_GET",
- "IPV6_FW_ZERO",
- "IPV6_HLIMDEC",
- "IPV6_HOPLIMIT",
- "IPV6_HOPOPTS",
- "IPV6_IPCOMP_LEVEL",
- "IPV6_IPSEC_POLICY",
- "IPV6_JOIN_ANYCAST",
- "IPV6_JOIN_GROUP",
- "IPV6_LEAVE_ANYCAST",
- "IPV6_LEAVE_GROUP",
- "IPV6_MAXHLIM",
- "IPV6_MAXOPTHDR",
- "IPV6_MAXPACKET",
- "IPV6_MAX_GROUP_SRC_FILTER",
- "IPV6_MAX_MEMBERSHIPS",
- "IPV6_MAX_SOCK_SRC_FILTER",
- "IPV6_MIN_MEMBERSHIPS",
- "IPV6_MMTU",
- "IPV6_MSFILTER",
- "IPV6_MTU",
- "IPV6_MTU_DISCOVER",
- "IPV6_MULTICAST_HOPS",
- "IPV6_MULTICAST_IF",
- "IPV6_MULTICAST_LOOP",
- "IPV6_NEXTHOP",
- "IPV6_OPTIONS",
- "IPV6_PATHMTU",
- "IPV6_PIPEX",
- "IPV6_PKTINFO",
- "IPV6_PMTUDISC_DO",
- "IPV6_PMTUDISC_DONT",
- "IPV6_PMTUDISC_PROBE",
- "IPV6_PMTUDISC_WANT",
- "IPV6_PORTRANGE",
- "IPV6_PORTRANGE_DEFAULT",
- "IPV6_PORTRANGE_HIGH",
- "IPV6_PORTRANGE_LOW",
- "IPV6_PREFER_TEMPADDR",
- "IPV6_RECVDSTOPTS",
- "IPV6_RECVDSTPORT",
- "IPV6_RECVERR",
- "IPV6_RECVHOPLIMIT",
- "IPV6_RECVHOPOPTS",
- "IPV6_RECVPATHMTU",
- "IPV6_RECVPKTINFO",
- "IPV6_RECVRTHDR",
- "IPV6_RECVTCLASS",
- "IPV6_ROUTER_ALERT",
- "IPV6_RTABLE",
- "IPV6_RTHDR",
- "IPV6_RTHDRDSTOPTS",
- "IPV6_RTHDR_LOOSE",
- "IPV6_RTHDR_STRICT",
- "IPV6_RTHDR_TYPE_0",
- "IPV6_RXDSTOPTS",
- "IPV6_RXHOPOPTS",
- "IPV6_SOCKOPT_RESERVED1",
- "IPV6_TCLASS",
- "IPV6_UNICAST_HOPS",
- "IPV6_USE_MIN_MTU",
- "IPV6_V6ONLY",
- "IPV6_VERSION",
- "IPV6_VERSION_MASK",
- "IPV6_XFRM_POLICY",
- "IP_ADD_MEMBERSHIP",
- "IP_ADD_SOURCE_MEMBERSHIP",
- "IP_AUTH_LEVEL",
- "IP_BINDANY",
- "IP_BLOCK_SOURCE",
- "IP_BOUND_IF",
- "IP_DEFAULT_MULTICAST_LOOP",
- "IP_DEFAULT_MULTICAST_TTL",
- "IP_DF",
- "IP_DIVERTFL",
- "IP_DONTFRAG",
- "IP_DROP_MEMBERSHIP",
- "IP_DROP_SOURCE_MEMBERSHIP",
- "IP_DUMMYNET3",
- "IP_DUMMYNET_CONFIGURE",
- "IP_DUMMYNET_DEL",
- "IP_DUMMYNET_FLUSH",
- "IP_DUMMYNET_GET",
- "IP_EF",
- "IP_ERRORMTU",
- "IP_ESP_NETWORK_LEVEL",
- "IP_ESP_TRANS_LEVEL",
- "IP_FAITH",
- "IP_FREEBIND",
- "IP_FW3",
- "IP_FW_ADD",
- "IP_FW_DEL",
- "IP_FW_FLUSH",
- "IP_FW_GET",
- "IP_FW_NAT_CFG",
- "IP_FW_NAT_DEL",
- "IP_FW_NAT_GET_CONFIG",
- "IP_FW_NAT_GET_LOG",
- "IP_FW_RESETLOG",
- "IP_FW_TABLE_ADD",
- "IP_FW_TABLE_DEL",
- "IP_FW_TABLE_FLUSH",
- "IP_FW_TABLE_GETSIZE",
- "IP_FW_TABLE_LIST",
- "IP_FW_ZERO",
- "IP_HDRINCL",
- "IP_IPCOMP_LEVEL",
- "IP_IPSECFLOWINFO",
- "IP_IPSEC_LOCAL_AUTH",
- "IP_IPSEC_LOCAL_CRED",
- "IP_IPSEC_LOCAL_ID",
- "IP_IPSEC_POLICY",
- "IP_IPSEC_REMOTE_AUTH",
- "IP_IPSEC_REMOTE_CRED",
- "IP_IPSEC_REMOTE_ID",
- "IP_MAXPACKET",
- "IP_MAX_GROUP_SRC_FILTER",
- "IP_MAX_MEMBERSHIPS",
- "IP_MAX_SOCK_MUTE_FILTER",
- "IP_MAX_SOCK_SRC_FILTER",
- "IP_MAX_SOURCE_FILTER",
- "IP_MF",
- "IP_MINFRAGSIZE",
- "IP_MINTTL",
- "IP_MIN_MEMBERSHIPS",
- "IP_MSFILTER",
- "IP_MSS",
- "IP_MTU",
- "IP_MTU_DISCOVER",
- "IP_MULTICAST_IF",
- "IP_MULTICAST_IFINDEX",
- "IP_MULTICAST_LOOP",
- "IP_MULTICAST_TTL",
- "IP_MULTICAST_VIF",
- "IP_NAT__XXX",
- "IP_OFFMASK",
- "IP_OLD_FW_ADD",
- "IP_OLD_FW_DEL",
- "IP_OLD_FW_FLUSH",
- "IP_OLD_FW_GET",
- "IP_OLD_FW_RESETLOG",
- "IP_OLD_FW_ZERO",
- "IP_ONESBCAST",
- "IP_OPTIONS",
- "IP_ORIGDSTADDR",
- "IP_PASSSEC",
- "IP_PIPEX",
- "IP_PKTINFO",
- "IP_PKTOPTIONS",
- "IP_PMTUDISC",
- "IP_PMTUDISC_DO",
- "IP_PMTUDISC_DONT",
- "IP_PMTUDISC_PROBE",
- "IP_PMTUDISC_WANT",
- "IP_PORTRANGE",
- "IP_PORTRANGE_DEFAULT",
- "IP_PORTRANGE_HIGH",
- "IP_PORTRANGE_LOW",
- "IP_RECVDSTADDR",
- "IP_RECVDSTPORT",
- "IP_RECVERR",
- "IP_RECVIF",
- "IP_RECVOPTS",
- "IP_RECVORIGDSTADDR",
- "IP_RECVPKTINFO",
- "IP_RECVRETOPTS",
- "IP_RECVRTABLE",
- "IP_RECVTOS",
- "IP_RECVTTL",
- "IP_RETOPTS",
- "IP_RF",
- "IP_ROUTER_ALERT",
- "IP_RSVP_OFF",
- "IP_RSVP_ON",
- "IP_RSVP_VIF_OFF",
- "IP_RSVP_VIF_ON",
- "IP_RTABLE",
- "IP_SENDSRCADDR",
- "IP_STRIPHDR",
- "IP_TOS",
- "IP_TRAFFIC_MGT_BACKGROUND",
- "IP_TRANSPARENT",
- "IP_TTL",
- "IP_UNBLOCK_SOURCE",
- "IP_XFRM_POLICY",
- "IPv6MTUInfo",
- "IPv6Mreq",
- "ISIG",
- "ISTRIP",
- "IUCLC",
- "IUTF8",
- "IXANY",
- "IXOFF",
- "IXON",
- "IfAddrmsg",
- "IfAnnounceMsghdr",
- "IfData",
- "IfInfomsg",
- "IfMsghdr",
- "IfaMsghdr",
- "IfmaMsghdr",
- "IfmaMsghdr2",
- "ImplementsGetwd",
- "Inet4Pktinfo",
- "Inet6Pktinfo",
- "InotifyAddWatch",
- "InotifyEvent",
- "InotifyInit",
- "InotifyInit1",
- "InotifyRmWatch",
- "InterfaceAddrMessage",
- "InterfaceAnnounceMessage",
- "InterfaceInfo",
- "InterfaceMessage",
- "InterfaceMulticastAddrMessage",
- "InvalidHandle",
- "Ioperm",
- "Iopl",
- "Iovec",
- "IpAdapterInfo",
- "IpAddrString",
- "IpAddressString",
- "IpMaskString",
- "Issetugid",
- "KEY_ALL_ACCESS",
- "KEY_CREATE_LINK",
- "KEY_CREATE_SUB_KEY",
- "KEY_ENUMERATE_SUB_KEYS",
- "KEY_EXECUTE",
- "KEY_NOTIFY",
- "KEY_QUERY_VALUE",
- "KEY_READ",
- "KEY_SET_VALUE",
- "KEY_WOW64_32KEY",
- "KEY_WOW64_64KEY",
- "KEY_WRITE",
- "Kevent",
- "Kevent_t",
- "Kill",
- "Klogctl",
- "Kqueue",
- "LANG_ENGLISH",
- "LAYERED_PROTOCOL",
- "LCNT_OVERLOAD_FLUSH",
- "LINUX_REBOOT_CMD_CAD_OFF",
- "LINUX_REBOOT_CMD_CAD_ON",
- "LINUX_REBOOT_CMD_HALT",
- "LINUX_REBOOT_CMD_KEXEC",
- "LINUX_REBOOT_CMD_POWER_OFF",
- "LINUX_REBOOT_CMD_RESTART",
- "LINUX_REBOOT_CMD_RESTART2",
- "LINUX_REBOOT_CMD_SW_SUSPEND",
- "LINUX_REBOOT_MAGIC1",
- "LINUX_REBOOT_MAGIC2",
- "LOCK_EX",
- "LOCK_NB",
- "LOCK_SH",
- "LOCK_UN",
- "LazyDLL",
- "LazyProc",
- "Lchown",
- "Linger",
- "Link",
- "Listen",
- "Listxattr",
- "LoadCancelIoEx",
- "LoadConnectEx",
- "LoadCreateSymbolicLink",
- "LoadDLL",
- "LoadGetAddrInfo",
- "LoadLibrary",
- "LoadSetFileCompletionNotificationModes",
- "LocalFree",
- "Log2phys_t",
- "LookupAccountName",
- "LookupAccountSid",
- "LookupSID",
- "LsfJump",
- "LsfSocket",
- "LsfStmt",
- "Lstat",
- "MADV_AUTOSYNC",
- "MADV_CAN_REUSE",
- "MADV_CORE",
- "MADV_DOFORK",
- "MADV_DONTFORK",
- "MADV_DONTNEED",
- "MADV_FREE",
- "MADV_FREE_REUSABLE",
- "MADV_FREE_REUSE",
- "MADV_HUGEPAGE",
- "MADV_HWPOISON",
- "MADV_MERGEABLE",
- "MADV_NOCORE",
- "MADV_NOHUGEPAGE",
- "MADV_NORMAL",
- "MADV_NOSYNC",
- "MADV_PROTECT",
- "MADV_RANDOM",
- "MADV_REMOVE",
- "MADV_SEQUENTIAL",
- "MADV_SPACEAVAIL",
- "MADV_UNMERGEABLE",
- "MADV_WILLNEED",
- "MADV_ZERO_WIRED_PAGES",
- "MAP_32BIT",
- "MAP_ALIGNED_SUPER",
- "MAP_ALIGNMENT_16MB",
- "MAP_ALIGNMENT_1TB",
- "MAP_ALIGNMENT_256TB",
- "MAP_ALIGNMENT_4GB",
- "MAP_ALIGNMENT_64KB",
- "MAP_ALIGNMENT_64PB",
- "MAP_ALIGNMENT_MASK",
- "MAP_ALIGNMENT_SHIFT",
- "MAP_ANON",
- "MAP_ANONYMOUS",
- "MAP_COPY",
- "MAP_DENYWRITE",
- "MAP_EXECUTABLE",
- "MAP_FILE",
- "MAP_FIXED",
- "MAP_FLAGMASK",
- "MAP_GROWSDOWN",
- "MAP_HASSEMAPHORE",
- "MAP_HUGETLB",
- "MAP_INHERIT",
- "MAP_INHERIT_COPY",
- "MAP_INHERIT_DEFAULT",
- "MAP_INHERIT_DONATE_COPY",
- "MAP_INHERIT_NONE",
- "MAP_INHERIT_SHARE",
- "MAP_JIT",
- "MAP_LOCKED",
- "MAP_NOCACHE",
- "MAP_NOCORE",
- "MAP_NOEXTEND",
- "MAP_NONBLOCK",
- "MAP_NORESERVE",
- "MAP_NOSYNC",
- "MAP_POPULATE",
- "MAP_PREFAULT_READ",
- "MAP_PRIVATE",
- "MAP_RENAME",
- "MAP_RESERVED0080",
- "MAP_RESERVED0100",
- "MAP_SHARED",
- "MAP_STACK",
- "MAP_TRYFIXED",
- "MAP_TYPE",
- "MAP_WIRED",
- "MAXIMUM_REPARSE_DATA_BUFFER_SIZE",
- "MAXLEN_IFDESCR",
- "MAXLEN_PHYSADDR",
- "MAX_ADAPTER_ADDRESS_LENGTH",
- "MAX_ADAPTER_DESCRIPTION_LENGTH",
- "MAX_ADAPTER_NAME_LENGTH",
- "MAX_COMPUTERNAME_LENGTH",
- "MAX_INTERFACE_NAME_LEN",
- "MAX_LONG_PATH",
- "MAX_PATH",
- "MAX_PROTOCOL_CHAIN",
- "MCL_CURRENT",
- "MCL_FUTURE",
- "MNT_DETACH",
- "MNT_EXPIRE",
- "MNT_FORCE",
- "MSG_BCAST",
- "MSG_CMSG_CLOEXEC",
- "MSG_COMPAT",
- "MSG_CONFIRM",
- "MSG_CONTROLMBUF",
- "MSG_CTRUNC",
- "MSG_DONTROUTE",
- "MSG_DONTWAIT",
- "MSG_EOF",
- "MSG_EOR",
- "MSG_ERRQUEUE",
- "MSG_FASTOPEN",
- "MSG_FIN",
- "MSG_FLUSH",
- "MSG_HAVEMORE",
- "MSG_HOLD",
- "MSG_IOVUSRSPACE",
- "MSG_LENUSRSPACE",
- "MSG_MCAST",
- "MSG_MORE",
- "MSG_NAMEMBUF",
- "MSG_NBIO",
- "MSG_NEEDSA",
- "MSG_NOSIGNAL",
- "MSG_NOTIFICATION",
- "MSG_OOB",
- "MSG_PEEK",
- "MSG_PROXY",
- "MSG_RCVMORE",
- "MSG_RST",
- "MSG_SEND",
- "MSG_SYN",
- "MSG_TRUNC",
- "MSG_TRYHARD",
- "MSG_USERFLAGS",
- "MSG_WAITALL",
- "MSG_WAITFORONE",
- "MSG_WAITSTREAM",
- "MS_ACTIVE",
- "MS_ASYNC",
- "MS_BIND",
- "MS_DEACTIVATE",
- "MS_DIRSYNC",
- "MS_INVALIDATE",
- "MS_I_VERSION",
- "MS_KERNMOUNT",
- "MS_KILLPAGES",
- "MS_MANDLOCK",
- "MS_MGC_MSK",
- "MS_MGC_VAL",
- "MS_MOVE",
- "MS_NOATIME",
- "MS_NODEV",
- "MS_NODIRATIME",
- "MS_NOEXEC",
- "MS_NOSUID",
- "MS_NOUSER",
- "MS_POSIXACL",
- "MS_PRIVATE",
- "MS_RDONLY",
- "MS_REC",
- "MS_RELATIME",
- "MS_REMOUNT",
- "MS_RMT_MASK",
- "MS_SHARED",
- "MS_SILENT",
- "MS_SLAVE",
- "MS_STRICTATIME",
- "MS_SYNC",
- "MS_SYNCHRONOUS",
- "MS_UNBINDABLE",
- "Madvise",
- "MapViewOfFile",
- "MaxTokenInfoClass",
- "Mclpool",
- "MibIfRow",
- "Mkdir",
- "Mkdirat",
- "Mkfifo",
- "Mknod",
- "Mknodat",
- "Mlock",
- "Mlockall",
- "Mmap",
- "Mount",
- "MoveFile",
- "Mprotect",
- "Msghdr",
- "Munlock",
- "Munlockall",
- "Munmap",
- "MustLoadDLL",
- "NAME_MAX",
- "NETLINK_ADD_MEMBERSHIP",
- "NETLINK_AUDIT",
- "NETLINK_BROADCAST_ERROR",
- "NETLINK_CONNECTOR",
- "NETLINK_DNRTMSG",
- "NETLINK_DROP_MEMBERSHIP",
- "NETLINK_ECRYPTFS",
- "NETLINK_FIB_LOOKUP",
- "NETLINK_FIREWALL",
- "NETLINK_GENERIC",
- "NETLINK_INET_DIAG",
- "NETLINK_IP6_FW",
- "NETLINK_ISCSI",
- "NETLINK_KOBJECT_UEVENT",
- "NETLINK_NETFILTER",
- "NETLINK_NFLOG",
- "NETLINK_NO_ENOBUFS",
- "NETLINK_PKTINFO",
- "NETLINK_RDMA",
- "NETLINK_ROUTE",
- "NETLINK_SCSITRANSPORT",
- "NETLINK_SELINUX",
- "NETLINK_UNUSED",
- "NETLINK_USERSOCK",
- "NETLINK_XFRM",
- "NET_RT_DUMP",
- "NET_RT_DUMP2",
- "NET_RT_FLAGS",
- "NET_RT_IFLIST",
- "NET_RT_IFLIST2",
- "NET_RT_IFLISTL",
- "NET_RT_IFMALIST",
- "NET_RT_MAXID",
- "NET_RT_OIFLIST",
- "NET_RT_OOIFLIST",
- "NET_RT_STAT",
- "NET_RT_STATS",
- "NET_RT_TABLE",
- "NET_RT_TRASH",
- "NLA_ALIGNTO",
- "NLA_F_NESTED",
- "NLA_F_NET_BYTEORDER",
- "NLA_HDRLEN",
- "NLMSG_ALIGNTO",
- "NLMSG_DONE",
- "NLMSG_ERROR",
- "NLMSG_HDRLEN",
- "NLMSG_MIN_TYPE",
- "NLMSG_NOOP",
- "NLMSG_OVERRUN",
- "NLM_F_ACK",
- "NLM_F_APPEND",
- "NLM_F_ATOMIC",
- "NLM_F_CREATE",
- "NLM_F_DUMP",
- "NLM_F_ECHO",
- "NLM_F_EXCL",
- "NLM_F_MATCH",
- "NLM_F_MULTI",
- "NLM_F_REPLACE",
- "NLM_F_REQUEST",
- "NLM_F_ROOT",
- "NOFLSH",
- "NOTE_ABSOLUTE",
- "NOTE_ATTRIB",
- "NOTE_BACKGROUND",
- "NOTE_CHILD",
- "NOTE_CRITICAL",
- "NOTE_DELETE",
- "NOTE_EOF",
- "NOTE_EXEC",
- "NOTE_EXIT",
- "NOTE_EXITSTATUS",
- "NOTE_EXIT_CSERROR",
- "NOTE_EXIT_DECRYPTFAIL",
- "NOTE_EXIT_DETAIL",
- "NOTE_EXIT_DETAIL_MASK",
- "NOTE_EXIT_MEMORY",
- "NOTE_EXIT_REPARENTED",
- "NOTE_EXTEND",
- "NOTE_FFAND",
- "NOTE_FFCOPY",
- "NOTE_FFCTRLMASK",
- "NOTE_FFLAGSMASK",
- "NOTE_FFNOP",
- "NOTE_FFOR",
- "NOTE_FORK",
- "NOTE_LEEWAY",
- "NOTE_LINK",
- "NOTE_LOWAT",
- "NOTE_NONE",
- "NOTE_NSECONDS",
- "NOTE_PCTRLMASK",
- "NOTE_PDATAMASK",
- "NOTE_REAP",
- "NOTE_RENAME",
- "NOTE_RESOURCEEND",
- "NOTE_REVOKE",
- "NOTE_SECONDS",
- "NOTE_SIGNAL",
- "NOTE_TRACK",
- "NOTE_TRACKERR",
- "NOTE_TRIGGER",
- "NOTE_TRUNCATE",
- "NOTE_USECONDS",
- "NOTE_VM_ERROR",
- "NOTE_VM_PRESSURE",
- "NOTE_VM_PRESSURE_SUDDEN_TERMINATE",
- "NOTE_VM_PRESSURE_TERMINATE",
- "NOTE_WRITE",
- "NameCanonical",
- "NameCanonicalEx",
- "NameDisplay",
- "NameDnsDomain",
- "NameFullyQualifiedDN",
- "NameSamCompatible",
- "NameServicePrincipal",
- "NameUniqueId",
- "NameUnknown",
- "NameUserPrincipal",
- "Nanosleep",
- "NetApiBufferFree",
- "NetGetJoinInformation",
- "NetSetupDomainName",
- "NetSetupUnjoined",
- "NetSetupUnknownStatus",
- "NetSetupWorkgroupName",
- "NetUserGetInfo",
- "NetlinkMessage",
- "NetlinkRIB",
- "NetlinkRouteAttr",
- "NetlinkRouteRequest",
- "NewCallback",
- "NewCallbackCDecl",
- "NewLazyDLL",
- "NlAttr",
- "NlMsgerr",
- "NlMsghdr",
- "NsecToFiletime",
- "NsecToTimespec",
- "NsecToTimeval",
- "Ntohs",
- "OCRNL",
- "OFDEL",
- "OFILL",
- "OFIOGETBMAP",
- "OID_PKIX_KP_SERVER_AUTH",
- "OID_SERVER_GATED_CRYPTO",
- "OID_SGC_NETSCAPE",
- "OLCUC",
- "ONLCR",
- "ONLRET",
- "ONOCR",
- "ONOEOT",
- "OPEN_ALWAYS",
- "OPEN_EXISTING",
- "OPOST",
- "O_ACCMODE",
- "O_ALERT",
- "O_ALT_IO",
- "O_APPEND",
- "O_ASYNC",
- "O_CLOEXEC",
- "O_CREAT",
- "O_DIRECT",
- "O_DIRECTORY",
- "O_DP_GETRAWENCRYPTED",
- "O_DSYNC",
- "O_EVTONLY",
- "O_EXCL",
- "O_EXEC",
- "O_EXLOCK",
- "O_FSYNC",
- "O_LARGEFILE",
- "O_NDELAY",
- "O_NOATIME",
- "O_NOCTTY",
- "O_NOFOLLOW",
- "O_NONBLOCK",
- "O_NOSIGPIPE",
- "O_POPUP",
- "O_RDONLY",
- "O_RDWR",
- "O_RSYNC",
- "O_SHLOCK",
- "O_SYMLINK",
- "O_SYNC",
- "O_TRUNC",
- "O_TTY_INIT",
- "O_WRONLY",
- "Open",
- "OpenCurrentProcessToken",
- "OpenProcess",
- "OpenProcessToken",
- "Openat",
- "Overlapped",
- "PACKET_ADD_MEMBERSHIP",
- "PACKET_BROADCAST",
- "PACKET_DROP_MEMBERSHIP",
- "PACKET_FASTROUTE",
- "PACKET_HOST",
- "PACKET_LOOPBACK",
- "PACKET_MR_ALLMULTI",
- "PACKET_MR_MULTICAST",
- "PACKET_MR_PROMISC",
- "PACKET_MULTICAST",
- "PACKET_OTHERHOST",
- "PACKET_OUTGOING",
- "PACKET_RECV_OUTPUT",
- "PACKET_RX_RING",
- "PACKET_STATISTICS",
- "PAGE_EXECUTE_READ",
- "PAGE_EXECUTE_READWRITE",
- "PAGE_EXECUTE_WRITECOPY",
- "PAGE_READONLY",
- "PAGE_READWRITE",
- "PAGE_WRITECOPY",
- "PARENB",
- "PARMRK",
- "PARODD",
- "PENDIN",
- "PFL_HIDDEN",
- "PFL_MATCHES_PROTOCOL_ZERO",
- "PFL_MULTIPLE_PROTO_ENTRIES",
- "PFL_NETWORKDIRECT_PROVIDER",
- "PFL_RECOMMENDED_PROTO_ENTRY",
- "PF_FLUSH",
- "PKCS_7_ASN_ENCODING",
- "PMC5_PIPELINE_FLUSH",
- "PRIO_PGRP",
- "PRIO_PROCESS",
- "PRIO_USER",
- "PRI_IOFLUSH",
- "PROCESS_QUERY_INFORMATION",
- "PROCESS_TERMINATE",
- "PROT_EXEC",
- "PROT_GROWSDOWN",
- "PROT_GROWSUP",
- "PROT_NONE",
- "PROT_READ",
- "PROT_WRITE",
- "PROV_DH_SCHANNEL",
- "PROV_DSS",
- "PROV_DSS_DH",
- "PROV_EC_ECDSA_FULL",
- "PROV_EC_ECDSA_SIG",
- "PROV_EC_ECNRA_FULL",
- "PROV_EC_ECNRA_SIG",
- "PROV_FORTEZZA",
- "PROV_INTEL_SEC",
- "PROV_MS_EXCHANGE",
- "PROV_REPLACE_OWF",
- "PROV_RNG",
- "PROV_RSA_AES",
- "PROV_RSA_FULL",
- "PROV_RSA_SCHANNEL",
- "PROV_RSA_SIG",
- "PROV_SPYRUS_LYNKS",
- "PROV_SSL",
- "PR_CAPBSET_DROP",
- "PR_CAPBSET_READ",
- "PR_CLEAR_SECCOMP_FILTER",
- "PR_ENDIAN_BIG",
- "PR_ENDIAN_LITTLE",
- "PR_ENDIAN_PPC_LITTLE",
- "PR_FPEMU_NOPRINT",
- "PR_FPEMU_SIGFPE",
- "PR_FP_EXC_ASYNC",
- "PR_FP_EXC_DISABLED",
- "PR_FP_EXC_DIV",
- "PR_FP_EXC_INV",
- "PR_FP_EXC_NONRECOV",
- "PR_FP_EXC_OVF",
- "PR_FP_EXC_PRECISE",
- "PR_FP_EXC_RES",
- "PR_FP_EXC_SW_ENABLE",
- "PR_FP_EXC_UND",
- "PR_GET_DUMPABLE",
- "PR_GET_ENDIAN",
- "PR_GET_FPEMU",
- "PR_GET_FPEXC",
- "PR_GET_KEEPCAPS",
- "PR_GET_NAME",
- "PR_GET_PDEATHSIG",
- "PR_GET_SECCOMP",
- "PR_GET_SECCOMP_FILTER",
- "PR_GET_SECUREBITS",
- "PR_GET_TIMERSLACK",
- "PR_GET_TIMING",
- "PR_GET_TSC",
- "PR_GET_UNALIGN",
- "PR_MCE_KILL",
- "PR_MCE_KILL_CLEAR",
- "PR_MCE_KILL_DEFAULT",
- "PR_MCE_KILL_EARLY",
- "PR_MCE_KILL_GET",
- "PR_MCE_KILL_LATE",
- "PR_MCE_KILL_SET",
- "PR_SECCOMP_FILTER_EVENT",
- "PR_SECCOMP_FILTER_SYSCALL",
- "PR_SET_DUMPABLE",
- "PR_SET_ENDIAN",
- "PR_SET_FPEMU",
- "PR_SET_FPEXC",
- "PR_SET_KEEPCAPS",
- "PR_SET_NAME",
- "PR_SET_PDEATHSIG",
- "PR_SET_PTRACER",
- "PR_SET_SECCOMP",
- "PR_SET_SECCOMP_FILTER",
- "PR_SET_SECUREBITS",
- "PR_SET_TIMERSLACK",
- "PR_SET_TIMING",
- "PR_SET_TSC",
- "PR_SET_UNALIGN",
- "PR_TASK_PERF_EVENTS_DISABLE",
- "PR_TASK_PERF_EVENTS_ENABLE",
- "PR_TIMING_STATISTICAL",
- "PR_TIMING_TIMESTAMP",
- "PR_TSC_ENABLE",
- "PR_TSC_SIGSEGV",
- "PR_UNALIGN_NOPRINT",
- "PR_UNALIGN_SIGBUS",
- "PTRACE_ARCH_PRCTL",
- "PTRACE_ATTACH",
- "PTRACE_CONT",
- "PTRACE_DETACH",
- "PTRACE_EVENT_CLONE",
- "PTRACE_EVENT_EXEC",
- "PTRACE_EVENT_EXIT",
- "PTRACE_EVENT_FORK",
- "PTRACE_EVENT_VFORK",
- "PTRACE_EVENT_VFORK_DONE",
- "PTRACE_GETCRUNCHREGS",
- "PTRACE_GETEVENTMSG",
- "PTRACE_GETFPREGS",
- "PTRACE_GETFPXREGS",
- "PTRACE_GETHBPREGS",
- "PTRACE_GETREGS",
- "PTRACE_GETREGSET",
- "PTRACE_GETSIGINFO",
- "PTRACE_GETVFPREGS",
- "PTRACE_GETWMMXREGS",
- "PTRACE_GET_THREAD_AREA",
- "PTRACE_KILL",
- "PTRACE_OLDSETOPTIONS",
- "PTRACE_O_MASK",
- "PTRACE_O_TRACECLONE",
- "PTRACE_O_TRACEEXEC",
- "PTRACE_O_TRACEEXIT",
- "PTRACE_O_TRACEFORK",
- "PTRACE_O_TRACESYSGOOD",
- "PTRACE_O_TRACEVFORK",
- "PTRACE_O_TRACEVFORKDONE",
- "PTRACE_PEEKDATA",
- "PTRACE_PEEKTEXT",
- "PTRACE_PEEKUSR",
- "PTRACE_POKEDATA",
- "PTRACE_POKETEXT",
- "PTRACE_POKEUSR",
- "PTRACE_SETCRUNCHREGS",
- "PTRACE_SETFPREGS",
- "PTRACE_SETFPXREGS",
- "PTRACE_SETHBPREGS",
- "PTRACE_SETOPTIONS",
- "PTRACE_SETREGS",
- "PTRACE_SETREGSET",
- "PTRACE_SETSIGINFO",
- "PTRACE_SETVFPREGS",
- "PTRACE_SETWMMXREGS",
- "PTRACE_SET_SYSCALL",
- "PTRACE_SET_THREAD_AREA",
- "PTRACE_SINGLEBLOCK",
- "PTRACE_SINGLESTEP",
- "PTRACE_SYSCALL",
- "PTRACE_SYSEMU",
- "PTRACE_SYSEMU_SINGLESTEP",
- "PTRACE_TRACEME",
- "PT_ATTACH",
- "PT_ATTACHEXC",
- "PT_CONTINUE",
- "PT_DATA_ADDR",
- "PT_DENY_ATTACH",
- "PT_DETACH",
- "PT_FIRSTMACH",
- "PT_FORCEQUOTA",
- "PT_KILL",
- "PT_MASK",
- "PT_READ_D",
- "PT_READ_I",
- "PT_READ_U",
- "PT_SIGEXC",
- "PT_STEP",
- "PT_TEXT_ADDR",
- "PT_TEXT_END_ADDR",
- "PT_THUPDATE",
- "PT_TRACE_ME",
- "PT_WRITE_D",
- "PT_WRITE_I",
- "PT_WRITE_U",
- "ParseDirent",
- "ParseNetlinkMessage",
- "ParseNetlinkRouteAttr",
- "ParseRoutingMessage",
- "ParseRoutingSockaddr",
- "ParseSocketControlMessage",
- "ParseUnixCredentials",
- "ParseUnixRights",
- "PathMax",
- "Pathconf",
- "Pause",
- "Pipe",
- "Pipe2",
- "PivotRoot",
- "Pointer",
- "PostQueuedCompletionStatus",
- "Pread",
- "Proc",
- "ProcAttr",
- "Process32First",
- "Process32Next",
- "ProcessEntry32",
- "ProcessInformation",
- "Protoent",
- "PtraceAttach",
- "PtraceCont",
- "PtraceDetach",
- "PtraceGetEventMsg",
- "PtraceGetRegs",
- "PtracePeekData",
- "PtracePeekText",
- "PtracePokeData",
- "PtracePokeText",
- "PtraceRegs",
- "PtraceSetOptions",
- "PtraceSetRegs",
- "PtraceSingleStep",
- "PtraceSyscall",
- "Pwrite",
- "REG_BINARY",
- "REG_DWORD",
- "REG_DWORD_BIG_ENDIAN",
- "REG_DWORD_LITTLE_ENDIAN",
- "REG_EXPAND_SZ",
- "REG_FULL_RESOURCE_DESCRIPTOR",
- "REG_LINK",
- "REG_MULTI_SZ",
- "REG_NONE",
- "REG_QWORD",
- "REG_QWORD_LITTLE_ENDIAN",
- "REG_RESOURCE_LIST",
- "REG_RESOURCE_REQUIREMENTS_LIST",
- "REG_SZ",
- "RLIMIT_AS",
- "RLIMIT_CORE",
- "RLIMIT_CPU",
- "RLIMIT_CPU_USAGE_MONITOR",
- "RLIMIT_DATA",
- "RLIMIT_FSIZE",
- "RLIMIT_NOFILE",
- "RLIMIT_STACK",
- "RLIM_INFINITY",
- "RTAX_ADVMSS",
- "RTAX_AUTHOR",
- "RTAX_BRD",
- "RTAX_CWND",
- "RTAX_DST",
- "RTAX_FEATURES",
- "RTAX_FEATURE_ALLFRAG",
- "RTAX_FEATURE_ECN",
- "RTAX_FEATURE_SACK",
- "RTAX_FEATURE_TIMESTAMP",
- "RTAX_GATEWAY",
- "RTAX_GENMASK",
- "RTAX_HOPLIMIT",
- "RTAX_IFA",
- "RTAX_IFP",
- "RTAX_INITCWND",
- "RTAX_INITRWND",
- "RTAX_LABEL",
- "RTAX_LOCK",
- "RTAX_MAX",
- "RTAX_MTU",
- "RTAX_NETMASK",
- "RTAX_REORDERING",
- "RTAX_RTO_MIN",
- "RTAX_RTT",
- "RTAX_RTTVAR",
- "RTAX_SRC",
- "RTAX_SRCMASK",
- "RTAX_SSTHRESH",
- "RTAX_TAG",
- "RTAX_UNSPEC",
- "RTAX_WINDOW",
- "RTA_ALIGNTO",
- "RTA_AUTHOR",
- "RTA_BRD",
- "RTA_CACHEINFO",
- "RTA_DST",
- "RTA_FLOW",
- "RTA_GATEWAY",
- "RTA_GENMASK",
- "RTA_IFA",
- "RTA_IFP",
- "RTA_IIF",
- "RTA_LABEL",
- "RTA_MAX",
- "RTA_METRICS",
- "RTA_MULTIPATH",
- "RTA_NETMASK",
- "RTA_OIF",
- "RTA_PREFSRC",
- "RTA_PRIORITY",
- "RTA_SRC",
- "RTA_SRCMASK",
- "RTA_TABLE",
- "RTA_TAG",
- "RTA_UNSPEC",
- "RTCF_DIRECTSRC",
- "RTCF_DOREDIRECT",
- "RTCF_LOG",
- "RTCF_MASQ",
- "RTCF_NAT",
- "RTCF_VALVE",
- "RTF_ADDRCLASSMASK",
- "RTF_ADDRCONF",
- "RTF_ALLONLINK",
- "RTF_ANNOUNCE",
- "RTF_BLACKHOLE",
- "RTF_BROADCAST",
- "RTF_CACHE",
- "RTF_CLONED",
- "RTF_CLONING",
- "RTF_CONDEMNED",
- "RTF_DEFAULT",
- "RTF_DELCLONE",
- "RTF_DONE",
- "RTF_DYNAMIC",
- "RTF_FLOW",
- "RTF_FMASK",
- "RTF_GATEWAY",
- "RTF_GWFLAG_COMPAT",
- "RTF_HOST",
- "RTF_IFREF",
- "RTF_IFSCOPE",
- "RTF_INTERFACE",
- "RTF_IRTT",
- "RTF_LINKRT",
- "RTF_LLDATA",
- "RTF_LLINFO",
- "RTF_LOCAL",
- "RTF_MASK",
- "RTF_MODIFIED",
- "RTF_MPATH",
- "RTF_MPLS",
- "RTF_MSS",
- "RTF_MTU",
- "RTF_MULTICAST",
- "RTF_NAT",
- "RTF_NOFORWARD",
- "RTF_NONEXTHOP",
- "RTF_NOPMTUDISC",
- "RTF_PERMANENT_ARP",
- "RTF_PINNED",
- "RTF_POLICY",
- "RTF_PRCLONING",
- "RTF_PROTO1",
- "RTF_PROTO2",
- "RTF_PROTO3",
- "RTF_PROXY",
- "RTF_REINSTATE",
- "RTF_REJECT",
- "RTF_RNH_LOCKED",
- "RTF_ROUTER",
- "RTF_SOURCE",
- "RTF_SRC",
- "RTF_STATIC",
- "RTF_STICKY",
- "RTF_THROW",
- "RTF_TUNNEL",
- "RTF_UP",
- "RTF_USETRAILERS",
- "RTF_WASCLONED",
- "RTF_WINDOW",
- "RTF_XRESOLVE",
- "RTM_ADD",
- "RTM_BASE",
- "RTM_CHANGE",
- "RTM_CHGADDR",
- "RTM_DELACTION",
- "RTM_DELADDR",
- "RTM_DELADDRLABEL",
- "RTM_DELETE",
- "RTM_DELLINK",
- "RTM_DELMADDR",
- "RTM_DELNEIGH",
- "RTM_DELQDISC",
- "RTM_DELROUTE",
- "RTM_DELRULE",
- "RTM_DELTCLASS",
- "RTM_DELTFILTER",
- "RTM_DESYNC",
- "RTM_F_CLONED",
- "RTM_F_EQUALIZE",
- "RTM_F_NOTIFY",
- "RTM_F_PREFIX",
- "RTM_GET",
- "RTM_GET2",
- "RTM_GETACTION",
- "RTM_GETADDR",
- "RTM_GETADDRLABEL",
- "RTM_GETANYCAST",
- "RTM_GETDCB",
- "RTM_GETLINK",
- "RTM_GETMULTICAST",
- "RTM_GETNEIGH",
- "RTM_GETNEIGHTBL",
- "RTM_GETQDISC",
- "RTM_GETROUTE",
- "RTM_GETRULE",
- "RTM_GETTCLASS",
- "RTM_GETTFILTER",
- "RTM_IEEE80211",
- "RTM_IFANNOUNCE",
- "RTM_IFINFO",
- "RTM_IFINFO2",
- "RTM_LLINFO_UPD",
- "RTM_LOCK",
- "RTM_LOSING",
- "RTM_MAX",
- "RTM_MAXSIZE",
- "RTM_MISS",
- "RTM_NEWACTION",
- "RTM_NEWADDR",
- "RTM_NEWADDRLABEL",
- "RTM_NEWLINK",
- "RTM_NEWMADDR",
- "RTM_NEWMADDR2",
- "RTM_NEWNDUSEROPT",
- "RTM_NEWNEIGH",
- "RTM_NEWNEIGHTBL",
- "RTM_NEWPREFIX",
- "RTM_NEWQDISC",
- "RTM_NEWROUTE",
- "RTM_NEWRULE",
- "RTM_NEWTCLASS",
- "RTM_NEWTFILTER",
- "RTM_NR_FAMILIES",
- "RTM_NR_MSGTYPES",
- "RTM_OIFINFO",
- "RTM_OLDADD",
- "RTM_OLDDEL",
- "RTM_OOIFINFO",
- "RTM_REDIRECT",
- "RTM_RESOLVE",
- "RTM_RTTUNIT",
- "RTM_SETDCB",
- "RTM_SETGATE",
- "RTM_SETLINK",
- "RTM_SETNEIGHTBL",
- "RTM_VERSION",
- "RTNH_ALIGNTO",
- "RTNH_F_DEAD",
- "RTNH_F_ONLINK",
- "RTNH_F_PERVASIVE",
- "RTNLGRP_IPV4_IFADDR",
- "RTNLGRP_IPV4_MROUTE",
- "RTNLGRP_IPV4_ROUTE",
- "RTNLGRP_IPV4_RULE",
- "RTNLGRP_IPV6_IFADDR",
- "RTNLGRP_IPV6_IFINFO",
- "RTNLGRP_IPV6_MROUTE",
- "RTNLGRP_IPV6_PREFIX",
- "RTNLGRP_IPV6_ROUTE",
- "RTNLGRP_IPV6_RULE",
- "RTNLGRP_LINK",
- "RTNLGRP_ND_USEROPT",
- "RTNLGRP_NEIGH",
- "RTNLGRP_NONE",
- "RTNLGRP_NOTIFY",
- "RTNLGRP_TC",
- "RTN_ANYCAST",
- "RTN_BLACKHOLE",
- "RTN_BROADCAST",
- "RTN_LOCAL",
- "RTN_MAX",
- "RTN_MULTICAST",
- "RTN_NAT",
- "RTN_PROHIBIT",
- "RTN_THROW",
- "RTN_UNICAST",
- "RTN_UNREACHABLE",
- "RTN_UNSPEC",
- "RTN_XRESOLVE",
- "RTPROT_BIRD",
- "RTPROT_BOOT",
- "RTPROT_DHCP",
- "RTPROT_DNROUTED",
- "RTPROT_GATED",
- "RTPROT_KERNEL",
- "RTPROT_MRT",
- "RTPROT_NTK",
- "RTPROT_RA",
- "RTPROT_REDIRECT",
- "RTPROT_STATIC",
- "RTPROT_UNSPEC",
- "RTPROT_XORP",
- "RTPROT_ZEBRA",
- "RTV_EXPIRE",
- "RTV_HOPCOUNT",
- "RTV_MTU",
- "RTV_RPIPE",
- "RTV_RTT",
- "RTV_RTTVAR",
- "RTV_SPIPE",
- "RTV_SSTHRESH",
- "RTV_WEIGHT",
- "RT_CACHING_CONTEXT",
- "RT_CLASS_DEFAULT",
- "RT_CLASS_LOCAL",
- "RT_CLASS_MAIN",
- "RT_CLASS_MAX",
- "RT_CLASS_UNSPEC",
- "RT_DEFAULT_FIB",
- "RT_NORTREF",
- "RT_SCOPE_HOST",
- "RT_SCOPE_LINK",
- "RT_SCOPE_NOWHERE",
- "RT_SCOPE_SITE",
- "RT_SCOPE_UNIVERSE",
- "RT_TABLEID_MAX",
- "RT_TABLE_COMPAT",
- "RT_TABLE_DEFAULT",
- "RT_TABLE_LOCAL",
- "RT_TABLE_MAIN",
- "RT_TABLE_MAX",
- "RT_TABLE_UNSPEC",
- "RUSAGE_CHILDREN",
- "RUSAGE_SELF",
- "RUSAGE_THREAD",
- "Radvisory_t",
- "RawConn",
- "RawSockaddr",
- "RawSockaddrAny",
- "RawSockaddrDatalink",
- "RawSockaddrInet4",
- "RawSockaddrInet6",
- "RawSockaddrLinklayer",
- "RawSockaddrNetlink",
- "RawSockaddrUnix",
- "RawSyscall",
- "RawSyscall6",
- "Read",
- "ReadConsole",
- "ReadDirectoryChanges",
- "ReadDirent",
- "ReadFile",
- "Readlink",
- "Reboot",
- "Recvfrom",
- "Recvmsg",
- "RegCloseKey",
- "RegEnumKeyEx",
- "RegOpenKeyEx",
- "RegQueryInfoKey",
- "RegQueryValueEx",
- "RemoveDirectory",
- "Removexattr",
- "Rename",
- "Renameat",
- "Revoke",
- "Rlimit",
- "Rmdir",
- "RouteMessage",
- "RouteRIB",
- "RoutingMessage",
- "RtAttr",
- "RtGenmsg",
- "RtMetrics",
- "RtMsg",
- "RtMsghdr",
- "RtNexthop",
- "Rusage",
- "SCM_BINTIME",
- "SCM_CREDENTIALS",
- "SCM_CREDS",
- "SCM_RIGHTS",
- "SCM_TIMESTAMP",
- "SCM_TIMESTAMPING",
- "SCM_TIMESTAMPNS",
- "SCM_TIMESTAMP_MONOTONIC",
- "SHUT_RD",
- "SHUT_RDWR",
- "SHUT_WR",
- "SID",
- "SIDAndAttributes",
- "SIGABRT",
- "SIGALRM",
- "SIGBUS",
- "SIGCHLD",
- "SIGCLD",
- "SIGCONT",
- "SIGEMT",
- "SIGFPE",
- "SIGHUP",
- "SIGILL",
- "SIGINFO",
- "SIGINT",
- "SIGIO",
- "SIGIOT",
- "SIGKILL",
- "SIGLIBRT",
- "SIGLWP",
- "SIGPIPE",
- "SIGPOLL",
- "SIGPROF",
- "SIGPWR",
- "SIGQUIT",
- "SIGSEGV",
- "SIGSTKFLT",
- "SIGSTOP",
- "SIGSYS",
- "SIGTERM",
- "SIGTHR",
- "SIGTRAP",
- "SIGTSTP",
- "SIGTTIN",
- "SIGTTOU",
- "SIGUNUSED",
- "SIGURG",
- "SIGUSR1",
- "SIGUSR2",
- "SIGVTALRM",
- "SIGWINCH",
- "SIGXCPU",
- "SIGXFSZ",
- "SIOCADDDLCI",
- "SIOCADDMULTI",
- "SIOCADDRT",
- "SIOCAIFADDR",
- "SIOCAIFGROUP",
- "SIOCALIFADDR",
- "SIOCARPIPLL",
- "SIOCATMARK",
- "SIOCAUTOADDR",
- "SIOCAUTONETMASK",
- "SIOCBRDGADD",
- "SIOCBRDGADDS",
- "SIOCBRDGARL",
- "SIOCBRDGDADDR",
- "SIOCBRDGDEL",
- "SIOCBRDGDELS",
- "SIOCBRDGFLUSH",
- "SIOCBRDGFRL",
- "SIOCBRDGGCACHE",
- "SIOCBRDGGFD",
- "SIOCBRDGGHT",
- "SIOCBRDGGIFFLGS",
- "SIOCBRDGGMA",
- "SIOCBRDGGPARAM",
- "SIOCBRDGGPRI",
- "SIOCBRDGGRL",
- "SIOCBRDGGSIFS",
- "SIOCBRDGGTO",
- "SIOCBRDGIFS",
- "SIOCBRDGRTS",
- "SIOCBRDGSADDR",
- "SIOCBRDGSCACHE",
- "SIOCBRDGSFD",
- "SIOCBRDGSHT",
- "SIOCBRDGSIFCOST",
- "SIOCBRDGSIFFLGS",
- "SIOCBRDGSIFPRIO",
- "SIOCBRDGSMA",
- "SIOCBRDGSPRI",
- "SIOCBRDGSPROTO",
- "SIOCBRDGSTO",
- "SIOCBRDGSTXHC",
- "SIOCDARP",
- "SIOCDELDLCI",
- "SIOCDELMULTI",
- "SIOCDELRT",
- "SIOCDEVPRIVATE",
- "SIOCDIFADDR",
- "SIOCDIFGROUP",
- "SIOCDIFPHYADDR",
- "SIOCDLIFADDR",
- "SIOCDRARP",
- "SIOCGARP",
- "SIOCGDRVSPEC",
- "SIOCGETKALIVE",
- "SIOCGETLABEL",
- "SIOCGETPFLOW",
- "SIOCGETPFSYNC",
- "SIOCGETSGCNT",
- "SIOCGETVIFCNT",
- "SIOCGETVLAN",
- "SIOCGHIWAT",
- "SIOCGIFADDR",
- "SIOCGIFADDRPREF",
- "SIOCGIFALIAS",
- "SIOCGIFALTMTU",
- "SIOCGIFASYNCMAP",
- "SIOCGIFBOND",
- "SIOCGIFBR",
- "SIOCGIFBRDADDR",
- "SIOCGIFCAP",
- "SIOCGIFCONF",
- "SIOCGIFCOUNT",
- "SIOCGIFDATA",
- "SIOCGIFDESCR",
- "SIOCGIFDEVMTU",
- "SIOCGIFDLT",
- "SIOCGIFDSTADDR",
- "SIOCGIFENCAP",
- "SIOCGIFFIB",
- "SIOCGIFFLAGS",
- "SIOCGIFGATTR",
- "SIOCGIFGENERIC",
- "SIOCGIFGMEMB",
- "SIOCGIFGROUP",
- "SIOCGIFHARDMTU",
- "SIOCGIFHWADDR",
- "SIOCGIFINDEX",
- "SIOCGIFKPI",
- "SIOCGIFMAC",
- "SIOCGIFMAP",
- "SIOCGIFMEDIA",
- "SIOCGIFMEM",
- "SIOCGIFMETRIC",
- "SIOCGIFMTU",
- "SIOCGIFNAME",
- "SIOCGIFNETMASK",
- "SIOCGIFPDSTADDR",
- "SIOCGIFPFLAGS",
- "SIOCGIFPHYS",
- "SIOCGIFPRIORITY",
- "SIOCGIFPSRCADDR",
- "SIOCGIFRDOMAIN",
- "SIOCGIFRTLABEL",
- "SIOCGIFSLAVE",
- "SIOCGIFSTATUS",
- "SIOCGIFTIMESLOT",
- "SIOCGIFTXQLEN",
- "SIOCGIFVLAN",
- "SIOCGIFWAKEFLAGS",
- "SIOCGIFXFLAGS",
- "SIOCGLIFADDR",
- "SIOCGLIFPHYADDR",
- "SIOCGLIFPHYRTABLE",
- "SIOCGLIFPHYTTL",
- "SIOCGLINKSTR",
- "SIOCGLOWAT",
- "SIOCGPGRP",
- "SIOCGPRIVATE_0",
- "SIOCGPRIVATE_1",
- "SIOCGRARP",
- "SIOCGSPPPPARAMS",
- "SIOCGSTAMP",
- "SIOCGSTAMPNS",
- "SIOCGVH",
- "SIOCGVNETID",
- "SIOCIFCREATE",
- "SIOCIFCREATE2",
- "SIOCIFDESTROY",
- "SIOCIFGCLONERS",
- "SIOCINITIFADDR",
- "SIOCPROTOPRIVATE",
- "SIOCRSLVMULTI",
- "SIOCRTMSG",
- "SIOCSARP",
- "SIOCSDRVSPEC",
- "SIOCSETKALIVE",
- "SIOCSETLABEL",
- "SIOCSETPFLOW",
- "SIOCSETPFSYNC",
- "SIOCSETVLAN",
- "SIOCSHIWAT",
- "SIOCSIFADDR",
- "SIOCSIFADDRPREF",
- "SIOCSIFALTMTU",
- "SIOCSIFASYNCMAP",
- "SIOCSIFBOND",
- "SIOCSIFBR",
- "SIOCSIFBRDADDR",
- "SIOCSIFCAP",
- "SIOCSIFDESCR",
- "SIOCSIFDSTADDR",
- "SIOCSIFENCAP",
- "SIOCSIFFIB",
- "SIOCSIFFLAGS",
- "SIOCSIFGATTR",
- "SIOCSIFGENERIC",
- "SIOCSIFHWADDR",
- "SIOCSIFHWBROADCAST",
- "SIOCSIFKPI",
- "SIOCSIFLINK",
- "SIOCSIFLLADDR",
- "SIOCSIFMAC",
- "SIOCSIFMAP",
- "SIOCSIFMEDIA",
- "SIOCSIFMEM",
- "SIOCSIFMETRIC",
- "SIOCSIFMTU",
- "SIOCSIFNAME",
- "SIOCSIFNETMASK",
- "SIOCSIFPFLAGS",
- "SIOCSIFPHYADDR",
- "SIOCSIFPHYS",
- "SIOCSIFPRIORITY",
- "SIOCSIFRDOMAIN",
- "SIOCSIFRTLABEL",
- "SIOCSIFRVNET",
- "SIOCSIFSLAVE",
- "SIOCSIFTIMESLOT",
- "SIOCSIFTXQLEN",
- "SIOCSIFVLAN",
- "SIOCSIFVNET",
- "SIOCSIFXFLAGS",
- "SIOCSLIFPHYADDR",
- "SIOCSLIFPHYRTABLE",
- "SIOCSLIFPHYTTL",
- "SIOCSLINKSTR",
- "SIOCSLOWAT",
- "SIOCSPGRP",
- "SIOCSRARP",
- "SIOCSSPPPPARAMS",
- "SIOCSVH",
- "SIOCSVNETID",
- "SIOCZIFDATA",
- "SIO_GET_EXTENSION_FUNCTION_POINTER",
- "SIO_GET_INTERFACE_LIST",
- "SIO_KEEPALIVE_VALS",
- "SIO_UDP_CONNRESET",
- "SOCK_CLOEXEC",
- "SOCK_DCCP",
- "SOCK_DGRAM",
- "SOCK_FLAGS_MASK",
- "SOCK_MAXADDRLEN",
- "SOCK_NONBLOCK",
- "SOCK_NOSIGPIPE",
- "SOCK_PACKET",
- "SOCK_RAW",
- "SOCK_RDM",
- "SOCK_SEQPACKET",
- "SOCK_STREAM",
- "SOL_AAL",
- "SOL_ATM",
- "SOL_DECNET",
- "SOL_ICMPV6",
- "SOL_IP",
- "SOL_IPV6",
- "SOL_IRDA",
- "SOL_PACKET",
- "SOL_RAW",
- "SOL_SOCKET",
- "SOL_TCP",
- "SOL_X25",
- "SOMAXCONN",
- "SO_ACCEPTCONN",
- "SO_ACCEPTFILTER",
- "SO_ATTACH_FILTER",
- "SO_BINDANY",
- "SO_BINDTODEVICE",
- "SO_BINTIME",
- "SO_BROADCAST",
- "SO_BSDCOMPAT",
- "SO_DEBUG",
- "SO_DETACH_FILTER",
- "SO_DOMAIN",
- "SO_DONTROUTE",
- "SO_DONTTRUNC",
- "SO_ERROR",
- "SO_KEEPALIVE",
- "SO_LABEL",
- "SO_LINGER",
- "SO_LINGER_SEC",
- "SO_LISTENINCQLEN",
- "SO_LISTENQLEN",
- "SO_LISTENQLIMIT",
- "SO_MARK",
- "SO_NETPROC",
- "SO_NKE",
- "SO_NOADDRERR",
- "SO_NOHEADER",
- "SO_NOSIGPIPE",
- "SO_NOTIFYCONFLICT",
- "SO_NO_CHECK",
- "SO_NO_DDP",
- "SO_NO_OFFLOAD",
- "SO_NP_EXTENSIONS",
- "SO_NREAD",
- "SO_NUMRCVPKT",
- "SO_NWRITE",
- "SO_OOBINLINE",
- "SO_OVERFLOWED",
- "SO_PASSCRED",
- "SO_PASSSEC",
- "SO_PEERCRED",
- "SO_PEERLABEL",
- "SO_PEERNAME",
- "SO_PEERSEC",
- "SO_PRIORITY",
- "SO_PROTOCOL",
- "SO_PROTOTYPE",
- "SO_RANDOMPORT",
- "SO_RCVBUF",
- "SO_RCVBUFFORCE",
- "SO_RCVLOWAT",
- "SO_RCVTIMEO",
- "SO_RESTRICTIONS",
- "SO_RESTRICT_DENYIN",
- "SO_RESTRICT_DENYOUT",
- "SO_RESTRICT_DENYSET",
- "SO_REUSEADDR",
- "SO_REUSEPORT",
- "SO_REUSESHAREUID",
- "SO_RTABLE",
- "SO_RXQ_OVFL",
- "SO_SECURITY_AUTHENTICATION",
- "SO_SECURITY_ENCRYPTION_NETWORK",
- "SO_SECURITY_ENCRYPTION_TRANSPORT",
- "SO_SETFIB",
- "SO_SNDBUF",
- "SO_SNDBUFFORCE",
- "SO_SNDLOWAT",
- "SO_SNDTIMEO",
- "SO_SPLICE",
- "SO_TIMESTAMP",
- "SO_TIMESTAMPING",
- "SO_TIMESTAMPNS",
- "SO_TIMESTAMP_MONOTONIC",
- "SO_TYPE",
- "SO_UPCALLCLOSEWAIT",
- "SO_UPDATE_ACCEPT_CONTEXT",
- "SO_UPDATE_CONNECT_CONTEXT",
- "SO_USELOOPBACK",
- "SO_USER_COOKIE",
- "SO_VENDOR",
- "SO_WANTMORE",
- "SO_WANTOOBFLAG",
- "SSLExtraCertChainPolicyPara",
- "STANDARD_RIGHTS_ALL",
- "STANDARD_RIGHTS_EXECUTE",
- "STANDARD_RIGHTS_READ",
- "STANDARD_RIGHTS_REQUIRED",
- "STANDARD_RIGHTS_WRITE",
- "STARTF_USESHOWWINDOW",
- "STARTF_USESTDHANDLES",
- "STD_ERROR_HANDLE",
- "STD_INPUT_HANDLE",
- "STD_OUTPUT_HANDLE",
- "SUBLANG_ENGLISH_US",
- "SW_FORCEMINIMIZE",
- "SW_HIDE",
- "SW_MAXIMIZE",
- "SW_MINIMIZE",
- "SW_NORMAL",
- "SW_RESTORE",
- "SW_SHOW",
- "SW_SHOWDEFAULT",
- "SW_SHOWMAXIMIZED",
- "SW_SHOWMINIMIZED",
- "SW_SHOWMINNOACTIVE",
- "SW_SHOWNA",
- "SW_SHOWNOACTIVATE",
- "SW_SHOWNORMAL",
- "SYMBOLIC_LINK_FLAG_DIRECTORY",
- "SYNCHRONIZE",
- "SYSCTL_VERSION",
- "SYSCTL_VERS_0",
- "SYSCTL_VERS_1",
- "SYSCTL_VERS_MASK",
- "SYS_ABORT2",
- "SYS_ACCEPT",
- "SYS_ACCEPT4",
- "SYS_ACCEPT_NOCANCEL",
- "SYS_ACCESS",
- "SYS_ACCESS_EXTENDED",
- "SYS_ACCT",
- "SYS_ADD_KEY",
- "SYS_ADD_PROFIL",
- "SYS_ADJFREQ",
- "SYS_ADJTIME",
- "SYS_ADJTIMEX",
- "SYS_AFS_SYSCALL",
- "SYS_AIO_CANCEL",
- "SYS_AIO_ERROR",
- "SYS_AIO_FSYNC",
- "SYS_AIO_MLOCK",
- "SYS_AIO_READ",
- "SYS_AIO_RETURN",
- "SYS_AIO_SUSPEND",
- "SYS_AIO_SUSPEND_NOCANCEL",
- "SYS_AIO_WAITCOMPLETE",
- "SYS_AIO_WRITE",
- "SYS_ALARM",
- "SYS_ARCH_PRCTL",
- "SYS_ARM_FADVISE64_64",
- "SYS_ARM_SYNC_FILE_RANGE",
- "SYS_ATGETMSG",
- "SYS_ATPGETREQ",
- "SYS_ATPGETRSP",
- "SYS_ATPSNDREQ",
- "SYS_ATPSNDRSP",
- "SYS_ATPUTMSG",
- "SYS_ATSOCKET",
- "SYS_AUDIT",
- "SYS_AUDITCTL",
- "SYS_AUDITON",
- "SYS_AUDIT_SESSION_JOIN",
- "SYS_AUDIT_SESSION_PORT",
- "SYS_AUDIT_SESSION_SELF",
- "SYS_BDFLUSH",
- "SYS_BIND",
- "SYS_BINDAT",
- "SYS_BREAK",
- "SYS_BRK",
- "SYS_BSDTHREAD_CREATE",
- "SYS_BSDTHREAD_REGISTER",
- "SYS_BSDTHREAD_TERMINATE",
- "SYS_CAPGET",
- "SYS_CAPSET",
- "SYS_CAP_ENTER",
- "SYS_CAP_FCNTLS_GET",
- "SYS_CAP_FCNTLS_LIMIT",
- "SYS_CAP_GETMODE",
- "SYS_CAP_GETRIGHTS",
- "SYS_CAP_IOCTLS_GET",
- "SYS_CAP_IOCTLS_LIMIT",
- "SYS_CAP_NEW",
- "SYS_CAP_RIGHTS_GET",
- "SYS_CAP_RIGHTS_LIMIT",
- "SYS_CHDIR",
- "SYS_CHFLAGS",
- "SYS_CHFLAGSAT",
- "SYS_CHMOD",
- "SYS_CHMOD_EXTENDED",
- "SYS_CHOWN",
- "SYS_CHOWN32",
- "SYS_CHROOT",
- "SYS_CHUD",
- "SYS_CLOCK_ADJTIME",
- "SYS_CLOCK_GETCPUCLOCKID2",
- "SYS_CLOCK_GETRES",
- "SYS_CLOCK_GETTIME",
- "SYS_CLOCK_NANOSLEEP",
- "SYS_CLOCK_SETTIME",
- "SYS_CLONE",
- "SYS_CLOSE",
- "SYS_CLOSEFROM",
- "SYS_CLOSE_NOCANCEL",
- "SYS_CONNECT",
- "SYS_CONNECTAT",
- "SYS_CONNECT_NOCANCEL",
- "SYS_COPYFILE",
- "SYS_CPUSET",
- "SYS_CPUSET_GETAFFINITY",
- "SYS_CPUSET_GETID",
- "SYS_CPUSET_SETAFFINITY",
- "SYS_CPUSET_SETID",
- "SYS_CREAT",
- "SYS_CREATE_MODULE",
- "SYS_CSOPS",
- "SYS_CSOPS_AUDITTOKEN",
- "SYS_DELETE",
- "SYS_DELETE_MODULE",
- "SYS_DUP",
- "SYS_DUP2",
- "SYS_DUP3",
- "SYS_EACCESS",
- "SYS_EPOLL_CREATE",
- "SYS_EPOLL_CREATE1",
- "SYS_EPOLL_CTL",
- "SYS_EPOLL_CTL_OLD",
- "SYS_EPOLL_PWAIT",
- "SYS_EPOLL_WAIT",
- "SYS_EPOLL_WAIT_OLD",
- "SYS_EVENTFD",
- "SYS_EVENTFD2",
- "SYS_EXCHANGEDATA",
- "SYS_EXECVE",
- "SYS_EXIT",
- "SYS_EXIT_GROUP",
- "SYS_EXTATTRCTL",
- "SYS_EXTATTR_DELETE_FD",
- "SYS_EXTATTR_DELETE_FILE",
- "SYS_EXTATTR_DELETE_LINK",
- "SYS_EXTATTR_GET_FD",
- "SYS_EXTATTR_GET_FILE",
- "SYS_EXTATTR_GET_LINK",
- "SYS_EXTATTR_LIST_FD",
- "SYS_EXTATTR_LIST_FILE",
- "SYS_EXTATTR_LIST_LINK",
- "SYS_EXTATTR_SET_FD",
- "SYS_EXTATTR_SET_FILE",
- "SYS_EXTATTR_SET_LINK",
- "SYS_FACCESSAT",
- "SYS_FADVISE64",
- "SYS_FADVISE64_64",
- "SYS_FALLOCATE",
- "SYS_FANOTIFY_INIT",
- "SYS_FANOTIFY_MARK",
- "SYS_FCHDIR",
- "SYS_FCHFLAGS",
- "SYS_FCHMOD",
- "SYS_FCHMODAT",
- "SYS_FCHMOD_EXTENDED",
- "SYS_FCHOWN",
- "SYS_FCHOWN32",
- "SYS_FCHOWNAT",
- "SYS_FCHROOT",
- "SYS_FCNTL",
- "SYS_FCNTL64",
- "SYS_FCNTL_NOCANCEL",
- "SYS_FDATASYNC",
- "SYS_FEXECVE",
- "SYS_FFCLOCK_GETCOUNTER",
- "SYS_FFCLOCK_GETESTIMATE",
- "SYS_FFCLOCK_SETESTIMATE",
- "SYS_FFSCTL",
- "SYS_FGETATTRLIST",
- "SYS_FGETXATTR",
- "SYS_FHOPEN",
- "SYS_FHSTAT",
- "SYS_FHSTATFS",
- "SYS_FILEPORT_MAKEFD",
- "SYS_FILEPORT_MAKEPORT",
- "SYS_FKTRACE",
- "SYS_FLISTXATTR",
- "SYS_FLOCK",
- "SYS_FORK",
- "SYS_FPATHCONF",
- "SYS_FREEBSD6_FTRUNCATE",
- "SYS_FREEBSD6_LSEEK",
- "SYS_FREEBSD6_MMAP",
- "SYS_FREEBSD6_PREAD",
- "SYS_FREEBSD6_PWRITE",
- "SYS_FREEBSD6_TRUNCATE",
- "SYS_FREMOVEXATTR",
- "SYS_FSCTL",
- "SYS_FSETATTRLIST",
- "SYS_FSETXATTR",
- "SYS_FSGETPATH",
- "SYS_FSTAT",
- "SYS_FSTAT64",
- "SYS_FSTAT64_EXTENDED",
- "SYS_FSTATAT",
- "SYS_FSTATAT64",
- "SYS_FSTATFS",
- "SYS_FSTATFS64",
- "SYS_FSTATV",
- "SYS_FSTATVFS1",
- "SYS_FSTAT_EXTENDED",
- "SYS_FSYNC",
- "SYS_FSYNC_NOCANCEL",
- "SYS_FSYNC_RANGE",
- "SYS_FTIME",
- "SYS_FTRUNCATE",
- "SYS_FTRUNCATE64",
- "SYS_FUTEX",
- "SYS_FUTIMENS",
- "SYS_FUTIMES",
- "SYS_FUTIMESAT",
- "SYS_GETATTRLIST",
- "SYS_GETAUDIT",
- "SYS_GETAUDIT_ADDR",
- "SYS_GETAUID",
- "SYS_GETCONTEXT",
- "SYS_GETCPU",
- "SYS_GETCWD",
- "SYS_GETDENTS",
- "SYS_GETDENTS64",
- "SYS_GETDIRENTRIES",
- "SYS_GETDIRENTRIES64",
- "SYS_GETDIRENTRIESATTR",
- "SYS_GETDTABLECOUNT",
- "SYS_GETDTABLESIZE",
- "SYS_GETEGID",
- "SYS_GETEGID32",
- "SYS_GETEUID",
- "SYS_GETEUID32",
- "SYS_GETFH",
- "SYS_GETFSSTAT",
- "SYS_GETFSSTAT64",
- "SYS_GETGID",
- "SYS_GETGID32",
- "SYS_GETGROUPS",
- "SYS_GETGROUPS32",
- "SYS_GETHOSTUUID",
- "SYS_GETITIMER",
- "SYS_GETLCID",
- "SYS_GETLOGIN",
- "SYS_GETLOGINCLASS",
- "SYS_GETPEERNAME",
- "SYS_GETPGID",
- "SYS_GETPGRP",
- "SYS_GETPID",
- "SYS_GETPMSG",
- "SYS_GETPPID",
- "SYS_GETPRIORITY",
- "SYS_GETRESGID",
- "SYS_GETRESGID32",
- "SYS_GETRESUID",
- "SYS_GETRESUID32",
- "SYS_GETRLIMIT",
- "SYS_GETRTABLE",
- "SYS_GETRUSAGE",
- "SYS_GETSGROUPS",
- "SYS_GETSID",
- "SYS_GETSOCKNAME",
- "SYS_GETSOCKOPT",
- "SYS_GETTHRID",
- "SYS_GETTID",
- "SYS_GETTIMEOFDAY",
- "SYS_GETUID",
- "SYS_GETUID32",
- "SYS_GETVFSSTAT",
- "SYS_GETWGROUPS",
- "SYS_GETXATTR",
- "SYS_GET_KERNEL_SYMS",
- "SYS_GET_MEMPOLICY",
- "SYS_GET_ROBUST_LIST",
- "SYS_GET_THREAD_AREA",
- "SYS_GSSD_SYSCALL",
- "SYS_GTTY",
- "SYS_IDENTITYSVC",
- "SYS_IDLE",
- "SYS_INITGROUPS",
- "SYS_INIT_MODULE",
- "SYS_INOTIFY_ADD_WATCH",
- "SYS_INOTIFY_INIT",
- "SYS_INOTIFY_INIT1",
- "SYS_INOTIFY_RM_WATCH",
- "SYS_IOCTL",
- "SYS_IOPERM",
- "SYS_IOPL",
- "SYS_IOPOLICYSYS",
- "SYS_IOPRIO_GET",
- "SYS_IOPRIO_SET",
- "SYS_IO_CANCEL",
- "SYS_IO_DESTROY",
- "SYS_IO_GETEVENTS",
- "SYS_IO_SETUP",
- "SYS_IO_SUBMIT",
- "SYS_IPC",
- "SYS_ISSETUGID",
- "SYS_JAIL",
- "SYS_JAIL_ATTACH",
- "SYS_JAIL_GET",
- "SYS_JAIL_REMOVE",
- "SYS_JAIL_SET",
- "SYS_KAS_INFO",
- "SYS_KDEBUG_TRACE",
- "SYS_KENV",
- "SYS_KEVENT",
- "SYS_KEVENT64",
- "SYS_KEXEC_LOAD",
- "SYS_KEYCTL",
- "SYS_KILL",
- "SYS_KLDFIND",
- "SYS_KLDFIRSTMOD",
- "SYS_KLDLOAD",
- "SYS_KLDNEXT",
- "SYS_KLDSTAT",
- "SYS_KLDSYM",
- "SYS_KLDUNLOAD",
- "SYS_KLDUNLOADF",
- "SYS_KMQ_NOTIFY",
- "SYS_KMQ_OPEN",
- "SYS_KMQ_SETATTR",
- "SYS_KMQ_TIMEDRECEIVE",
- "SYS_KMQ_TIMEDSEND",
- "SYS_KMQ_UNLINK",
- "SYS_KQUEUE",
- "SYS_KQUEUE1",
- "SYS_KSEM_CLOSE",
- "SYS_KSEM_DESTROY",
- "SYS_KSEM_GETVALUE",
- "SYS_KSEM_INIT",
- "SYS_KSEM_OPEN",
- "SYS_KSEM_POST",
- "SYS_KSEM_TIMEDWAIT",
- "SYS_KSEM_TRYWAIT",
- "SYS_KSEM_UNLINK",
- "SYS_KSEM_WAIT",
- "SYS_KTIMER_CREATE",
- "SYS_KTIMER_DELETE",
- "SYS_KTIMER_GETOVERRUN",
- "SYS_KTIMER_GETTIME",
- "SYS_KTIMER_SETTIME",
- "SYS_KTRACE",
- "SYS_LCHFLAGS",
- "SYS_LCHMOD",
- "SYS_LCHOWN",
- "SYS_LCHOWN32",
- "SYS_LEDGER",
- "SYS_LGETFH",
- "SYS_LGETXATTR",
- "SYS_LINK",
- "SYS_LINKAT",
- "SYS_LIO_LISTIO",
- "SYS_LISTEN",
- "SYS_LISTXATTR",
- "SYS_LLISTXATTR",
- "SYS_LOCK",
- "SYS_LOOKUP_DCOOKIE",
- "SYS_LPATHCONF",
- "SYS_LREMOVEXATTR",
- "SYS_LSEEK",
- "SYS_LSETXATTR",
- "SYS_LSTAT",
- "SYS_LSTAT64",
- "SYS_LSTAT64_EXTENDED",
- "SYS_LSTATV",
- "SYS_LSTAT_EXTENDED",
- "SYS_LUTIMES",
- "SYS_MAC_SYSCALL",
- "SYS_MADVISE",
- "SYS_MADVISE1",
- "SYS_MAXSYSCALL",
- "SYS_MBIND",
- "SYS_MIGRATE_PAGES",
- "SYS_MINCORE",
- "SYS_MINHERIT",
- "SYS_MKCOMPLEX",
- "SYS_MKDIR",
- "SYS_MKDIRAT",
- "SYS_MKDIR_EXTENDED",
- "SYS_MKFIFO",
- "SYS_MKFIFOAT",
- "SYS_MKFIFO_EXTENDED",
- "SYS_MKNOD",
- "SYS_MKNODAT",
- "SYS_MLOCK",
- "SYS_MLOCKALL",
- "SYS_MMAP",
- "SYS_MMAP2",
- "SYS_MODCTL",
- "SYS_MODFIND",
- "SYS_MODFNEXT",
- "SYS_MODIFY_LDT",
- "SYS_MODNEXT",
- "SYS_MODSTAT",
- "SYS_MODWATCH",
- "SYS_MOUNT",
- "SYS_MOVE_PAGES",
- "SYS_MPROTECT",
- "SYS_MPX",
- "SYS_MQUERY",
- "SYS_MQ_GETSETATTR",
- "SYS_MQ_NOTIFY",
- "SYS_MQ_OPEN",
- "SYS_MQ_TIMEDRECEIVE",
- "SYS_MQ_TIMEDSEND",
- "SYS_MQ_UNLINK",
- "SYS_MREMAP",
- "SYS_MSGCTL",
- "SYS_MSGGET",
- "SYS_MSGRCV",
- "SYS_MSGRCV_NOCANCEL",
- "SYS_MSGSND",
- "SYS_MSGSND_NOCANCEL",
- "SYS_MSGSYS",
- "SYS_MSYNC",
- "SYS_MSYNC_NOCANCEL",
- "SYS_MUNLOCK",
- "SYS_MUNLOCKALL",
- "SYS_MUNMAP",
- "SYS_NAME_TO_HANDLE_AT",
- "SYS_NANOSLEEP",
- "SYS_NEWFSTATAT",
- "SYS_NFSCLNT",
- "SYS_NFSSERVCTL",
- "SYS_NFSSVC",
- "SYS_NFSTAT",
- "SYS_NICE",
- "SYS_NLM_SYSCALL",
- "SYS_NLSTAT",
- "SYS_NMOUNT",
- "SYS_NSTAT",
- "SYS_NTP_ADJTIME",
- "SYS_NTP_GETTIME",
- "SYS_NUMA_GETAFFINITY",
- "SYS_NUMA_SETAFFINITY",
- "SYS_OABI_SYSCALL_BASE",
- "SYS_OBREAK",
- "SYS_OLDFSTAT",
- "SYS_OLDLSTAT",
- "SYS_OLDOLDUNAME",
- "SYS_OLDSTAT",
- "SYS_OLDUNAME",
- "SYS_OPEN",
- "SYS_OPENAT",
- "SYS_OPENBSD_POLL",
- "SYS_OPEN_BY_HANDLE_AT",
- "SYS_OPEN_DPROTECTED_NP",
- "SYS_OPEN_EXTENDED",
- "SYS_OPEN_NOCANCEL",
- "SYS_OVADVISE",
- "SYS_PACCEPT",
- "SYS_PATHCONF",
- "SYS_PAUSE",
- "SYS_PCICONFIG_IOBASE",
- "SYS_PCICONFIG_READ",
- "SYS_PCICONFIG_WRITE",
- "SYS_PDFORK",
- "SYS_PDGETPID",
- "SYS_PDKILL",
- "SYS_PERF_EVENT_OPEN",
- "SYS_PERSONALITY",
- "SYS_PID_HIBERNATE",
- "SYS_PID_RESUME",
- "SYS_PID_SHUTDOWN_SOCKETS",
- "SYS_PID_SUSPEND",
- "SYS_PIPE",
- "SYS_PIPE2",
- "SYS_PIVOT_ROOT",
- "SYS_PMC_CONTROL",
- "SYS_PMC_GET_INFO",
- "SYS_POLL",
- "SYS_POLLTS",
- "SYS_POLL_NOCANCEL",
- "SYS_POSIX_FADVISE",
- "SYS_POSIX_FALLOCATE",
- "SYS_POSIX_OPENPT",
- "SYS_POSIX_SPAWN",
- "SYS_PPOLL",
- "SYS_PRCTL",
- "SYS_PREAD",
- "SYS_PREAD64",
- "SYS_PREADV",
- "SYS_PREAD_NOCANCEL",
- "SYS_PRLIMIT64",
- "SYS_PROCCTL",
- "SYS_PROCESS_POLICY",
- "SYS_PROCESS_VM_READV",
- "SYS_PROCESS_VM_WRITEV",
- "SYS_PROC_INFO",
- "SYS_PROF",
- "SYS_PROFIL",
- "SYS_PSELECT",
- "SYS_PSELECT6",
- "SYS_PSET_ASSIGN",
- "SYS_PSET_CREATE",
- "SYS_PSET_DESTROY",
- "SYS_PSYNCH_CVBROAD",
- "SYS_PSYNCH_CVCLRPREPOST",
- "SYS_PSYNCH_CVSIGNAL",
- "SYS_PSYNCH_CVWAIT",
- "SYS_PSYNCH_MUTEXDROP",
- "SYS_PSYNCH_MUTEXWAIT",
- "SYS_PSYNCH_RW_DOWNGRADE",
- "SYS_PSYNCH_RW_LONGRDLOCK",
- "SYS_PSYNCH_RW_RDLOCK",
- "SYS_PSYNCH_RW_UNLOCK",
- "SYS_PSYNCH_RW_UNLOCK2",
- "SYS_PSYNCH_RW_UPGRADE",
- "SYS_PSYNCH_RW_WRLOCK",
- "SYS_PSYNCH_RW_YIELDWRLOCK",
- "SYS_PTRACE",
- "SYS_PUTPMSG",
- "SYS_PWRITE",
- "SYS_PWRITE64",
- "SYS_PWRITEV",
- "SYS_PWRITE_NOCANCEL",
- "SYS_QUERY_MODULE",
- "SYS_QUOTACTL",
- "SYS_RASCTL",
- "SYS_RCTL_ADD_RULE",
- "SYS_RCTL_GET_LIMITS",
- "SYS_RCTL_GET_RACCT",
- "SYS_RCTL_GET_RULES",
- "SYS_RCTL_REMOVE_RULE",
- "SYS_READ",
- "SYS_READAHEAD",
- "SYS_READDIR",
- "SYS_READLINK",
- "SYS_READLINKAT",
- "SYS_READV",
- "SYS_READV_NOCANCEL",
- "SYS_READ_NOCANCEL",
- "SYS_REBOOT",
- "SYS_RECV",
- "SYS_RECVFROM",
- "SYS_RECVFROM_NOCANCEL",
- "SYS_RECVMMSG",
- "SYS_RECVMSG",
- "SYS_RECVMSG_NOCANCEL",
- "SYS_REMAP_FILE_PAGES",
- "SYS_REMOVEXATTR",
- "SYS_RENAME",
- "SYS_RENAMEAT",
- "SYS_REQUEST_KEY",
- "SYS_RESTART_SYSCALL",
- "SYS_REVOKE",
- "SYS_RFORK",
- "SYS_RMDIR",
- "SYS_RTPRIO",
- "SYS_RTPRIO_THREAD",
- "SYS_RT_SIGACTION",
- "SYS_RT_SIGPENDING",
- "SYS_RT_SIGPROCMASK",
- "SYS_RT_SIGQUEUEINFO",
- "SYS_RT_SIGRETURN",
- "SYS_RT_SIGSUSPEND",
- "SYS_RT_SIGTIMEDWAIT",
- "SYS_RT_TGSIGQUEUEINFO",
- "SYS_SBRK",
- "SYS_SCHED_GETAFFINITY",
- "SYS_SCHED_GETPARAM",
- "SYS_SCHED_GETSCHEDULER",
- "SYS_SCHED_GET_PRIORITY_MAX",
- "SYS_SCHED_GET_PRIORITY_MIN",
- "SYS_SCHED_RR_GET_INTERVAL",
- "SYS_SCHED_SETAFFINITY",
- "SYS_SCHED_SETPARAM",
- "SYS_SCHED_SETSCHEDULER",
- "SYS_SCHED_YIELD",
- "SYS_SCTP_GENERIC_RECVMSG",
- "SYS_SCTP_GENERIC_SENDMSG",
- "SYS_SCTP_GENERIC_SENDMSG_IOV",
- "SYS_SCTP_PEELOFF",
- "SYS_SEARCHFS",
- "SYS_SECURITY",
- "SYS_SELECT",
- "SYS_SELECT_NOCANCEL",
- "SYS_SEMCONFIG",
- "SYS_SEMCTL",
- "SYS_SEMGET",
- "SYS_SEMOP",
- "SYS_SEMSYS",
- "SYS_SEMTIMEDOP",
- "SYS_SEM_CLOSE",
- "SYS_SEM_DESTROY",
- "SYS_SEM_GETVALUE",
- "SYS_SEM_INIT",
- "SYS_SEM_OPEN",
- "SYS_SEM_POST",
- "SYS_SEM_TRYWAIT",
- "SYS_SEM_UNLINK",
- "SYS_SEM_WAIT",
- "SYS_SEM_WAIT_NOCANCEL",
- "SYS_SEND",
- "SYS_SENDFILE",
- "SYS_SENDFILE64",
- "SYS_SENDMMSG",
- "SYS_SENDMSG",
- "SYS_SENDMSG_NOCANCEL",
- "SYS_SENDTO",
- "SYS_SENDTO_NOCANCEL",
- "SYS_SETATTRLIST",
- "SYS_SETAUDIT",
- "SYS_SETAUDIT_ADDR",
- "SYS_SETAUID",
- "SYS_SETCONTEXT",
- "SYS_SETDOMAINNAME",
- "SYS_SETEGID",
- "SYS_SETEUID",
- "SYS_SETFIB",
- "SYS_SETFSGID",
- "SYS_SETFSGID32",
- "SYS_SETFSUID",
- "SYS_SETFSUID32",
- "SYS_SETGID",
- "SYS_SETGID32",
- "SYS_SETGROUPS",
- "SYS_SETGROUPS32",
- "SYS_SETHOSTNAME",
- "SYS_SETITIMER",
- "SYS_SETLCID",
- "SYS_SETLOGIN",
- "SYS_SETLOGINCLASS",
- "SYS_SETNS",
- "SYS_SETPGID",
- "SYS_SETPRIORITY",
- "SYS_SETPRIVEXEC",
- "SYS_SETREGID",
- "SYS_SETREGID32",
- "SYS_SETRESGID",
- "SYS_SETRESGID32",
- "SYS_SETRESUID",
- "SYS_SETRESUID32",
- "SYS_SETREUID",
- "SYS_SETREUID32",
- "SYS_SETRLIMIT",
- "SYS_SETRTABLE",
- "SYS_SETSGROUPS",
- "SYS_SETSID",
- "SYS_SETSOCKOPT",
- "SYS_SETTID",
- "SYS_SETTID_WITH_PID",
- "SYS_SETTIMEOFDAY",
- "SYS_SETUID",
- "SYS_SETUID32",
- "SYS_SETWGROUPS",
- "SYS_SETXATTR",
- "SYS_SET_MEMPOLICY",
- "SYS_SET_ROBUST_LIST",
- "SYS_SET_THREAD_AREA",
- "SYS_SET_TID_ADDRESS",
- "SYS_SGETMASK",
- "SYS_SHARED_REGION_CHECK_NP",
- "SYS_SHARED_REGION_MAP_AND_SLIDE_NP",
- "SYS_SHMAT",
- "SYS_SHMCTL",
- "SYS_SHMDT",
- "SYS_SHMGET",
- "SYS_SHMSYS",
- "SYS_SHM_OPEN",
- "SYS_SHM_UNLINK",
- "SYS_SHUTDOWN",
- "SYS_SIGACTION",
- "SYS_SIGALTSTACK",
- "SYS_SIGNAL",
- "SYS_SIGNALFD",
- "SYS_SIGNALFD4",
- "SYS_SIGPENDING",
- "SYS_SIGPROCMASK",
- "SYS_SIGQUEUE",
- "SYS_SIGQUEUEINFO",
- "SYS_SIGRETURN",
- "SYS_SIGSUSPEND",
- "SYS_SIGSUSPEND_NOCANCEL",
- "SYS_SIGTIMEDWAIT",
- "SYS_SIGWAIT",
- "SYS_SIGWAITINFO",
- "SYS_SOCKET",
- "SYS_SOCKETCALL",
- "SYS_SOCKETPAIR",
- "SYS_SPLICE",
- "SYS_SSETMASK",
- "SYS_SSTK",
- "SYS_STACK_SNAPSHOT",
- "SYS_STAT",
- "SYS_STAT64",
- "SYS_STAT64_EXTENDED",
- "SYS_STATFS",
- "SYS_STATFS64",
- "SYS_STATV",
- "SYS_STATVFS1",
- "SYS_STAT_EXTENDED",
- "SYS_STIME",
- "SYS_STTY",
- "SYS_SWAPCONTEXT",
- "SYS_SWAPCTL",
- "SYS_SWAPOFF",
- "SYS_SWAPON",
- "SYS_SYMLINK",
- "SYS_SYMLINKAT",
- "SYS_SYNC",
- "SYS_SYNCFS",
- "SYS_SYNC_FILE_RANGE",
- "SYS_SYSARCH",
- "SYS_SYSCALL",
- "SYS_SYSCALL_BASE",
- "SYS_SYSFS",
- "SYS_SYSINFO",
- "SYS_SYSLOG",
- "SYS_TEE",
- "SYS_TGKILL",
- "SYS_THREAD_SELFID",
- "SYS_THR_CREATE",
- "SYS_THR_EXIT",
- "SYS_THR_KILL",
- "SYS_THR_KILL2",
- "SYS_THR_NEW",
- "SYS_THR_SELF",
- "SYS_THR_SET_NAME",
- "SYS_THR_SUSPEND",
- "SYS_THR_WAKE",
- "SYS_TIME",
- "SYS_TIMERFD_CREATE",
- "SYS_TIMERFD_GETTIME",
- "SYS_TIMERFD_SETTIME",
- "SYS_TIMER_CREATE",
- "SYS_TIMER_DELETE",
- "SYS_TIMER_GETOVERRUN",
- "SYS_TIMER_GETTIME",
- "SYS_TIMER_SETTIME",
- "SYS_TIMES",
- "SYS_TKILL",
- "SYS_TRUNCATE",
- "SYS_TRUNCATE64",
- "SYS_TUXCALL",
- "SYS_UGETRLIMIT",
- "SYS_ULIMIT",
- "SYS_UMASK",
- "SYS_UMASK_EXTENDED",
- "SYS_UMOUNT",
- "SYS_UMOUNT2",
- "SYS_UNAME",
- "SYS_UNDELETE",
- "SYS_UNLINK",
- "SYS_UNLINKAT",
- "SYS_UNMOUNT",
- "SYS_UNSHARE",
- "SYS_USELIB",
- "SYS_USTAT",
- "SYS_UTIME",
- "SYS_UTIMENSAT",
- "SYS_UTIMES",
- "SYS_UTRACE",
- "SYS_UUIDGEN",
- "SYS_VADVISE",
- "SYS_VFORK",
- "SYS_VHANGUP",
- "SYS_VM86",
- "SYS_VM86OLD",
- "SYS_VMSPLICE",
- "SYS_VM_PRESSURE_MONITOR",
- "SYS_VSERVER",
- "SYS_WAIT4",
- "SYS_WAIT4_NOCANCEL",
- "SYS_WAIT6",
- "SYS_WAITEVENT",
- "SYS_WAITID",
- "SYS_WAITID_NOCANCEL",
- "SYS_WAITPID",
- "SYS_WATCHEVENT",
- "SYS_WORKQ_KERNRETURN",
- "SYS_WORKQ_OPEN",
- "SYS_WRITE",
- "SYS_WRITEV",
- "SYS_WRITEV_NOCANCEL",
- "SYS_WRITE_NOCANCEL",
- "SYS_YIELD",
- "SYS__LLSEEK",
- "SYS__LWP_CONTINUE",
- "SYS__LWP_CREATE",
- "SYS__LWP_CTL",
- "SYS__LWP_DETACH",
- "SYS__LWP_EXIT",
- "SYS__LWP_GETNAME",
- "SYS__LWP_GETPRIVATE",
- "SYS__LWP_KILL",
- "SYS__LWP_PARK",
- "SYS__LWP_SELF",
- "SYS__LWP_SETNAME",
- "SYS__LWP_SETPRIVATE",
- "SYS__LWP_SUSPEND",
- "SYS__LWP_UNPARK",
- "SYS__LWP_UNPARK_ALL",
- "SYS__LWP_WAIT",
- "SYS__LWP_WAKEUP",
- "SYS__NEWSELECT",
- "SYS__PSET_BIND",
- "SYS__SCHED_GETAFFINITY",
- "SYS__SCHED_GETPARAM",
- "SYS__SCHED_SETAFFINITY",
- "SYS__SCHED_SETPARAM",
- "SYS__SYSCTL",
- "SYS__UMTX_LOCK",
- "SYS__UMTX_OP",
- "SYS__UMTX_UNLOCK",
- "SYS___ACL_ACLCHECK_FD",
- "SYS___ACL_ACLCHECK_FILE",
- "SYS___ACL_ACLCHECK_LINK",
- "SYS___ACL_DELETE_FD",
- "SYS___ACL_DELETE_FILE",
- "SYS___ACL_DELETE_LINK",
- "SYS___ACL_GET_FD",
- "SYS___ACL_GET_FILE",
- "SYS___ACL_GET_LINK",
- "SYS___ACL_SET_FD",
- "SYS___ACL_SET_FILE",
- "SYS___ACL_SET_LINK",
- "SYS___CAP_RIGHTS_GET",
- "SYS___CLONE",
- "SYS___DISABLE_THREADSIGNAL",
- "SYS___GETCWD",
- "SYS___GETLOGIN",
- "SYS___GET_TCB",
- "SYS___MAC_EXECVE",
- "SYS___MAC_GETFSSTAT",
- "SYS___MAC_GET_FD",
- "SYS___MAC_GET_FILE",
- "SYS___MAC_GET_LCID",
- "SYS___MAC_GET_LCTX",
- "SYS___MAC_GET_LINK",
- "SYS___MAC_GET_MOUNT",
- "SYS___MAC_GET_PID",
- "SYS___MAC_GET_PROC",
- "SYS___MAC_MOUNT",
- "SYS___MAC_SET_FD",
- "SYS___MAC_SET_FILE",
- "SYS___MAC_SET_LCTX",
- "SYS___MAC_SET_LINK",
- "SYS___MAC_SET_PROC",
- "SYS___MAC_SYSCALL",
- "SYS___OLD_SEMWAIT_SIGNAL",
- "SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL",
- "SYS___POSIX_CHOWN",
- "SYS___POSIX_FCHOWN",
- "SYS___POSIX_LCHOWN",
- "SYS___POSIX_RENAME",
- "SYS___PTHREAD_CANCELED",
- "SYS___PTHREAD_CHDIR",
- "SYS___PTHREAD_FCHDIR",
- "SYS___PTHREAD_KILL",
- "SYS___PTHREAD_MARKCANCEL",
- "SYS___PTHREAD_SIGMASK",
- "SYS___QUOTACTL",
- "SYS___SEMCTL",
- "SYS___SEMWAIT_SIGNAL",
- "SYS___SEMWAIT_SIGNAL_NOCANCEL",
- "SYS___SETLOGIN",
- "SYS___SETUGID",
- "SYS___SET_TCB",
- "SYS___SIGACTION_SIGTRAMP",
- "SYS___SIGTIMEDWAIT",
- "SYS___SIGWAIT",
- "SYS___SIGWAIT_NOCANCEL",
- "SYS___SYSCTL",
- "SYS___TFORK",
- "SYS___THREXIT",
- "SYS___THRSIGDIVERT",
- "SYS___THRSLEEP",
- "SYS___THRWAKEUP",
- "S_ARCH1",
- "S_ARCH2",
- "S_BLKSIZE",
- "S_IEXEC",
- "S_IFBLK",
- "S_IFCHR",
- "S_IFDIR",
- "S_IFIFO",
- "S_IFLNK",
- "S_IFMT",
- "S_IFREG",
- "S_IFSOCK",
- "S_IFWHT",
- "S_IREAD",
- "S_IRGRP",
- "S_IROTH",
- "S_IRUSR",
- "S_IRWXG",
- "S_IRWXO",
- "S_IRWXU",
- "S_ISGID",
- "S_ISTXT",
- "S_ISUID",
- "S_ISVTX",
- "S_IWGRP",
- "S_IWOTH",
- "S_IWRITE",
- "S_IWUSR",
- "S_IXGRP",
- "S_IXOTH",
- "S_IXUSR",
- "S_LOGIN_SET",
- "SecurityAttributes",
- "Seek",
- "Select",
- "Sendfile",
- "Sendmsg",
- "SendmsgN",
- "Sendto",
- "Servent",
- "SetBpf",
- "SetBpfBuflen",
- "SetBpfDatalink",
- "SetBpfHeadercmpl",
- "SetBpfImmediate",
- "SetBpfInterface",
- "SetBpfPromisc",
- "SetBpfTimeout",
- "SetCurrentDirectory",
- "SetEndOfFile",
- "SetEnvironmentVariable",
- "SetFileAttributes",
- "SetFileCompletionNotificationModes",
- "SetFilePointer",
- "SetFileTime",
- "SetHandleInformation",
- "SetKevent",
- "SetLsfPromisc",
- "SetNonblock",
- "Setdomainname",
- "Setegid",
- "Setenv",
- "Seteuid",
- "Setfsgid",
- "Setfsuid",
- "Setgid",
- "Setgroups",
- "Sethostname",
- "Setlogin",
- "Setpgid",
- "Setpriority",
- "Setprivexec",
- "Setregid",
- "Setresgid",
- "Setresuid",
- "Setreuid",
- "Setrlimit",
- "Setsid",
- "Setsockopt",
- "SetsockoptByte",
- "SetsockoptICMPv6Filter",
- "SetsockoptIPMreq",
- "SetsockoptIPMreqn",
- "SetsockoptIPv6Mreq",
- "SetsockoptInet4Addr",
- "SetsockoptInt",
- "SetsockoptLinger",
- "SetsockoptString",
- "SetsockoptTimeval",
- "Settimeofday",
- "Setuid",
- "Setxattr",
- "Shutdown",
- "SidTypeAlias",
- "SidTypeComputer",
- "SidTypeDeletedAccount",
- "SidTypeDomain",
- "SidTypeGroup",
- "SidTypeInvalid",
- "SidTypeLabel",
- "SidTypeUnknown",
- "SidTypeUser",
- "SidTypeWellKnownGroup",
- "Signal",
- "SizeofBpfHdr",
- "SizeofBpfInsn",
- "SizeofBpfProgram",
- "SizeofBpfStat",
- "SizeofBpfVersion",
- "SizeofBpfZbuf",
- "SizeofBpfZbufHeader",
- "SizeofCmsghdr",
- "SizeofICMPv6Filter",
- "SizeofIPMreq",
- "SizeofIPMreqn",
- "SizeofIPv6MTUInfo",
- "SizeofIPv6Mreq",
- "SizeofIfAddrmsg",
- "SizeofIfAnnounceMsghdr",
- "SizeofIfData",
- "SizeofIfInfomsg",
- "SizeofIfMsghdr",
- "SizeofIfaMsghdr",
- "SizeofIfmaMsghdr",
- "SizeofIfmaMsghdr2",
- "SizeofInet4Pktinfo",
- "SizeofInet6Pktinfo",
- "SizeofInotifyEvent",
- "SizeofLinger",
- "SizeofMsghdr",
- "SizeofNlAttr",
- "SizeofNlMsgerr",
- "SizeofNlMsghdr",
- "SizeofRtAttr",
- "SizeofRtGenmsg",
- "SizeofRtMetrics",
- "SizeofRtMsg",
- "SizeofRtMsghdr",
- "SizeofRtNexthop",
- "SizeofSockFilter",
- "SizeofSockFprog",
- "SizeofSockaddrAny",
- "SizeofSockaddrDatalink",
- "SizeofSockaddrInet4",
- "SizeofSockaddrInet6",
- "SizeofSockaddrLinklayer",
- "SizeofSockaddrNetlink",
- "SizeofSockaddrUnix",
- "SizeofTCPInfo",
- "SizeofUcred",
- "SlicePtrFromStrings",
- "SockFilter",
- "SockFprog",
- "Sockaddr",
- "SockaddrDatalink",
- "SockaddrGen",
- "SockaddrInet4",
- "SockaddrInet6",
- "SockaddrLinklayer",
- "SockaddrNetlink",
- "SockaddrUnix",
- "Socket",
- "SocketControlMessage",
- "SocketDisableIPv6",
- "Socketpair",
- "Splice",
- "StartProcess",
- "StartupInfo",
- "Stat",
- "Stat_t",
- "Statfs",
- "Statfs_t",
- "Stderr",
- "Stdin",
- "Stdout",
- "StringBytePtr",
- "StringByteSlice",
- "StringSlicePtr",
- "StringToSid",
- "StringToUTF16",
- "StringToUTF16Ptr",
- "Symlink",
- "Sync",
- "SyncFileRange",
- "SysProcAttr",
- "SysProcIDMap",
- "Syscall",
- "Syscall12",
- "Syscall15",
- "Syscall18",
- "Syscall6",
- "Syscall9",
- "SyscallN",
- "Sysctl",
- "SysctlUint32",
- "Sysctlnode",
- "Sysinfo",
- "Sysinfo_t",
- "Systemtime",
- "TCGETS",
- "TCIFLUSH",
- "TCIOFLUSH",
- "TCOFLUSH",
- "TCPInfo",
- "TCPKeepalive",
- "TCP_CA_NAME_MAX",
- "TCP_CONGCTL",
- "TCP_CONGESTION",
- "TCP_CONNECTIONTIMEOUT",
- "TCP_CORK",
- "TCP_DEFER_ACCEPT",
- "TCP_ENABLE_ECN",
- "TCP_INFO",
- "TCP_KEEPALIVE",
- "TCP_KEEPCNT",
- "TCP_KEEPIDLE",
- "TCP_KEEPINIT",
- "TCP_KEEPINTVL",
- "TCP_LINGER2",
- "TCP_MAXBURST",
- "TCP_MAXHLEN",
- "TCP_MAXOLEN",
- "TCP_MAXSEG",
- "TCP_MAXWIN",
- "TCP_MAX_SACK",
- "TCP_MAX_WINSHIFT",
- "TCP_MD5SIG",
- "TCP_MD5SIG_MAXKEYLEN",
- "TCP_MINMSS",
- "TCP_MINMSSOVERLOAD",
- "TCP_MSS",
- "TCP_NODELAY",
- "TCP_NOOPT",
- "TCP_NOPUSH",
- "TCP_NOTSENT_LOWAT",
- "TCP_NSTATES",
- "TCP_QUICKACK",
- "TCP_RXT_CONNDROPTIME",
- "TCP_RXT_FINDROP",
- "TCP_SACK_ENABLE",
- "TCP_SENDMOREACKS",
- "TCP_SYNCNT",
- "TCP_VENDOR",
- "TCP_WINDOW_CLAMP",
- "TCSAFLUSH",
- "TCSETS",
- "TF_DISCONNECT",
- "TF_REUSE_SOCKET",
- "TF_USE_DEFAULT_WORKER",
- "TF_USE_KERNEL_APC",
- "TF_USE_SYSTEM_THREAD",
- "TF_WRITE_BEHIND",
- "TH32CS_INHERIT",
- "TH32CS_SNAPALL",
- "TH32CS_SNAPHEAPLIST",
- "TH32CS_SNAPMODULE",
- "TH32CS_SNAPMODULE32",
- "TH32CS_SNAPPROCESS",
- "TH32CS_SNAPTHREAD",
- "TIME_ZONE_ID_DAYLIGHT",
- "TIME_ZONE_ID_STANDARD",
- "TIME_ZONE_ID_UNKNOWN",
- "TIOCCBRK",
- "TIOCCDTR",
- "TIOCCONS",
- "TIOCDCDTIMESTAMP",
- "TIOCDRAIN",
- "TIOCDSIMICROCODE",
- "TIOCEXCL",
- "TIOCEXT",
- "TIOCFLAG_CDTRCTS",
- "TIOCFLAG_CLOCAL",
- "TIOCFLAG_CRTSCTS",
- "TIOCFLAG_MDMBUF",
- "TIOCFLAG_PPS",
- "TIOCFLAG_SOFTCAR",
- "TIOCFLUSH",
- "TIOCGDEV",
- "TIOCGDRAINWAIT",
- "TIOCGETA",
- "TIOCGETD",
- "TIOCGFLAGS",
- "TIOCGICOUNT",
- "TIOCGLCKTRMIOS",
- "TIOCGLINED",
- "TIOCGPGRP",
- "TIOCGPTN",
- "TIOCGQSIZE",
- "TIOCGRANTPT",
- "TIOCGRS485",
- "TIOCGSERIAL",
- "TIOCGSID",
- "TIOCGSIZE",
- "TIOCGSOFTCAR",
- "TIOCGTSTAMP",
- "TIOCGWINSZ",
- "TIOCINQ",
- "TIOCIXOFF",
- "TIOCIXON",
- "TIOCLINUX",
- "TIOCMBIC",
- "TIOCMBIS",
- "TIOCMGDTRWAIT",
- "TIOCMGET",
- "TIOCMIWAIT",
- "TIOCMODG",
- "TIOCMODS",
- "TIOCMSDTRWAIT",
- "TIOCMSET",
- "TIOCM_CAR",
- "TIOCM_CD",
- "TIOCM_CTS",
- "TIOCM_DCD",
- "TIOCM_DSR",
- "TIOCM_DTR",
- "TIOCM_LE",
- "TIOCM_RI",
- "TIOCM_RNG",
- "TIOCM_RTS",
- "TIOCM_SR",
- "TIOCM_ST",
- "TIOCNOTTY",
- "TIOCNXCL",
- "TIOCOUTQ",
- "TIOCPKT",
- "TIOCPKT_DATA",
- "TIOCPKT_DOSTOP",
- "TIOCPKT_FLUSHREAD",
- "TIOCPKT_FLUSHWRITE",
- "TIOCPKT_IOCTL",
- "TIOCPKT_NOSTOP",
- "TIOCPKT_START",
- "TIOCPKT_STOP",
- "TIOCPTMASTER",
- "TIOCPTMGET",
- "TIOCPTSNAME",
- "TIOCPTYGNAME",
- "TIOCPTYGRANT",
- "TIOCPTYUNLK",
- "TIOCRCVFRAME",
- "TIOCREMOTE",
- "TIOCSBRK",
- "TIOCSCONS",
- "TIOCSCTTY",
- "TIOCSDRAINWAIT",
- "TIOCSDTR",
- "TIOCSERCONFIG",
- "TIOCSERGETLSR",
- "TIOCSERGETMULTI",
- "TIOCSERGSTRUCT",
- "TIOCSERGWILD",
- "TIOCSERSETMULTI",
- "TIOCSERSWILD",
- "TIOCSER_TEMT",
- "TIOCSETA",
- "TIOCSETAF",
- "TIOCSETAW",
- "TIOCSETD",
- "TIOCSFLAGS",
- "TIOCSIG",
- "TIOCSLCKTRMIOS",
- "TIOCSLINED",
- "TIOCSPGRP",
- "TIOCSPTLCK",
- "TIOCSQSIZE",
- "TIOCSRS485",
- "TIOCSSERIAL",
- "TIOCSSIZE",
- "TIOCSSOFTCAR",
- "TIOCSTART",
- "TIOCSTAT",
- "TIOCSTI",
- "TIOCSTOP",
- "TIOCSTSTAMP",
- "TIOCSWINSZ",
- "TIOCTIMESTAMP",
- "TIOCUCNTL",
- "TIOCVHANGUP",
- "TIOCXMTFRAME",
- "TOKEN_ADJUST_DEFAULT",
- "TOKEN_ADJUST_GROUPS",
- "TOKEN_ADJUST_PRIVILEGES",
- "TOKEN_ADJUST_SESSIONID",
- "TOKEN_ALL_ACCESS",
- "TOKEN_ASSIGN_PRIMARY",
- "TOKEN_DUPLICATE",
- "TOKEN_EXECUTE",
- "TOKEN_IMPERSONATE",
- "TOKEN_QUERY",
- "TOKEN_QUERY_SOURCE",
- "TOKEN_READ",
- "TOKEN_WRITE",
- "TOSTOP",
- "TRUNCATE_EXISTING",
- "TUNATTACHFILTER",
- "TUNDETACHFILTER",
- "TUNGETFEATURES",
- "TUNGETIFF",
- "TUNGETSNDBUF",
- "TUNGETVNETHDRSZ",
- "TUNSETDEBUG",
- "TUNSETGROUP",
- "TUNSETIFF",
- "TUNSETLINK",
- "TUNSETNOCSUM",
- "TUNSETOFFLOAD",
- "TUNSETOWNER",
- "TUNSETPERSIST",
- "TUNSETSNDBUF",
- "TUNSETTXFILTER",
- "TUNSETVNETHDRSZ",
- "Tee",
- "TerminateProcess",
- "Termios",
- "Tgkill",
- "Time",
- "Time_t",
- "Times",
- "Timespec",
- "TimespecToNsec",
- "Timeval",
- "Timeval32",
- "TimevalToNsec",
- "Timex",
- "Timezoneinformation",
- "Tms",
- "Token",
- "TokenAccessInformation",
- "TokenAuditPolicy",
- "TokenDefaultDacl",
- "TokenElevation",
- "TokenElevationType",
- "TokenGroups",
- "TokenGroupsAndPrivileges",
- "TokenHasRestrictions",
- "TokenImpersonationLevel",
- "TokenIntegrityLevel",
- "TokenLinkedToken",
- "TokenLogonSid",
- "TokenMandatoryPolicy",
- "TokenOrigin",
- "TokenOwner",
- "TokenPrimaryGroup",
- "TokenPrivileges",
- "TokenRestrictedSids",
- "TokenSandBoxInert",
- "TokenSessionId",
- "TokenSessionReference",
- "TokenSource",
- "TokenStatistics",
- "TokenType",
- "TokenUIAccess",
- "TokenUser",
- "TokenVirtualizationAllowed",
- "TokenVirtualizationEnabled",
- "Tokenprimarygroup",
- "Tokenuser",
- "TranslateAccountName",
- "TranslateName",
- "TransmitFile",
- "TransmitFileBuffers",
- "Truncate",
- "UNIX_PATH_MAX",
- "USAGE_MATCH_TYPE_AND",
- "USAGE_MATCH_TYPE_OR",
- "UTF16FromString",
- "UTF16PtrFromString",
- "UTF16ToString",
- "Ucred",
- "Umask",
- "Uname",
- "Undelete",
- "UnixCredentials",
- "UnixRights",
- "Unlink",
- "Unlinkat",
- "UnmapViewOfFile",
- "Unmount",
- "Unsetenv",
- "Unshare",
- "UserInfo10",
- "Ustat",
- "Ustat_t",
- "Utimbuf",
- "Utime",
- "Utimes",
- "UtimesNano",
- "Utsname",
- "VDISCARD",
- "VDSUSP",
- "VEOF",
- "VEOL",
- "VEOL2",
- "VERASE",
- "VERASE2",
- "VINTR",
- "VKILL",
- "VLNEXT",
- "VMIN",
- "VQUIT",
- "VREPRINT",
- "VSTART",
- "VSTATUS",
- "VSTOP",
- "VSUSP",
- "VSWTC",
- "VT0",
- "VT1",
- "VTDLY",
- "VTIME",
- "VWERASE",
- "VirtualLock",
- "VirtualUnlock",
- "WAIT_ABANDONED",
- "WAIT_FAILED",
- "WAIT_OBJECT_0",
- "WAIT_TIMEOUT",
- "WALL",
- "WALLSIG",
- "WALTSIG",
- "WCLONE",
- "WCONTINUED",
- "WCOREFLAG",
- "WEXITED",
- "WLINUXCLONE",
- "WNOHANG",
- "WNOTHREAD",
- "WNOWAIT",
- "WNOZOMBIE",
- "WOPTSCHECKED",
- "WORDSIZE",
- "WSABuf",
- "WSACleanup",
- "WSADESCRIPTION_LEN",
- "WSAData",
- "WSAEACCES",
- "WSAECONNABORTED",
- "WSAECONNRESET",
- "WSAEnumProtocols",
- "WSAID_CONNECTEX",
- "WSAIoctl",
- "WSAPROTOCOL_LEN",
- "WSAProtocolChain",
- "WSAProtocolInfo",
- "WSARecv",
- "WSARecvFrom",
- "WSASYS_STATUS_LEN",
- "WSASend",
- "WSASendTo",
- "WSASendto",
- "WSAStartup",
- "WSTOPPED",
- "WTRAPPED",
- "WUNTRACED",
- "Wait4",
- "WaitForSingleObject",
- "WaitStatus",
- "Win32FileAttributeData",
- "Win32finddata",
- "Write",
- "WriteConsole",
- "WriteFile",
- "X509_ASN_ENCODING",
- "XCASE",
- "XP1_CONNECTIONLESS",
- "XP1_CONNECT_DATA",
- "XP1_DISCONNECT_DATA",
- "XP1_EXPEDITED_DATA",
- "XP1_GRACEFUL_CLOSE",
- "XP1_GUARANTEED_DELIVERY",
- "XP1_GUARANTEED_ORDER",
- "XP1_IFS_HANDLES",
- "XP1_MESSAGE_ORIENTED",
- "XP1_MULTIPOINT_CONTROL_PLANE",
- "XP1_MULTIPOINT_DATA_PLANE",
- "XP1_PARTIAL_MESSAGE",
- "XP1_PSEUDO_STREAM",
- "XP1_QOS_SUPPORTED",
- "XP1_SAN_SUPPORT_SDP",
- "XP1_SUPPORT_BROADCAST",
- "XP1_SUPPORT_MULTIPOINT",
- "XP1_UNI_RECV",
- "XP1_UNI_SEND",
- },
- "syscall/js": {
- "CopyBytesToGo",
- "CopyBytesToJS",
- "Error",
- "Func",
- "FuncOf",
- "Global",
- "Null",
- "Type",
- "TypeBoolean",
- "TypeFunction",
- "TypeNull",
- "TypeNumber",
- "TypeObject",
- "TypeString",
- "TypeSymbol",
- "TypeUndefined",
- "Undefined",
- "Value",
- "ValueError",
- "ValueOf",
- },
- "testing": {
- "AllocsPerRun",
- "B",
- "Benchmark",
- "BenchmarkResult",
- "Cover",
- "CoverBlock",
- "CoverMode",
- "Coverage",
- "F",
- "Init",
- "InternalBenchmark",
- "InternalExample",
- "InternalFuzzTarget",
- "InternalTest",
- "M",
- "Main",
- "MainStart",
- "PB",
- "RegisterCover",
- "RunBenchmarks",
- "RunExamples",
- "RunTests",
- "Short",
- "T",
- "TB",
- "Testing",
- "Verbose",
- },
- "testing/fstest": {
- "MapFS",
- "MapFile",
- "TestFS",
- },
- "testing/iotest": {
- "DataErrReader",
- "ErrReader",
- "ErrTimeout",
- "HalfReader",
- "NewReadLogger",
- "NewWriteLogger",
- "OneByteReader",
- "TestReader",
- "TimeoutReader",
- "TruncateWriter",
- },
- "testing/quick": {
- "Check",
- "CheckEqual",
- "CheckEqualError",
- "CheckError",
- "Config",
- "Generator",
- "SetupError",
- "Value",
- },
- "testing/slogtest": {
- "Run",
- "TestHandler",
- },
- "text/scanner": {
- "Char",
- "Comment",
- "EOF",
- "Float",
- "GoTokens",
- "GoWhitespace",
- "Ident",
- "Int",
- "Position",
- "RawString",
- "ScanChars",
- "ScanComments",
- "ScanFloats",
- "ScanIdents",
- "ScanInts",
- "ScanRawStrings",
- "ScanStrings",
- "Scanner",
- "SkipComments",
- "String",
- "TokenString",
- },
- "text/tabwriter": {
- "AlignRight",
- "Debug",
- "DiscardEmptyColumns",
- "Escape",
- "FilterHTML",
- "NewWriter",
- "StripEscape",
- "TabIndent",
- "Writer",
- },
- "text/template": {
- "ExecError",
- "FuncMap",
- "HTMLEscape",
- "HTMLEscapeString",
- "HTMLEscaper",
- "IsTrue",
- "JSEscape",
- "JSEscapeString",
- "JSEscaper",
- "Must",
- "New",
- "ParseFS",
- "ParseFiles",
- "ParseGlob",
- "Template",
- "URLQueryEscaper",
- },
- "text/template/parse": {
- "ActionNode",
- "BoolNode",
- "BranchNode",
- "BreakNode",
- "ChainNode",
- "CommandNode",
- "CommentNode",
- "ContinueNode",
- "DotNode",
- "FieldNode",
- "IdentifierNode",
- "IfNode",
- "IsEmptyTree",
- "ListNode",
- "Mode",
- "New",
- "NewIdentifier",
- "NilNode",
- "Node",
- "NodeAction",
- "NodeBool",
- "NodeBreak",
- "NodeChain",
- "NodeCommand",
- "NodeComment",
- "NodeContinue",
- "NodeDot",
- "NodeField",
- "NodeIdentifier",
- "NodeIf",
- "NodeList",
- "NodeNil",
- "NodeNumber",
- "NodePipe",
- "NodeRange",
- "NodeString",
- "NodeTemplate",
- "NodeText",
- "NodeType",
- "NodeVariable",
- "NodeWith",
- "NumberNode",
- "Parse",
- "ParseComments",
- "PipeNode",
- "Pos",
- "RangeNode",
- "SkipFuncCheck",
- "StringNode",
- "TemplateNode",
- "TextNode",
- "Tree",
- "VariableNode",
- "WithNode",
- },
- "time": {
- "ANSIC",
- "After",
- "AfterFunc",
- "April",
- "August",
- "Date",
- "DateOnly",
- "DateTime",
- "December",
- "Duration",
- "February",
- "FixedZone",
- "Friday",
- "Hour",
- "January",
- "July",
- "June",
- "Kitchen",
- "Layout",
- "LoadLocation",
- "LoadLocationFromTZData",
- "Local",
- "Location",
- "March",
- "May",
- "Microsecond",
- "Millisecond",
- "Minute",
- "Monday",
- "Month",
- "Nanosecond",
- "NewTicker",
- "NewTimer",
- "November",
- "Now",
- "October",
- "Parse",
- "ParseDuration",
- "ParseError",
- "ParseInLocation",
- "RFC1123",
- "RFC1123Z",
- "RFC3339",
- "RFC3339Nano",
- "RFC822",
- "RFC822Z",
- "RFC850",
- "RubyDate",
- "Saturday",
- "Second",
- "September",
- "Since",
- "Sleep",
- "Stamp",
- "StampMicro",
- "StampMilli",
- "StampNano",
- "Sunday",
- "Thursday",
- "Tick",
- "Ticker",
- "Time",
- "TimeOnly",
- "Timer",
- "Tuesday",
- "UTC",
- "Unix",
- "UnixDate",
- "UnixMicro",
- "UnixMilli",
- "Until",
- "Wednesday",
- "Weekday",
- },
- "unicode": {
- "ASCII_Hex_Digit",
- "Adlam",
- "Ahom",
- "Anatolian_Hieroglyphs",
- "Arabic",
- "Armenian",
- "Avestan",
- "AzeriCase",
- "Balinese",
- "Bamum",
- "Bassa_Vah",
- "Batak",
- "Bengali",
- "Bhaiksuki",
- "Bidi_Control",
- "Bopomofo",
- "Brahmi",
- "Braille",
- "Buginese",
- "Buhid",
- "C",
- "Canadian_Aboriginal",
- "Carian",
- "CaseRange",
- "CaseRanges",
- "Categories",
- "Caucasian_Albanian",
- "Cc",
- "Cf",
- "Chakma",
- "Cham",
- "Cherokee",
- "Chorasmian",
- "Co",
- "Common",
- "Coptic",
- "Cs",
- "Cuneiform",
- "Cypriot",
- "Cypro_Minoan",
- "Cyrillic",
- "Dash",
- "Deprecated",
- "Deseret",
- "Devanagari",
- "Diacritic",
- "Digit",
- "Dives_Akuru",
- "Dogra",
- "Duployan",
- "Egyptian_Hieroglyphs",
- "Elbasan",
- "Elymaic",
- "Ethiopic",
- "Extender",
- "FoldCategory",
- "FoldScript",
- "Georgian",
- "Glagolitic",
- "Gothic",
- "Grantha",
- "GraphicRanges",
- "Greek",
- "Gujarati",
- "Gunjala_Gondi",
- "Gurmukhi",
- "Han",
- "Hangul",
- "Hanifi_Rohingya",
- "Hanunoo",
- "Hatran",
- "Hebrew",
- "Hex_Digit",
- "Hiragana",
- "Hyphen",
- "IDS_Binary_Operator",
- "IDS_Trinary_Operator",
- "Ideographic",
- "Imperial_Aramaic",
- "In",
- "Inherited",
- "Inscriptional_Pahlavi",
- "Inscriptional_Parthian",
- "Is",
- "IsControl",
- "IsDigit",
- "IsGraphic",
- "IsLetter",
- "IsLower",
- "IsMark",
- "IsNumber",
- "IsOneOf",
- "IsPrint",
- "IsPunct",
- "IsSpace",
- "IsSymbol",
- "IsTitle",
- "IsUpper",
- "Javanese",
- "Join_Control",
- "Kaithi",
- "Kannada",
- "Katakana",
- "Kawi",
- "Kayah_Li",
- "Kharoshthi",
- "Khitan_Small_Script",
- "Khmer",
- "Khojki",
- "Khudawadi",
- "L",
- "Lao",
- "Latin",
- "Lepcha",
- "Letter",
- "Limbu",
- "Linear_A",
- "Linear_B",
- "Lisu",
- "Ll",
- "Lm",
- "Lo",
- "Logical_Order_Exception",
- "Lower",
- "LowerCase",
- "Lt",
- "Lu",
- "Lycian",
- "Lydian",
- "M",
- "Mahajani",
- "Makasar",
- "Malayalam",
- "Mandaic",
- "Manichaean",
- "Marchen",
- "Mark",
- "Masaram_Gondi",
- "MaxASCII",
- "MaxCase",
- "MaxLatin1",
- "MaxRune",
- "Mc",
- "Me",
- "Medefaidrin",
- "Meetei_Mayek",
- "Mende_Kikakui",
- "Meroitic_Cursive",
- "Meroitic_Hieroglyphs",
- "Miao",
- "Mn",
- "Modi",
- "Mongolian",
- "Mro",
- "Multani",
- "Myanmar",
- "N",
- "Nabataean",
- "Nag_Mundari",
- "Nandinagari",
- "Nd",
- "New_Tai_Lue",
- "Newa",
- "Nko",
- "Nl",
- "No",
- "Noncharacter_Code_Point",
- "Number",
- "Nushu",
- "Nyiakeng_Puachue_Hmong",
- "Ogham",
- "Ol_Chiki",
- "Old_Hungarian",
- "Old_Italic",
- "Old_North_Arabian",
- "Old_Permic",
- "Old_Persian",
- "Old_Sogdian",
- "Old_South_Arabian",
- "Old_Turkic",
- "Old_Uyghur",
- "Oriya",
- "Osage",
- "Osmanya",
- "Other",
- "Other_Alphabetic",
- "Other_Default_Ignorable_Code_Point",
- "Other_Grapheme_Extend",
- "Other_ID_Continue",
- "Other_ID_Start",
- "Other_Lowercase",
- "Other_Math",
- "Other_Uppercase",
- "P",
- "Pahawh_Hmong",
- "Palmyrene",
- "Pattern_Syntax",
- "Pattern_White_Space",
- "Pau_Cin_Hau",
- "Pc",
- "Pd",
- "Pe",
- "Pf",
- "Phags_Pa",
- "Phoenician",
- "Pi",
- "Po",
- "Prepended_Concatenation_Mark",
- "PrintRanges",
- "Properties",
- "Ps",
- "Psalter_Pahlavi",
- "Punct",
- "Quotation_Mark",
- "Radical",
- "Range16",
- "Range32",
- "RangeTable",
- "Regional_Indicator",
- "Rejang",
- "ReplacementChar",
- "Runic",
- "S",
- "STerm",
- "Samaritan",
- "Saurashtra",
- "Sc",
- "Scripts",
- "Sentence_Terminal",
- "Sharada",
- "Shavian",
- "Siddham",
- "SignWriting",
- "SimpleFold",
- "Sinhala",
- "Sk",
- "Sm",
- "So",
- "Soft_Dotted",
- "Sogdian",
- "Sora_Sompeng",
- "Soyombo",
- "Space",
- "SpecialCase",
- "Sundanese",
- "Syloti_Nagri",
- "Symbol",
- "Syriac",
- "Tagalog",
- "Tagbanwa",
- "Tai_Le",
- "Tai_Tham",
- "Tai_Viet",
- "Takri",
- "Tamil",
- "Tangsa",
- "Tangut",
- "Telugu",
- "Terminal_Punctuation",
- "Thaana",
- "Thai",
- "Tibetan",
- "Tifinagh",
- "Tirhuta",
- "Title",
- "TitleCase",
- "To",
- "ToLower",
- "ToTitle",
- "ToUpper",
- "Toto",
- "TurkishCase",
- "Ugaritic",
- "Unified_Ideograph",
- "Upper",
- "UpperCase",
- "UpperLower",
- "Vai",
- "Variation_Selector",
- "Version",
- "Vithkuqi",
- "Wancho",
- "Warang_Citi",
- "White_Space",
- "Yezidi",
- "Yi",
- "Z",
- "Zanabazar_Square",
- "Zl",
- "Zp",
- "Zs",
- },
- "unicode/utf16": {
- "AppendRune",
- "Decode",
- "DecodeRune",
- "Encode",
- "EncodeRune",
- "IsSurrogate",
- },
- "unicode/utf8": {
- "AppendRune",
- "DecodeLastRune",
- "DecodeLastRuneInString",
- "DecodeRune",
- "DecodeRuneInString",
- "EncodeRune",
- "FullRune",
- "FullRuneInString",
- "MaxRune",
- "RuneCount",
- "RuneCountInString",
- "RuneError",
- "RuneLen",
- "RuneSelf",
- "RuneStart",
- "UTFMax",
- "Valid",
- "ValidRune",
- "ValidString",
- },
- "unsafe": {
- "Add",
- "Alignof",
- "Offsetof",
- "Pointer",
- "Sizeof",
- "Slice",
- "SliceData",
- "String",
- "StringData",
- },
-}
diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go
new file mode 100644
index 0000000000..fd6892075e
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go
@@ -0,0 +1,17320 @@
+// Copyright 2024 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Code generated by generate.go. DO NOT EDIT.
+
+package stdlib
+
+var PackageSymbols = map[string][]Symbol{
+ "archive/tar": {
+ {"(*Header).FileInfo", Method, 1},
+ {"(*Reader).Next", Method, 0},
+ {"(*Reader).Read", Method, 0},
+ {"(*Writer).AddFS", Method, 22},
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).Flush", Method, 0},
+ {"(*Writer).Write", Method, 0},
+ {"(*Writer).WriteHeader", Method, 0},
+ {"(Format).String", Method, 10},
+ {"ErrFieldTooLong", Var, 0},
+ {"ErrHeader", Var, 0},
+ {"ErrInsecurePath", Var, 20},
+ {"ErrWriteAfterClose", Var, 0},
+ {"ErrWriteTooLong", Var, 0},
+ {"FileInfoHeader", Func, 1},
+ {"Format", Type, 10},
+ {"FormatGNU", Const, 10},
+ {"FormatPAX", Const, 10},
+ {"FormatUSTAR", Const, 10},
+ {"FormatUnknown", Const, 10},
+ {"Header", Type, 0},
+ {"Header.AccessTime", Field, 0},
+ {"Header.ChangeTime", Field, 0},
+ {"Header.Devmajor", Field, 0},
+ {"Header.Devminor", Field, 0},
+ {"Header.Format", Field, 10},
+ {"Header.Gid", Field, 0},
+ {"Header.Gname", Field, 0},
+ {"Header.Linkname", Field, 0},
+ {"Header.ModTime", Field, 0},
+ {"Header.Mode", Field, 0},
+ {"Header.Name", Field, 0},
+ {"Header.PAXRecords", Field, 10},
+ {"Header.Size", Field, 0},
+ {"Header.Typeflag", Field, 0},
+ {"Header.Uid", Field, 0},
+ {"Header.Uname", Field, 0},
+ {"Header.Xattrs", Field, 3},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"Reader", Type, 0},
+ {"TypeBlock", Const, 0},
+ {"TypeChar", Const, 0},
+ {"TypeCont", Const, 0},
+ {"TypeDir", Const, 0},
+ {"TypeFifo", Const, 0},
+ {"TypeGNULongLink", Const, 1},
+ {"TypeGNULongName", Const, 1},
+ {"TypeGNUSparse", Const, 3},
+ {"TypeLink", Const, 0},
+ {"TypeReg", Const, 0},
+ {"TypeRegA", Const, 0},
+ {"TypeSymlink", Const, 0},
+ {"TypeXGlobalHeader", Const, 0},
+ {"TypeXHeader", Const, 0},
+ {"Writer", Type, 0},
+ },
+ "archive/zip": {
+ {"(*File).DataOffset", Method, 2},
+ {"(*File).FileInfo", Method, 0},
+ {"(*File).ModTime", Method, 0},
+ {"(*File).Mode", Method, 0},
+ {"(*File).Open", Method, 0},
+ {"(*File).OpenRaw", Method, 17},
+ {"(*File).SetModTime", Method, 0},
+ {"(*File).SetMode", Method, 0},
+ {"(*FileHeader).FileInfo", Method, 0},
+ {"(*FileHeader).ModTime", Method, 0},
+ {"(*FileHeader).Mode", Method, 0},
+ {"(*FileHeader).SetModTime", Method, 0},
+ {"(*FileHeader).SetMode", Method, 0},
+ {"(*ReadCloser).Close", Method, 0},
+ {"(*ReadCloser).Open", Method, 16},
+ {"(*ReadCloser).RegisterDecompressor", Method, 6},
+ {"(*Reader).Open", Method, 16},
+ {"(*Reader).RegisterDecompressor", Method, 6},
+ {"(*Writer).AddFS", Method, 22},
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).Copy", Method, 17},
+ {"(*Writer).Create", Method, 0},
+ {"(*Writer).CreateHeader", Method, 0},
+ {"(*Writer).CreateRaw", Method, 17},
+ {"(*Writer).Flush", Method, 4},
+ {"(*Writer).RegisterCompressor", Method, 6},
+ {"(*Writer).SetComment", Method, 10},
+ {"(*Writer).SetOffset", Method, 5},
+ {"Compressor", Type, 2},
+ {"Decompressor", Type, 2},
+ {"Deflate", Const, 0},
+ {"ErrAlgorithm", Var, 0},
+ {"ErrChecksum", Var, 0},
+ {"ErrFormat", Var, 0},
+ {"ErrInsecurePath", Var, 20},
+ {"File", Type, 0},
+ {"File.FileHeader", Field, 0},
+ {"FileHeader", Type, 0},
+ {"FileHeader.CRC32", Field, 0},
+ {"FileHeader.Comment", Field, 0},
+ {"FileHeader.CompressedSize", Field, 0},
+ {"FileHeader.CompressedSize64", Field, 1},
+ {"FileHeader.CreatorVersion", Field, 0},
+ {"FileHeader.ExternalAttrs", Field, 0},
+ {"FileHeader.Extra", Field, 0},
+ {"FileHeader.Flags", Field, 0},
+ {"FileHeader.Method", Field, 0},
+ {"FileHeader.Modified", Field, 10},
+ {"FileHeader.ModifiedDate", Field, 0},
+ {"FileHeader.ModifiedTime", Field, 0},
+ {"FileHeader.Name", Field, 0},
+ {"FileHeader.NonUTF8", Field, 10},
+ {"FileHeader.ReaderVersion", Field, 0},
+ {"FileHeader.UncompressedSize", Field, 0},
+ {"FileHeader.UncompressedSize64", Field, 1},
+ {"FileInfoHeader", Func, 0},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"OpenReader", Func, 0},
+ {"ReadCloser", Type, 0},
+ {"ReadCloser.Reader", Field, 0},
+ {"Reader", Type, 0},
+ {"Reader.Comment", Field, 0},
+ {"Reader.File", Field, 0},
+ {"RegisterCompressor", Func, 2},
+ {"RegisterDecompressor", Func, 2},
+ {"Store", Const, 0},
+ {"Writer", Type, 0},
+ },
+ "bufio": {
+ {"(*Reader).Buffered", Method, 0},
+ {"(*Reader).Discard", Method, 5},
+ {"(*Reader).Peek", Method, 0},
+ {"(*Reader).Read", Method, 0},
+ {"(*Reader).ReadByte", Method, 0},
+ {"(*Reader).ReadBytes", Method, 0},
+ {"(*Reader).ReadLine", Method, 0},
+ {"(*Reader).ReadRune", Method, 0},
+ {"(*Reader).ReadSlice", Method, 0},
+ {"(*Reader).ReadString", Method, 0},
+ {"(*Reader).Reset", Method, 2},
+ {"(*Reader).Size", Method, 10},
+ {"(*Reader).UnreadByte", Method, 0},
+ {"(*Reader).UnreadRune", Method, 0},
+ {"(*Reader).WriteTo", Method, 1},
+ {"(*Scanner).Buffer", Method, 6},
+ {"(*Scanner).Bytes", Method, 1},
+ {"(*Scanner).Err", Method, 1},
+ {"(*Scanner).Scan", Method, 1},
+ {"(*Scanner).Split", Method, 1},
+ {"(*Scanner).Text", Method, 1},
+ {"(*Writer).Available", Method, 0},
+ {"(*Writer).AvailableBuffer", Method, 18},
+ {"(*Writer).Buffered", Method, 0},
+ {"(*Writer).Flush", Method, 0},
+ {"(*Writer).ReadFrom", Method, 1},
+ {"(*Writer).Reset", Method, 2},
+ {"(*Writer).Size", Method, 10},
+ {"(*Writer).Write", Method, 0},
+ {"(*Writer).WriteByte", Method, 0},
+ {"(*Writer).WriteRune", Method, 0},
+ {"(*Writer).WriteString", Method, 0},
+ {"(ReadWriter).Available", Method, 0},
+ {"(ReadWriter).AvailableBuffer", Method, 18},
+ {"(ReadWriter).Discard", Method, 5},
+ {"(ReadWriter).Flush", Method, 0},
+ {"(ReadWriter).Peek", Method, 0},
+ {"(ReadWriter).Read", Method, 0},
+ {"(ReadWriter).ReadByte", Method, 0},
+ {"(ReadWriter).ReadBytes", Method, 0},
+ {"(ReadWriter).ReadFrom", Method, 1},
+ {"(ReadWriter).ReadLine", Method, 0},
+ {"(ReadWriter).ReadRune", Method, 0},
+ {"(ReadWriter).ReadSlice", Method, 0},
+ {"(ReadWriter).ReadString", Method, 0},
+ {"(ReadWriter).UnreadByte", Method, 0},
+ {"(ReadWriter).UnreadRune", Method, 0},
+ {"(ReadWriter).Write", Method, 0},
+ {"(ReadWriter).WriteByte", Method, 0},
+ {"(ReadWriter).WriteRune", Method, 0},
+ {"(ReadWriter).WriteString", Method, 0},
+ {"(ReadWriter).WriteTo", Method, 1},
+ {"ErrAdvanceTooFar", Var, 1},
+ {"ErrBadReadCount", Var, 15},
+ {"ErrBufferFull", Var, 0},
+ {"ErrFinalToken", Var, 6},
+ {"ErrInvalidUnreadByte", Var, 0},
+ {"ErrInvalidUnreadRune", Var, 0},
+ {"ErrNegativeAdvance", Var, 1},
+ {"ErrNegativeCount", Var, 0},
+ {"ErrTooLong", Var, 1},
+ {"MaxScanTokenSize", Const, 1},
+ {"NewReadWriter", Func, 0},
+ {"NewReader", Func, 0},
+ {"NewReaderSize", Func, 0},
+ {"NewScanner", Func, 1},
+ {"NewWriter", Func, 0},
+ {"NewWriterSize", Func, 0},
+ {"ReadWriter", Type, 0},
+ {"ReadWriter.Reader", Field, 0},
+ {"ReadWriter.Writer", Field, 0},
+ {"Reader", Type, 0},
+ {"ScanBytes", Func, 1},
+ {"ScanLines", Func, 1},
+ {"ScanRunes", Func, 1},
+ {"ScanWords", Func, 1},
+ {"Scanner", Type, 1},
+ {"SplitFunc", Type, 1},
+ {"Writer", Type, 0},
+ },
+ "bytes": {
+ {"(*Buffer).Available", Method, 21},
+ {"(*Buffer).AvailableBuffer", Method, 21},
+ {"(*Buffer).Bytes", Method, 0},
+ {"(*Buffer).Cap", Method, 5},
+ {"(*Buffer).Grow", Method, 1},
+ {"(*Buffer).Len", Method, 0},
+ {"(*Buffer).Next", Method, 0},
+ {"(*Buffer).Read", Method, 0},
+ {"(*Buffer).ReadByte", Method, 0},
+ {"(*Buffer).ReadBytes", Method, 0},
+ {"(*Buffer).ReadFrom", Method, 0},
+ {"(*Buffer).ReadRune", Method, 0},
+ {"(*Buffer).ReadString", Method, 0},
+ {"(*Buffer).Reset", Method, 0},
+ {"(*Buffer).String", Method, 0},
+ {"(*Buffer).Truncate", Method, 0},
+ {"(*Buffer).UnreadByte", Method, 0},
+ {"(*Buffer).UnreadRune", Method, 0},
+ {"(*Buffer).Write", Method, 0},
+ {"(*Buffer).WriteByte", Method, 0},
+ {"(*Buffer).WriteRune", Method, 0},
+ {"(*Buffer).WriteString", Method, 0},
+ {"(*Buffer).WriteTo", Method, 0},
+ {"(*Reader).Len", Method, 0},
+ {"(*Reader).Read", Method, 0},
+ {"(*Reader).ReadAt", Method, 0},
+ {"(*Reader).ReadByte", Method, 0},
+ {"(*Reader).ReadRune", Method, 0},
+ {"(*Reader).Reset", Method, 7},
+ {"(*Reader).Seek", Method, 0},
+ {"(*Reader).Size", Method, 5},
+ {"(*Reader).UnreadByte", Method, 0},
+ {"(*Reader).UnreadRune", Method, 0},
+ {"(*Reader).WriteTo", Method, 1},
+ {"Buffer", Type, 0},
+ {"Clone", Func, 20},
+ {"Compare", Func, 0},
+ {"Contains", Func, 0},
+ {"ContainsAny", Func, 7},
+ {"ContainsFunc", Func, 21},
+ {"ContainsRune", Func, 7},
+ {"Count", Func, 0},
+ {"Cut", Func, 18},
+ {"CutPrefix", Func, 20},
+ {"CutSuffix", Func, 20},
+ {"Equal", Func, 0},
+ {"EqualFold", Func, 0},
+ {"ErrTooLarge", Var, 0},
+ {"Fields", Func, 0},
+ {"FieldsFunc", Func, 0},
+ {"HasPrefix", Func, 0},
+ {"HasSuffix", Func, 0},
+ {"Index", Func, 0},
+ {"IndexAny", Func, 0},
+ {"IndexByte", Func, 0},
+ {"IndexFunc", Func, 0},
+ {"IndexRune", Func, 0},
+ {"Join", Func, 0},
+ {"LastIndex", Func, 0},
+ {"LastIndexAny", Func, 0},
+ {"LastIndexByte", Func, 5},
+ {"LastIndexFunc", Func, 0},
+ {"Map", Func, 0},
+ {"MinRead", Const, 0},
+ {"NewBuffer", Func, 0},
+ {"NewBufferString", Func, 0},
+ {"NewReader", Func, 0},
+ {"Reader", Type, 0},
+ {"Repeat", Func, 0},
+ {"Replace", Func, 0},
+ {"ReplaceAll", Func, 12},
+ {"Runes", Func, 0},
+ {"Split", Func, 0},
+ {"SplitAfter", Func, 0},
+ {"SplitAfterN", Func, 0},
+ {"SplitN", Func, 0},
+ {"Title", Func, 0},
+ {"ToLower", Func, 0},
+ {"ToLowerSpecial", Func, 0},
+ {"ToTitle", Func, 0},
+ {"ToTitleSpecial", Func, 0},
+ {"ToUpper", Func, 0},
+ {"ToUpperSpecial", Func, 0},
+ {"ToValidUTF8", Func, 13},
+ {"Trim", Func, 0},
+ {"TrimFunc", Func, 0},
+ {"TrimLeft", Func, 0},
+ {"TrimLeftFunc", Func, 0},
+ {"TrimPrefix", Func, 1},
+ {"TrimRight", Func, 0},
+ {"TrimRightFunc", Func, 0},
+ {"TrimSpace", Func, 0},
+ {"TrimSuffix", Func, 1},
+ },
+ "cmp": {
+ {"Compare", Func, 21},
+ {"Less", Func, 21},
+ {"Or", Func, 22},
+ {"Ordered", Type, 21},
+ },
+ "compress/bzip2": {
+ {"(StructuralError).Error", Method, 0},
+ {"NewReader", Func, 0},
+ {"StructuralError", Type, 0},
+ },
+ "compress/flate": {
+ {"(*ReadError).Error", Method, 0},
+ {"(*WriteError).Error", Method, 0},
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).Flush", Method, 0},
+ {"(*Writer).Reset", Method, 2},
+ {"(*Writer).Write", Method, 0},
+ {"(CorruptInputError).Error", Method, 0},
+ {"(InternalError).Error", Method, 0},
+ {"BestCompression", Const, 0},
+ {"BestSpeed", Const, 0},
+ {"CorruptInputError", Type, 0},
+ {"DefaultCompression", Const, 0},
+ {"HuffmanOnly", Const, 7},
+ {"InternalError", Type, 0},
+ {"NewReader", Func, 0},
+ {"NewReaderDict", Func, 0},
+ {"NewWriter", Func, 0},
+ {"NewWriterDict", Func, 0},
+ {"NoCompression", Const, 0},
+ {"ReadError", Type, 0},
+ {"ReadError.Err", Field, 0},
+ {"ReadError.Offset", Field, 0},
+ {"Reader", Type, 0},
+ {"Resetter", Type, 4},
+ {"WriteError", Type, 0},
+ {"WriteError.Err", Field, 0},
+ {"WriteError.Offset", Field, 0},
+ {"Writer", Type, 0},
+ },
+ "compress/gzip": {
+ {"(*Reader).Close", Method, 0},
+ {"(*Reader).Multistream", Method, 4},
+ {"(*Reader).Read", Method, 0},
+ {"(*Reader).Reset", Method, 3},
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).Flush", Method, 1},
+ {"(*Writer).Reset", Method, 2},
+ {"(*Writer).Write", Method, 0},
+ {"BestCompression", Const, 0},
+ {"BestSpeed", Const, 0},
+ {"DefaultCompression", Const, 0},
+ {"ErrChecksum", Var, 0},
+ {"ErrHeader", Var, 0},
+ {"Header", Type, 0},
+ {"Header.Comment", Field, 0},
+ {"Header.Extra", Field, 0},
+ {"Header.ModTime", Field, 0},
+ {"Header.Name", Field, 0},
+ {"Header.OS", Field, 0},
+ {"HuffmanOnly", Const, 8},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"NewWriterLevel", Func, 0},
+ {"NoCompression", Const, 0},
+ {"Reader", Type, 0},
+ {"Reader.Header", Field, 0},
+ {"Writer", Type, 0},
+ {"Writer.Header", Field, 0},
+ },
+ "compress/lzw": {
+ {"(*Reader).Close", Method, 17},
+ {"(*Reader).Read", Method, 17},
+ {"(*Reader).Reset", Method, 17},
+ {"(*Writer).Close", Method, 17},
+ {"(*Writer).Reset", Method, 17},
+ {"(*Writer).Write", Method, 17},
+ {"LSB", Const, 0},
+ {"MSB", Const, 0},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"Order", Type, 0},
+ {"Reader", Type, 17},
+ {"Writer", Type, 17},
+ },
+ "compress/zlib": {
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).Flush", Method, 0},
+ {"(*Writer).Reset", Method, 2},
+ {"(*Writer).Write", Method, 0},
+ {"BestCompression", Const, 0},
+ {"BestSpeed", Const, 0},
+ {"DefaultCompression", Const, 0},
+ {"ErrChecksum", Var, 0},
+ {"ErrDictionary", Var, 0},
+ {"ErrHeader", Var, 0},
+ {"HuffmanOnly", Const, 8},
+ {"NewReader", Func, 0},
+ {"NewReaderDict", Func, 0},
+ {"NewWriter", Func, 0},
+ {"NewWriterLevel", Func, 0},
+ {"NewWriterLevelDict", Func, 0},
+ {"NoCompression", Const, 0},
+ {"Resetter", Type, 4},
+ {"Writer", Type, 0},
+ },
+ "container/heap": {
+ {"Fix", Func, 2},
+ {"Init", Func, 0},
+ {"Interface", Type, 0},
+ {"Pop", Func, 0},
+ {"Push", Func, 0},
+ {"Remove", Func, 0},
+ },
+ "container/list": {
+ {"(*Element).Next", Method, 0},
+ {"(*Element).Prev", Method, 0},
+ {"(*List).Back", Method, 0},
+ {"(*List).Front", Method, 0},
+ {"(*List).Init", Method, 0},
+ {"(*List).InsertAfter", Method, 0},
+ {"(*List).InsertBefore", Method, 0},
+ {"(*List).Len", Method, 0},
+ {"(*List).MoveAfter", Method, 2},
+ {"(*List).MoveBefore", Method, 2},
+ {"(*List).MoveToBack", Method, 0},
+ {"(*List).MoveToFront", Method, 0},
+ {"(*List).PushBack", Method, 0},
+ {"(*List).PushBackList", Method, 0},
+ {"(*List).PushFront", Method, 0},
+ {"(*List).PushFrontList", Method, 0},
+ {"(*List).Remove", Method, 0},
+ {"Element", Type, 0},
+ {"Element.Value", Field, 0},
+ {"List", Type, 0},
+ {"New", Func, 0},
+ },
+ "container/ring": {
+ {"(*Ring).Do", Method, 0},
+ {"(*Ring).Len", Method, 0},
+ {"(*Ring).Link", Method, 0},
+ {"(*Ring).Move", Method, 0},
+ {"(*Ring).Next", Method, 0},
+ {"(*Ring).Prev", Method, 0},
+ {"(*Ring).Unlink", Method, 0},
+ {"New", Func, 0},
+ {"Ring", Type, 0},
+ {"Ring.Value", Field, 0},
+ },
+ "context": {
+ {"AfterFunc", Func, 21},
+ {"Background", Func, 7},
+ {"CancelCauseFunc", Type, 20},
+ {"CancelFunc", Type, 7},
+ {"Canceled", Var, 7},
+ {"Cause", Func, 20},
+ {"Context", Type, 7},
+ {"DeadlineExceeded", Var, 7},
+ {"TODO", Func, 7},
+ {"WithCancel", Func, 7},
+ {"WithCancelCause", Func, 20},
+ {"WithDeadline", Func, 7},
+ {"WithDeadlineCause", Func, 21},
+ {"WithTimeout", Func, 7},
+ {"WithTimeoutCause", Func, 21},
+ {"WithValue", Func, 7},
+ {"WithoutCancel", Func, 21},
+ },
+ "crypto": {
+ {"(Hash).Available", Method, 0},
+ {"(Hash).HashFunc", Method, 4},
+ {"(Hash).New", Method, 0},
+ {"(Hash).Size", Method, 0},
+ {"(Hash).String", Method, 15},
+ {"BLAKE2b_256", Const, 9},
+ {"BLAKE2b_384", Const, 9},
+ {"BLAKE2b_512", Const, 9},
+ {"BLAKE2s_256", Const, 9},
+ {"Decrypter", Type, 5},
+ {"DecrypterOpts", Type, 5},
+ {"Hash", Type, 0},
+ {"MD4", Const, 0},
+ {"MD5", Const, 0},
+ {"MD5SHA1", Const, 0},
+ {"PrivateKey", Type, 0},
+ {"PublicKey", Type, 2},
+ {"RIPEMD160", Const, 0},
+ {"RegisterHash", Func, 0},
+ {"SHA1", Const, 0},
+ {"SHA224", Const, 0},
+ {"SHA256", Const, 0},
+ {"SHA384", Const, 0},
+ {"SHA3_224", Const, 4},
+ {"SHA3_256", Const, 4},
+ {"SHA3_384", Const, 4},
+ {"SHA3_512", Const, 4},
+ {"SHA512", Const, 0},
+ {"SHA512_224", Const, 5},
+ {"SHA512_256", Const, 5},
+ {"Signer", Type, 4},
+ {"SignerOpts", Type, 4},
+ },
+ "crypto/aes": {
+ {"(KeySizeError).Error", Method, 0},
+ {"BlockSize", Const, 0},
+ {"KeySizeError", Type, 0},
+ {"NewCipher", Func, 0},
+ },
+ "crypto/cipher": {
+ {"(StreamReader).Read", Method, 0},
+ {"(StreamWriter).Close", Method, 0},
+ {"(StreamWriter).Write", Method, 0},
+ {"AEAD", Type, 2},
+ {"Block", Type, 0},
+ {"BlockMode", Type, 0},
+ {"NewCBCDecrypter", Func, 0},
+ {"NewCBCEncrypter", Func, 0},
+ {"NewCFBDecrypter", Func, 0},
+ {"NewCFBEncrypter", Func, 0},
+ {"NewCTR", Func, 0},
+ {"NewGCM", Func, 2},
+ {"NewGCMWithNonceSize", Func, 5},
+ {"NewGCMWithTagSize", Func, 11},
+ {"NewOFB", Func, 0},
+ {"Stream", Type, 0},
+ {"StreamReader", Type, 0},
+ {"StreamReader.R", Field, 0},
+ {"StreamReader.S", Field, 0},
+ {"StreamWriter", Type, 0},
+ {"StreamWriter.Err", Field, 0},
+ {"StreamWriter.S", Field, 0},
+ {"StreamWriter.W", Field, 0},
+ },
+ "crypto/des": {
+ {"(KeySizeError).Error", Method, 0},
+ {"BlockSize", Const, 0},
+ {"KeySizeError", Type, 0},
+ {"NewCipher", Func, 0},
+ {"NewTripleDESCipher", Func, 0},
+ },
+ "crypto/dsa": {
+ {"ErrInvalidPublicKey", Var, 0},
+ {"GenerateKey", Func, 0},
+ {"GenerateParameters", Func, 0},
+ {"L1024N160", Const, 0},
+ {"L2048N224", Const, 0},
+ {"L2048N256", Const, 0},
+ {"L3072N256", Const, 0},
+ {"ParameterSizes", Type, 0},
+ {"Parameters", Type, 0},
+ {"Parameters.G", Field, 0},
+ {"Parameters.P", Field, 0},
+ {"Parameters.Q", Field, 0},
+ {"PrivateKey", Type, 0},
+ {"PrivateKey.PublicKey", Field, 0},
+ {"PrivateKey.X", Field, 0},
+ {"PublicKey", Type, 0},
+ {"PublicKey.Parameters", Field, 0},
+ {"PublicKey.Y", Field, 0},
+ {"Sign", Func, 0},
+ {"Verify", Func, 0},
+ },
+ "crypto/ecdh": {
+ {"(*PrivateKey).Bytes", Method, 20},
+ {"(*PrivateKey).Curve", Method, 20},
+ {"(*PrivateKey).ECDH", Method, 20},
+ {"(*PrivateKey).Equal", Method, 20},
+ {"(*PrivateKey).Public", Method, 20},
+ {"(*PrivateKey).PublicKey", Method, 20},
+ {"(*PublicKey).Bytes", Method, 20},
+ {"(*PublicKey).Curve", Method, 20},
+ {"(*PublicKey).Equal", Method, 20},
+ {"Curve", Type, 20},
+ {"P256", Func, 20},
+ {"P384", Func, 20},
+ {"P521", Func, 20},
+ {"PrivateKey", Type, 20},
+ {"PublicKey", Type, 20},
+ {"X25519", Func, 20},
+ },
+ "crypto/ecdsa": {
+ {"(*PrivateKey).ECDH", Method, 20},
+ {"(*PrivateKey).Equal", Method, 15},
+ {"(*PrivateKey).Public", Method, 4},
+ {"(*PrivateKey).Sign", Method, 4},
+ {"(*PublicKey).ECDH", Method, 20},
+ {"(*PublicKey).Equal", Method, 15},
+ {"(PrivateKey).Add", Method, 0},
+ {"(PrivateKey).Double", Method, 0},
+ {"(PrivateKey).IsOnCurve", Method, 0},
+ {"(PrivateKey).Params", Method, 0},
+ {"(PrivateKey).ScalarBaseMult", Method, 0},
+ {"(PrivateKey).ScalarMult", Method, 0},
+ {"(PublicKey).Add", Method, 0},
+ {"(PublicKey).Double", Method, 0},
+ {"(PublicKey).IsOnCurve", Method, 0},
+ {"(PublicKey).Params", Method, 0},
+ {"(PublicKey).ScalarBaseMult", Method, 0},
+ {"(PublicKey).ScalarMult", Method, 0},
+ {"GenerateKey", Func, 0},
+ {"PrivateKey", Type, 0},
+ {"PrivateKey.D", Field, 0},
+ {"PrivateKey.PublicKey", Field, 0},
+ {"PublicKey", Type, 0},
+ {"PublicKey.Curve", Field, 0},
+ {"PublicKey.X", Field, 0},
+ {"PublicKey.Y", Field, 0},
+ {"Sign", Func, 0},
+ {"SignASN1", Func, 15},
+ {"Verify", Func, 0},
+ {"VerifyASN1", Func, 15},
+ },
+ "crypto/ed25519": {
+ {"(*Options).HashFunc", Method, 20},
+ {"(PrivateKey).Equal", Method, 15},
+ {"(PrivateKey).Public", Method, 13},
+ {"(PrivateKey).Seed", Method, 13},
+ {"(PrivateKey).Sign", Method, 13},
+ {"(PublicKey).Equal", Method, 15},
+ {"GenerateKey", Func, 13},
+ {"NewKeyFromSeed", Func, 13},
+ {"Options", Type, 20},
+ {"Options.Context", Field, 20},
+ {"Options.Hash", Field, 20},
+ {"PrivateKey", Type, 13},
+ {"PrivateKeySize", Const, 13},
+ {"PublicKey", Type, 13},
+ {"PublicKeySize", Const, 13},
+ {"SeedSize", Const, 13},
+ {"Sign", Func, 13},
+ {"SignatureSize", Const, 13},
+ {"Verify", Func, 13},
+ {"VerifyWithOptions", Func, 20},
+ },
+ "crypto/elliptic": {
+ {"(*CurveParams).Add", Method, 0},
+ {"(*CurveParams).Double", Method, 0},
+ {"(*CurveParams).IsOnCurve", Method, 0},
+ {"(*CurveParams).Params", Method, 0},
+ {"(*CurveParams).ScalarBaseMult", Method, 0},
+ {"(*CurveParams).ScalarMult", Method, 0},
+ {"Curve", Type, 0},
+ {"CurveParams", Type, 0},
+ {"CurveParams.B", Field, 0},
+ {"CurveParams.BitSize", Field, 0},
+ {"CurveParams.Gx", Field, 0},
+ {"CurveParams.Gy", Field, 0},
+ {"CurveParams.N", Field, 0},
+ {"CurveParams.Name", Field, 5},
+ {"CurveParams.P", Field, 0},
+ {"GenerateKey", Func, 0},
+ {"Marshal", Func, 0},
+ {"MarshalCompressed", Func, 15},
+ {"P224", Func, 0},
+ {"P256", Func, 0},
+ {"P384", Func, 0},
+ {"P521", Func, 0},
+ {"Unmarshal", Func, 0},
+ {"UnmarshalCompressed", Func, 15},
+ },
+ "crypto/hmac": {
+ {"Equal", Func, 1},
+ {"New", Func, 0},
+ },
+ "crypto/md5": {
+ {"BlockSize", Const, 0},
+ {"New", Func, 0},
+ {"Size", Const, 0},
+ {"Sum", Func, 2},
+ },
+ "crypto/rand": {
+ {"Int", Func, 0},
+ {"Prime", Func, 0},
+ {"Read", Func, 0},
+ {"Reader", Var, 0},
+ },
+ "crypto/rc4": {
+ {"(*Cipher).Reset", Method, 0},
+ {"(*Cipher).XORKeyStream", Method, 0},
+ {"(KeySizeError).Error", Method, 0},
+ {"Cipher", Type, 0},
+ {"KeySizeError", Type, 0},
+ {"NewCipher", Func, 0},
+ },
+ "crypto/rsa": {
+ {"(*PSSOptions).HashFunc", Method, 4},
+ {"(*PrivateKey).Decrypt", Method, 5},
+ {"(*PrivateKey).Equal", Method, 15},
+ {"(*PrivateKey).Precompute", Method, 0},
+ {"(*PrivateKey).Public", Method, 4},
+ {"(*PrivateKey).Sign", Method, 4},
+ {"(*PrivateKey).Size", Method, 11},
+ {"(*PrivateKey).Validate", Method, 0},
+ {"(*PublicKey).Equal", Method, 15},
+ {"(*PublicKey).Size", Method, 11},
+ {"CRTValue", Type, 0},
+ {"CRTValue.Coeff", Field, 0},
+ {"CRTValue.Exp", Field, 0},
+ {"CRTValue.R", Field, 0},
+ {"DecryptOAEP", Func, 0},
+ {"DecryptPKCS1v15", Func, 0},
+ {"DecryptPKCS1v15SessionKey", Func, 0},
+ {"EncryptOAEP", Func, 0},
+ {"EncryptPKCS1v15", Func, 0},
+ {"ErrDecryption", Var, 0},
+ {"ErrMessageTooLong", Var, 0},
+ {"ErrVerification", Var, 0},
+ {"GenerateKey", Func, 0},
+ {"GenerateMultiPrimeKey", Func, 0},
+ {"OAEPOptions", Type, 5},
+ {"OAEPOptions.Hash", Field, 5},
+ {"OAEPOptions.Label", Field, 5},
+ {"OAEPOptions.MGFHash", Field, 20},
+ {"PKCS1v15DecryptOptions", Type, 5},
+ {"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5},
+ {"PSSOptions", Type, 2},
+ {"PSSOptions.Hash", Field, 4},
+ {"PSSOptions.SaltLength", Field, 2},
+ {"PSSSaltLengthAuto", Const, 2},
+ {"PSSSaltLengthEqualsHash", Const, 2},
+ {"PrecomputedValues", Type, 0},
+ {"PrecomputedValues.CRTValues", Field, 0},
+ {"PrecomputedValues.Dp", Field, 0},
+ {"PrecomputedValues.Dq", Field, 0},
+ {"PrecomputedValues.Qinv", Field, 0},
+ {"PrivateKey", Type, 0},
+ {"PrivateKey.D", Field, 0},
+ {"PrivateKey.Precomputed", Field, 0},
+ {"PrivateKey.Primes", Field, 0},
+ {"PrivateKey.PublicKey", Field, 0},
+ {"PublicKey", Type, 0},
+ {"PublicKey.E", Field, 0},
+ {"PublicKey.N", Field, 0},
+ {"SignPKCS1v15", Func, 0},
+ {"SignPSS", Func, 2},
+ {"VerifyPKCS1v15", Func, 0},
+ {"VerifyPSS", Func, 2},
+ },
+ "crypto/sha1": {
+ {"BlockSize", Const, 0},
+ {"New", Func, 0},
+ {"Size", Const, 0},
+ {"Sum", Func, 2},
+ },
+ "crypto/sha256": {
+ {"BlockSize", Const, 0},
+ {"New", Func, 0},
+ {"New224", Func, 0},
+ {"Size", Const, 0},
+ {"Size224", Const, 0},
+ {"Sum224", Func, 2},
+ {"Sum256", Func, 2},
+ },
+ "crypto/sha512": {
+ {"BlockSize", Const, 0},
+ {"New", Func, 0},
+ {"New384", Func, 0},
+ {"New512_224", Func, 5},
+ {"New512_256", Func, 5},
+ {"Size", Const, 0},
+ {"Size224", Const, 5},
+ {"Size256", Const, 5},
+ {"Size384", Const, 0},
+ {"Sum384", Func, 2},
+ {"Sum512", Func, 2},
+ {"Sum512_224", Func, 5},
+ {"Sum512_256", Func, 5},
+ },
+ "crypto/subtle": {
+ {"ConstantTimeByteEq", Func, 0},
+ {"ConstantTimeCompare", Func, 0},
+ {"ConstantTimeCopy", Func, 0},
+ {"ConstantTimeEq", Func, 0},
+ {"ConstantTimeLessOrEq", Func, 2},
+ {"ConstantTimeSelect", Func, 0},
+ {"XORBytes", Func, 20},
+ },
+ "crypto/tls": {
+ {"(*CertificateRequestInfo).Context", Method, 17},
+ {"(*CertificateRequestInfo).SupportsCertificate", Method, 14},
+ {"(*CertificateVerificationError).Error", Method, 20},
+ {"(*CertificateVerificationError).Unwrap", Method, 20},
+ {"(*ClientHelloInfo).Context", Method, 17},
+ {"(*ClientHelloInfo).SupportsCertificate", Method, 14},
+ {"(*ClientSessionState).ResumptionState", Method, 21},
+ {"(*Config).BuildNameToCertificate", Method, 0},
+ {"(*Config).Clone", Method, 8},
+ {"(*Config).DecryptTicket", Method, 21},
+ {"(*Config).EncryptTicket", Method, 21},
+ {"(*Config).SetSessionTicketKeys", Method, 5},
+ {"(*Conn).Close", Method, 0},
+ {"(*Conn).CloseWrite", Method, 8},
+ {"(*Conn).ConnectionState", Method, 0},
+ {"(*Conn).Handshake", Method, 0},
+ {"(*Conn).HandshakeContext", Method, 17},
+ {"(*Conn).LocalAddr", Method, 0},
+ {"(*Conn).NetConn", Method, 18},
+ {"(*Conn).OCSPResponse", Method, 0},
+ {"(*Conn).Read", Method, 0},
+ {"(*Conn).RemoteAddr", Method, 0},
+ {"(*Conn).SetDeadline", Method, 0},
+ {"(*Conn).SetReadDeadline", Method, 0},
+ {"(*Conn).SetWriteDeadline", Method, 0},
+ {"(*Conn).VerifyHostname", Method, 0},
+ {"(*Conn).Write", Method, 0},
+ {"(*ConnectionState).ExportKeyingMaterial", Method, 11},
+ {"(*Dialer).Dial", Method, 15},
+ {"(*Dialer).DialContext", Method, 15},
+ {"(*QUICConn).Close", Method, 21},
+ {"(*QUICConn).ConnectionState", Method, 21},
+ {"(*QUICConn).HandleData", Method, 21},
+ {"(*QUICConn).NextEvent", Method, 21},
+ {"(*QUICConn).SendSessionTicket", Method, 21},
+ {"(*QUICConn).SetTransportParameters", Method, 21},
+ {"(*QUICConn).Start", Method, 21},
+ {"(*SessionState).Bytes", Method, 21},
+ {"(AlertError).Error", Method, 21},
+ {"(ClientAuthType).String", Method, 15},
+ {"(CurveID).String", Method, 15},
+ {"(QUICEncryptionLevel).String", Method, 21},
+ {"(RecordHeaderError).Error", Method, 6},
+ {"(SignatureScheme).String", Method, 15},
+ {"AlertError", Type, 21},
+ {"Certificate", Type, 0},
+ {"Certificate.Certificate", Field, 0},
+ {"Certificate.Leaf", Field, 0},
+ {"Certificate.OCSPStaple", Field, 0},
+ {"Certificate.PrivateKey", Field, 0},
+ {"Certificate.SignedCertificateTimestamps", Field, 5},
+ {"Certificate.SupportedSignatureAlgorithms", Field, 14},
+ {"CertificateRequestInfo", Type, 8},
+ {"CertificateRequestInfo.AcceptableCAs", Field, 8},
+ {"CertificateRequestInfo.SignatureSchemes", Field, 8},
+ {"CertificateRequestInfo.Version", Field, 14},
+ {"CertificateVerificationError", Type, 20},
+ {"CertificateVerificationError.Err", Field, 20},
+ {"CertificateVerificationError.UnverifiedCertificates", Field, 20},
+ {"CipherSuite", Type, 14},
+ {"CipherSuite.ID", Field, 14},
+ {"CipherSuite.Insecure", Field, 14},
+ {"CipherSuite.Name", Field, 14},
+ {"CipherSuite.SupportedVersions", Field, 14},
+ {"CipherSuiteName", Func, 14},
+ {"CipherSuites", Func, 14},
+ {"Client", Func, 0},
+ {"ClientAuthType", Type, 0},
+ {"ClientHelloInfo", Type, 4},
+ {"ClientHelloInfo.CipherSuites", Field, 4},
+ {"ClientHelloInfo.Conn", Field, 8},
+ {"ClientHelloInfo.ServerName", Field, 4},
+ {"ClientHelloInfo.SignatureSchemes", Field, 8},
+ {"ClientHelloInfo.SupportedCurves", Field, 4},
+ {"ClientHelloInfo.SupportedPoints", Field, 4},
+ {"ClientHelloInfo.SupportedProtos", Field, 8},
+ {"ClientHelloInfo.SupportedVersions", Field, 8},
+ {"ClientSessionCache", Type, 3},
+ {"ClientSessionState", Type, 3},
+ {"Config", Type, 0},
+ {"Config.Certificates", Field, 0},
+ {"Config.CipherSuites", Field, 0},
+ {"Config.ClientAuth", Field, 0},
+ {"Config.ClientCAs", Field, 0},
+ {"Config.ClientSessionCache", Field, 3},
+ {"Config.CurvePreferences", Field, 3},
+ {"Config.DynamicRecordSizingDisabled", Field, 7},
+ {"Config.GetCertificate", Field, 4},
+ {"Config.GetClientCertificate", Field, 8},
+ {"Config.GetConfigForClient", Field, 8},
+ {"Config.InsecureSkipVerify", Field, 0},
+ {"Config.KeyLogWriter", Field, 8},
+ {"Config.MaxVersion", Field, 2},
+ {"Config.MinVersion", Field, 2},
+ {"Config.NameToCertificate", Field, 0},
+ {"Config.NextProtos", Field, 0},
+ {"Config.PreferServerCipherSuites", Field, 1},
+ {"Config.Rand", Field, 0},
+ {"Config.Renegotiation", Field, 7},
+ {"Config.RootCAs", Field, 0},
+ {"Config.ServerName", Field, 0},
+ {"Config.SessionTicketKey", Field, 1},
+ {"Config.SessionTicketsDisabled", Field, 1},
+ {"Config.Time", Field, 0},
+ {"Config.UnwrapSession", Field, 21},
+ {"Config.VerifyConnection", Field, 15},
+ {"Config.VerifyPeerCertificate", Field, 8},
+ {"Config.WrapSession", Field, 21},
+ {"Conn", Type, 0},
+ {"ConnectionState", Type, 0},
+ {"ConnectionState.CipherSuite", Field, 0},
+ {"ConnectionState.DidResume", Field, 1},
+ {"ConnectionState.HandshakeComplete", Field, 0},
+ {"ConnectionState.NegotiatedProtocol", Field, 0},
+ {"ConnectionState.NegotiatedProtocolIsMutual", Field, 0},
+ {"ConnectionState.OCSPResponse", Field, 5},
+ {"ConnectionState.PeerCertificates", Field, 0},
+ {"ConnectionState.ServerName", Field, 0},
+ {"ConnectionState.SignedCertificateTimestamps", Field, 5},
+ {"ConnectionState.TLSUnique", Field, 4},
+ {"ConnectionState.VerifiedChains", Field, 0},
+ {"ConnectionState.Version", Field, 3},
+ {"CurveID", Type, 3},
+ {"CurveP256", Const, 3},
+ {"CurveP384", Const, 3},
+ {"CurveP521", Const, 3},
+ {"Dial", Func, 0},
+ {"DialWithDialer", Func, 3},
+ {"Dialer", Type, 15},
+ {"Dialer.Config", Field, 15},
+ {"Dialer.NetDialer", Field, 15},
+ {"ECDSAWithP256AndSHA256", Const, 8},
+ {"ECDSAWithP384AndSHA384", Const, 8},
+ {"ECDSAWithP521AndSHA512", Const, 8},
+ {"ECDSAWithSHA1", Const, 10},
+ {"Ed25519", Const, 13},
+ {"InsecureCipherSuites", Func, 14},
+ {"Listen", Func, 0},
+ {"LoadX509KeyPair", Func, 0},
+ {"NewLRUClientSessionCache", Func, 3},
+ {"NewListener", Func, 0},
+ {"NewResumptionState", Func, 21},
+ {"NoClientCert", Const, 0},
+ {"PKCS1WithSHA1", Const, 8},
+ {"PKCS1WithSHA256", Const, 8},
+ {"PKCS1WithSHA384", Const, 8},
+ {"PKCS1WithSHA512", Const, 8},
+ {"PSSWithSHA256", Const, 8},
+ {"PSSWithSHA384", Const, 8},
+ {"PSSWithSHA512", Const, 8},
+ {"ParseSessionState", Func, 21},
+ {"QUICClient", Func, 21},
+ {"QUICConfig", Type, 21},
+ {"QUICConfig.TLSConfig", Field, 21},
+ {"QUICConn", Type, 21},
+ {"QUICEncryptionLevel", Type, 21},
+ {"QUICEncryptionLevelApplication", Const, 21},
+ {"QUICEncryptionLevelEarly", Const, 21},
+ {"QUICEncryptionLevelHandshake", Const, 21},
+ {"QUICEncryptionLevelInitial", Const, 21},
+ {"QUICEvent", Type, 21},
+ {"QUICEvent.Data", Field, 21},
+ {"QUICEvent.Kind", Field, 21},
+ {"QUICEvent.Level", Field, 21},
+ {"QUICEvent.Suite", Field, 21},
+ {"QUICEventKind", Type, 21},
+ {"QUICHandshakeDone", Const, 21},
+ {"QUICNoEvent", Const, 21},
+ {"QUICRejectedEarlyData", Const, 21},
+ {"QUICServer", Func, 21},
+ {"QUICSessionTicketOptions", Type, 21},
+ {"QUICSessionTicketOptions.EarlyData", Field, 21},
+ {"QUICSetReadSecret", Const, 21},
+ {"QUICSetWriteSecret", Const, 21},
+ {"QUICTransportParameters", Const, 21},
+ {"QUICTransportParametersRequired", Const, 21},
+ {"QUICWriteData", Const, 21},
+ {"RecordHeaderError", Type, 6},
+ {"RecordHeaderError.Conn", Field, 12},
+ {"RecordHeaderError.Msg", Field, 6},
+ {"RecordHeaderError.RecordHeader", Field, 6},
+ {"RenegotiateFreelyAsClient", Const, 7},
+ {"RenegotiateNever", Const, 7},
+ {"RenegotiateOnceAsClient", Const, 7},
+ {"RenegotiationSupport", Type, 7},
+ {"RequestClientCert", Const, 0},
+ {"RequireAndVerifyClientCert", Const, 0},
+ {"RequireAnyClientCert", Const, 0},
+ {"Server", Func, 0},
+ {"SessionState", Type, 21},
+ {"SessionState.EarlyData", Field, 21},
+ {"SessionState.Extra", Field, 21},
+ {"SignatureScheme", Type, 8},
+ {"TLS_AES_128_GCM_SHA256", Const, 12},
+ {"TLS_AES_256_GCM_SHA384", Const, 12},
+ {"TLS_CHACHA20_POLY1305_SHA256", Const, 12},
+ {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2},
+ {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8},
+ {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2},
+ {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2},
+ {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5},
+ {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8},
+ {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14},
+ {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2},
+ {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0},
+ {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0},
+ {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8},
+ {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2},
+ {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1},
+ {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5},
+ {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8},
+ {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14},
+ {"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0},
+ {"TLS_FALLBACK_SCSV", Const, 4},
+ {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0},
+ {"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0},
+ {"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8},
+ {"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6},
+ {"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1},
+ {"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6},
+ {"TLS_RSA_WITH_RC4_128_SHA", Const, 0},
+ {"VerifyClientCertIfGiven", Const, 0},
+ {"VersionName", Func, 21},
+ {"VersionSSL30", Const, 2},
+ {"VersionTLS10", Const, 2},
+ {"VersionTLS11", Const, 2},
+ {"VersionTLS12", Const, 2},
+ {"VersionTLS13", Const, 12},
+ {"X25519", Const, 8},
+ {"X509KeyPair", Func, 0},
+ },
+ "crypto/x509": {
+ {"(*CertPool).AddCert", Method, 0},
+ {"(*CertPool).AddCertWithConstraint", Method, 22},
+ {"(*CertPool).AppendCertsFromPEM", Method, 0},
+ {"(*CertPool).Clone", Method, 19},
+ {"(*CertPool).Equal", Method, 19},
+ {"(*CertPool).Subjects", Method, 0},
+ {"(*Certificate).CheckCRLSignature", Method, 0},
+ {"(*Certificate).CheckSignature", Method, 0},
+ {"(*Certificate).CheckSignatureFrom", Method, 0},
+ {"(*Certificate).CreateCRL", Method, 0},
+ {"(*Certificate).Equal", Method, 0},
+ {"(*Certificate).Verify", Method, 0},
+ {"(*Certificate).VerifyHostname", Method, 0},
+ {"(*CertificateRequest).CheckSignature", Method, 5},
+ {"(*RevocationList).CheckSignatureFrom", Method, 19},
+ {"(CertificateInvalidError).Error", Method, 0},
+ {"(ConstraintViolationError).Error", Method, 0},
+ {"(HostnameError).Error", Method, 0},
+ {"(InsecureAlgorithmError).Error", Method, 6},
+ {"(OID).Equal", Method, 22},
+ {"(OID).EqualASN1OID", Method, 22},
+ {"(OID).String", Method, 22},
+ {"(PublicKeyAlgorithm).String", Method, 10},
+ {"(SignatureAlgorithm).String", Method, 6},
+ {"(SystemRootsError).Error", Method, 1},
+ {"(SystemRootsError).Unwrap", Method, 16},
+ {"(UnhandledCriticalExtension).Error", Method, 0},
+ {"(UnknownAuthorityError).Error", Method, 0},
+ {"CANotAuthorizedForExtKeyUsage", Const, 10},
+ {"CANotAuthorizedForThisName", Const, 0},
+ {"CertPool", Type, 0},
+ {"Certificate", Type, 0},
+ {"Certificate.AuthorityKeyId", Field, 0},
+ {"Certificate.BasicConstraintsValid", Field, 0},
+ {"Certificate.CRLDistributionPoints", Field, 2},
+ {"Certificate.DNSNames", Field, 0},
+ {"Certificate.EmailAddresses", Field, 0},
+ {"Certificate.ExcludedDNSDomains", Field, 9},
+ {"Certificate.ExcludedEmailAddresses", Field, 10},
+ {"Certificate.ExcludedIPRanges", Field, 10},
+ {"Certificate.ExcludedURIDomains", Field, 10},
+ {"Certificate.ExtKeyUsage", Field, 0},
+ {"Certificate.Extensions", Field, 2},
+ {"Certificate.ExtraExtensions", Field, 2},
+ {"Certificate.IPAddresses", Field, 1},
+ {"Certificate.IsCA", Field, 0},
+ {"Certificate.Issuer", Field, 0},
+ {"Certificate.IssuingCertificateURL", Field, 2},
+ {"Certificate.KeyUsage", Field, 0},
+ {"Certificate.MaxPathLen", Field, 0},
+ {"Certificate.MaxPathLenZero", Field, 4},
+ {"Certificate.NotAfter", Field, 0},
+ {"Certificate.NotBefore", Field, 0},
+ {"Certificate.OCSPServer", Field, 2},
+ {"Certificate.PermittedDNSDomains", Field, 0},
+ {"Certificate.PermittedDNSDomainsCritical", Field, 0},
+ {"Certificate.PermittedEmailAddresses", Field, 10},
+ {"Certificate.PermittedIPRanges", Field, 10},
+ {"Certificate.PermittedURIDomains", Field, 10},
+ {"Certificate.Policies", Field, 22},
+ {"Certificate.PolicyIdentifiers", Field, 0},
+ {"Certificate.PublicKey", Field, 0},
+ {"Certificate.PublicKeyAlgorithm", Field, 0},
+ {"Certificate.Raw", Field, 0},
+ {"Certificate.RawIssuer", Field, 0},
+ {"Certificate.RawSubject", Field, 0},
+ {"Certificate.RawSubjectPublicKeyInfo", Field, 0},
+ {"Certificate.RawTBSCertificate", Field, 0},
+ {"Certificate.SerialNumber", Field, 0},
+ {"Certificate.Signature", Field, 0},
+ {"Certificate.SignatureAlgorithm", Field, 0},
+ {"Certificate.Subject", Field, 0},
+ {"Certificate.SubjectKeyId", Field, 0},
+ {"Certificate.URIs", Field, 10},
+ {"Certificate.UnhandledCriticalExtensions", Field, 5},
+ {"Certificate.UnknownExtKeyUsage", Field, 0},
+ {"Certificate.Version", Field, 0},
+ {"CertificateInvalidError", Type, 0},
+ {"CertificateInvalidError.Cert", Field, 0},
+ {"CertificateInvalidError.Detail", Field, 10},
+ {"CertificateInvalidError.Reason", Field, 0},
+ {"CertificateRequest", Type, 3},
+ {"CertificateRequest.Attributes", Field, 3},
+ {"CertificateRequest.DNSNames", Field, 3},
+ {"CertificateRequest.EmailAddresses", Field, 3},
+ {"CertificateRequest.Extensions", Field, 3},
+ {"CertificateRequest.ExtraExtensions", Field, 3},
+ {"CertificateRequest.IPAddresses", Field, 3},
+ {"CertificateRequest.PublicKey", Field, 3},
+ {"CertificateRequest.PublicKeyAlgorithm", Field, 3},
+ {"CertificateRequest.Raw", Field, 3},
+ {"CertificateRequest.RawSubject", Field, 3},
+ {"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3},
+ {"CertificateRequest.RawTBSCertificateRequest", Field, 3},
+ {"CertificateRequest.Signature", Field, 3},
+ {"CertificateRequest.SignatureAlgorithm", Field, 3},
+ {"CertificateRequest.Subject", Field, 3},
+ {"CertificateRequest.URIs", Field, 10},
+ {"CertificateRequest.Version", Field, 3},
+ {"ConstraintViolationError", Type, 0},
+ {"CreateCertificate", Func, 0},
+ {"CreateCertificateRequest", Func, 3},
+ {"CreateRevocationList", Func, 15},
+ {"DSA", Const, 0},
+ {"DSAWithSHA1", Const, 0},
+ {"DSAWithSHA256", Const, 0},
+ {"DecryptPEMBlock", Func, 1},
+ {"ECDSA", Const, 1},
+ {"ECDSAWithSHA1", Const, 1},
+ {"ECDSAWithSHA256", Const, 1},
+ {"ECDSAWithSHA384", Const, 1},
+ {"ECDSAWithSHA512", Const, 1},
+ {"Ed25519", Const, 13},
+ {"EncryptPEMBlock", Func, 1},
+ {"ErrUnsupportedAlgorithm", Var, 0},
+ {"Expired", Const, 0},
+ {"ExtKeyUsage", Type, 0},
+ {"ExtKeyUsageAny", Const, 0},
+ {"ExtKeyUsageClientAuth", Const, 0},
+ {"ExtKeyUsageCodeSigning", Const, 0},
+ {"ExtKeyUsageEmailProtection", Const, 0},
+ {"ExtKeyUsageIPSECEndSystem", Const, 1},
+ {"ExtKeyUsageIPSECTunnel", Const, 1},
+ {"ExtKeyUsageIPSECUser", Const, 1},
+ {"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10},
+ {"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10},
+ {"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1},
+ {"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1},
+ {"ExtKeyUsageOCSPSigning", Const, 0},
+ {"ExtKeyUsageServerAuth", Const, 0},
+ {"ExtKeyUsageTimeStamping", Const, 0},
+ {"HostnameError", Type, 0},
+ {"HostnameError.Certificate", Field, 0},
+ {"HostnameError.Host", Field, 0},
+ {"IncompatibleUsage", Const, 1},
+ {"IncorrectPasswordError", Var, 1},
+ {"InsecureAlgorithmError", Type, 6},
+ {"InvalidReason", Type, 0},
+ {"IsEncryptedPEMBlock", Func, 1},
+ {"KeyUsage", Type, 0},
+ {"KeyUsageCRLSign", Const, 0},
+ {"KeyUsageCertSign", Const, 0},
+ {"KeyUsageContentCommitment", Const, 0},
+ {"KeyUsageDataEncipherment", Const, 0},
+ {"KeyUsageDecipherOnly", Const, 0},
+ {"KeyUsageDigitalSignature", Const, 0},
+ {"KeyUsageEncipherOnly", Const, 0},
+ {"KeyUsageKeyAgreement", Const, 0},
+ {"KeyUsageKeyEncipherment", Const, 0},
+ {"MD2WithRSA", Const, 0},
+ {"MD5WithRSA", Const, 0},
+ {"MarshalECPrivateKey", Func, 2},
+ {"MarshalPKCS1PrivateKey", Func, 0},
+ {"MarshalPKCS1PublicKey", Func, 10},
+ {"MarshalPKCS8PrivateKey", Func, 10},
+ {"MarshalPKIXPublicKey", Func, 0},
+ {"NameConstraintsWithoutSANs", Const, 10},
+ {"NameMismatch", Const, 8},
+ {"NewCertPool", Func, 0},
+ {"NotAuthorizedToSign", Const, 0},
+ {"OID", Type, 22},
+ {"OIDFromInts", Func, 22},
+ {"PEMCipher", Type, 1},
+ {"PEMCipher3DES", Const, 1},
+ {"PEMCipherAES128", Const, 1},
+ {"PEMCipherAES192", Const, 1},
+ {"PEMCipherAES256", Const, 1},
+ {"PEMCipherDES", Const, 1},
+ {"ParseCRL", Func, 0},
+ {"ParseCertificate", Func, 0},
+ {"ParseCertificateRequest", Func, 3},
+ {"ParseCertificates", Func, 0},
+ {"ParseDERCRL", Func, 0},
+ {"ParseECPrivateKey", Func, 1},
+ {"ParsePKCS1PrivateKey", Func, 0},
+ {"ParsePKCS1PublicKey", Func, 10},
+ {"ParsePKCS8PrivateKey", Func, 0},
+ {"ParsePKIXPublicKey", Func, 0},
+ {"ParseRevocationList", Func, 19},
+ {"PublicKeyAlgorithm", Type, 0},
+ {"PureEd25519", Const, 13},
+ {"RSA", Const, 0},
+ {"RevocationList", Type, 15},
+ {"RevocationList.AuthorityKeyId", Field, 19},
+ {"RevocationList.Extensions", Field, 19},
+ {"RevocationList.ExtraExtensions", Field, 15},
+ {"RevocationList.Issuer", Field, 19},
+ {"RevocationList.NextUpdate", Field, 15},
+ {"RevocationList.Number", Field, 15},
+ {"RevocationList.Raw", Field, 19},
+ {"RevocationList.RawIssuer", Field, 19},
+ {"RevocationList.RawTBSRevocationList", Field, 19},
+ {"RevocationList.RevokedCertificateEntries", Field, 21},
+ {"RevocationList.RevokedCertificates", Field, 15},
+ {"RevocationList.Signature", Field, 19},
+ {"RevocationList.SignatureAlgorithm", Field, 15},
+ {"RevocationList.ThisUpdate", Field, 15},
+ {"RevocationListEntry", Type, 21},
+ {"RevocationListEntry.Extensions", Field, 21},
+ {"RevocationListEntry.ExtraExtensions", Field, 21},
+ {"RevocationListEntry.Raw", Field, 21},
+ {"RevocationListEntry.ReasonCode", Field, 21},
+ {"RevocationListEntry.RevocationTime", Field, 21},
+ {"RevocationListEntry.SerialNumber", Field, 21},
+ {"SHA1WithRSA", Const, 0},
+ {"SHA256WithRSA", Const, 0},
+ {"SHA256WithRSAPSS", Const, 8},
+ {"SHA384WithRSA", Const, 0},
+ {"SHA384WithRSAPSS", Const, 8},
+ {"SHA512WithRSA", Const, 0},
+ {"SHA512WithRSAPSS", Const, 8},
+ {"SetFallbackRoots", Func, 20},
+ {"SignatureAlgorithm", Type, 0},
+ {"SystemCertPool", Func, 7},
+ {"SystemRootsError", Type, 1},
+ {"SystemRootsError.Err", Field, 7},
+ {"TooManyConstraints", Const, 10},
+ {"TooManyIntermediates", Const, 0},
+ {"UnconstrainedName", Const, 10},
+ {"UnhandledCriticalExtension", Type, 0},
+ {"UnknownAuthorityError", Type, 0},
+ {"UnknownAuthorityError.Cert", Field, 8},
+ {"UnknownPublicKeyAlgorithm", Const, 0},
+ {"UnknownSignatureAlgorithm", Const, 0},
+ {"VerifyOptions", Type, 0},
+ {"VerifyOptions.CurrentTime", Field, 0},
+ {"VerifyOptions.DNSName", Field, 0},
+ {"VerifyOptions.Intermediates", Field, 0},
+ {"VerifyOptions.KeyUsages", Field, 1},
+ {"VerifyOptions.MaxConstraintComparisions", Field, 10},
+ {"VerifyOptions.Roots", Field, 0},
+ },
+ "crypto/x509/pkix": {
+ {"(*CertificateList).HasExpired", Method, 0},
+ {"(*Name).FillFromRDNSequence", Method, 0},
+ {"(Name).String", Method, 10},
+ {"(Name).ToRDNSequence", Method, 0},
+ {"(RDNSequence).String", Method, 10},
+ {"AlgorithmIdentifier", Type, 0},
+ {"AlgorithmIdentifier.Algorithm", Field, 0},
+ {"AlgorithmIdentifier.Parameters", Field, 0},
+ {"AttributeTypeAndValue", Type, 0},
+ {"AttributeTypeAndValue.Type", Field, 0},
+ {"AttributeTypeAndValue.Value", Field, 0},
+ {"AttributeTypeAndValueSET", Type, 3},
+ {"AttributeTypeAndValueSET.Type", Field, 3},
+ {"AttributeTypeAndValueSET.Value", Field, 3},
+ {"CertificateList", Type, 0},
+ {"CertificateList.SignatureAlgorithm", Field, 0},
+ {"CertificateList.SignatureValue", Field, 0},
+ {"CertificateList.TBSCertList", Field, 0},
+ {"Extension", Type, 0},
+ {"Extension.Critical", Field, 0},
+ {"Extension.Id", Field, 0},
+ {"Extension.Value", Field, 0},
+ {"Name", Type, 0},
+ {"Name.CommonName", Field, 0},
+ {"Name.Country", Field, 0},
+ {"Name.ExtraNames", Field, 5},
+ {"Name.Locality", Field, 0},
+ {"Name.Names", Field, 0},
+ {"Name.Organization", Field, 0},
+ {"Name.OrganizationalUnit", Field, 0},
+ {"Name.PostalCode", Field, 0},
+ {"Name.Province", Field, 0},
+ {"Name.SerialNumber", Field, 0},
+ {"Name.StreetAddress", Field, 0},
+ {"RDNSequence", Type, 0},
+ {"RelativeDistinguishedNameSET", Type, 0},
+ {"RevokedCertificate", Type, 0},
+ {"RevokedCertificate.Extensions", Field, 0},
+ {"RevokedCertificate.RevocationTime", Field, 0},
+ {"RevokedCertificate.SerialNumber", Field, 0},
+ {"TBSCertificateList", Type, 0},
+ {"TBSCertificateList.Extensions", Field, 0},
+ {"TBSCertificateList.Issuer", Field, 0},
+ {"TBSCertificateList.NextUpdate", Field, 0},
+ {"TBSCertificateList.Raw", Field, 0},
+ {"TBSCertificateList.RevokedCertificates", Field, 0},
+ {"TBSCertificateList.Signature", Field, 0},
+ {"TBSCertificateList.ThisUpdate", Field, 0},
+ {"TBSCertificateList.Version", Field, 0},
+ },
+ "database/sql": {
+ {"(*ColumnType).DatabaseTypeName", Method, 8},
+ {"(*ColumnType).DecimalSize", Method, 8},
+ {"(*ColumnType).Length", Method, 8},
+ {"(*ColumnType).Name", Method, 8},
+ {"(*ColumnType).Nullable", Method, 8},
+ {"(*ColumnType).ScanType", Method, 8},
+ {"(*Conn).BeginTx", Method, 9},
+ {"(*Conn).Close", Method, 9},
+ {"(*Conn).ExecContext", Method, 9},
+ {"(*Conn).PingContext", Method, 9},
+ {"(*Conn).PrepareContext", Method, 9},
+ {"(*Conn).QueryContext", Method, 9},
+ {"(*Conn).QueryRowContext", Method, 9},
+ {"(*Conn).Raw", Method, 13},
+ {"(*DB).Begin", Method, 0},
+ {"(*DB).BeginTx", Method, 8},
+ {"(*DB).Close", Method, 0},
+ {"(*DB).Conn", Method, 9},
+ {"(*DB).Driver", Method, 0},
+ {"(*DB).Exec", Method, 0},
+ {"(*DB).ExecContext", Method, 8},
+ {"(*DB).Ping", Method, 1},
+ {"(*DB).PingContext", Method, 8},
+ {"(*DB).Prepare", Method, 0},
+ {"(*DB).PrepareContext", Method, 8},
+ {"(*DB).Query", Method, 0},
+ {"(*DB).QueryContext", Method, 8},
+ {"(*DB).QueryRow", Method, 0},
+ {"(*DB).QueryRowContext", Method, 8},
+ {"(*DB).SetConnMaxIdleTime", Method, 15},
+ {"(*DB).SetConnMaxLifetime", Method, 6},
+ {"(*DB).SetMaxIdleConns", Method, 1},
+ {"(*DB).SetMaxOpenConns", Method, 2},
+ {"(*DB).Stats", Method, 5},
+ {"(*Null).Scan", Method, 22},
+ {"(*NullBool).Scan", Method, 0},
+ {"(*NullByte).Scan", Method, 17},
+ {"(*NullFloat64).Scan", Method, 0},
+ {"(*NullInt16).Scan", Method, 17},
+ {"(*NullInt32).Scan", Method, 13},
+ {"(*NullInt64).Scan", Method, 0},
+ {"(*NullString).Scan", Method, 0},
+ {"(*NullTime).Scan", Method, 13},
+ {"(*Row).Err", Method, 15},
+ {"(*Row).Scan", Method, 0},
+ {"(*Rows).Close", Method, 0},
+ {"(*Rows).ColumnTypes", Method, 8},
+ {"(*Rows).Columns", Method, 0},
+ {"(*Rows).Err", Method, 0},
+ {"(*Rows).Next", Method, 0},
+ {"(*Rows).NextResultSet", Method, 8},
+ {"(*Rows).Scan", Method, 0},
+ {"(*Stmt).Close", Method, 0},
+ {"(*Stmt).Exec", Method, 0},
+ {"(*Stmt).ExecContext", Method, 8},
+ {"(*Stmt).Query", Method, 0},
+ {"(*Stmt).QueryContext", Method, 8},
+ {"(*Stmt).QueryRow", Method, 0},
+ {"(*Stmt).QueryRowContext", Method, 8},
+ {"(*Tx).Commit", Method, 0},
+ {"(*Tx).Exec", Method, 0},
+ {"(*Tx).ExecContext", Method, 8},
+ {"(*Tx).Prepare", Method, 0},
+ {"(*Tx).PrepareContext", Method, 8},
+ {"(*Tx).Query", Method, 0},
+ {"(*Tx).QueryContext", Method, 8},
+ {"(*Tx).QueryRow", Method, 0},
+ {"(*Tx).QueryRowContext", Method, 8},
+ {"(*Tx).Rollback", Method, 0},
+ {"(*Tx).Stmt", Method, 0},
+ {"(*Tx).StmtContext", Method, 8},
+ {"(IsolationLevel).String", Method, 11},
+ {"(Null).Value", Method, 22},
+ {"(NullBool).Value", Method, 0},
+ {"(NullByte).Value", Method, 17},
+ {"(NullFloat64).Value", Method, 0},
+ {"(NullInt16).Value", Method, 17},
+ {"(NullInt32).Value", Method, 13},
+ {"(NullInt64).Value", Method, 0},
+ {"(NullString).Value", Method, 0},
+ {"(NullTime).Value", Method, 13},
+ {"ColumnType", Type, 8},
+ {"Conn", Type, 9},
+ {"DB", Type, 0},
+ {"DBStats", Type, 5},
+ {"DBStats.Idle", Field, 11},
+ {"DBStats.InUse", Field, 11},
+ {"DBStats.MaxIdleClosed", Field, 11},
+ {"DBStats.MaxIdleTimeClosed", Field, 15},
+ {"DBStats.MaxLifetimeClosed", Field, 11},
+ {"DBStats.MaxOpenConnections", Field, 11},
+ {"DBStats.OpenConnections", Field, 5},
+ {"DBStats.WaitCount", Field, 11},
+ {"DBStats.WaitDuration", Field, 11},
+ {"Drivers", Func, 4},
+ {"ErrConnDone", Var, 9},
+ {"ErrNoRows", Var, 0},
+ {"ErrTxDone", Var, 0},
+ {"IsolationLevel", Type, 8},
+ {"LevelDefault", Const, 8},
+ {"LevelLinearizable", Const, 8},
+ {"LevelReadCommitted", Const, 8},
+ {"LevelReadUncommitted", Const, 8},
+ {"LevelRepeatableRead", Const, 8},
+ {"LevelSerializable", Const, 8},
+ {"LevelSnapshot", Const, 8},
+ {"LevelWriteCommitted", Const, 8},
+ {"Named", Func, 8},
+ {"NamedArg", Type, 8},
+ {"NamedArg.Name", Field, 8},
+ {"NamedArg.Value", Field, 8},
+ {"Null", Type, 22},
+ {"Null.V", Field, 22},
+ {"Null.Valid", Field, 22},
+ {"NullBool", Type, 0},
+ {"NullBool.Bool", Field, 0},
+ {"NullBool.Valid", Field, 0},
+ {"NullByte", Type, 17},
+ {"NullByte.Byte", Field, 17},
+ {"NullByte.Valid", Field, 17},
+ {"NullFloat64", Type, 0},
+ {"NullFloat64.Float64", Field, 0},
+ {"NullFloat64.Valid", Field, 0},
+ {"NullInt16", Type, 17},
+ {"NullInt16.Int16", Field, 17},
+ {"NullInt16.Valid", Field, 17},
+ {"NullInt32", Type, 13},
+ {"NullInt32.Int32", Field, 13},
+ {"NullInt32.Valid", Field, 13},
+ {"NullInt64", Type, 0},
+ {"NullInt64.Int64", Field, 0},
+ {"NullInt64.Valid", Field, 0},
+ {"NullString", Type, 0},
+ {"NullString.String", Field, 0},
+ {"NullString.Valid", Field, 0},
+ {"NullTime", Type, 13},
+ {"NullTime.Time", Field, 13},
+ {"NullTime.Valid", Field, 13},
+ {"Open", Func, 0},
+ {"OpenDB", Func, 10},
+ {"Out", Type, 9},
+ {"Out.Dest", Field, 9},
+ {"Out.In", Field, 9},
+ {"RawBytes", Type, 0},
+ {"Register", Func, 0},
+ {"Result", Type, 0},
+ {"Row", Type, 0},
+ {"Rows", Type, 0},
+ {"Scanner", Type, 0},
+ {"Stmt", Type, 0},
+ {"Tx", Type, 0},
+ {"TxOptions", Type, 8},
+ {"TxOptions.Isolation", Field, 8},
+ {"TxOptions.ReadOnly", Field, 8},
+ },
+ "database/sql/driver": {
+ {"(NotNull).ConvertValue", Method, 0},
+ {"(Null).ConvertValue", Method, 0},
+ {"(RowsAffected).LastInsertId", Method, 0},
+ {"(RowsAffected).RowsAffected", Method, 0},
+ {"Bool", Var, 0},
+ {"ColumnConverter", Type, 0},
+ {"Conn", Type, 0},
+ {"ConnBeginTx", Type, 8},
+ {"ConnPrepareContext", Type, 8},
+ {"Connector", Type, 10},
+ {"DefaultParameterConverter", Var, 0},
+ {"Driver", Type, 0},
+ {"DriverContext", Type, 10},
+ {"ErrBadConn", Var, 0},
+ {"ErrRemoveArgument", Var, 9},
+ {"ErrSkip", Var, 0},
+ {"Execer", Type, 0},
+ {"ExecerContext", Type, 8},
+ {"Int32", Var, 0},
+ {"IsScanValue", Func, 0},
+ {"IsValue", Func, 0},
+ {"IsolationLevel", Type, 8},
+ {"NamedValue", Type, 8},
+ {"NamedValue.Name", Field, 8},
+ {"NamedValue.Ordinal", Field, 8},
+ {"NamedValue.Value", Field, 8},
+ {"NamedValueChecker", Type, 9},
+ {"NotNull", Type, 0},
+ {"NotNull.Converter", Field, 0},
+ {"Null", Type, 0},
+ {"Null.Converter", Field, 0},
+ {"Pinger", Type, 8},
+ {"Queryer", Type, 1},
+ {"QueryerContext", Type, 8},
+ {"Result", Type, 0},
+ {"ResultNoRows", Var, 0},
+ {"Rows", Type, 0},
+ {"RowsAffected", Type, 0},
+ {"RowsColumnTypeDatabaseTypeName", Type, 8},
+ {"RowsColumnTypeLength", Type, 8},
+ {"RowsColumnTypeNullable", Type, 8},
+ {"RowsColumnTypePrecisionScale", Type, 8},
+ {"RowsColumnTypeScanType", Type, 8},
+ {"RowsNextResultSet", Type, 8},
+ {"SessionResetter", Type, 10},
+ {"Stmt", Type, 0},
+ {"StmtExecContext", Type, 8},
+ {"StmtQueryContext", Type, 8},
+ {"String", Var, 0},
+ {"Tx", Type, 0},
+ {"TxOptions", Type, 8},
+ {"TxOptions.Isolation", Field, 8},
+ {"TxOptions.ReadOnly", Field, 8},
+ {"Validator", Type, 15},
+ {"Value", Type, 0},
+ {"ValueConverter", Type, 0},
+ {"Valuer", Type, 0},
+ },
+ "debug/buildinfo": {
+ {"BuildInfo", Type, 18},
+ {"Read", Func, 18},
+ {"ReadFile", Func, 18},
+ },
+ "debug/dwarf": {
+ {"(*AddrType).Basic", Method, 0},
+ {"(*AddrType).Common", Method, 0},
+ {"(*AddrType).Size", Method, 0},
+ {"(*AddrType).String", Method, 0},
+ {"(*ArrayType).Common", Method, 0},
+ {"(*ArrayType).Size", Method, 0},
+ {"(*ArrayType).String", Method, 0},
+ {"(*BasicType).Basic", Method, 0},
+ {"(*BasicType).Common", Method, 0},
+ {"(*BasicType).Size", Method, 0},
+ {"(*BasicType).String", Method, 0},
+ {"(*BoolType).Basic", Method, 0},
+ {"(*BoolType).Common", Method, 0},
+ {"(*BoolType).Size", Method, 0},
+ {"(*BoolType).String", Method, 0},
+ {"(*CharType).Basic", Method, 0},
+ {"(*CharType).Common", Method, 0},
+ {"(*CharType).Size", Method, 0},
+ {"(*CharType).String", Method, 0},
+ {"(*CommonType).Common", Method, 0},
+ {"(*CommonType).Size", Method, 0},
+ {"(*ComplexType).Basic", Method, 0},
+ {"(*ComplexType).Common", Method, 0},
+ {"(*ComplexType).Size", Method, 0},
+ {"(*ComplexType).String", Method, 0},
+ {"(*Data).AddSection", Method, 14},
+ {"(*Data).AddTypes", Method, 3},
+ {"(*Data).LineReader", Method, 5},
+ {"(*Data).Ranges", Method, 7},
+ {"(*Data).Reader", Method, 0},
+ {"(*Data).Type", Method, 0},
+ {"(*DotDotDotType).Common", Method, 0},
+ {"(*DotDotDotType).Size", Method, 0},
+ {"(*DotDotDotType).String", Method, 0},
+ {"(*Entry).AttrField", Method, 5},
+ {"(*Entry).Val", Method, 0},
+ {"(*EnumType).Common", Method, 0},
+ {"(*EnumType).Size", Method, 0},
+ {"(*EnumType).String", Method, 0},
+ {"(*FloatType).Basic", Method, 0},
+ {"(*FloatType).Common", Method, 0},
+ {"(*FloatType).Size", Method, 0},
+ {"(*FloatType).String", Method, 0},
+ {"(*FuncType).Common", Method, 0},
+ {"(*FuncType).Size", Method, 0},
+ {"(*FuncType).String", Method, 0},
+ {"(*IntType).Basic", Method, 0},
+ {"(*IntType).Common", Method, 0},
+ {"(*IntType).Size", Method, 0},
+ {"(*IntType).String", Method, 0},
+ {"(*LineReader).Files", Method, 14},
+ {"(*LineReader).Next", Method, 5},
+ {"(*LineReader).Reset", Method, 5},
+ {"(*LineReader).Seek", Method, 5},
+ {"(*LineReader).SeekPC", Method, 5},
+ {"(*LineReader).Tell", Method, 5},
+ {"(*PtrType).Common", Method, 0},
+ {"(*PtrType).Size", Method, 0},
+ {"(*PtrType).String", Method, 0},
+ {"(*QualType).Common", Method, 0},
+ {"(*QualType).Size", Method, 0},
+ {"(*QualType).String", Method, 0},
+ {"(*Reader).AddressSize", Method, 5},
+ {"(*Reader).ByteOrder", Method, 14},
+ {"(*Reader).Next", Method, 0},
+ {"(*Reader).Seek", Method, 0},
+ {"(*Reader).SeekPC", Method, 7},
+ {"(*Reader).SkipChildren", Method, 0},
+ {"(*StructType).Common", Method, 0},
+ {"(*StructType).Defn", Method, 0},
+ {"(*StructType).Size", Method, 0},
+ {"(*StructType).String", Method, 0},
+ {"(*TypedefType).Common", Method, 0},
+ {"(*TypedefType).Size", Method, 0},
+ {"(*TypedefType).String", Method, 0},
+ {"(*UcharType).Basic", Method, 0},
+ {"(*UcharType).Common", Method, 0},
+ {"(*UcharType).Size", Method, 0},
+ {"(*UcharType).String", Method, 0},
+ {"(*UintType).Basic", Method, 0},
+ {"(*UintType).Common", Method, 0},
+ {"(*UintType).Size", Method, 0},
+ {"(*UintType).String", Method, 0},
+ {"(*UnspecifiedType).Basic", Method, 4},
+ {"(*UnspecifiedType).Common", Method, 4},
+ {"(*UnspecifiedType).Size", Method, 4},
+ {"(*UnspecifiedType).String", Method, 4},
+ {"(*UnsupportedType).Common", Method, 13},
+ {"(*UnsupportedType).Size", Method, 13},
+ {"(*UnsupportedType).String", Method, 13},
+ {"(*VoidType).Common", Method, 0},
+ {"(*VoidType).Size", Method, 0},
+ {"(*VoidType).String", Method, 0},
+ {"(Attr).GoString", Method, 0},
+ {"(Attr).String", Method, 0},
+ {"(Class).GoString", Method, 5},
+ {"(Class).String", Method, 5},
+ {"(DecodeError).Error", Method, 0},
+ {"(Tag).GoString", Method, 0},
+ {"(Tag).String", Method, 0},
+ {"AddrType", Type, 0},
+ {"AddrType.BasicType", Field, 0},
+ {"ArrayType", Type, 0},
+ {"ArrayType.CommonType", Field, 0},
+ {"ArrayType.Count", Field, 0},
+ {"ArrayType.StrideBitSize", Field, 0},
+ {"ArrayType.Type", Field, 0},
+ {"Attr", Type, 0},
+ {"AttrAbstractOrigin", Const, 0},
+ {"AttrAccessibility", Const, 0},
+ {"AttrAddrBase", Const, 14},
+ {"AttrAddrClass", Const, 0},
+ {"AttrAlignment", Const, 14},
+ {"AttrAllocated", Const, 0},
+ {"AttrArtificial", Const, 0},
+ {"AttrAssociated", Const, 0},
+ {"AttrBaseTypes", Const, 0},
+ {"AttrBinaryScale", Const, 14},
+ {"AttrBitOffset", Const, 0},
+ {"AttrBitSize", Const, 0},
+ {"AttrByteSize", Const, 0},
+ {"AttrCallAllCalls", Const, 14},
+ {"AttrCallAllSourceCalls", Const, 14},
+ {"AttrCallAllTailCalls", Const, 14},
+ {"AttrCallColumn", Const, 0},
+ {"AttrCallDataLocation", Const, 14},
+ {"AttrCallDataValue", Const, 14},
+ {"AttrCallFile", Const, 0},
+ {"AttrCallLine", Const, 0},
+ {"AttrCallOrigin", Const, 14},
+ {"AttrCallPC", Const, 14},
+ {"AttrCallParameter", Const, 14},
+ {"AttrCallReturnPC", Const, 14},
+ {"AttrCallTailCall", Const, 14},
+ {"AttrCallTarget", Const, 14},
+ {"AttrCallTargetClobbered", Const, 14},
+ {"AttrCallValue", Const, 14},
+ {"AttrCalling", Const, 0},
+ {"AttrCommonRef", Const, 0},
+ {"AttrCompDir", Const, 0},
+ {"AttrConstExpr", Const, 14},
+ {"AttrConstValue", Const, 0},
+ {"AttrContainingType", Const, 0},
+ {"AttrCount", Const, 0},
+ {"AttrDataBitOffset", Const, 14},
+ {"AttrDataLocation", Const, 0},
+ {"AttrDataMemberLoc", Const, 0},
+ {"AttrDecimalScale", Const, 14},
+ {"AttrDecimalSign", Const, 14},
+ {"AttrDeclColumn", Const, 0},
+ {"AttrDeclFile", Const, 0},
+ {"AttrDeclLine", Const, 0},
+ {"AttrDeclaration", Const, 0},
+ {"AttrDefaultValue", Const, 0},
+ {"AttrDefaulted", Const, 14},
+ {"AttrDeleted", Const, 14},
+ {"AttrDescription", Const, 0},
+ {"AttrDigitCount", Const, 14},
+ {"AttrDiscr", Const, 0},
+ {"AttrDiscrList", Const, 0},
+ {"AttrDiscrValue", Const, 0},
+ {"AttrDwoName", Const, 14},
+ {"AttrElemental", Const, 14},
+ {"AttrEncoding", Const, 0},
+ {"AttrEndianity", Const, 14},
+ {"AttrEntrypc", Const, 0},
+ {"AttrEnumClass", Const, 14},
+ {"AttrExplicit", Const, 14},
+ {"AttrExportSymbols", Const, 14},
+ {"AttrExtension", Const, 0},
+ {"AttrExternal", Const, 0},
+ {"AttrFrameBase", Const, 0},
+ {"AttrFriend", Const, 0},
+ {"AttrHighpc", Const, 0},
+ {"AttrIdentifierCase", Const, 0},
+ {"AttrImport", Const, 0},
+ {"AttrInline", Const, 0},
+ {"AttrIsOptional", Const, 0},
+ {"AttrLanguage", Const, 0},
+ {"AttrLinkageName", Const, 14},
+ {"AttrLocation", Const, 0},
+ {"AttrLoclistsBase", Const, 14},
+ {"AttrLowerBound", Const, 0},
+ {"AttrLowpc", Const, 0},
+ {"AttrMacroInfo", Const, 0},
+ {"AttrMacros", Const, 14},
+ {"AttrMainSubprogram", Const, 14},
+ {"AttrMutable", Const, 14},
+ {"AttrName", Const, 0},
+ {"AttrNamelistItem", Const, 0},
+ {"AttrNoreturn", Const, 14},
+ {"AttrObjectPointer", Const, 14},
+ {"AttrOrdering", Const, 0},
+ {"AttrPictureString", Const, 14},
+ {"AttrPriority", Const, 0},
+ {"AttrProducer", Const, 0},
+ {"AttrPrototyped", Const, 0},
+ {"AttrPure", Const, 14},
+ {"AttrRanges", Const, 0},
+ {"AttrRank", Const, 14},
+ {"AttrRecursive", Const, 14},
+ {"AttrReference", Const, 14},
+ {"AttrReturnAddr", Const, 0},
+ {"AttrRnglistsBase", Const, 14},
+ {"AttrRvalueReference", Const, 14},
+ {"AttrSegment", Const, 0},
+ {"AttrSibling", Const, 0},
+ {"AttrSignature", Const, 14},
+ {"AttrSmall", Const, 14},
+ {"AttrSpecification", Const, 0},
+ {"AttrStartScope", Const, 0},
+ {"AttrStaticLink", Const, 0},
+ {"AttrStmtList", Const, 0},
+ {"AttrStrOffsetsBase", Const, 14},
+ {"AttrStride", Const, 0},
+ {"AttrStrideSize", Const, 0},
+ {"AttrStringLength", Const, 0},
+ {"AttrStringLengthBitSize", Const, 14},
+ {"AttrStringLengthByteSize", Const, 14},
+ {"AttrThreadsScaled", Const, 14},
+ {"AttrTrampoline", Const, 0},
+ {"AttrType", Const, 0},
+ {"AttrUpperBound", Const, 0},
+ {"AttrUseLocation", Const, 0},
+ {"AttrUseUTF8", Const, 0},
+ {"AttrVarParam", Const, 0},
+ {"AttrVirtuality", Const, 0},
+ {"AttrVisibility", Const, 0},
+ {"AttrVtableElemLoc", Const, 0},
+ {"BasicType", Type, 0},
+ {"BasicType.BitOffset", Field, 0},
+ {"BasicType.BitSize", Field, 0},
+ {"BasicType.CommonType", Field, 0},
+ {"BasicType.DataBitOffset", Field, 18},
+ {"BoolType", Type, 0},
+ {"BoolType.BasicType", Field, 0},
+ {"CharType", Type, 0},
+ {"CharType.BasicType", Field, 0},
+ {"Class", Type, 5},
+ {"ClassAddrPtr", Const, 14},
+ {"ClassAddress", Const, 5},
+ {"ClassBlock", Const, 5},
+ {"ClassConstant", Const, 5},
+ {"ClassExprLoc", Const, 5},
+ {"ClassFlag", Const, 5},
+ {"ClassLinePtr", Const, 5},
+ {"ClassLocList", Const, 14},
+ {"ClassLocListPtr", Const, 5},
+ {"ClassMacPtr", Const, 5},
+ {"ClassRangeListPtr", Const, 5},
+ {"ClassReference", Const, 5},
+ {"ClassReferenceAlt", Const, 5},
+ {"ClassReferenceSig", Const, 5},
+ {"ClassRngList", Const, 14},
+ {"ClassRngListsPtr", Const, 14},
+ {"ClassStrOffsetsPtr", Const, 14},
+ {"ClassString", Const, 5},
+ {"ClassStringAlt", Const, 5},
+ {"ClassUnknown", Const, 6},
+ {"CommonType", Type, 0},
+ {"CommonType.ByteSize", Field, 0},
+ {"CommonType.Name", Field, 0},
+ {"ComplexType", Type, 0},
+ {"ComplexType.BasicType", Field, 0},
+ {"Data", Type, 0},
+ {"DecodeError", Type, 0},
+ {"DecodeError.Err", Field, 0},
+ {"DecodeError.Name", Field, 0},
+ {"DecodeError.Offset", Field, 0},
+ {"DotDotDotType", Type, 0},
+ {"DotDotDotType.CommonType", Field, 0},
+ {"Entry", Type, 0},
+ {"Entry.Children", Field, 0},
+ {"Entry.Field", Field, 0},
+ {"Entry.Offset", Field, 0},
+ {"Entry.Tag", Field, 0},
+ {"EnumType", Type, 0},
+ {"EnumType.CommonType", Field, 0},
+ {"EnumType.EnumName", Field, 0},
+ {"EnumType.Val", Field, 0},
+ {"EnumValue", Type, 0},
+ {"EnumValue.Name", Field, 0},
+ {"EnumValue.Val", Field, 0},
+ {"ErrUnknownPC", Var, 5},
+ {"Field", Type, 0},
+ {"Field.Attr", Field, 0},
+ {"Field.Class", Field, 5},
+ {"Field.Val", Field, 0},
+ {"FloatType", Type, 0},
+ {"FloatType.BasicType", Field, 0},
+ {"FuncType", Type, 0},
+ {"FuncType.CommonType", Field, 0},
+ {"FuncType.ParamType", Field, 0},
+ {"FuncType.ReturnType", Field, 0},
+ {"IntType", Type, 0},
+ {"IntType.BasicType", Field, 0},
+ {"LineEntry", Type, 5},
+ {"LineEntry.Address", Field, 5},
+ {"LineEntry.BasicBlock", Field, 5},
+ {"LineEntry.Column", Field, 5},
+ {"LineEntry.Discriminator", Field, 5},
+ {"LineEntry.EndSequence", Field, 5},
+ {"LineEntry.EpilogueBegin", Field, 5},
+ {"LineEntry.File", Field, 5},
+ {"LineEntry.ISA", Field, 5},
+ {"LineEntry.IsStmt", Field, 5},
+ {"LineEntry.Line", Field, 5},
+ {"LineEntry.OpIndex", Field, 5},
+ {"LineEntry.PrologueEnd", Field, 5},
+ {"LineFile", Type, 5},
+ {"LineFile.Length", Field, 5},
+ {"LineFile.Mtime", Field, 5},
+ {"LineFile.Name", Field, 5},
+ {"LineReader", Type, 5},
+ {"LineReaderPos", Type, 5},
+ {"New", Func, 0},
+ {"Offset", Type, 0},
+ {"PtrType", Type, 0},
+ {"PtrType.CommonType", Field, 0},
+ {"PtrType.Type", Field, 0},
+ {"QualType", Type, 0},
+ {"QualType.CommonType", Field, 0},
+ {"QualType.Qual", Field, 0},
+ {"QualType.Type", Field, 0},
+ {"Reader", Type, 0},
+ {"StructField", Type, 0},
+ {"StructField.BitOffset", Field, 0},
+ {"StructField.BitSize", Field, 0},
+ {"StructField.ByteOffset", Field, 0},
+ {"StructField.ByteSize", Field, 0},
+ {"StructField.DataBitOffset", Field, 18},
+ {"StructField.Name", Field, 0},
+ {"StructField.Type", Field, 0},
+ {"StructType", Type, 0},
+ {"StructType.CommonType", Field, 0},
+ {"StructType.Field", Field, 0},
+ {"StructType.Incomplete", Field, 0},
+ {"StructType.Kind", Field, 0},
+ {"StructType.StructName", Field, 0},
+ {"Tag", Type, 0},
+ {"TagAccessDeclaration", Const, 0},
+ {"TagArrayType", Const, 0},
+ {"TagAtomicType", Const, 14},
+ {"TagBaseType", Const, 0},
+ {"TagCallSite", Const, 14},
+ {"TagCallSiteParameter", Const, 14},
+ {"TagCatchDwarfBlock", Const, 0},
+ {"TagClassType", Const, 0},
+ {"TagCoarrayType", Const, 14},
+ {"TagCommonDwarfBlock", Const, 0},
+ {"TagCommonInclusion", Const, 0},
+ {"TagCompileUnit", Const, 0},
+ {"TagCondition", Const, 3},
+ {"TagConstType", Const, 0},
+ {"TagConstant", Const, 0},
+ {"TagDwarfProcedure", Const, 0},
+ {"TagDynamicType", Const, 14},
+ {"TagEntryPoint", Const, 0},
+ {"TagEnumerationType", Const, 0},
+ {"TagEnumerator", Const, 0},
+ {"TagFileType", Const, 0},
+ {"TagFormalParameter", Const, 0},
+ {"TagFriend", Const, 0},
+ {"TagGenericSubrange", Const, 14},
+ {"TagImmutableType", Const, 14},
+ {"TagImportedDeclaration", Const, 0},
+ {"TagImportedModule", Const, 0},
+ {"TagImportedUnit", Const, 0},
+ {"TagInheritance", Const, 0},
+ {"TagInlinedSubroutine", Const, 0},
+ {"TagInterfaceType", Const, 0},
+ {"TagLabel", Const, 0},
+ {"TagLexDwarfBlock", Const, 0},
+ {"TagMember", Const, 0},
+ {"TagModule", Const, 0},
+ {"TagMutableType", Const, 0},
+ {"TagNamelist", Const, 0},
+ {"TagNamelistItem", Const, 0},
+ {"TagNamespace", Const, 0},
+ {"TagPackedType", Const, 0},
+ {"TagPartialUnit", Const, 0},
+ {"TagPointerType", Const, 0},
+ {"TagPtrToMemberType", Const, 0},
+ {"TagReferenceType", Const, 0},
+ {"TagRestrictType", Const, 0},
+ {"TagRvalueReferenceType", Const, 3},
+ {"TagSetType", Const, 0},
+ {"TagSharedType", Const, 3},
+ {"TagSkeletonUnit", Const, 14},
+ {"TagStringType", Const, 0},
+ {"TagStructType", Const, 0},
+ {"TagSubprogram", Const, 0},
+ {"TagSubrangeType", Const, 0},
+ {"TagSubroutineType", Const, 0},
+ {"TagTemplateAlias", Const, 3},
+ {"TagTemplateTypeParameter", Const, 0},
+ {"TagTemplateValueParameter", Const, 0},
+ {"TagThrownType", Const, 0},
+ {"TagTryDwarfBlock", Const, 0},
+ {"TagTypeUnit", Const, 3},
+ {"TagTypedef", Const, 0},
+ {"TagUnionType", Const, 0},
+ {"TagUnspecifiedParameters", Const, 0},
+ {"TagUnspecifiedType", Const, 0},
+ {"TagVariable", Const, 0},
+ {"TagVariant", Const, 0},
+ {"TagVariantPart", Const, 0},
+ {"TagVolatileType", Const, 0},
+ {"TagWithStmt", Const, 0},
+ {"Type", Type, 0},
+ {"TypedefType", Type, 0},
+ {"TypedefType.CommonType", Field, 0},
+ {"TypedefType.Type", Field, 0},
+ {"UcharType", Type, 0},
+ {"UcharType.BasicType", Field, 0},
+ {"UintType", Type, 0},
+ {"UintType.BasicType", Field, 0},
+ {"UnspecifiedType", Type, 4},
+ {"UnspecifiedType.BasicType", Field, 4},
+ {"UnsupportedType", Type, 13},
+ {"UnsupportedType.CommonType", Field, 13},
+ {"UnsupportedType.Tag", Field, 13},
+ {"VoidType", Type, 0},
+ {"VoidType.CommonType", Field, 0},
+ },
+ "debug/elf": {
+ {"(*File).Close", Method, 0},
+ {"(*File).DWARF", Method, 0},
+ {"(*File).DynString", Method, 1},
+ {"(*File).DynValue", Method, 21},
+ {"(*File).DynamicSymbols", Method, 4},
+ {"(*File).ImportedLibraries", Method, 0},
+ {"(*File).ImportedSymbols", Method, 0},
+ {"(*File).Section", Method, 0},
+ {"(*File).SectionByType", Method, 0},
+ {"(*File).Symbols", Method, 0},
+ {"(*FormatError).Error", Method, 0},
+ {"(*Prog).Open", Method, 0},
+ {"(*Section).Data", Method, 0},
+ {"(*Section).Open", Method, 0},
+ {"(Class).GoString", Method, 0},
+ {"(Class).String", Method, 0},
+ {"(CompressionType).GoString", Method, 6},
+ {"(CompressionType).String", Method, 6},
+ {"(Data).GoString", Method, 0},
+ {"(Data).String", Method, 0},
+ {"(DynFlag).GoString", Method, 0},
+ {"(DynFlag).String", Method, 0},
+ {"(DynFlag1).GoString", Method, 21},
+ {"(DynFlag1).String", Method, 21},
+ {"(DynTag).GoString", Method, 0},
+ {"(DynTag).String", Method, 0},
+ {"(Machine).GoString", Method, 0},
+ {"(Machine).String", Method, 0},
+ {"(NType).GoString", Method, 0},
+ {"(NType).String", Method, 0},
+ {"(OSABI).GoString", Method, 0},
+ {"(OSABI).String", Method, 0},
+ {"(Prog).ReadAt", Method, 0},
+ {"(ProgFlag).GoString", Method, 0},
+ {"(ProgFlag).String", Method, 0},
+ {"(ProgType).GoString", Method, 0},
+ {"(ProgType).String", Method, 0},
+ {"(R_386).GoString", Method, 0},
+ {"(R_386).String", Method, 0},
+ {"(R_390).GoString", Method, 7},
+ {"(R_390).String", Method, 7},
+ {"(R_AARCH64).GoString", Method, 4},
+ {"(R_AARCH64).String", Method, 4},
+ {"(R_ALPHA).GoString", Method, 0},
+ {"(R_ALPHA).String", Method, 0},
+ {"(R_ARM).GoString", Method, 0},
+ {"(R_ARM).String", Method, 0},
+ {"(R_LARCH).GoString", Method, 19},
+ {"(R_LARCH).String", Method, 19},
+ {"(R_MIPS).GoString", Method, 6},
+ {"(R_MIPS).String", Method, 6},
+ {"(R_PPC).GoString", Method, 0},
+ {"(R_PPC).String", Method, 0},
+ {"(R_PPC64).GoString", Method, 5},
+ {"(R_PPC64).String", Method, 5},
+ {"(R_RISCV).GoString", Method, 11},
+ {"(R_RISCV).String", Method, 11},
+ {"(R_SPARC).GoString", Method, 0},
+ {"(R_SPARC).String", Method, 0},
+ {"(R_X86_64).GoString", Method, 0},
+ {"(R_X86_64).String", Method, 0},
+ {"(Section).ReadAt", Method, 0},
+ {"(SectionFlag).GoString", Method, 0},
+ {"(SectionFlag).String", Method, 0},
+ {"(SectionIndex).GoString", Method, 0},
+ {"(SectionIndex).String", Method, 0},
+ {"(SectionType).GoString", Method, 0},
+ {"(SectionType).String", Method, 0},
+ {"(SymBind).GoString", Method, 0},
+ {"(SymBind).String", Method, 0},
+ {"(SymType).GoString", Method, 0},
+ {"(SymType).String", Method, 0},
+ {"(SymVis).GoString", Method, 0},
+ {"(SymVis).String", Method, 0},
+ {"(Type).GoString", Method, 0},
+ {"(Type).String", Method, 0},
+ {"(Version).GoString", Method, 0},
+ {"(Version).String", Method, 0},
+ {"ARM_MAGIC_TRAMP_NUMBER", Const, 0},
+ {"COMPRESS_HIOS", Const, 6},
+ {"COMPRESS_HIPROC", Const, 6},
+ {"COMPRESS_LOOS", Const, 6},
+ {"COMPRESS_LOPROC", Const, 6},
+ {"COMPRESS_ZLIB", Const, 6},
+ {"COMPRESS_ZSTD", Const, 21},
+ {"Chdr32", Type, 6},
+ {"Chdr32.Addralign", Field, 6},
+ {"Chdr32.Size", Field, 6},
+ {"Chdr32.Type", Field, 6},
+ {"Chdr64", Type, 6},
+ {"Chdr64.Addralign", Field, 6},
+ {"Chdr64.Size", Field, 6},
+ {"Chdr64.Type", Field, 6},
+ {"Class", Type, 0},
+ {"CompressionType", Type, 6},
+ {"DF_1_CONFALT", Const, 21},
+ {"DF_1_DIRECT", Const, 21},
+ {"DF_1_DISPRELDNE", Const, 21},
+ {"DF_1_DISPRELPND", Const, 21},
+ {"DF_1_EDITED", Const, 21},
+ {"DF_1_ENDFILTEE", Const, 21},
+ {"DF_1_GLOBAL", Const, 21},
+ {"DF_1_GLOBAUDIT", Const, 21},
+ {"DF_1_GROUP", Const, 21},
+ {"DF_1_IGNMULDEF", Const, 21},
+ {"DF_1_INITFIRST", Const, 21},
+ {"DF_1_INTERPOSE", Const, 21},
+ {"DF_1_KMOD", Const, 21},
+ {"DF_1_LOADFLTR", Const, 21},
+ {"DF_1_NOCOMMON", Const, 21},
+ {"DF_1_NODEFLIB", Const, 21},
+ {"DF_1_NODELETE", Const, 21},
+ {"DF_1_NODIRECT", Const, 21},
+ {"DF_1_NODUMP", Const, 21},
+ {"DF_1_NOHDR", Const, 21},
+ {"DF_1_NOKSYMS", Const, 21},
+ {"DF_1_NOOPEN", Const, 21},
+ {"DF_1_NORELOC", Const, 21},
+ {"DF_1_NOW", Const, 21},
+ {"DF_1_ORIGIN", Const, 21},
+ {"DF_1_PIE", Const, 21},
+ {"DF_1_SINGLETON", Const, 21},
+ {"DF_1_STUB", Const, 21},
+ {"DF_1_SYMINTPOSE", Const, 21},
+ {"DF_1_TRANS", Const, 21},
+ {"DF_1_WEAKFILTER", Const, 21},
+ {"DF_BIND_NOW", Const, 0},
+ {"DF_ORIGIN", Const, 0},
+ {"DF_STATIC_TLS", Const, 0},
+ {"DF_SYMBOLIC", Const, 0},
+ {"DF_TEXTREL", Const, 0},
+ {"DT_ADDRRNGHI", Const, 16},
+ {"DT_ADDRRNGLO", Const, 16},
+ {"DT_AUDIT", Const, 16},
+ {"DT_AUXILIARY", Const, 16},
+ {"DT_BIND_NOW", Const, 0},
+ {"DT_CHECKSUM", Const, 16},
+ {"DT_CONFIG", Const, 16},
+ {"DT_DEBUG", Const, 0},
+ {"DT_DEPAUDIT", Const, 16},
+ {"DT_ENCODING", Const, 0},
+ {"DT_FEATURE", Const, 16},
+ {"DT_FILTER", Const, 16},
+ {"DT_FINI", Const, 0},
+ {"DT_FINI_ARRAY", Const, 0},
+ {"DT_FINI_ARRAYSZ", Const, 0},
+ {"DT_FLAGS", Const, 0},
+ {"DT_FLAGS_1", Const, 16},
+ {"DT_GNU_CONFLICT", Const, 16},
+ {"DT_GNU_CONFLICTSZ", Const, 16},
+ {"DT_GNU_HASH", Const, 16},
+ {"DT_GNU_LIBLIST", Const, 16},
+ {"DT_GNU_LIBLISTSZ", Const, 16},
+ {"DT_GNU_PRELINKED", Const, 16},
+ {"DT_HASH", Const, 0},
+ {"DT_HIOS", Const, 0},
+ {"DT_HIPROC", Const, 0},
+ {"DT_INIT", Const, 0},
+ {"DT_INIT_ARRAY", Const, 0},
+ {"DT_INIT_ARRAYSZ", Const, 0},
+ {"DT_JMPREL", Const, 0},
+ {"DT_LOOS", Const, 0},
+ {"DT_LOPROC", Const, 0},
+ {"DT_MIPS_AUX_DYNAMIC", Const, 16},
+ {"DT_MIPS_BASE_ADDRESS", Const, 16},
+ {"DT_MIPS_COMPACT_SIZE", Const, 16},
+ {"DT_MIPS_CONFLICT", Const, 16},
+ {"DT_MIPS_CONFLICTNO", Const, 16},
+ {"DT_MIPS_CXX_FLAGS", Const, 16},
+ {"DT_MIPS_DELTA_CLASS", Const, 16},
+ {"DT_MIPS_DELTA_CLASSSYM", Const, 16},
+ {"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16},
+ {"DT_MIPS_DELTA_CLASS_NO", Const, 16},
+ {"DT_MIPS_DELTA_INSTANCE", Const, 16},
+ {"DT_MIPS_DELTA_INSTANCE_NO", Const, 16},
+ {"DT_MIPS_DELTA_RELOC", Const, 16},
+ {"DT_MIPS_DELTA_RELOC_NO", Const, 16},
+ {"DT_MIPS_DELTA_SYM", Const, 16},
+ {"DT_MIPS_DELTA_SYM_NO", Const, 16},
+ {"DT_MIPS_DYNSTR_ALIGN", Const, 16},
+ {"DT_MIPS_FLAGS", Const, 16},
+ {"DT_MIPS_GOTSYM", Const, 16},
+ {"DT_MIPS_GP_VALUE", Const, 16},
+ {"DT_MIPS_HIDDEN_GOTIDX", Const, 16},
+ {"DT_MIPS_HIPAGENO", Const, 16},
+ {"DT_MIPS_ICHECKSUM", Const, 16},
+ {"DT_MIPS_INTERFACE", Const, 16},
+ {"DT_MIPS_INTERFACE_SIZE", Const, 16},
+ {"DT_MIPS_IVERSION", Const, 16},
+ {"DT_MIPS_LIBLIST", Const, 16},
+ {"DT_MIPS_LIBLISTNO", Const, 16},
+ {"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16},
+ {"DT_MIPS_LOCAL_GOTIDX", Const, 16},
+ {"DT_MIPS_LOCAL_GOTNO", Const, 16},
+ {"DT_MIPS_MSYM", Const, 16},
+ {"DT_MIPS_OPTIONS", Const, 16},
+ {"DT_MIPS_PERF_SUFFIX", Const, 16},
+ {"DT_MIPS_PIXIE_INIT", Const, 16},
+ {"DT_MIPS_PLTGOT", Const, 16},
+ {"DT_MIPS_PROTECTED_GOTIDX", Const, 16},
+ {"DT_MIPS_RLD_MAP", Const, 16},
+ {"DT_MIPS_RLD_MAP_REL", Const, 16},
+ {"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16},
+ {"DT_MIPS_RLD_VERSION", Const, 16},
+ {"DT_MIPS_RWPLT", Const, 16},
+ {"DT_MIPS_SYMBOL_LIB", Const, 16},
+ {"DT_MIPS_SYMTABNO", Const, 16},
+ {"DT_MIPS_TIME_STAMP", Const, 16},
+ {"DT_MIPS_UNREFEXTNO", Const, 16},
+ {"DT_MOVEENT", Const, 16},
+ {"DT_MOVESZ", Const, 16},
+ {"DT_MOVETAB", Const, 16},
+ {"DT_NEEDED", Const, 0},
+ {"DT_NULL", Const, 0},
+ {"DT_PLTGOT", Const, 0},
+ {"DT_PLTPAD", Const, 16},
+ {"DT_PLTPADSZ", Const, 16},
+ {"DT_PLTREL", Const, 0},
+ {"DT_PLTRELSZ", Const, 0},
+ {"DT_POSFLAG_1", Const, 16},
+ {"DT_PPC64_GLINK", Const, 16},
+ {"DT_PPC64_OPD", Const, 16},
+ {"DT_PPC64_OPDSZ", Const, 16},
+ {"DT_PPC64_OPT", Const, 16},
+ {"DT_PPC_GOT", Const, 16},
+ {"DT_PPC_OPT", Const, 16},
+ {"DT_PREINIT_ARRAY", Const, 0},
+ {"DT_PREINIT_ARRAYSZ", Const, 0},
+ {"DT_REL", Const, 0},
+ {"DT_RELA", Const, 0},
+ {"DT_RELACOUNT", Const, 16},
+ {"DT_RELAENT", Const, 0},
+ {"DT_RELASZ", Const, 0},
+ {"DT_RELCOUNT", Const, 16},
+ {"DT_RELENT", Const, 0},
+ {"DT_RELSZ", Const, 0},
+ {"DT_RPATH", Const, 0},
+ {"DT_RUNPATH", Const, 0},
+ {"DT_SONAME", Const, 0},
+ {"DT_SPARC_REGISTER", Const, 16},
+ {"DT_STRSZ", Const, 0},
+ {"DT_STRTAB", Const, 0},
+ {"DT_SYMBOLIC", Const, 0},
+ {"DT_SYMENT", Const, 0},
+ {"DT_SYMINENT", Const, 16},
+ {"DT_SYMINFO", Const, 16},
+ {"DT_SYMINSZ", Const, 16},
+ {"DT_SYMTAB", Const, 0},
+ {"DT_SYMTAB_SHNDX", Const, 16},
+ {"DT_TEXTREL", Const, 0},
+ {"DT_TLSDESC_GOT", Const, 16},
+ {"DT_TLSDESC_PLT", Const, 16},
+ {"DT_USED", Const, 16},
+ {"DT_VALRNGHI", Const, 16},
+ {"DT_VALRNGLO", Const, 16},
+ {"DT_VERDEF", Const, 16},
+ {"DT_VERDEFNUM", Const, 16},
+ {"DT_VERNEED", Const, 0},
+ {"DT_VERNEEDNUM", Const, 0},
+ {"DT_VERSYM", Const, 0},
+ {"Data", Type, 0},
+ {"Dyn32", Type, 0},
+ {"Dyn32.Tag", Field, 0},
+ {"Dyn32.Val", Field, 0},
+ {"Dyn64", Type, 0},
+ {"Dyn64.Tag", Field, 0},
+ {"Dyn64.Val", Field, 0},
+ {"DynFlag", Type, 0},
+ {"DynFlag1", Type, 21},
+ {"DynTag", Type, 0},
+ {"EI_ABIVERSION", Const, 0},
+ {"EI_CLASS", Const, 0},
+ {"EI_DATA", Const, 0},
+ {"EI_NIDENT", Const, 0},
+ {"EI_OSABI", Const, 0},
+ {"EI_PAD", Const, 0},
+ {"EI_VERSION", Const, 0},
+ {"ELFCLASS32", Const, 0},
+ {"ELFCLASS64", Const, 0},
+ {"ELFCLASSNONE", Const, 0},
+ {"ELFDATA2LSB", Const, 0},
+ {"ELFDATA2MSB", Const, 0},
+ {"ELFDATANONE", Const, 0},
+ {"ELFMAG", Const, 0},
+ {"ELFOSABI_86OPEN", Const, 0},
+ {"ELFOSABI_AIX", Const, 0},
+ {"ELFOSABI_ARM", Const, 0},
+ {"ELFOSABI_AROS", Const, 11},
+ {"ELFOSABI_CLOUDABI", Const, 11},
+ {"ELFOSABI_FENIXOS", Const, 11},
+ {"ELFOSABI_FREEBSD", Const, 0},
+ {"ELFOSABI_HPUX", Const, 0},
+ {"ELFOSABI_HURD", Const, 0},
+ {"ELFOSABI_IRIX", Const, 0},
+ {"ELFOSABI_LINUX", Const, 0},
+ {"ELFOSABI_MODESTO", Const, 0},
+ {"ELFOSABI_NETBSD", Const, 0},
+ {"ELFOSABI_NONE", Const, 0},
+ {"ELFOSABI_NSK", Const, 0},
+ {"ELFOSABI_OPENBSD", Const, 0},
+ {"ELFOSABI_OPENVMS", Const, 0},
+ {"ELFOSABI_SOLARIS", Const, 0},
+ {"ELFOSABI_STANDALONE", Const, 0},
+ {"ELFOSABI_TRU64", Const, 0},
+ {"EM_386", Const, 0},
+ {"EM_486", Const, 0},
+ {"EM_56800EX", Const, 11},
+ {"EM_68HC05", Const, 11},
+ {"EM_68HC08", Const, 11},
+ {"EM_68HC11", Const, 11},
+ {"EM_68HC12", Const, 0},
+ {"EM_68HC16", Const, 11},
+ {"EM_68K", Const, 0},
+ {"EM_78KOR", Const, 11},
+ {"EM_8051", Const, 11},
+ {"EM_860", Const, 0},
+ {"EM_88K", Const, 0},
+ {"EM_960", Const, 0},
+ {"EM_AARCH64", Const, 4},
+ {"EM_ALPHA", Const, 0},
+ {"EM_ALPHA_STD", Const, 0},
+ {"EM_ALTERA_NIOS2", Const, 11},
+ {"EM_AMDGPU", Const, 11},
+ {"EM_ARC", Const, 0},
+ {"EM_ARCA", Const, 11},
+ {"EM_ARC_COMPACT", Const, 11},
+ {"EM_ARC_COMPACT2", Const, 11},
+ {"EM_ARM", Const, 0},
+ {"EM_AVR", Const, 11},
+ {"EM_AVR32", Const, 11},
+ {"EM_BA1", Const, 11},
+ {"EM_BA2", Const, 11},
+ {"EM_BLACKFIN", Const, 11},
+ {"EM_BPF", Const, 11},
+ {"EM_C166", Const, 11},
+ {"EM_CDP", Const, 11},
+ {"EM_CE", Const, 11},
+ {"EM_CLOUDSHIELD", Const, 11},
+ {"EM_COGE", Const, 11},
+ {"EM_COLDFIRE", Const, 0},
+ {"EM_COOL", Const, 11},
+ {"EM_COREA_1ST", Const, 11},
+ {"EM_COREA_2ND", Const, 11},
+ {"EM_CR", Const, 11},
+ {"EM_CR16", Const, 11},
+ {"EM_CRAYNV2", Const, 11},
+ {"EM_CRIS", Const, 11},
+ {"EM_CRX", Const, 11},
+ {"EM_CSR_KALIMBA", Const, 11},
+ {"EM_CUDA", Const, 11},
+ {"EM_CYPRESS_M8C", Const, 11},
+ {"EM_D10V", Const, 11},
+ {"EM_D30V", Const, 11},
+ {"EM_DSP24", Const, 11},
+ {"EM_DSPIC30F", Const, 11},
+ {"EM_DXP", Const, 11},
+ {"EM_ECOG1", Const, 11},
+ {"EM_ECOG16", Const, 11},
+ {"EM_ECOG1X", Const, 11},
+ {"EM_ECOG2", Const, 11},
+ {"EM_ETPU", Const, 11},
+ {"EM_EXCESS", Const, 11},
+ {"EM_F2MC16", Const, 11},
+ {"EM_FIREPATH", Const, 11},
+ {"EM_FR20", Const, 0},
+ {"EM_FR30", Const, 11},
+ {"EM_FT32", Const, 11},
+ {"EM_FX66", Const, 11},
+ {"EM_H8S", Const, 0},
+ {"EM_H8_300", Const, 0},
+ {"EM_H8_300H", Const, 0},
+ {"EM_H8_500", Const, 0},
+ {"EM_HUANY", Const, 11},
+ {"EM_IA_64", Const, 0},
+ {"EM_INTEL205", Const, 11},
+ {"EM_INTEL206", Const, 11},
+ {"EM_INTEL207", Const, 11},
+ {"EM_INTEL208", Const, 11},
+ {"EM_INTEL209", Const, 11},
+ {"EM_IP2K", Const, 11},
+ {"EM_JAVELIN", Const, 11},
+ {"EM_K10M", Const, 11},
+ {"EM_KM32", Const, 11},
+ {"EM_KMX16", Const, 11},
+ {"EM_KMX32", Const, 11},
+ {"EM_KMX8", Const, 11},
+ {"EM_KVARC", Const, 11},
+ {"EM_L10M", Const, 11},
+ {"EM_LANAI", Const, 11},
+ {"EM_LATTICEMICO32", Const, 11},
+ {"EM_LOONGARCH", Const, 19},
+ {"EM_M16C", Const, 11},
+ {"EM_M32", Const, 0},
+ {"EM_M32C", Const, 11},
+ {"EM_M32R", Const, 11},
+ {"EM_MANIK", Const, 11},
+ {"EM_MAX", Const, 11},
+ {"EM_MAXQ30", Const, 11},
+ {"EM_MCHP_PIC", Const, 11},
+ {"EM_MCST_ELBRUS", Const, 11},
+ {"EM_ME16", Const, 0},
+ {"EM_METAG", Const, 11},
+ {"EM_MICROBLAZE", Const, 11},
+ {"EM_MIPS", Const, 0},
+ {"EM_MIPS_RS3_LE", Const, 0},
+ {"EM_MIPS_RS4_BE", Const, 0},
+ {"EM_MIPS_X", Const, 0},
+ {"EM_MMA", Const, 0},
+ {"EM_MMDSP_PLUS", Const, 11},
+ {"EM_MMIX", Const, 11},
+ {"EM_MN10200", Const, 11},
+ {"EM_MN10300", Const, 11},
+ {"EM_MOXIE", Const, 11},
+ {"EM_MSP430", Const, 11},
+ {"EM_NCPU", Const, 0},
+ {"EM_NDR1", Const, 0},
+ {"EM_NDS32", Const, 11},
+ {"EM_NONE", Const, 0},
+ {"EM_NORC", Const, 11},
+ {"EM_NS32K", Const, 11},
+ {"EM_OPEN8", Const, 11},
+ {"EM_OPENRISC", Const, 11},
+ {"EM_PARISC", Const, 0},
+ {"EM_PCP", Const, 0},
+ {"EM_PDP10", Const, 11},
+ {"EM_PDP11", Const, 11},
+ {"EM_PDSP", Const, 11},
+ {"EM_PJ", Const, 11},
+ {"EM_PPC", Const, 0},
+ {"EM_PPC64", Const, 0},
+ {"EM_PRISM", Const, 11},
+ {"EM_QDSP6", Const, 11},
+ {"EM_R32C", Const, 11},
+ {"EM_RCE", Const, 0},
+ {"EM_RH32", Const, 0},
+ {"EM_RISCV", Const, 11},
+ {"EM_RL78", Const, 11},
+ {"EM_RS08", Const, 11},
+ {"EM_RX", Const, 11},
+ {"EM_S370", Const, 0},
+ {"EM_S390", Const, 0},
+ {"EM_SCORE7", Const, 11},
+ {"EM_SEP", Const, 11},
+ {"EM_SE_C17", Const, 11},
+ {"EM_SE_C33", Const, 11},
+ {"EM_SH", Const, 0},
+ {"EM_SHARC", Const, 11},
+ {"EM_SLE9X", Const, 11},
+ {"EM_SNP1K", Const, 11},
+ {"EM_SPARC", Const, 0},
+ {"EM_SPARC32PLUS", Const, 0},
+ {"EM_SPARCV9", Const, 0},
+ {"EM_ST100", Const, 0},
+ {"EM_ST19", Const, 11},
+ {"EM_ST200", Const, 11},
+ {"EM_ST7", Const, 11},
+ {"EM_ST9PLUS", Const, 11},
+ {"EM_STARCORE", Const, 0},
+ {"EM_STM8", Const, 11},
+ {"EM_STXP7X", Const, 11},
+ {"EM_SVX", Const, 11},
+ {"EM_TILE64", Const, 11},
+ {"EM_TILEGX", Const, 11},
+ {"EM_TILEPRO", Const, 11},
+ {"EM_TINYJ", Const, 0},
+ {"EM_TI_ARP32", Const, 11},
+ {"EM_TI_C2000", Const, 11},
+ {"EM_TI_C5500", Const, 11},
+ {"EM_TI_C6000", Const, 11},
+ {"EM_TI_PRU", Const, 11},
+ {"EM_TMM_GPP", Const, 11},
+ {"EM_TPC", Const, 11},
+ {"EM_TRICORE", Const, 0},
+ {"EM_TRIMEDIA", Const, 11},
+ {"EM_TSK3000", Const, 11},
+ {"EM_UNICORE", Const, 11},
+ {"EM_V800", Const, 0},
+ {"EM_V850", Const, 11},
+ {"EM_VAX", Const, 11},
+ {"EM_VIDEOCORE", Const, 11},
+ {"EM_VIDEOCORE3", Const, 11},
+ {"EM_VIDEOCORE5", Const, 11},
+ {"EM_VISIUM", Const, 11},
+ {"EM_VPP500", Const, 0},
+ {"EM_X86_64", Const, 0},
+ {"EM_XCORE", Const, 11},
+ {"EM_XGATE", Const, 11},
+ {"EM_XIMO16", Const, 11},
+ {"EM_XTENSA", Const, 11},
+ {"EM_Z80", Const, 11},
+ {"EM_ZSP", Const, 11},
+ {"ET_CORE", Const, 0},
+ {"ET_DYN", Const, 0},
+ {"ET_EXEC", Const, 0},
+ {"ET_HIOS", Const, 0},
+ {"ET_HIPROC", Const, 0},
+ {"ET_LOOS", Const, 0},
+ {"ET_LOPROC", Const, 0},
+ {"ET_NONE", Const, 0},
+ {"ET_REL", Const, 0},
+ {"EV_CURRENT", Const, 0},
+ {"EV_NONE", Const, 0},
+ {"ErrNoSymbols", Var, 4},
+ {"File", Type, 0},
+ {"File.FileHeader", Field, 0},
+ {"File.Progs", Field, 0},
+ {"File.Sections", Field, 0},
+ {"FileHeader", Type, 0},
+ {"FileHeader.ABIVersion", Field, 0},
+ {"FileHeader.ByteOrder", Field, 0},
+ {"FileHeader.Class", Field, 0},
+ {"FileHeader.Data", Field, 0},
+ {"FileHeader.Entry", Field, 1},
+ {"FileHeader.Machine", Field, 0},
+ {"FileHeader.OSABI", Field, 0},
+ {"FileHeader.Type", Field, 0},
+ {"FileHeader.Version", Field, 0},
+ {"FormatError", Type, 0},
+ {"Header32", Type, 0},
+ {"Header32.Ehsize", Field, 0},
+ {"Header32.Entry", Field, 0},
+ {"Header32.Flags", Field, 0},
+ {"Header32.Ident", Field, 0},
+ {"Header32.Machine", Field, 0},
+ {"Header32.Phentsize", Field, 0},
+ {"Header32.Phnum", Field, 0},
+ {"Header32.Phoff", Field, 0},
+ {"Header32.Shentsize", Field, 0},
+ {"Header32.Shnum", Field, 0},
+ {"Header32.Shoff", Field, 0},
+ {"Header32.Shstrndx", Field, 0},
+ {"Header32.Type", Field, 0},
+ {"Header32.Version", Field, 0},
+ {"Header64", Type, 0},
+ {"Header64.Ehsize", Field, 0},
+ {"Header64.Entry", Field, 0},
+ {"Header64.Flags", Field, 0},
+ {"Header64.Ident", Field, 0},
+ {"Header64.Machine", Field, 0},
+ {"Header64.Phentsize", Field, 0},
+ {"Header64.Phnum", Field, 0},
+ {"Header64.Phoff", Field, 0},
+ {"Header64.Shentsize", Field, 0},
+ {"Header64.Shnum", Field, 0},
+ {"Header64.Shoff", Field, 0},
+ {"Header64.Shstrndx", Field, 0},
+ {"Header64.Type", Field, 0},
+ {"Header64.Version", Field, 0},
+ {"ImportedSymbol", Type, 0},
+ {"ImportedSymbol.Library", Field, 0},
+ {"ImportedSymbol.Name", Field, 0},
+ {"ImportedSymbol.Version", Field, 0},
+ {"Machine", Type, 0},
+ {"NT_FPREGSET", Const, 0},
+ {"NT_PRPSINFO", Const, 0},
+ {"NT_PRSTATUS", Const, 0},
+ {"NType", Type, 0},
+ {"NewFile", Func, 0},
+ {"OSABI", Type, 0},
+ {"Open", Func, 0},
+ {"PF_MASKOS", Const, 0},
+ {"PF_MASKPROC", Const, 0},
+ {"PF_R", Const, 0},
+ {"PF_W", Const, 0},
+ {"PF_X", Const, 0},
+ {"PT_AARCH64_ARCHEXT", Const, 16},
+ {"PT_AARCH64_UNWIND", Const, 16},
+ {"PT_ARM_ARCHEXT", Const, 16},
+ {"PT_ARM_EXIDX", Const, 16},
+ {"PT_DYNAMIC", Const, 0},
+ {"PT_GNU_EH_FRAME", Const, 16},
+ {"PT_GNU_MBIND_HI", Const, 16},
+ {"PT_GNU_MBIND_LO", Const, 16},
+ {"PT_GNU_PROPERTY", Const, 16},
+ {"PT_GNU_RELRO", Const, 16},
+ {"PT_GNU_STACK", Const, 16},
+ {"PT_HIOS", Const, 0},
+ {"PT_HIPROC", Const, 0},
+ {"PT_INTERP", Const, 0},
+ {"PT_LOAD", Const, 0},
+ {"PT_LOOS", Const, 0},
+ {"PT_LOPROC", Const, 0},
+ {"PT_MIPS_ABIFLAGS", Const, 16},
+ {"PT_MIPS_OPTIONS", Const, 16},
+ {"PT_MIPS_REGINFO", Const, 16},
+ {"PT_MIPS_RTPROC", Const, 16},
+ {"PT_NOTE", Const, 0},
+ {"PT_NULL", Const, 0},
+ {"PT_OPENBSD_BOOTDATA", Const, 16},
+ {"PT_OPENBSD_RANDOMIZE", Const, 16},
+ {"PT_OPENBSD_WXNEEDED", Const, 16},
+ {"PT_PAX_FLAGS", Const, 16},
+ {"PT_PHDR", Const, 0},
+ {"PT_S390_PGSTE", Const, 16},
+ {"PT_SHLIB", Const, 0},
+ {"PT_SUNWSTACK", Const, 16},
+ {"PT_SUNW_EH_FRAME", Const, 16},
+ {"PT_TLS", Const, 0},
+ {"Prog", Type, 0},
+ {"Prog.ProgHeader", Field, 0},
+ {"Prog.ReaderAt", Field, 0},
+ {"Prog32", Type, 0},
+ {"Prog32.Align", Field, 0},
+ {"Prog32.Filesz", Field, 0},
+ {"Prog32.Flags", Field, 0},
+ {"Prog32.Memsz", Field, 0},
+ {"Prog32.Off", Field, 0},
+ {"Prog32.Paddr", Field, 0},
+ {"Prog32.Type", Field, 0},
+ {"Prog32.Vaddr", Field, 0},
+ {"Prog64", Type, 0},
+ {"Prog64.Align", Field, 0},
+ {"Prog64.Filesz", Field, 0},
+ {"Prog64.Flags", Field, 0},
+ {"Prog64.Memsz", Field, 0},
+ {"Prog64.Off", Field, 0},
+ {"Prog64.Paddr", Field, 0},
+ {"Prog64.Type", Field, 0},
+ {"Prog64.Vaddr", Field, 0},
+ {"ProgFlag", Type, 0},
+ {"ProgHeader", Type, 0},
+ {"ProgHeader.Align", Field, 0},
+ {"ProgHeader.Filesz", Field, 0},
+ {"ProgHeader.Flags", Field, 0},
+ {"ProgHeader.Memsz", Field, 0},
+ {"ProgHeader.Off", Field, 0},
+ {"ProgHeader.Paddr", Field, 0},
+ {"ProgHeader.Type", Field, 0},
+ {"ProgHeader.Vaddr", Field, 0},
+ {"ProgType", Type, 0},
+ {"R_386", Type, 0},
+ {"R_386_16", Const, 10},
+ {"R_386_32", Const, 0},
+ {"R_386_32PLT", Const, 10},
+ {"R_386_8", Const, 10},
+ {"R_386_COPY", Const, 0},
+ {"R_386_GLOB_DAT", Const, 0},
+ {"R_386_GOT32", Const, 0},
+ {"R_386_GOT32X", Const, 10},
+ {"R_386_GOTOFF", Const, 0},
+ {"R_386_GOTPC", Const, 0},
+ {"R_386_IRELATIVE", Const, 10},
+ {"R_386_JMP_SLOT", Const, 0},
+ {"R_386_NONE", Const, 0},
+ {"R_386_PC16", Const, 10},
+ {"R_386_PC32", Const, 0},
+ {"R_386_PC8", Const, 10},
+ {"R_386_PLT32", Const, 0},
+ {"R_386_RELATIVE", Const, 0},
+ {"R_386_SIZE32", Const, 10},
+ {"R_386_TLS_DESC", Const, 10},
+ {"R_386_TLS_DESC_CALL", Const, 10},
+ {"R_386_TLS_DTPMOD32", Const, 0},
+ {"R_386_TLS_DTPOFF32", Const, 0},
+ {"R_386_TLS_GD", Const, 0},
+ {"R_386_TLS_GD_32", Const, 0},
+ {"R_386_TLS_GD_CALL", Const, 0},
+ {"R_386_TLS_GD_POP", Const, 0},
+ {"R_386_TLS_GD_PUSH", Const, 0},
+ {"R_386_TLS_GOTDESC", Const, 10},
+ {"R_386_TLS_GOTIE", Const, 0},
+ {"R_386_TLS_IE", Const, 0},
+ {"R_386_TLS_IE_32", Const, 0},
+ {"R_386_TLS_LDM", Const, 0},
+ {"R_386_TLS_LDM_32", Const, 0},
+ {"R_386_TLS_LDM_CALL", Const, 0},
+ {"R_386_TLS_LDM_POP", Const, 0},
+ {"R_386_TLS_LDM_PUSH", Const, 0},
+ {"R_386_TLS_LDO_32", Const, 0},
+ {"R_386_TLS_LE", Const, 0},
+ {"R_386_TLS_LE_32", Const, 0},
+ {"R_386_TLS_TPOFF", Const, 0},
+ {"R_386_TLS_TPOFF32", Const, 0},
+ {"R_390", Type, 7},
+ {"R_390_12", Const, 7},
+ {"R_390_16", Const, 7},
+ {"R_390_20", Const, 7},
+ {"R_390_32", Const, 7},
+ {"R_390_64", Const, 7},
+ {"R_390_8", Const, 7},
+ {"R_390_COPY", Const, 7},
+ {"R_390_GLOB_DAT", Const, 7},
+ {"R_390_GOT12", Const, 7},
+ {"R_390_GOT16", Const, 7},
+ {"R_390_GOT20", Const, 7},
+ {"R_390_GOT32", Const, 7},
+ {"R_390_GOT64", Const, 7},
+ {"R_390_GOTENT", Const, 7},
+ {"R_390_GOTOFF", Const, 7},
+ {"R_390_GOTOFF16", Const, 7},
+ {"R_390_GOTOFF64", Const, 7},
+ {"R_390_GOTPC", Const, 7},
+ {"R_390_GOTPCDBL", Const, 7},
+ {"R_390_GOTPLT12", Const, 7},
+ {"R_390_GOTPLT16", Const, 7},
+ {"R_390_GOTPLT20", Const, 7},
+ {"R_390_GOTPLT32", Const, 7},
+ {"R_390_GOTPLT64", Const, 7},
+ {"R_390_GOTPLTENT", Const, 7},
+ {"R_390_GOTPLTOFF16", Const, 7},
+ {"R_390_GOTPLTOFF32", Const, 7},
+ {"R_390_GOTPLTOFF64", Const, 7},
+ {"R_390_JMP_SLOT", Const, 7},
+ {"R_390_NONE", Const, 7},
+ {"R_390_PC16", Const, 7},
+ {"R_390_PC16DBL", Const, 7},
+ {"R_390_PC32", Const, 7},
+ {"R_390_PC32DBL", Const, 7},
+ {"R_390_PC64", Const, 7},
+ {"R_390_PLT16DBL", Const, 7},
+ {"R_390_PLT32", Const, 7},
+ {"R_390_PLT32DBL", Const, 7},
+ {"R_390_PLT64", Const, 7},
+ {"R_390_RELATIVE", Const, 7},
+ {"R_390_TLS_DTPMOD", Const, 7},
+ {"R_390_TLS_DTPOFF", Const, 7},
+ {"R_390_TLS_GD32", Const, 7},
+ {"R_390_TLS_GD64", Const, 7},
+ {"R_390_TLS_GDCALL", Const, 7},
+ {"R_390_TLS_GOTIE12", Const, 7},
+ {"R_390_TLS_GOTIE20", Const, 7},
+ {"R_390_TLS_GOTIE32", Const, 7},
+ {"R_390_TLS_GOTIE64", Const, 7},
+ {"R_390_TLS_IE32", Const, 7},
+ {"R_390_TLS_IE64", Const, 7},
+ {"R_390_TLS_IEENT", Const, 7},
+ {"R_390_TLS_LDCALL", Const, 7},
+ {"R_390_TLS_LDM32", Const, 7},
+ {"R_390_TLS_LDM64", Const, 7},
+ {"R_390_TLS_LDO32", Const, 7},
+ {"R_390_TLS_LDO64", Const, 7},
+ {"R_390_TLS_LE32", Const, 7},
+ {"R_390_TLS_LE64", Const, 7},
+ {"R_390_TLS_LOAD", Const, 7},
+ {"R_390_TLS_TPOFF", Const, 7},
+ {"R_AARCH64", Type, 4},
+ {"R_AARCH64_ABS16", Const, 4},
+ {"R_AARCH64_ABS32", Const, 4},
+ {"R_AARCH64_ABS64", Const, 4},
+ {"R_AARCH64_ADD_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_ADR_GOT_PAGE", Const, 4},
+ {"R_AARCH64_ADR_PREL_LO21", Const, 4},
+ {"R_AARCH64_ADR_PREL_PG_HI21", Const, 4},
+ {"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4},
+ {"R_AARCH64_CALL26", Const, 4},
+ {"R_AARCH64_CONDBR19", Const, 4},
+ {"R_AARCH64_COPY", Const, 4},
+ {"R_AARCH64_GLOB_DAT", Const, 4},
+ {"R_AARCH64_GOT_LD_PREL19", Const, 4},
+ {"R_AARCH64_IRELATIVE", Const, 4},
+ {"R_AARCH64_JUMP26", Const, 4},
+ {"R_AARCH64_JUMP_SLOT", Const, 4},
+ {"R_AARCH64_LD64_GOTOFF_LO15", Const, 10},
+ {"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10},
+ {"R_AARCH64_LD64_GOT_LO12_NC", Const, 4},
+ {"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_LD_PREL_LO19", Const, 4},
+ {"R_AARCH64_MOVW_SABS_G0", Const, 4},
+ {"R_AARCH64_MOVW_SABS_G1", Const, 4},
+ {"R_AARCH64_MOVW_SABS_G2", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G0", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G0_NC", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G1", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G1_NC", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G2", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G2_NC", Const, 4},
+ {"R_AARCH64_MOVW_UABS_G3", Const, 4},
+ {"R_AARCH64_NONE", Const, 4},
+ {"R_AARCH64_NULL", Const, 4},
+ {"R_AARCH64_P32_ABS16", Const, 4},
+ {"R_AARCH64_P32_ABS32", Const, 4},
+ {"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4},
+ {"R_AARCH64_P32_ADR_PREL_LO21", Const, 4},
+ {"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4},
+ {"R_AARCH64_P32_CALL26", Const, 4},
+ {"R_AARCH64_P32_CONDBR19", Const, 4},
+ {"R_AARCH64_P32_COPY", Const, 4},
+ {"R_AARCH64_P32_GLOB_DAT", Const, 4},
+ {"R_AARCH64_P32_GOT_LD_PREL19", Const, 4},
+ {"R_AARCH64_P32_IRELATIVE", Const, 4},
+ {"R_AARCH64_P32_JUMP26", Const, 4},
+ {"R_AARCH64_P32_JUMP_SLOT", Const, 4},
+ {"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_LD_PREL_LO19", Const, 4},
+ {"R_AARCH64_P32_MOVW_SABS_G0", Const, 4},
+ {"R_AARCH64_P32_MOVW_UABS_G0", Const, 4},
+ {"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4},
+ {"R_AARCH64_P32_MOVW_UABS_G1", Const, 4},
+ {"R_AARCH64_P32_PREL16", Const, 4},
+ {"R_AARCH64_P32_PREL32", Const, 4},
+ {"R_AARCH64_P32_RELATIVE", Const, 4},
+ {"R_AARCH64_P32_TLSDESC", Const, 4},
+ {"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4},
+ {"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4},
+ {"R_AARCH64_P32_TLSDESC_CALL", Const, 4},
+ {"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4},
+ {"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4},
+ {"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4},
+ {"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4},
+ {"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4},
+ {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4},
+ {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4},
+ {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4},
+ {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4},
+ {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4},
+ {"R_AARCH64_P32_TLS_DTPMOD", Const, 4},
+ {"R_AARCH64_P32_TLS_DTPREL", Const, 4},
+ {"R_AARCH64_P32_TLS_TPREL", Const, 4},
+ {"R_AARCH64_P32_TSTBR14", Const, 4},
+ {"R_AARCH64_PREL16", Const, 4},
+ {"R_AARCH64_PREL32", Const, 4},
+ {"R_AARCH64_PREL64", Const, 4},
+ {"R_AARCH64_RELATIVE", Const, 4},
+ {"R_AARCH64_TLSDESC", Const, 4},
+ {"R_AARCH64_TLSDESC_ADD", Const, 4},
+ {"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4},
+ {"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4},
+ {"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4},
+ {"R_AARCH64_TLSDESC_CALL", Const, 4},
+ {"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4},
+ {"R_AARCH64_TLSDESC_LDR", Const, 4},
+ {"R_AARCH64_TLSDESC_LD_PREL19", Const, 4},
+ {"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4},
+ {"R_AARCH64_TLSDESC_OFF_G1", Const, 4},
+ {"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4},
+ {"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4},
+ {"R_AARCH64_TLSGD_ADR_PREL21", Const, 10},
+ {"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10},
+ {"R_AARCH64_TLSGD_MOVW_G1", Const, 10},
+ {"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4},
+ {"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4},
+ {"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4},
+ {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4},
+ {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4},
+ {"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10},
+ {"R_AARCH64_TLSLD_ADR_PREL21", Const, 10},
+ {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10},
+ {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10},
+ {"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4},
+ {"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4},
+ {"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4},
+ {"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10},
+ {"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10},
+ {"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4},
+ {"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4},
+ {"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4},
+ {"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4},
+ {"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4},
+ {"R_AARCH64_TLS_DTPMOD64", Const, 4},
+ {"R_AARCH64_TLS_DTPREL64", Const, 4},
+ {"R_AARCH64_TLS_TPREL64", Const, 4},
+ {"R_AARCH64_TSTBR14", Const, 4},
+ {"R_ALPHA", Type, 0},
+ {"R_ALPHA_BRADDR", Const, 0},
+ {"R_ALPHA_COPY", Const, 0},
+ {"R_ALPHA_GLOB_DAT", Const, 0},
+ {"R_ALPHA_GPDISP", Const, 0},
+ {"R_ALPHA_GPREL32", Const, 0},
+ {"R_ALPHA_GPRELHIGH", Const, 0},
+ {"R_ALPHA_GPRELLOW", Const, 0},
+ {"R_ALPHA_GPVALUE", Const, 0},
+ {"R_ALPHA_HINT", Const, 0},
+ {"R_ALPHA_IMMED_BR_HI32", Const, 0},
+ {"R_ALPHA_IMMED_GP_16", Const, 0},
+ {"R_ALPHA_IMMED_GP_HI32", Const, 0},
+ {"R_ALPHA_IMMED_LO32", Const, 0},
+ {"R_ALPHA_IMMED_SCN_HI32", Const, 0},
+ {"R_ALPHA_JMP_SLOT", Const, 0},
+ {"R_ALPHA_LITERAL", Const, 0},
+ {"R_ALPHA_LITUSE", Const, 0},
+ {"R_ALPHA_NONE", Const, 0},
+ {"R_ALPHA_OP_PRSHIFT", Const, 0},
+ {"R_ALPHA_OP_PSUB", Const, 0},
+ {"R_ALPHA_OP_PUSH", Const, 0},
+ {"R_ALPHA_OP_STORE", Const, 0},
+ {"R_ALPHA_REFLONG", Const, 0},
+ {"R_ALPHA_REFQUAD", Const, 0},
+ {"R_ALPHA_RELATIVE", Const, 0},
+ {"R_ALPHA_SREL16", Const, 0},
+ {"R_ALPHA_SREL32", Const, 0},
+ {"R_ALPHA_SREL64", Const, 0},
+ {"R_ARM", Type, 0},
+ {"R_ARM_ABS12", Const, 0},
+ {"R_ARM_ABS16", Const, 0},
+ {"R_ARM_ABS32", Const, 0},
+ {"R_ARM_ABS32_NOI", Const, 10},
+ {"R_ARM_ABS8", Const, 0},
+ {"R_ARM_ALU_PCREL_15_8", Const, 10},
+ {"R_ARM_ALU_PCREL_23_15", Const, 10},
+ {"R_ARM_ALU_PCREL_7_0", Const, 10},
+ {"R_ARM_ALU_PC_G0", Const, 10},
+ {"R_ARM_ALU_PC_G0_NC", Const, 10},
+ {"R_ARM_ALU_PC_G1", Const, 10},
+ {"R_ARM_ALU_PC_G1_NC", Const, 10},
+ {"R_ARM_ALU_PC_G2", Const, 10},
+ {"R_ARM_ALU_SBREL_19_12_NC", Const, 10},
+ {"R_ARM_ALU_SBREL_27_20_CK", Const, 10},
+ {"R_ARM_ALU_SB_G0", Const, 10},
+ {"R_ARM_ALU_SB_G0_NC", Const, 10},
+ {"R_ARM_ALU_SB_G1", Const, 10},
+ {"R_ARM_ALU_SB_G1_NC", Const, 10},
+ {"R_ARM_ALU_SB_G2", Const, 10},
+ {"R_ARM_AMP_VCALL9", Const, 0},
+ {"R_ARM_BASE_ABS", Const, 10},
+ {"R_ARM_CALL", Const, 10},
+ {"R_ARM_COPY", Const, 0},
+ {"R_ARM_GLOB_DAT", Const, 0},
+ {"R_ARM_GNU_VTENTRY", Const, 0},
+ {"R_ARM_GNU_VTINHERIT", Const, 0},
+ {"R_ARM_GOT32", Const, 0},
+ {"R_ARM_GOTOFF", Const, 0},
+ {"R_ARM_GOTOFF12", Const, 10},
+ {"R_ARM_GOTPC", Const, 0},
+ {"R_ARM_GOTRELAX", Const, 10},
+ {"R_ARM_GOT_ABS", Const, 10},
+ {"R_ARM_GOT_BREL12", Const, 10},
+ {"R_ARM_GOT_PREL", Const, 10},
+ {"R_ARM_IRELATIVE", Const, 10},
+ {"R_ARM_JUMP24", Const, 10},
+ {"R_ARM_JUMP_SLOT", Const, 0},
+ {"R_ARM_LDC_PC_G0", Const, 10},
+ {"R_ARM_LDC_PC_G1", Const, 10},
+ {"R_ARM_LDC_PC_G2", Const, 10},
+ {"R_ARM_LDC_SB_G0", Const, 10},
+ {"R_ARM_LDC_SB_G1", Const, 10},
+ {"R_ARM_LDC_SB_G2", Const, 10},
+ {"R_ARM_LDRS_PC_G0", Const, 10},
+ {"R_ARM_LDRS_PC_G1", Const, 10},
+ {"R_ARM_LDRS_PC_G2", Const, 10},
+ {"R_ARM_LDRS_SB_G0", Const, 10},
+ {"R_ARM_LDRS_SB_G1", Const, 10},
+ {"R_ARM_LDRS_SB_G2", Const, 10},
+ {"R_ARM_LDR_PC_G1", Const, 10},
+ {"R_ARM_LDR_PC_G2", Const, 10},
+ {"R_ARM_LDR_SBREL_11_10_NC", Const, 10},
+ {"R_ARM_LDR_SB_G0", Const, 10},
+ {"R_ARM_LDR_SB_G1", Const, 10},
+ {"R_ARM_LDR_SB_G2", Const, 10},
+ {"R_ARM_ME_TOO", Const, 10},
+ {"R_ARM_MOVT_ABS", Const, 10},
+ {"R_ARM_MOVT_BREL", Const, 10},
+ {"R_ARM_MOVT_PREL", Const, 10},
+ {"R_ARM_MOVW_ABS_NC", Const, 10},
+ {"R_ARM_MOVW_BREL", Const, 10},
+ {"R_ARM_MOVW_BREL_NC", Const, 10},
+ {"R_ARM_MOVW_PREL_NC", Const, 10},
+ {"R_ARM_NONE", Const, 0},
+ {"R_ARM_PC13", Const, 0},
+ {"R_ARM_PC24", Const, 0},
+ {"R_ARM_PLT32", Const, 0},
+ {"R_ARM_PLT32_ABS", Const, 10},
+ {"R_ARM_PREL31", Const, 10},
+ {"R_ARM_PRIVATE_0", Const, 10},
+ {"R_ARM_PRIVATE_1", Const, 10},
+ {"R_ARM_PRIVATE_10", Const, 10},
+ {"R_ARM_PRIVATE_11", Const, 10},
+ {"R_ARM_PRIVATE_12", Const, 10},
+ {"R_ARM_PRIVATE_13", Const, 10},
+ {"R_ARM_PRIVATE_14", Const, 10},
+ {"R_ARM_PRIVATE_15", Const, 10},
+ {"R_ARM_PRIVATE_2", Const, 10},
+ {"R_ARM_PRIVATE_3", Const, 10},
+ {"R_ARM_PRIVATE_4", Const, 10},
+ {"R_ARM_PRIVATE_5", Const, 10},
+ {"R_ARM_PRIVATE_6", Const, 10},
+ {"R_ARM_PRIVATE_7", Const, 10},
+ {"R_ARM_PRIVATE_8", Const, 10},
+ {"R_ARM_PRIVATE_9", Const, 10},
+ {"R_ARM_RABS32", Const, 0},
+ {"R_ARM_RBASE", Const, 0},
+ {"R_ARM_REL32", Const, 0},
+ {"R_ARM_REL32_NOI", Const, 10},
+ {"R_ARM_RELATIVE", Const, 0},
+ {"R_ARM_RPC24", Const, 0},
+ {"R_ARM_RREL32", Const, 0},
+ {"R_ARM_RSBREL32", Const, 0},
+ {"R_ARM_RXPC25", Const, 10},
+ {"R_ARM_SBREL31", Const, 10},
+ {"R_ARM_SBREL32", Const, 0},
+ {"R_ARM_SWI24", Const, 0},
+ {"R_ARM_TARGET1", Const, 10},
+ {"R_ARM_TARGET2", Const, 10},
+ {"R_ARM_THM_ABS5", Const, 0},
+ {"R_ARM_THM_ALU_ABS_G0_NC", Const, 10},
+ {"R_ARM_THM_ALU_ABS_G1_NC", Const, 10},
+ {"R_ARM_THM_ALU_ABS_G2_NC", Const, 10},
+ {"R_ARM_THM_ALU_ABS_G3", Const, 10},
+ {"R_ARM_THM_ALU_PREL_11_0", Const, 10},
+ {"R_ARM_THM_GOT_BREL12", Const, 10},
+ {"R_ARM_THM_JUMP11", Const, 10},
+ {"R_ARM_THM_JUMP19", Const, 10},
+ {"R_ARM_THM_JUMP24", Const, 10},
+ {"R_ARM_THM_JUMP6", Const, 10},
+ {"R_ARM_THM_JUMP8", Const, 10},
+ {"R_ARM_THM_MOVT_ABS", Const, 10},
+ {"R_ARM_THM_MOVT_BREL", Const, 10},
+ {"R_ARM_THM_MOVT_PREL", Const, 10},
+ {"R_ARM_THM_MOVW_ABS_NC", Const, 10},
+ {"R_ARM_THM_MOVW_BREL", Const, 10},
+ {"R_ARM_THM_MOVW_BREL_NC", Const, 10},
+ {"R_ARM_THM_MOVW_PREL_NC", Const, 10},
+ {"R_ARM_THM_PC12", Const, 10},
+ {"R_ARM_THM_PC22", Const, 0},
+ {"R_ARM_THM_PC8", Const, 0},
+ {"R_ARM_THM_RPC22", Const, 0},
+ {"R_ARM_THM_SWI8", Const, 0},
+ {"R_ARM_THM_TLS_CALL", Const, 10},
+ {"R_ARM_THM_TLS_DESCSEQ16", Const, 10},
+ {"R_ARM_THM_TLS_DESCSEQ32", Const, 10},
+ {"R_ARM_THM_XPC22", Const, 0},
+ {"R_ARM_TLS_CALL", Const, 10},
+ {"R_ARM_TLS_DESCSEQ", Const, 10},
+ {"R_ARM_TLS_DTPMOD32", Const, 10},
+ {"R_ARM_TLS_DTPOFF32", Const, 10},
+ {"R_ARM_TLS_GD32", Const, 10},
+ {"R_ARM_TLS_GOTDESC", Const, 10},
+ {"R_ARM_TLS_IE12GP", Const, 10},
+ {"R_ARM_TLS_IE32", Const, 10},
+ {"R_ARM_TLS_LDM32", Const, 10},
+ {"R_ARM_TLS_LDO12", Const, 10},
+ {"R_ARM_TLS_LDO32", Const, 10},
+ {"R_ARM_TLS_LE12", Const, 10},
+ {"R_ARM_TLS_LE32", Const, 10},
+ {"R_ARM_TLS_TPOFF32", Const, 10},
+ {"R_ARM_V4BX", Const, 10},
+ {"R_ARM_XPC25", Const, 0},
+ {"R_INFO", Func, 0},
+ {"R_INFO32", Func, 0},
+ {"R_LARCH", Type, 19},
+ {"R_LARCH_32", Const, 19},
+ {"R_LARCH_32_PCREL", Const, 20},
+ {"R_LARCH_64", Const, 19},
+ {"R_LARCH_64_PCREL", Const, 22},
+ {"R_LARCH_ABS64_HI12", Const, 20},
+ {"R_LARCH_ABS64_LO20", Const, 20},
+ {"R_LARCH_ABS_HI20", Const, 20},
+ {"R_LARCH_ABS_LO12", Const, 20},
+ {"R_LARCH_ADD16", Const, 19},
+ {"R_LARCH_ADD24", Const, 19},
+ {"R_LARCH_ADD32", Const, 19},
+ {"R_LARCH_ADD6", Const, 22},
+ {"R_LARCH_ADD64", Const, 19},
+ {"R_LARCH_ADD8", Const, 19},
+ {"R_LARCH_ADD_ULEB128", Const, 22},
+ {"R_LARCH_ALIGN", Const, 22},
+ {"R_LARCH_B16", Const, 20},
+ {"R_LARCH_B21", Const, 20},
+ {"R_LARCH_B26", Const, 20},
+ {"R_LARCH_CFA", Const, 22},
+ {"R_LARCH_COPY", Const, 19},
+ {"R_LARCH_DELETE", Const, 22},
+ {"R_LARCH_GNU_VTENTRY", Const, 20},
+ {"R_LARCH_GNU_VTINHERIT", Const, 20},
+ {"R_LARCH_GOT64_HI12", Const, 20},
+ {"R_LARCH_GOT64_LO20", Const, 20},
+ {"R_LARCH_GOT64_PC_HI12", Const, 20},
+ {"R_LARCH_GOT64_PC_LO20", Const, 20},
+ {"R_LARCH_GOT_HI20", Const, 20},
+ {"R_LARCH_GOT_LO12", Const, 20},
+ {"R_LARCH_GOT_PC_HI20", Const, 20},
+ {"R_LARCH_GOT_PC_LO12", Const, 20},
+ {"R_LARCH_IRELATIVE", Const, 19},
+ {"R_LARCH_JUMP_SLOT", Const, 19},
+ {"R_LARCH_MARK_LA", Const, 19},
+ {"R_LARCH_MARK_PCREL", Const, 19},
+ {"R_LARCH_NONE", Const, 19},
+ {"R_LARCH_PCALA64_HI12", Const, 20},
+ {"R_LARCH_PCALA64_LO20", Const, 20},
+ {"R_LARCH_PCALA_HI20", Const, 20},
+ {"R_LARCH_PCALA_LO12", Const, 20},
+ {"R_LARCH_PCREL20_S2", Const, 22},
+ {"R_LARCH_RELATIVE", Const, 19},
+ {"R_LARCH_RELAX", Const, 20},
+ {"R_LARCH_SOP_ADD", Const, 19},
+ {"R_LARCH_SOP_AND", Const, 19},
+ {"R_LARCH_SOP_ASSERT", Const, 19},
+ {"R_LARCH_SOP_IF_ELSE", Const, 19},
+ {"R_LARCH_SOP_NOT", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_10_12", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_10_16", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_10_5", Const, 19},
+ {"R_LARCH_SOP_POP_32_S_5_20", Const, 19},
+ {"R_LARCH_SOP_POP_32_U", Const, 19},
+ {"R_LARCH_SOP_POP_32_U_10_12", Const, 19},
+ {"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19},
+ {"R_LARCH_SOP_PUSH_DUP", Const, 19},
+ {"R_LARCH_SOP_PUSH_GPREL", Const, 19},
+ {"R_LARCH_SOP_PUSH_PCREL", Const, 19},
+ {"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19},
+ {"R_LARCH_SOP_PUSH_TLS_GD", Const, 19},
+ {"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19},
+ {"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19},
+ {"R_LARCH_SOP_SL", Const, 19},
+ {"R_LARCH_SOP_SR", Const, 19},
+ {"R_LARCH_SOP_SUB", Const, 19},
+ {"R_LARCH_SUB16", Const, 19},
+ {"R_LARCH_SUB24", Const, 19},
+ {"R_LARCH_SUB32", Const, 19},
+ {"R_LARCH_SUB6", Const, 22},
+ {"R_LARCH_SUB64", Const, 19},
+ {"R_LARCH_SUB8", Const, 19},
+ {"R_LARCH_SUB_ULEB128", Const, 22},
+ {"R_LARCH_TLS_DTPMOD32", Const, 19},
+ {"R_LARCH_TLS_DTPMOD64", Const, 19},
+ {"R_LARCH_TLS_DTPREL32", Const, 19},
+ {"R_LARCH_TLS_DTPREL64", Const, 19},
+ {"R_LARCH_TLS_GD_HI20", Const, 20},
+ {"R_LARCH_TLS_GD_PC_HI20", Const, 20},
+ {"R_LARCH_TLS_IE64_HI12", Const, 20},
+ {"R_LARCH_TLS_IE64_LO20", Const, 20},
+ {"R_LARCH_TLS_IE64_PC_HI12", Const, 20},
+ {"R_LARCH_TLS_IE64_PC_LO20", Const, 20},
+ {"R_LARCH_TLS_IE_HI20", Const, 20},
+ {"R_LARCH_TLS_IE_LO12", Const, 20},
+ {"R_LARCH_TLS_IE_PC_HI20", Const, 20},
+ {"R_LARCH_TLS_IE_PC_LO12", Const, 20},
+ {"R_LARCH_TLS_LD_HI20", Const, 20},
+ {"R_LARCH_TLS_LD_PC_HI20", Const, 20},
+ {"R_LARCH_TLS_LE64_HI12", Const, 20},
+ {"R_LARCH_TLS_LE64_LO20", Const, 20},
+ {"R_LARCH_TLS_LE_HI20", Const, 20},
+ {"R_LARCH_TLS_LE_LO12", Const, 20},
+ {"R_LARCH_TLS_TPREL32", Const, 19},
+ {"R_LARCH_TLS_TPREL64", Const, 19},
+ {"R_MIPS", Type, 6},
+ {"R_MIPS_16", Const, 6},
+ {"R_MIPS_26", Const, 6},
+ {"R_MIPS_32", Const, 6},
+ {"R_MIPS_64", Const, 6},
+ {"R_MIPS_ADD_IMMEDIATE", Const, 6},
+ {"R_MIPS_CALL16", Const, 6},
+ {"R_MIPS_CALL_HI16", Const, 6},
+ {"R_MIPS_CALL_LO16", Const, 6},
+ {"R_MIPS_DELETE", Const, 6},
+ {"R_MIPS_GOT16", Const, 6},
+ {"R_MIPS_GOT_DISP", Const, 6},
+ {"R_MIPS_GOT_HI16", Const, 6},
+ {"R_MIPS_GOT_LO16", Const, 6},
+ {"R_MIPS_GOT_OFST", Const, 6},
+ {"R_MIPS_GOT_PAGE", Const, 6},
+ {"R_MIPS_GPREL16", Const, 6},
+ {"R_MIPS_GPREL32", Const, 6},
+ {"R_MIPS_HI16", Const, 6},
+ {"R_MIPS_HIGHER", Const, 6},
+ {"R_MIPS_HIGHEST", Const, 6},
+ {"R_MIPS_INSERT_A", Const, 6},
+ {"R_MIPS_INSERT_B", Const, 6},
+ {"R_MIPS_JALR", Const, 6},
+ {"R_MIPS_LITERAL", Const, 6},
+ {"R_MIPS_LO16", Const, 6},
+ {"R_MIPS_NONE", Const, 6},
+ {"R_MIPS_PC16", Const, 6},
+ {"R_MIPS_PC32", Const, 22},
+ {"R_MIPS_PJUMP", Const, 6},
+ {"R_MIPS_REL16", Const, 6},
+ {"R_MIPS_REL32", Const, 6},
+ {"R_MIPS_RELGOT", Const, 6},
+ {"R_MIPS_SCN_DISP", Const, 6},
+ {"R_MIPS_SHIFT5", Const, 6},
+ {"R_MIPS_SHIFT6", Const, 6},
+ {"R_MIPS_SUB", Const, 6},
+ {"R_MIPS_TLS_DTPMOD32", Const, 6},
+ {"R_MIPS_TLS_DTPMOD64", Const, 6},
+ {"R_MIPS_TLS_DTPREL32", Const, 6},
+ {"R_MIPS_TLS_DTPREL64", Const, 6},
+ {"R_MIPS_TLS_DTPREL_HI16", Const, 6},
+ {"R_MIPS_TLS_DTPREL_LO16", Const, 6},
+ {"R_MIPS_TLS_GD", Const, 6},
+ {"R_MIPS_TLS_GOTTPREL", Const, 6},
+ {"R_MIPS_TLS_LDM", Const, 6},
+ {"R_MIPS_TLS_TPREL32", Const, 6},
+ {"R_MIPS_TLS_TPREL64", Const, 6},
+ {"R_MIPS_TLS_TPREL_HI16", Const, 6},
+ {"R_MIPS_TLS_TPREL_LO16", Const, 6},
+ {"R_PPC", Type, 0},
+ {"R_PPC64", Type, 5},
+ {"R_PPC64_ADDR14", Const, 5},
+ {"R_PPC64_ADDR14_BRNTAKEN", Const, 5},
+ {"R_PPC64_ADDR14_BRTAKEN", Const, 5},
+ {"R_PPC64_ADDR16", Const, 5},
+ {"R_PPC64_ADDR16_DS", Const, 5},
+ {"R_PPC64_ADDR16_HA", Const, 5},
+ {"R_PPC64_ADDR16_HI", Const, 5},
+ {"R_PPC64_ADDR16_HIGH", Const, 10},
+ {"R_PPC64_ADDR16_HIGHA", Const, 10},
+ {"R_PPC64_ADDR16_HIGHER", Const, 5},
+ {"R_PPC64_ADDR16_HIGHER34", Const, 20},
+ {"R_PPC64_ADDR16_HIGHERA", Const, 5},
+ {"R_PPC64_ADDR16_HIGHERA34", Const, 20},
+ {"R_PPC64_ADDR16_HIGHEST", Const, 5},
+ {"R_PPC64_ADDR16_HIGHEST34", Const, 20},
+ {"R_PPC64_ADDR16_HIGHESTA", Const, 5},
+ {"R_PPC64_ADDR16_HIGHESTA34", Const, 20},
+ {"R_PPC64_ADDR16_LO", Const, 5},
+ {"R_PPC64_ADDR16_LO_DS", Const, 5},
+ {"R_PPC64_ADDR24", Const, 5},
+ {"R_PPC64_ADDR32", Const, 5},
+ {"R_PPC64_ADDR64", Const, 5},
+ {"R_PPC64_ADDR64_LOCAL", Const, 10},
+ {"R_PPC64_COPY", Const, 20},
+ {"R_PPC64_D28", Const, 20},
+ {"R_PPC64_D34", Const, 20},
+ {"R_PPC64_D34_HA30", Const, 20},
+ {"R_PPC64_D34_HI30", Const, 20},
+ {"R_PPC64_D34_LO", Const, 20},
+ {"R_PPC64_DTPMOD64", Const, 5},
+ {"R_PPC64_DTPREL16", Const, 5},
+ {"R_PPC64_DTPREL16_DS", Const, 5},
+ {"R_PPC64_DTPREL16_HA", Const, 5},
+ {"R_PPC64_DTPREL16_HI", Const, 5},
+ {"R_PPC64_DTPREL16_HIGH", Const, 10},
+ {"R_PPC64_DTPREL16_HIGHA", Const, 10},
+ {"R_PPC64_DTPREL16_HIGHER", Const, 5},
+ {"R_PPC64_DTPREL16_HIGHERA", Const, 5},
+ {"R_PPC64_DTPREL16_HIGHEST", Const, 5},
+ {"R_PPC64_DTPREL16_HIGHESTA", Const, 5},
+ {"R_PPC64_DTPREL16_LO", Const, 5},
+ {"R_PPC64_DTPREL16_LO_DS", Const, 5},
+ {"R_PPC64_DTPREL34", Const, 20},
+ {"R_PPC64_DTPREL64", Const, 5},
+ {"R_PPC64_ENTRY", Const, 10},
+ {"R_PPC64_GLOB_DAT", Const, 20},
+ {"R_PPC64_GNU_VTENTRY", Const, 20},
+ {"R_PPC64_GNU_VTINHERIT", Const, 20},
+ {"R_PPC64_GOT16", Const, 5},
+ {"R_PPC64_GOT16_DS", Const, 5},
+ {"R_PPC64_GOT16_HA", Const, 5},
+ {"R_PPC64_GOT16_HI", Const, 5},
+ {"R_PPC64_GOT16_LO", Const, 5},
+ {"R_PPC64_GOT16_LO_DS", Const, 5},
+ {"R_PPC64_GOT_DTPREL16_DS", Const, 5},
+ {"R_PPC64_GOT_DTPREL16_HA", Const, 5},
+ {"R_PPC64_GOT_DTPREL16_HI", Const, 5},
+ {"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5},
+ {"R_PPC64_GOT_DTPREL_PCREL34", Const, 20},
+ {"R_PPC64_GOT_PCREL34", Const, 20},
+ {"R_PPC64_GOT_TLSGD16", Const, 5},
+ {"R_PPC64_GOT_TLSGD16_HA", Const, 5},
+ {"R_PPC64_GOT_TLSGD16_HI", Const, 5},
+ {"R_PPC64_GOT_TLSGD16_LO", Const, 5},
+ {"R_PPC64_GOT_TLSGD_PCREL34", Const, 20},
+ {"R_PPC64_GOT_TLSLD16", Const, 5},
+ {"R_PPC64_GOT_TLSLD16_HA", Const, 5},
+ {"R_PPC64_GOT_TLSLD16_HI", Const, 5},
+ {"R_PPC64_GOT_TLSLD16_LO", Const, 5},
+ {"R_PPC64_GOT_TLSLD_PCREL34", Const, 20},
+ {"R_PPC64_GOT_TPREL16_DS", Const, 5},
+ {"R_PPC64_GOT_TPREL16_HA", Const, 5},
+ {"R_PPC64_GOT_TPREL16_HI", Const, 5},
+ {"R_PPC64_GOT_TPREL16_LO_DS", Const, 5},
+ {"R_PPC64_GOT_TPREL_PCREL34", Const, 20},
+ {"R_PPC64_IRELATIVE", Const, 10},
+ {"R_PPC64_JMP_IREL", Const, 10},
+ {"R_PPC64_JMP_SLOT", Const, 5},
+ {"R_PPC64_NONE", Const, 5},
+ {"R_PPC64_PCREL28", Const, 20},
+ {"R_PPC64_PCREL34", Const, 20},
+ {"R_PPC64_PCREL_OPT", Const, 20},
+ {"R_PPC64_PLT16_HA", Const, 20},
+ {"R_PPC64_PLT16_HI", Const, 20},
+ {"R_PPC64_PLT16_LO", Const, 20},
+ {"R_PPC64_PLT16_LO_DS", Const, 10},
+ {"R_PPC64_PLT32", Const, 20},
+ {"R_PPC64_PLT64", Const, 20},
+ {"R_PPC64_PLTCALL", Const, 20},
+ {"R_PPC64_PLTCALL_NOTOC", Const, 20},
+ {"R_PPC64_PLTGOT16", Const, 10},
+ {"R_PPC64_PLTGOT16_DS", Const, 10},
+ {"R_PPC64_PLTGOT16_HA", Const, 10},
+ {"R_PPC64_PLTGOT16_HI", Const, 10},
+ {"R_PPC64_PLTGOT16_LO", Const, 10},
+ {"R_PPC64_PLTGOT_LO_DS", Const, 10},
+ {"R_PPC64_PLTREL32", Const, 20},
+ {"R_PPC64_PLTREL64", Const, 20},
+ {"R_PPC64_PLTSEQ", Const, 20},
+ {"R_PPC64_PLTSEQ_NOTOC", Const, 20},
+ {"R_PPC64_PLT_PCREL34", Const, 20},
+ {"R_PPC64_PLT_PCREL34_NOTOC", Const, 20},
+ {"R_PPC64_REL14", Const, 5},
+ {"R_PPC64_REL14_BRNTAKEN", Const, 5},
+ {"R_PPC64_REL14_BRTAKEN", Const, 5},
+ {"R_PPC64_REL16", Const, 5},
+ {"R_PPC64_REL16DX_HA", Const, 10},
+ {"R_PPC64_REL16_HA", Const, 5},
+ {"R_PPC64_REL16_HI", Const, 5},
+ {"R_PPC64_REL16_HIGH", Const, 20},
+ {"R_PPC64_REL16_HIGHA", Const, 20},
+ {"R_PPC64_REL16_HIGHER", Const, 20},
+ {"R_PPC64_REL16_HIGHER34", Const, 20},
+ {"R_PPC64_REL16_HIGHERA", Const, 20},
+ {"R_PPC64_REL16_HIGHERA34", Const, 20},
+ {"R_PPC64_REL16_HIGHEST", Const, 20},
+ {"R_PPC64_REL16_HIGHEST34", Const, 20},
+ {"R_PPC64_REL16_HIGHESTA", Const, 20},
+ {"R_PPC64_REL16_HIGHESTA34", Const, 20},
+ {"R_PPC64_REL16_LO", Const, 5},
+ {"R_PPC64_REL24", Const, 5},
+ {"R_PPC64_REL24_NOTOC", Const, 10},
+ {"R_PPC64_REL24_P9NOTOC", Const, 21},
+ {"R_PPC64_REL30", Const, 20},
+ {"R_PPC64_REL32", Const, 5},
+ {"R_PPC64_REL64", Const, 5},
+ {"R_PPC64_RELATIVE", Const, 18},
+ {"R_PPC64_SECTOFF", Const, 20},
+ {"R_PPC64_SECTOFF_DS", Const, 10},
+ {"R_PPC64_SECTOFF_HA", Const, 20},
+ {"R_PPC64_SECTOFF_HI", Const, 20},
+ {"R_PPC64_SECTOFF_LO", Const, 20},
+ {"R_PPC64_SECTOFF_LO_DS", Const, 10},
+ {"R_PPC64_TLS", Const, 5},
+ {"R_PPC64_TLSGD", Const, 5},
+ {"R_PPC64_TLSLD", Const, 5},
+ {"R_PPC64_TOC", Const, 5},
+ {"R_PPC64_TOC16", Const, 5},
+ {"R_PPC64_TOC16_DS", Const, 5},
+ {"R_PPC64_TOC16_HA", Const, 5},
+ {"R_PPC64_TOC16_HI", Const, 5},
+ {"R_PPC64_TOC16_LO", Const, 5},
+ {"R_PPC64_TOC16_LO_DS", Const, 5},
+ {"R_PPC64_TOCSAVE", Const, 10},
+ {"R_PPC64_TPREL16", Const, 5},
+ {"R_PPC64_TPREL16_DS", Const, 5},
+ {"R_PPC64_TPREL16_HA", Const, 5},
+ {"R_PPC64_TPREL16_HI", Const, 5},
+ {"R_PPC64_TPREL16_HIGH", Const, 10},
+ {"R_PPC64_TPREL16_HIGHA", Const, 10},
+ {"R_PPC64_TPREL16_HIGHER", Const, 5},
+ {"R_PPC64_TPREL16_HIGHERA", Const, 5},
+ {"R_PPC64_TPREL16_HIGHEST", Const, 5},
+ {"R_PPC64_TPREL16_HIGHESTA", Const, 5},
+ {"R_PPC64_TPREL16_LO", Const, 5},
+ {"R_PPC64_TPREL16_LO_DS", Const, 5},
+ {"R_PPC64_TPREL34", Const, 20},
+ {"R_PPC64_TPREL64", Const, 5},
+ {"R_PPC64_UADDR16", Const, 20},
+ {"R_PPC64_UADDR32", Const, 20},
+ {"R_PPC64_UADDR64", Const, 20},
+ {"R_PPC_ADDR14", Const, 0},
+ {"R_PPC_ADDR14_BRNTAKEN", Const, 0},
+ {"R_PPC_ADDR14_BRTAKEN", Const, 0},
+ {"R_PPC_ADDR16", Const, 0},
+ {"R_PPC_ADDR16_HA", Const, 0},
+ {"R_PPC_ADDR16_HI", Const, 0},
+ {"R_PPC_ADDR16_LO", Const, 0},
+ {"R_PPC_ADDR24", Const, 0},
+ {"R_PPC_ADDR32", Const, 0},
+ {"R_PPC_COPY", Const, 0},
+ {"R_PPC_DTPMOD32", Const, 0},
+ {"R_PPC_DTPREL16", Const, 0},
+ {"R_PPC_DTPREL16_HA", Const, 0},
+ {"R_PPC_DTPREL16_HI", Const, 0},
+ {"R_PPC_DTPREL16_LO", Const, 0},
+ {"R_PPC_DTPREL32", Const, 0},
+ {"R_PPC_EMB_BIT_FLD", Const, 0},
+ {"R_PPC_EMB_MRKREF", Const, 0},
+ {"R_PPC_EMB_NADDR16", Const, 0},
+ {"R_PPC_EMB_NADDR16_HA", Const, 0},
+ {"R_PPC_EMB_NADDR16_HI", Const, 0},
+ {"R_PPC_EMB_NADDR16_LO", Const, 0},
+ {"R_PPC_EMB_NADDR32", Const, 0},
+ {"R_PPC_EMB_RELSDA", Const, 0},
+ {"R_PPC_EMB_RELSEC16", Const, 0},
+ {"R_PPC_EMB_RELST_HA", Const, 0},
+ {"R_PPC_EMB_RELST_HI", Const, 0},
+ {"R_PPC_EMB_RELST_LO", Const, 0},
+ {"R_PPC_EMB_SDA21", Const, 0},
+ {"R_PPC_EMB_SDA2I16", Const, 0},
+ {"R_PPC_EMB_SDA2REL", Const, 0},
+ {"R_PPC_EMB_SDAI16", Const, 0},
+ {"R_PPC_GLOB_DAT", Const, 0},
+ {"R_PPC_GOT16", Const, 0},
+ {"R_PPC_GOT16_HA", Const, 0},
+ {"R_PPC_GOT16_HI", Const, 0},
+ {"R_PPC_GOT16_LO", Const, 0},
+ {"R_PPC_GOT_TLSGD16", Const, 0},
+ {"R_PPC_GOT_TLSGD16_HA", Const, 0},
+ {"R_PPC_GOT_TLSGD16_HI", Const, 0},
+ {"R_PPC_GOT_TLSGD16_LO", Const, 0},
+ {"R_PPC_GOT_TLSLD16", Const, 0},
+ {"R_PPC_GOT_TLSLD16_HA", Const, 0},
+ {"R_PPC_GOT_TLSLD16_HI", Const, 0},
+ {"R_PPC_GOT_TLSLD16_LO", Const, 0},
+ {"R_PPC_GOT_TPREL16", Const, 0},
+ {"R_PPC_GOT_TPREL16_HA", Const, 0},
+ {"R_PPC_GOT_TPREL16_HI", Const, 0},
+ {"R_PPC_GOT_TPREL16_LO", Const, 0},
+ {"R_PPC_JMP_SLOT", Const, 0},
+ {"R_PPC_LOCAL24PC", Const, 0},
+ {"R_PPC_NONE", Const, 0},
+ {"R_PPC_PLT16_HA", Const, 0},
+ {"R_PPC_PLT16_HI", Const, 0},
+ {"R_PPC_PLT16_LO", Const, 0},
+ {"R_PPC_PLT32", Const, 0},
+ {"R_PPC_PLTREL24", Const, 0},
+ {"R_PPC_PLTREL32", Const, 0},
+ {"R_PPC_REL14", Const, 0},
+ {"R_PPC_REL14_BRNTAKEN", Const, 0},
+ {"R_PPC_REL14_BRTAKEN", Const, 0},
+ {"R_PPC_REL24", Const, 0},
+ {"R_PPC_REL32", Const, 0},
+ {"R_PPC_RELATIVE", Const, 0},
+ {"R_PPC_SDAREL16", Const, 0},
+ {"R_PPC_SECTOFF", Const, 0},
+ {"R_PPC_SECTOFF_HA", Const, 0},
+ {"R_PPC_SECTOFF_HI", Const, 0},
+ {"R_PPC_SECTOFF_LO", Const, 0},
+ {"R_PPC_TLS", Const, 0},
+ {"R_PPC_TPREL16", Const, 0},
+ {"R_PPC_TPREL16_HA", Const, 0},
+ {"R_PPC_TPREL16_HI", Const, 0},
+ {"R_PPC_TPREL16_LO", Const, 0},
+ {"R_PPC_TPREL32", Const, 0},
+ {"R_PPC_UADDR16", Const, 0},
+ {"R_PPC_UADDR32", Const, 0},
+ {"R_RISCV", Type, 11},
+ {"R_RISCV_32", Const, 11},
+ {"R_RISCV_32_PCREL", Const, 12},
+ {"R_RISCV_64", Const, 11},
+ {"R_RISCV_ADD16", Const, 11},
+ {"R_RISCV_ADD32", Const, 11},
+ {"R_RISCV_ADD64", Const, 11},
+ {"R_RISCV_ADD8", Const, 11},
+ {"R_RISCV_ALIGN", Const, 11},
+ {"R_RISCV_BRANCH", Const, 11},
+ {"R_RISCV_CALL", Const, 11},
+ {"R_RISCV_CALL_PLT", Const, 11},
+ {"R_RISCV_COPY", Const, 11},
+ {"R_RISCV_GNU_VTENTRY", Const, 11},
+ {"R_RISCV_GNU_VTINHERIT", Const, 11},
+ {"R_RISCV_GOT_HI20", Const, 11},
+ {"R_RISCV_GPREL_I", Const, 11},
+ {"R_RISCV_GPREL_S", Const, 11},
+ {"R_RISCV_HI20", Const, 11},
+ {"R_RISCV_JAL", Const, 11},
+ {"R_RISCV_JUMP_SLOT", Const, 11},
+ {"R_RISCV_LO12_I", Const, 11},
+ {"R_RISCV_LO12_S", Const, 11},
+ {"R_RISCV_NONE", Const, 11},
+ {"R_RISCV_PCREL_HI20", Const, 11},
+ {"R_RISCV_PCREL_LO12_I", Const, 11},
+ {"R_RISCV_PCREL_LO12_S", Const, 11},
+ {"R_RISCV_RELATIVE", Const, 11},
+ {"R_RISCV_RELAX", Const, 11},
+ {"R_RISCV_RVC_BRANCH", Const, 11},
+ {"R_RISCV_RVC_JUMP", Const, 11},
+ {"R_RISCV_RVC_LUI", Const, 11},
+ {"R_RISCV_SET16", Const, 11},
+ {"R_RISCV_SET32", Const, 11},
+ {"R_RISCV_SET6", Const, 11},
+ {"R_RISCV_SET8", Const, 11},
+ {"R_RISCV_SUB16", Const, 11},
+ {"R_RISCV_SUB32", Const, 11},
+ {"R_RISCV_SUB6", Const, 11},
+ {"R_RISCV_SUB64", Const, 11},
+ {"R_RISCV_SUB8", Const, 11},
+ {"R_RISCV_TLS_DTPMOD32", Const, 11},
+ {"R_RISCV_TLS_DTPMOD64", Const, 11},
+ {"R_RISCV_TLS_DTPREL32", Const, 11},
+ {"R_RISCV_TLS_DTPREL64", Const, 11},
+ {"R_RISCV_TLS_GD_HI20", Const, 11},
+ {"R_RISCV_TLS_GOT_HI20", Const, 11},
+ {"R_RISCV_TLS_TPREL32", Const, 11},
+ {"R_RISCV_TLS_TPREL64", Const, 11},
+ {"R_RISCV_TPREL_ADD", Const, 11},
+ {"R_RISCV_TPREL_HI20", Const, 11},
+ {"R_RISCV_TPREL_I", Const, 11},
+ {"R_RISCV_TPREL_LO12_I", Const, 11},
+ {"R_RISCV_TPREL_LO12_S", Const, 11},
+ {"R_RISCV_TPREL_S", Const, 11},
+ {"R_SPARC", Type, 0},
+ {"R_SPARC_10", Const, 0},
+ {"R_SPARC_11", Const, 0},
+ {"R_SPARC_13", Const, 0},
+ {"R_SPARC_16", Const, 0},
+ {"R_SPARC_22", Const, 0},
+ {"R_SPARC_32", Const, 0},
+ {"R_SPARC_5", Const, 0},
+ {"R_SPARC_6", Const, 0},
+ {"R_SPARC_64", Const, 0},
+ {"R_SPARC_7", Const, 0},
+ {"R_SPARC_8", Const, 0},
+ {"R_SPARC_COPY", Const, 0},
+ {"R_SPARC_DISP16", Const, 0},
+ {"R_SPARC_DISP32", Const, 0},
+ {"R_SPARC_DISP64", Const, 0},
+ {"R_SPARC_DISP8", Const, 0},
+ {"R_SPARC_GLOB_DAT", Const, 0},
+ {"R_SPARC_GLOB_JMP", Const, 0},
+ {"R_SPARC_GOT10", Const, 0},
+ {"R_SPARC_GOT13", Const, 0},
+ {"R_SPARC_GOT22", Const, 0},
+ {"R_SPARC_H44", Const, 0},
+ {"R_SPARC_HH22", Const, 0},
+ {"R_SPARC_HI22", Const, 0},
+ {"R_SPARC_HIPLT22", Const, 0},
+ {"R_SPARC_HIX22", Const, 0},
+ {"R_SPARC_HM10", Const, 0},
+ {"R_SPARC_JMP_SLOT", Const, 0},
+ {"R_SPARC_L44", Const, 0},
+ {"R_SPARC_LM22", Const, 0},
+ {"R_SPARC_LO10", Const, 0},
+ {"R_SPARC_LOPLT10", Const, 0},
+ {"R_SPARC_LOX10", Const, 0},
+ {"R_SPARC_M44", Const, 0},
+ {"R_SPARC_NONE", Const, 0},
+ {"R_SPARC_OLO10", Const, 0},
+ {"R_SPARC_PC10", Const, 0},
+ {"R_SPARC_PC22", Const, 0},
+ {"R_SPARC_PCPLT10", Const, 0},
+ {"R_SPARC_PCPLT22", Const, 0},
+ {"R_SPARC_PCPLT32", Const, 0},
+ {"R_SPARC_PC_HH22", Const, 0},
+ {"R_SPARC_PC_HM10", Const, 0},
+ {"R_SPARC_PC_LM22", Const, 0},
+ {"R_SPARC_PLT32", Const, 0},
+ {"R_SPARC_PLT64", Const, 0},
+ {"R_SPARC_REGISTER", Const, 0},
+ {"R_SPARC_RELATIVE", Const, 0},
+ {"R_SPARC_UA16", Const, 0},
+ {"R_SPARC_UA32", Const, 0},
+ {"R_SPARC_UA64", Const, 0},
+ {"R_SPARC_WDISP16", Const, 0},
+ {"R_SPARC_WDISP19", Const, 0},
+ {"R_SPARC_WDISP22", Const, 0},
+ {"R_SPARC_WDISP30", Const, 0},
+ {"R_SPARC_WPLT30", Const, 0},
+ {"R_SYM32", Func, 0},
+ {"R_SYM64", Func, 0},
+ {"R_TYPE32", Func, 0},
+ {"R_TYPE64", Func, 0},
+ {"R_X86_64", Type, 0},
+ {"R_X86_64_16", Const, 0},
+ {"R_X86_64_32", Const, 0},
+ {"R_X86_64_32S", Const, 0},
+ {"R_X86_64_64", Const, 0},
+ {"R_X86_64_8", Const, 0},
+ {"R_X86_64_COPY", Const, 0},
+ {"R_X86_64_DTPMOD64", Const, 0},
+ {"R_X86_64_DTPOFF32", Const, 0},
+ {"R_X86_64_DTPOFF64", Const, 0},
+ {"R_X86_64_GLOB_DAT", Const, 0},
+ {"R_X86_64_GOT32", Const, 0},
+ {"R_X86_64_GOT64", Const, 10},
+ {"R_X86_64_GOTOFF64", Const, 10},
+ {"R_X86_64_GOTPC32", Const, 10},
+ {"R_X86_64_GOTPC32_TLSDESC", Const, 10},
+ {"R_X86_64_GOTPC64", Const, 10},
+ {"R_X86_64_GOTPCREL", Const, 0},
+ {"R_X86_64_GOTPCREL64", Const, 10},
+ {"R_X86_64_GOTPCRELX", Const, 10},
+ {"R_X86_64_GOTPLT64", Const, 10},
+ {"R_X86_64_GOTTPOFF", Const, 0},
+ {"R_X86_64_IRELATIVE", Const, 10},
+ {"R_X86_64_JMP_SLOT", Const, 0},
+ {"R_X86_64_NONE", Const, 0},
+ {"R_X86_64_PC16", Const, 0},
+ {"R_X86_64_PC32", Const, 0},
+ {"R_X86_64_PC32_BND", Const, 10},
+ {"R_X86_64_PC64", Const, 10},
+ {"R_X86_64_PC8", Const, 0},
+ {"R_X86_64_PLT32", Const, 0},
+ {"R_X86_64_PLT32_BND", Const, 10},
+ {"R_X86_64_PLTOFF64", Const, 10},
+ {"R_X86_64_RELATIVE", Const, 0},
+ {"R_X86_64_RELATIVE64", Const, 10},
+ {"R_X86_64_REX_GOTPCRELX", Const, 10},
+ {"R_X86_64_SIZE32", Const, 10},
+ {"R_X86_64_SIZE64", Const, 10},
+ {"R_X86_64_TLSDESC", Const, 10},
+ {"R_X86_64_TLSDESC_CALL", Const, 10},
+ {"R_X86_64_TLSGD", Const, 0},
+ {"R_X86_64_TLSLD", Const, 0},
+ {"R_X86_64_TPOFF32", Const, 0},
+ {"R_X86_64_TPOFF64", Const, 0},
+ {"Rel32", Type, 0},
+ {"Rel32.Info", Field, 0},
+ {"Rel32.Off", Field, 0},
+ {"Rel64", Type, 0},
+ {"Rel64.Info", Field, 0},
+ {"Rel64.Off", Field, 0},
+ {"Rela32", Type, 0},
+ {"Rela32.Addend", Field, 0},
+ {"Rela32.Info", Field, 0},
+ {"Rela32.Off", Field, 0},
+ {"Rela64", Type, 0},
+ {"Rela64.Addend", Field, 0},
+ {"Rela64.Info", Field, 0},
+ {"Rela64.Off", Field, 0},
+ {"SHF_ALLOC", Const, 0},
+ {"SHF_COMPRESSED", Const, 6},
+ {"SHF_EXECINSTR", Const, 0},
+ {"SHF_GROUP", Const, 0},
+ {"SHF_INFO_LINK", Const, 0},
+ {"SHF_LINK_ORDER", Const, 0},
+ {"SHF_MASKOS", Const, 0},
+ {"SHF_MASKPROC", Const, 0},
+ {"SHF_MERGE", Const, 0},
+ {"SHF_OS_NONCONFORMING", Const, 0},
+ {"SHF_STRINGS", Const, 0},
+ {"SHF_TLS", Const, 0},
+ {"SHF_WRITE", Const, 0},
+ {"SHN_ABS", Const, 0},
+ {"SHN_COMMON", Const, 0},
+ {"SHN_HIOS", Const, 0},
+ {"SHN_HIPROC", Const, 0},
+ {"SHN_HIRESERVE", Const, 0},
+ {"SHN_LOOS", Const, 0},
+ {"SHN_LOPROC", Const, 0},
+ {"SHN_LORESERVE", Const, 0},
+ {"SHN_UNDEF", Const, 0},
+ {"SHN_XINDEX", Const, 0},
+ {"SHT_DYNAMIC", Const, 0},
+ {"SHT_DYNSYM", Const, 0},
+ {"SHT_FINI_ARRAY", Const, 0},
+ {"SHT_GNU_ATTRIBUTES", Const, 0},
+ {"SHT_GNU_HASH", Const, 0},
+ {"SHT_GNU_LIBLIST", Const, 0},
+ {"SHT_GNU_VERDEF", Const, 0},
+ {"SHT_GNU_VERNEED", Const, 0},
+ {"SHT_GNU_VERSYM", Const, 0},
+ {"SHT_GROUP", Const, 0},
+ {"SHT_HASH", Const, 0},
+ {"SHT_HIOS", Const, 0},
+ {"SHT_HIPROC", Const, 0},
+ {"SHT_HIUSER", Const, 0},
+ {"SHT_INIT_ARRAY", Const, 0},
+ {"SHT_LOOS", Const, 0},
+ {"SHT_LOPROC", Const, 0},
+ {"SHT_LOUSER", Const, 0},
+ {"SHT_MIPS_ABIFLAGS", Const, 17},
+ {"SHT_NOBITS", Const, 0},
+ {"SHT_NOTE", Const, 0},
+ {"SHT_NULL", Const, 0},
+ {"SHT_PREINIT_ARRAY", Const, 0},
+ {"SHT_PROGBITS", Const, 0},
+ {"SHT_REL", Const, 0},
+ {"SHT_RELA", Const, 0},
+ {"SHT_SHLIB", Const, 0},
+ {"SHT_STRTAB", Const, 0},
+ {"SHT_SYMTAB", Const, 0},
+ {"SHT_SYMTAB_SHNDX", Const, 0},
+ {"STB_GLOBAL", Const, 0},
+ {"STB_HIOS", Const, 0},
+ {"STB_HIPROC", Const, 0},
+ {"STB_LOCAL", Const, 0},
+ {"STB_LOOS", Const, 0},
+ {"STB_LOPROC", Const, 0},
+ {"STB_WEAK", Const, 0},
+ {"STT_COMMON", Const, 0},
+ {"STT_FILE", Const, 0},
+ {"STT_FUNC", Const, 0},
+ {"STT_HIOS", Const, 0},
+ {"STT_HIPROC", Const, 0},
+ {"STT_LOOS", Const, 0},
+ {"STT_LOPROC", Const, 0},
+ {"STT_NOTYPE", Const, 0},
+ {"STT_OBJECT", Const, 0},
+ {"STT_SECTION", Const, 0},
+ {"STT_TLS", Const, 0},
+ {"STV_DEFAULT", Const, 0},
+ {"STV_HIDDEN", Const, 0},
+ {"STV_INTERNAL", Const, 0},
+ {"STV_PROTECTED", Const, 0},
+ {"ST_BIND", Func, 0},
+ {"ST_INFO", Func, 0},
+ {"ST_TYPE", Func, 0},
+ {"ST_VISIBILITY", Func, 0},
+ {"Section", Type, 0},
+ {"Section.ReaderAt", Field, 0},
+ {"Section.SectionHeader", Field, 0},
+ {"Section32", Type, 0},
+ {"Section32.Addr", Field, 0},
+ {"Section32.Addralign", Field, 0},
+ {"Section32.Entsize", Field, 0},
+ {"Section32.Flags", Field, 0},
+ {"Section32.Info", Field, 0},
+ {"Section32.Link", Field, 0},
+ {"Section32.Name", Field, 0},
+ {"Section32.Off", Field, 0},
+ {"Section32.Size", Field, 0},
+ {"Section32.Type", Field, 0},
+ {"Section64", Type, 0},
+ {"Section64.Addr", Field, 0},
+ {"Section64.Addralign", Field, 0},
+ {"Section64.Entsize", Field, 0},
+ {"Section64.Flags", Field, 0},
+ {"Section64.Info", Field, 0},
+ {"Section64.Link", Field, 0},
+ {"Section64.Name", Field, 0},
+ {"Section64.Off", Field, 0},
+ {"Section64.Size", Field, 0},
+ {"Section64.Type", Field, 0},
+ {"SectionFlag", Type, 0},
+ {"SectionHeader", Type, 0},
+ {"SectionHeader.Addr", Field, 0},
+ {"SectionHeader.Addralign", Field, 0},
+ {"SectionHeader.Entsize", Field, 0},
+ {"SectionHeader.FileSize", Field, 6},
+ {"SectionHeader.Flags", Field, 0},
+ {"SectionHeader.Info", Field, 0},
+ {"SectionHeader.Link", Field, 0},
+ {"SectionHeader.Name", Field, 0},
+ {"SectionHeader.Offset", Field, 0},
+ {"SectionHeader.Size", Field, 0},
+ {"SectionHeader.Type", Field, 0},
+ {"SectionIndex", Type, 0},
+ {"SectionType", Type, 0},
+ {"Sym32", Type, 0},
+ {"Sym32.Info", Field, 0},
+ {"Sym32.Name", Field, 0},
+ {"Sym32.Other", Field, 0},
+ {"Sym32.Shndx", Field, 0},
+ {"Sym32.Size", Field, 0},
+ {"Sym32.Value", Field, 0},
+ {"Sym32Size", Const, 0},
+ {"Sym64", Type, 0},
+ {"Sym64.Info", Field, 0},
+ {"Sym64.Name", Field, 0},
+ {"Sym64.Other", Field, 0},
+ {"Sym64.Shndx", Field, 0},
+ {"Sym64.Size", Field, 0},
+ {"Sym64.Value", Field, 0},
+ {"Sym64Size", Const, 0},
+ {"SymBind", Type, 0},
+ {"SymType", Type, 0},
+ {"SymVis", Type, 0},
+ {"Symbol", Type, 0},
+ {"Symbol.Info", Field, 0},
+ {"Symbol.Library", Field, 13},
+ {"Symbol.Name", Field, 0},
+ {"Symbol.Other", Field, 0},
+ {"Symbol.Section", Field, 0},
+ {"Symbol.Size", Field, 0},
+ {"Symbol.Value", Field, 0},
+ {"Symbol.Version", Field, 13},
+ {"Type", Type, 0},
+ {"Version", Type, 0},
+ },
+ "debug/gosym": {
+ {"(*DecodingError).Error", Method, 0},
+ {"(*LineTable).LineToPC", Method, 0},
+ {"(*LineTable).PCToLine", Method, 0},
+ {"(*Sym).BaseName", Method, 0},
+ {"(*Sym).PackageName", Method, 0},
+ {"(*Sym).ReceiverName", Method, 0},
+ {"(*Sym).Static", Method, 0},
+ {"(*Table).LineToPC", Method, 0},
+ {"(*Table).LookupFunc", Method, 0},
+ {"(*Table).LookupSym", Method, 0},
+ {"(*Table).PCToFunc", Method, 0},
+ {"(*Table).PCToLine", Method, 0},
+ {"(*Table).SymByAddr", Method, 0},
+ {"(*UnknownLineError).Error", Method, 0},
+ {"(Func).BaseName", Method, 0},
+ {"(Func).PackageName", Method, 0},
+ {"(Func).ReceiverName", Method, 0},
+ {"(Func).Static", Method, 0},
+ {"(UnknownFileError).Error", Method, 0},
+ {"DecodingError", Type, 0},
+ {"Func", Type, 0},
+ {"Func.End", Field, 0},
+ {"Func.Entry", Field, 0},
+ {"Func.FrameSize", Field, 0},
+ {"Func.LineTable", Field, 0},
+ {"Func.Locals", Field, 0},
+ {"Func.Obj", Field, 0},
+ {"Func.Params", Field, 0},
+ {"Func.Sym", Field, 0},
+ {"LineTable", Type, 0},
+ {"LineTable.Data", Field, 0},
+ {"LineTable.Line", Field, 0},
+ {"LineTable.PC", Field, 0},
+ {"NewLineTable", Func, 0},
+ {"NewTable", Func, 0},
+ {"Obj", Type, 0},
+ {"Obj.Funcs", Field, 0},
+ {"Obj.Paths", Field, 0},
+ {"Sym", Type, 0},
+ {"Sym.Func", Field, 0},
+ {"Sym.GoType", Field, 0},
+ {"Sym.Name", Field, 0},
+ {"Sym.Type", Field, 0},
+ {"Sym.Value", Field, 0},
+ {"Table", Type, 0},
+ {"Table.Files", Field, 0},
+ {"Table.Funcs", Field, 0},
+ {"Table.Objs", Field, 0},
+ {"Table.Syms", Field, 0},
+ {"UnknownFileError", Type, 0},
+ {"UnknownLineError", Type, 0},
+ {"UnknownLineError.File", Field, 0},
+ {"UnknownLineError.Line", Field, 0},
+ },
+ "debug/macho": {
+ {"(*FatFile).Close", Method, 3},
+ {"(*File).Close", Method, 0},
+ {"(*File).DWARF", Method, 0},
+ {"(*File).ImportedLibraries", Method, 0},
+ {"(*File).ImportedSymbols", Method, 0},
+ {"(*File).Section", Method, 0},
+ {"(*File).Segment", Method, 0},
+ {"(*FormatError).Error", Method, 0},
+ {"(*Section).Data", Method, 0},
+ {"(*Section).Open", Method, 0},
+ {"(*Segment).Data", Method, 0},
+ {"(*Segment).Open", Method, 0},
+ {"(Cpu).GoString", Method, 0},
+ {"(Cpu).String", Method, 0},
+ {"(Dylib).Raw", Method, 0},
+ {"(Dysymtab).Raw", Method, 0},
+ {"(FatArch).Close", Method, 3},
+ {"(FatArch).DWARF", Method, 3},
+ {"(FatArch).ImportedLibraries", Method, 3},
+ {"(FatArch).ImportedSymbols", Method, 3},
+ {"(FatArch).Section", Method, 3},
+ {"(FatArch).Segment", Method, 3},
+ {"(LoadBytes).Raw", Method, 0},
+ {"(LoadCmd).GoString", Method, 0},
+ {"(LoadCmd).String", Method, 0},
+ {"(RelocTypeARM).GoString", Method, 10},
+ {"(RelocTypeARM).String", Method, 10},
+ {"(RelocTypeARM64).GoString", Method, 10},
+ {"(RelocTypeARM64).String", Method, 10},
+ {"(RelocTypeGeneric).GoString", Method, 10},
+ {"(RelocTypeGeneric).String", Method, 10},
+ {"(RelocTypeX86_64).GoString", Method, 10},
+ {"(RelocTypeX86_64).String", Method, 10},
+ {"(Rpath).Raw", Method, 10},
+ {"(Section).ReadAt", Method, 0},
+ {"(Segment).Raw", Method, 0},
+ {"(Segment).ReadAt", Method, 0},
+ {"(Symtab).Raw", Method, 0},
+ {"(Type).GoString", Method, 10},
+ {"(Type).String", Method, 10},
+ {"ARM64_RELOC_ADDEND", Const, 10},
+ {"ARM64_RELOC_BRANCH26", Const, 10},
+ {"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10},
+ {"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10},
+ {"ARM64_RELOC_PAGE21", Const, 10},
+ {"ARM64_RELOC_PAGEOFF12", Const, 10},
+ {"ARM64_RELOC_POINTER_TO_GOT", Const, 10},
+ {"ARM64_RELOC_SUBTRACTOR", Const, 10},
+ {"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10},
+ {"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10},
+ {"ARM64_RELOC_UNSIGNED", Const, 10},
+ {"ARM_RELOC_BR24", Const, 10},
+ {"ARM_RELOC_HALF", Const, 10},
+ {"ARM_RELOC_HALF_SECTDIFF", Const, 10},
+ {"ARM_RELOC_LOCAL_SECTDIFF", Const, 10},
+ {"ARM_RELOC_PAIR", Const, 10},
+ {"ARM_RELOC_PB_LA_PTR", Const, 10},
+ {"ARM_RELOC_SECTDIFF", Const, 10},
+ {"ARM_RELOC_VANILLA", Const, 10},
+ {"ARM_THUMB_32BIT_BRANCH", Const, 10},
+ {"ARM_THUMB_RELOC_BR22", Const, 10},
+ {"Cpu", Type, 0},
+ {"Cpu386", Const, 0},
+ {"CpuAmd64", Const, 0},
+ {"CpuArm", Const, 3},
+ {"CpuArm64", Const, 11},
+ {"CpuPpc", Const, 3},
+ {"CpuPpc64", Const, 3},
+ {"Dylib", Type, 0},
+ {"Dylib.CompatVersion", Field, 0},
+ {"Dylib.CurrentVersion", Field, 0},
+ {"Dylib.LoadBytes", Field, 0},
+ {"Dylib.Name", Field, 0},
+ {"Dylib.Time", Field, 0},
+ {"DylibCmd", Type, 0},
+ {"DylibCmd.Cmd", Field, 0},
+ {"DylibCmd.CompatVersion", Field, 0},
+ {"DylibCmd.CurrentVersion", Field, 0},
+ {"DylibCmd.Len", Field, 0},
+ {"DylibCmd.Name", Field, 0},
+ {"DylibCmd.Time", Field, 0},
+ {"Dysymtab", Type, 0},
+ {"Dysymtab.DysymtabCmd", Field, 0},
+ {"Dysymtab.IndirectSyms", Field, 0},
+ {"Dysymtab.LoadBytes", Field, 0},
+ {"DysymtabCmd", Type, 0},
+ {"DysymtabCmd.Cmd", Field, 0},
+ {"DysymtabCmd.Extrefsymoff", Field, 0},
+ {"DysymtabCmd.Extreloff", Field, 0},
+ {"DysymtabCmd.Iextdefsym", Field, 0},
+ {"DysymtabCmd.Ilocalsym", Field, 0},
+ {"DysymtabCmd.Indirectsymoff", Field, 0},
+ {"DysymtabCmd.Iundefsym", Field, 0},
+ {"DysymtabCmd.Len", Field, 0},
+ {"DysymtabCmd.Locreloff", Field, 0},
+ {"DysymtabCmd.Modtaboff", Field, 0},
+ {"DysymtabCmd.Nextdefsym", Field, 0},
+ {"DysymtabCmd.Nextrefsyms", Field, 0},
+ {"DysymtabCmd.Nextrel", Field, 0},
+ {"DysymtabCmd.Nindirectsyms", Field, 0},
+ {"DysymtabCmd.Nlocalsym", Field, 0},
+ {"DysymtabCmd.Nlocrel", Field, 0},
+ {"DysymtabCmd.Nmodtab", Field, 0},
+ {"DysymtabCmd.Ntoc", Field, 0},
+ {"DysymtabCmd.Nundefsym", Field, 0},
+ {"DysymtabCmd.Tocoffset", Field, 0},
+ {"ErrNotFat", Var, 3},
+ {"FatArch", Type, 3},
+ {"FatArch.FatArchHeader", Field, 3},
+ {"FatArch.File", Field, 3},
+ {"FatArchHeader", Type, 3},
+ {"FatArchHeader.Align", Field, 3},
+ {"FatArchHeader.Cpu", Field, 3},
+ {"FatArchHeader.Offset", Field, 3},
+ {"FatArchHeader.Size", Field, 3},
+ {"FatArchHeader.SubCpu", Field, 3},
+ {"FatFile", Type, 3},
+ {"FatFile.Arches", Field, 3},
+ {"FatFile.Magic", Field, 3},
+ {"File", Type, 0},
+ {"File.ByteOrder", Field, 0},
+ {"File.Dysymtab", Field, 0},
+ {"File.FileHeader", Field, 0},
+ {"File.Loads", Field, 0},
+ {"File.Sections", Field, 0},
+ {"File.Symtab", Field, 0},
+ {"FileHeader", Type, 0},
+ {"FileHeader.Cmdsz", Field, 0},
+ {"FileHeader.Cpu", Field, 0},
+ {"FileHeader.Flags", Field, 0},
+ {"FileHeader.Magic", Field, 0},
+ {"FileHeader.Ncmd", Field, 0},
+ {"FileHeader.SubCpu", Field, 0},
+ {"FileHeader.Type", Field, 0},
+ {"FlagAllModsBound", Const, 10},
+ {"FlagAllowStackExecution", Const, 10},
+ {"FlagAppExtensionSafe", Const, 10},
+ {"FlagBindAtLoad", Const, 10},
+ {"FlagBindsToWeak", Const, 10},
+ {"FlagCanonical", Const, 10},
+ {"FlagDeadStrippableDylib", Const, 10},
+ {"FlagDyldLink", Const, 10},
+ {"FlagForceFlat", Const, 10},
+ {"FlagHasTLVDescriptors", Const, 10},
+ {"FlagIncrLink", Const, 10},
+ {"FlagLazyInit", Const, 10},
+ {"FlagNoFixPrebinding", Const, 10},
+ {"FlagNoHeapExecution", Const, 10},
+ {"FlagNoMultiDefs", Const, 10},
+ {"FlagNoReexportedDylibs", Const, 10},
+ {"FlagNoUndefs", Const, 10},
+ {"FlagPIE", Const, 10},
+ {"FlagPrebindable", Const, 10},
+ {"FlagPrebound", Const, 10},
+ {"FlagRootSafe", Const, 10},
+ {"FlagSetuidSafe", Const, 10},
+ {"FlagSplitSegs", Const, 10},
+ {"FlagSubsectionsViaSymbols", Const, 10},
+ {"FlagTwoLevel", Const, 10},
+ {"FlagWeakDefines", Const, 10},
+ {"FormatError", Type, 0},
+ {"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10},
+ {"GENERIC_RELOC_PAIR", Const, 10},
+ {"GENERIC_RELOC_PB_LA_PTR", Const, 10},
+ {"GENERIC_RELOC_SECTDIFF", Const, 10},
+ {"GENERIC_RELOC_TLV", Const, 10},
+ {"GENERIC_RELOC_VANILLA", Const, 10},
+ {"Load", Type, 0},
+ {"LoadBytes", Type, 0},
+ {"LoadCmd", Type, 0},
+ {"LoadCmdDylib", Const, 0},
+ {"LoadCmdDylinker", Const, 0},
+ {"LoadCmdDysymtab", Const, 0},
+ {"LoadCmdRpath", Const, 10},
+ {"LoadCmdSegment", Const, 0},
+ {"LoadCmdSegment64", Const, 0},
+ {"LoadCmdSymtab", Const, 0},
+ {"LoadCmdThread", Const, 0},
+ {"LoadCmdUnixThread", Const, 0},
+ {"Magic32", Const, 0},
+ {"Magic64", Const, 0},
+ {"MagicFat", Const, 3},
+ {"NewFatFile", Func, 3},
+ {"NewFile", Func, 0},
+ {"Nlist32", Type, 0},
+ {"Nlist32.Desc", Field, 0},
+ {"Nlist32.Name", Field, 0},
+ {"Nlist32.Sect", Field, 0},
+ {"Nlist32.Type", Field, 0},
+ {"Nlist32.Value", Field, 0},
+ {"Nlist64", Type, 0},
+ {"Nlist64.Desc", Field, 0},
+ {"Nlist64.Name", Field, 0},
+ {"Nlist64.Sect", Field, 0},
+ {"Nlist64.Type", Field, 0},
+ {"Nlist64.Value", Field, 0},
+ {"Open", Func, 0},
+ {"OpenFat", Func, 3},
+ {"Regs386", Type, 0},
+ {"Regs386.AX", Field, 0},
+ {"Regs386.BP", Field, 0},
+ {"Regs386.BX", Field, 0},
+ {"Regs386.CS", Field, 0},
+ {"Regs386.CX", Field, 0},
+ {"Regs386.DI", Field, 0},
+ {"Regs386.DS", Field, 0},
+ {"Regs386.DX", Field, 0},
+ {"Regs386.ES", Field, 0},
+ {"Regs386.FLAGS", Field, 0},
+ {"Regs386.FS", Field, 0},
+ {"Regs386.GS", Field, 0},
+ {"Regs386.IP", Field, 0},
+ {"Regs386.SI", Field, 0},
+ {"Regs386.SP", Field, 0},
+ {"Regs386.SS", Field, 0},
+ {"RegsAMD64", Type, 0},
+ {"RegsAMD64.AX", Field, 0},
+ {"RegsAMD64.BP", Field, 0},
+ {"RegsAMD64.BX", Field, 0},
+ {"RegsAMD64.CS", Field, 0},
+ {"RegsAMD64.CX", Field, 0},
+ {"RegsAMD64.DI", Field, 0},
+ {"RegsAMD64.DX", Field, 0},
+ {"RegsAMD64.FLAGS", Field, 0},
+ {"RegsAMD64.FS", Field, 0},
+ {"RegsAMD64.GS", Field, 0},
+ {"RegsAMD64.IP", Field, 0},
+ {"RegsAMD64.R10", Field, 0},
+ {"RegsAMD64.R11", Field, 0},
+ {"RegsAMD64.R12", Field, 0},
+ {"RegsAMD64.R13", Field, 0},
+ {"RegsAMD64.R14", Field, 0},
+ {"RegsAMD64.R15", Field, 0},
+ {"RegsAMD64.R8", Field, 0},
+ {"RegsAMD64.R9", Field, 0},
+ {"RegsAMD64.SI", Field, 0},
+ {"RegsAMD64.SP", Field, 0},
+ {"Reloc", Type, 10},
+ {"Reloc.Addr", Field, 10},
+ {"Reloc.Extern", Field, 10},
+ {"Reloc.Len", Field, 10},
+ {"Reloc.Pcrel", Field, 10},
+ {"Reloc.Scattered", Field, 10},
+ {"Reloc.Type", Field, 10},
+ {"Reloc.Value", Field, 10},
+ {"RelocTypeARM", Type, 10},
+ {"RelocTypeARM64", Type, 10},
+ {"RelocTypeGeneric", Type, 10},
+ {"RelocTypeX86_64", Type, 10},
+ {"Rpath", Type, 10},
+ {"Rpath.LoadBytes", Field, 10},
+ {"Rpath.Path", Field, 10},
+ {"RpathCmd", Type, 10},
+ {"RpathCmd.Cmd", Field, 10},
+ {"RpathCmd.Len", Field, 10},
+ {"RpathCmd.Path", Field, 10},
+ {"Section", Type, 0},
+ {"Section.ReaderAt", Field, 0},
+ {"Section.Relocs", Field, 10},
+ {"Section.SectionHeader", Field, 0},
+ {"Section32", Type, 0},
+ {"Section32.Addr", Field, 0},
+ {"Section32.Align", Field, 0},
+ {"Section32.Flags", Field, 0},
+ {"Section32.Name", Field, 0},
+ {"Section32.Nreloc", Field, 0},
+ {"Section32.Offset", Field, 0},
+ {"Section32.Reloff", Field, 0},
+ {"Section32.Reserve1", Field, 0},
+ {"Section32.Reserve2", Field, 0},
+ {"Section32.Seg", Field, 0},
+ {"Section32.Size", Field, 0},
+ {"Section64", Type, 0},
+ {"Section64.Addr", Field, 0},
+ {"Section64.Align", Field, 0},
+ {"Section64.Flags", Field, 0},
+ {"Section64.Name", Field, 0},
+ {"Section64.Nreloc", Field, 0},
+ {"Section64.Offset", Field, 0},
+ {"Section64.Reloff", Field, 0},
+ {"Section64.Reserve1", Field, 0},
+ {"Section64.Reserve2", Field, 0},
+ {"Section64.Reserve3", Field, 0},
+ {"Section64.Seg", Field, 0},
+ {"Section64.Size", Field, 0},
+ {"SectionHeader", Type, 0},
+ {"SectionHeader.Addr", Field, 0},
+ {"SectionHeader.Align", Field, 0},
+ {"SectionHeader.Flags", Field, 0},
+ {"SectionHeader.Name", Field, 0},
+ {"SectionHeader.Nreloc", Field, 0},
+ {"SectionHeader.Offset", Field, 0},
+ {"SectionHeader.Reloff", Field, 0},
+ {"SectionHeader.Seg", Field, 0},
+ {"SectionHeader.Size", Field, 0},
+ {"Segment", Type, 0},
+ {"Segment.LoadBytes", Field, 0},
+ {"Segment.ReaderAt", Field, 0},
+ {"Segment.SegmentHeader", Field, 0},
+ {"Segment32", Type, 0},
+ {"Segment32.Addr", Field, 0},
+ {"Segment32.Cmd", Field, 0},
+ {"Segment32.Filesz", Field, 0},
+ {"Segment32.Flag", Field, 0},
+ {"Segment32.Len", Field, 0},
+ {"Segment32.Maxprot", Field, 0},
+ {"Segment32.Memsz", Field, 0},
+ {"Segment32.Name", Field, 0},
+ {"Segment32.Nsect", Field, 0},
+ {"Segment32.Offset", Field, 0},
+ {"Segment32.Prot", Field, 0},
+ {"Segment64", Type, 0},
+ {"Segment64.Addr", Field, 0},
+ {"Segment64.Cmd", Field, 0},
+ {"Segment64.Filesz", Field, 0},
+ {"Segment64.Flag", Field, 0},
+ {"Segment64.Len", Field, 0},
+ {"Segment64.Maxprot", Field, 0},
+ {"Segment64.Memsz", Field, 0},
+ {"Segment64.Name", Field, 0},
+ {"Segment64.Nsect", Field, 0},
+ {"Segment64.Offset", Field, 0},
+ {"Segment64.Prot", Field, 0},
+ {"SegmentHeader", Type, 0},
+ {"SegmentHeader.Addr", Field, 0},
+ {"SegmentHeader.Cmd", Field, 0},
+ {"SegmentHeader.Filesz", Field, 0},
+ {"SegmentHeader.Flag", Field, 0},
+ {"SegmentHeader.Len", Field, 0},
+ {"SegmentHeader.Maxprot", Field, 0},
+ {"SegmentHeader.Memsz", Field, 0},
+ {"SegmentHeader.Name", Field, 0},
+ {"SegmentHeader.Nsect", Field, 0},
+ {"SegmentHeader.Offset", Field, 0},
+ {"SegmentHeader.Prot", Field, 0},
+ {"Symbol", Type, 0},
+ {"Symbol.Desc", Field, 0},
+ {"Symbol.Name", Field, 0},
+ {"Symbol.Sect", Field, 0},
+ {"Symbol.Type", Field, 0},
+ {"Symbol.Value", Field, 0},
+ {"Symtab", Type, 0},
+ {"Symtab.LoadBytes", Field, 0},
+ {"Symtab.Syms", Field, 0},
+ {"Symtab.SymtabCmd", Field, 0},
+ {"SymtabCmd", Type, 0},
+ {"SymtabCmd.Cmd", Field, 0},
+ {"SymtabCmd.Len", Field, 0},
+ {"SymtabCmd.Nsyms", Field, 0},
+ {"SymtabCmd.Stroff", Field, 0},
+ {"SymtabCmd.Strsize", Field, 0},
+ {"SymtabCmd.Symoff", Field, 0},
+ {"Thread", Type, 0},
+ {"Thread.Cmd", Field, 0},
+ {"Thread.Data", Field, 0},
+ {"Thread.Len", Field, 0},
+ {"Thread.Type", Field, 0},
+ {"Type", Type, 0},
+ {"TypeBundle", Const, 3},
+ {"TypeDylib", Const, 3},
+ {"TypeExec", Const, 0},
+ {"TypeObj", Const, 0},
+ {"X86_64_RELOC_BRANCH", Const, 10},
+ {"X86_64_RELOC_GOT", Const, 10},
+ {"X86_64_RELOC_GOT_LOAD", Const, 10},
+ {"X86_64_RELOC_SIGNED", Const, 10},
+ {"X86_64_RELOC_SIGNED_1", Const, 10},
+ {"X86_64_RELOC_SIGNED_2", Const, 10},
+ {"X86_64_RELOC_SIGNED_4", Const, 10},
+ {"X86_64_RELOC_SUBTRACTOR", Const, 10},
+ {"X86_64_RELOC_TLV", Const, 10},
+ {"X86_64_RELOC_UNSIGNED", Const, 10},
+ },
+ "debug/pe": {
+ {"(*COFFSymbol).FullName", Method, 8},
+ {"(*File).COFFSymbolReadSectionDefAux", Method, 19},
+ {"(*File).Close", Method, 0},
+ {"(*File).DWARF", Method, 0},
+ {"(*File).ImportedLibraries", Method, 0},
+ {"(*File).ImportedSymbols", Method, 0},
+ {"(*File).Section", Method, 0},
+ {"(*FormatError).Error", Method, 0},
+ {"(*Section).Data", Method, 0},
+ {"(*Section).Open", Method, 0},
+ {"(Section).ReadAt", Method, 0},
+ {"(StringTable).String", Method, 8},
+ {"COFFSymbol", Type, 1},
+ {"COFFSymbol.Name", Field, 1},
+ {"COFFSymbol.NumberOfAuxSymbols", Field, 1},
+ {"COFFSymbol.SectionNumber", Field, 1},
+ {"COFFSymbol.StorageClass", Field, 1},
+ {"COFFSymbol.Type", Field, 1},
+ {"COFFSymbol.Value", Field, 1},
+ {"COFFSymbolAuxFormat5", Type, 19},
+ {"COFFSymbolAuxFormat5.Checksum", Field, 19},
+ {"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19},
+ {"COFFSymbolAuxFormat5.NumRelocs", Field, 19},
+ {"COFFSymbolAuxFormat5.SecNum", Field, 19},
+ {"COFFSymbolAuxFormat5.Selection", Field, 19},
+ {"COFFSymbolAuxFormat5.Size", Field, 19},
+ {"COFFSymbolSize", Const, 1},
+ {"DataDirectory", Type, 3},
+ {"DataDirectory.Size", Field, 3},
+ {"DataDirectory.VirtualAddress", Field, 3},
+ {"File", Type, 0},
+ {"File.COFFSymbols", Field, 8},
+ {"File.FileHeader", Field, 0},
+ {"File.OptionalHeader", Field, 3},
+ {"File.Sections", Field, 0},
+ {"File.StringTable", Field, 8},
+ {"File.Symbols", Field, 1},
+ {"FileHeader", Type, 0},
+ {"FileHeader.Characteristics", Field, 0},
+ {"FileHeader.Machine", Field, 0},
+ {"FileHeader.NumberOfSections", Field, 0},
+ {"FileHeader.NumberOfSymbols", Field, 0},
+ {"FileHeader.PointerToSymbolTable", Field, 0},
+ {"FileHeader.SizeOfOptionalHeader", Field, 0},
+ {"FileHeader.TimeDateStamp", Field, 0},
+ {"FormatError", Type, 0},
+ {"IMAGE_COMDAT_SELECT_ANY", Const, 19},
+ {"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19},
+ {"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19},
+ {"IMAGE_COMDAT_SELECT_LARGEST", Const, 19},
+ {"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19},
+ {"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19},
+ {"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11},
+ {"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11},
+ {"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15},
+ {"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15},
+ {"IMAGE_FILE_32BIT_MACHINE", Const, 15},
+ {"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15},
+ {"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15},
+ {"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15},
+ {"IMAGE_FILE_DEBUG_STRIPPED", Const, 15},
+ {"IMAGE_FILE_DLL", Const, 15},
+ {"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15},
+ {"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15},
+ {"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15},
+ {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15},
+ {"IMAGE_FILE_MACHINE_AM33", Const, 0},
+ {"IMAGE_FILE_MACHINE_AMD64", Const, 0},
+ {"IMAGE_FILE_MACHINE_ARM", Const, 0},
+ {"IMAGE_FILE_MACHINE_ARM64", Const, 11},
+ {"IMAGE_FILE_MACHINE_ARMNT", Const, 12},
+ {"IMAGE_FILE_MACHINE_EBC", Const, 0},
+ {"IMAGE_FILE_MACHINE_I386", Const, 0},
+ {"IMAGE_FILE_MACHINE_IA64", Const, 0},
+ {"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19},
+ {"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19},
+ {"IMAGE_FILE_MACHINE_M32R", Const, 0},
+ {"IMAGE_FILE_MACHINE_MIPS16", Const, 0},
+ {"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0},
+ {"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0},
+ {"IMAGE_FILE_MACHINE_POWERPC", Const, 0},
+ {"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0},
+ {"IMAGE_FILE_MACHINE_R4000", Const, 0},
+ {"IMAGE_FILE_MACHINE_RISCV128", Const, 20},
+ {"IMAGE_FILE_MACHINE_RISCV32", Const, 20},
+ {"IMAGE_FILE_MACHINE_RISCV64", Const, 20},
+ {"IMAGE_FILE_MACHINE_SH3", Const, 0},
+ {"IMAGE_FILE_MACHINE_SH3DSP", Const, 0},
+ {"IMAGE_FILE_MACHINE_SH4", Const, 0},
+ {"IMAGE_FILE_MACHINE_SH5", Const, 0},
+ {"IMAGE_FILE_MACHINE_THUMB", Const, 0},
+ {"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0},
+ {"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0},
+ {"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15},
+ {"IMAGE_FILE_RELOCS_STRIPPED", Const, 15},
+ {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15},
+ {"IMAGE_FILE_SYSTEM", Const, 15},
+ {"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15},
+ {"IMAGE_SCN_CNT_CODE", Const, 19},
+ {"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19},
+ {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19},
+ {"IMAGE_SCN_LNK_COMDAT", Const, 19},
+ {"IMAGE_SCN_MEM_DISCARDABLE", Const, 19},
+ {"IMAGE_SCN_MEM_EXECUTE", Const, 19},
+ {"IMAGE_SCN_MEM_READ", Const, 19},
+ {"IMAGE_SCN_MEM_WRITE", Const, 19},
+ {"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15},
+ {"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15},
+ {"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15},
+ {"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15},
+ {"IMAGE_SUBSYSTEM_NATIVE", Const, 15},
+ {"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15},
+ {"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15},
+ {"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15},
+ {"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15},
+ {"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15},
+ {"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15},
+ {"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15},
+ {"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15},
+ {"IMAGE_SUBSYSTEM_XBOX", Const, 15},
+ {"ImportDirectory", Type, 0},
+ {"ImportDirectory.FirstThunk", Field, 0},
+ {"ImportDirectory.ForwarderChain", Field, 0},
+ {"ImportDirectory.Name", Field, 0},
+ {"ImportDirectory.OriginalFirstThunk", Field, 0},
+ {"ImportDirectory.TimeDateStamp", Field, 0},
+ {"NewFile", Func, 0},
+ {"Open", Func, 0},
+ {"OptionalHeader32", Type, 3},
+ {"OptionalHeader32.AddressOfEntryPoint", Field, 3},
+ {"OptionalHeader32.BaseOfCode", Field, 3},
+ {"OptionalHeader32.BaseOfData", Field, 3},
+ {"OptionalHeader32.CheckSum", Field, 3},
+ {"OptionalHeader32.DataDirectory", Field, 3},
+ {"OptionalHeader32.DllCharacteristics", Field, 3},
+ {"OptionalHeader32.FileAlignment", Field, 3},
+ {"OptionalHeader32.ImageBase", Field, 3},
+ {"OptionalHeader32.LoaderFlags", Field, 3},
+ {"OptionalHeader32.Magic", Field, 3},
+ {"OptionalHeader32.MajorImageVersion", Field, 3},
+ {"OptionalHeader32.MajorLinkerVersion", Field, 3},
+ {"OptionalHeader32.MajorOperatingSystemVersion", Field, 3},
+ {"OptionalHeader32.MajorSubsystemVersion", Field, 3},
+ {"OptionalHeader32.MinorImageVersion", Field, 3},
+ {"OptionalHeader32.MinorLinkerVersion", Field, 3},
+ {"OptionalHeader32.MinorOperatingSystemVersion", Field, 3},
+ {"OptionalHeader32.MinorSubsystemVersion", Field, 3},
+ {"OptionalHeader32.NumberOfRvaAndSizes", Field, 3},
+ {"OptionalHeader32.SectionAlignment", Field, 3},
+ {"OptionalHeader32.SizeOfCode", Field, 3},
+ {"OptionalHeader32.SizeOfHeaders", Field, 3},
+ {"OptionalHeader32.SizeOfHeapCommit", Field, 3},
+ {"OptionalHeader32.SizeOfHeapReserve", Field, 3},
+ {"OptionalHeader32.SizeOfImage", Field, 3},
+ {"OptionalHeader32.SizeOfInitializedData", Field, 3},
+ {"OptionalHeader32.SizeOfStackCommit", Field, 3},
+ {"OptionalHeader32.SizeOfStackReserve", Field, 3},
+ {"OptionalHeader32.SizeOfUninitializedData", Field, 3},
+ {"OptionalHeader32.Subsystem", Field, 3},
+ {"OptionalHeader32.Win32VersionValue", Field, 3},
+ {"OptionalHeader64", Type, 3},
+ {"OptionalHeader64.AddressOfEntryPoint", Field, 3},
+ {"OptionalHeader64.BaseOfCode", Field, 3},
+ {"OptionalHeader64.CheckSum", Field, 3},
+ {"OptionalHeader64.DataDirectory", Field, 3},
+ {"OptionalHeader64.DllCharacteristics", Field, 3},
+ {"OptionalHeader64.FileAlignment", Field, 3},
+ {"OptionalHeader64.ImageBase", Field, 3},
+ {"OptionalHeader64.LoaderFlags", Field, 3},
+ {"OptionalHeader64.Magic", Field, 3},
+ {"OptionalHeader64.MajorImageVersion", Field, 3},
+ {"OptionalHeader64.MajorLinkerVersion", Field, 3},
+ {"OptionalHeader64.MajorOperatingSystemVersion", Field, 3},
+ {"OptionalHeader64.MajorSubsystemVersion", Field, 3},
+ {"OptionalHeader64.MinorImageVersion", Field, 3},
+ {"OptionalHeader64.MinorLinkerVersion", Field, 3},
+ {"OptionalHeader64.MinorOperatingSystemVersion", Field, 3},
+ {"OptionalHeader64.MinorSubsystemVersion", Field, 3},
+ {"OptionalHeader64.NumberOfRvaAndSizes", Field, 3},
+ {"OptionalHeader64.SectionAlignment", Field, 3},
+ {"OptionalHeader64.SizeOfCode", Field, 3},
+ {"OptionalHeader64.SizeOfHeaders", Field, 3},
+ {"OptionalHeader64.SizeOfHeapCommit", Field, 3},
+ {"OptionalHeader64.SizeOfHeapReserve", Field, 3},
+ {"OptionalHeader64.SizeOfImage", Field, 3},
+ {"OptionalHeader64.SizeOfInitializedData", Field, 3},
+ {"OptionalHeader64.SizeOfStackCommit", Field, 3},
+ {"OptionalHeader64.SizeOfStackReserve", Field, 3},
+ {"OptionalHeader64.SizeOfUninitializedData", Field, 3},
+ {"OptionalHeader64.Subsystem", Field, 3},
+ {"OptionalHeader64.Win32VersionValue", Field, 3},
+ {"Reloc", Type, 8},
+ {"Reloc.SymbolTableIndex", Field, 8},
+ {"Reloc.Type", Field, 8},
+ {"Reloc.VirtualAddress", Field, 8},
+ {"Section", Type, 0},
+ {"Section.ReaderAt", Field, 0},
+ {"Section.Relocs", Field, 8},
+ {"Section.SectionHeader", Field, 0},
+ {"SectionHeader", Type, 0},
+ {"SectionHeader.Characteristics", Field, 0},
+ {"SectionHeader.Name", Field, 0},
+ {"SectionHeader.NumberOfLineNumbers", Field, 0},
+ {"SectionHeader.NumberOfRelocations", Field, 0},
+ {"SectionHeader.Offset", Field, 0},
+ {"SectionHeader.PointerToLineNumbers", Field, 0},
+ {"SectionHeader.PointerToRelocations", Field, 0},
+ {"SectionHeader.Size", Field, 0},
+ {"SectionHeader.VirtualAddress", Field, 0},
+ {"SectionHeader.VirtualSize", Field, 0},
+ {"SectionHeader32", Type, 0},
+ {"SectionHeader32.Characteristics", Field, 0},
+ {"SectionHeader32.Name", Field, 0},
+ {"SectionHeader32.NumberOfLineNumbers", Field, 0},
+ {"SectionHeader32.NumberOfRelocations", Field, 0},
+ {"SectionHeader32.PointerToLineNumbers", Field, 0},
+ {"SectionHeader32.PointerToRawData", Field, 0},
+ {"SectionHeader32.PointerToRelocations", Field, 0},
+ {"SectionHeader32.SizeOfRawData", Field, 0},
+ {"SectionHeader32.VirtualAddress", Field, 0},
+ {"SectionHeader32.VirtualSize", Field, 0},
+ {"StringTable", Type, 8},
+ {"Symbol", Type, 1},
+ {"Symbol.Name", Field, 1},
+ {"Symbol.SectionNumber", Field, 1},
+ {"Symbol.StorageClass", Field, 1},
+ {"Symbol.Type", Field, 1},
+ {"Symbol.Value", Field, 1},
+ },
+ "debug/plan9obj": {
+ {"(*File).Close", Method, 3},
+ {"(*File).Section", Method, 3},
+ {"(*File).Symbols", Method, 3},
+ {"(*Section).Data", Method, 3},
+ {"(*Section).Open", Method, 3},
+ {"(Section).ReadAt", Method, 3},
+ {"ErrNoSymbols", Var, 18},
+ {"File", Type, 3},
+ {"File.FileHeader", Field, 3},
+ {"File.Sections", Field, 3},
+ {"FileHeader", Type, 3},
+ {"FileHeader.Bss", Field, 3},
+ {"FileHeader.Entry", Field, 3},
+ {"FileHeader.HdrSize", Field, 4},
+ {"FileHeader.LoadAddress", Field, 4},
+ {"FileHeader.Magic", Field, 3},
+ {"FileHeader.PtrSize", Field, 3},
+ {"Magic386", Const, 3},
+ {"Magic64", Const, 3},
+ {"MagicAMD64", Const, 3},
+ {"MagicARM", Const, 3},
+ {"NewFile", Func, 3},
+ {"Open", Func, 3},
+ {"Section", Type, 3},
+ {"Section.ReaderAt", Field, 3},
+ {"Section.SectionHeader", Field, 3},
+ {"SectionHeader", Type, 3},
+ {"SectionHeader.Name", Field, 3},
+ {"SectionHeader.Offset", Field, 3},
+ {"SectionHeader.Size", Field, 3},
+ {"Sym", Type, 3},
+ {"Sym.Name", Field, 3},
+ {"Sym.Type", Field, 3},
+ {"Sym.Value", Field, 3},
+ },
+ "embed": {
+ {"(FS).Open", Method, 16},
+ {"(FS).ReadDir", Method, 16},
+ {"(FS).ReadFile", Method, 16},
+ {"FS", Type, 16},
+ },
+ "encoding": {
+ {"BinaryMarshaler", Type, 2},
+ {"BinaryUnmarshaler", Type, 2},
+ {"TextMarshaler", Type, 2},
+ {"TextUnmarshaler", Type, 2},
+ },
+ "encoding/ascii85": {
+ {"(CorruptInputError).Error", Method, 0},
+ {"CorruptInputError", Type, 0},
+ {"Decode", Func, 0},
+ {"Encode", Func, 0},
+ {"MaxEncodedLen", Func, 0},
+ {"NewDecoder", Func, 0},
+ {"NewEncoder", Func, 0},
+ },
+ "encoding/asn1": {
+ {"(BitString).At", Method, 0},
+ {"(BitString).RightAlign", Method, 0},
+ {"(ObjectIdentifier).Equal", Method, 0},
+ {"(ObjectIdentifier).String", Method, 3},
+ {"(StructuralError).Error", Method, 0},
+ {"(SyntaxError).Error", Method, 0},
+ {"BitString", Type, 0},
+ {"BitString.BitLength", Field, 0},
+ {"BitString.Bytes", Field, 0},
+ {"ClassApplication", Const, 6},
+ {"ClassContextSpecific", Const, 6},
+ {"ClassPrivate", Const, 6},
+ {"ClassUniversal", Const, 6},
+ {"Enumerated", Type, 0},
+ {"Flag", Type, 0},
+ {"Marshal", Func, 0},
+ {"MarshalWithParams", Func, 10},
+ {"NullBytes", Var, 9},
+ {"NullRawValue", Var, 9},
+ {"ObjectIdentifier", Type, 0},
+ {"RawContent", Type, 0},
+ {"RawValue", Type, 0},
+ {"RawValue.Bytes", Field, 0},
+ {"RawValue.Class", Field, 0},
+ {"RawValue.FullBytes", Field, 0},
+ {"RawValue.IsCompound", Field, 0},
+ {"RawValue.Tag", Field, 0},
+ {"StructuralError", Type, 0},
+ {"StructuralError.Msg", Field, 0},
+ {"SyntaxError", Type, 0},
+ {"SyntaxError.Msg", Field, 0},
+ {"TagBMPString", Const, 14},
+ {"TagBitString", Const, 6},
+ {"TagBoolean", Const, 6},
+ {"TagEnum", Const, 6},
+ {"TagGeneralString", Const, 6},
+ {"TagGeneralizedTime", Const, 6},
+ {"TagIA5String", Const, 6},
+ {"TagInteger", Const, 6},
+ {"TagNull", Const, 9},
+ {"TagNumericString", Const, 10},
+ {"TagOID", Const, 6},
+ {"TagOctetString", Const, 6},
+ {"TagPrintableString", Const, 6},
+ {"TagSequence", Const, 6},
+ {"TagSet", Const, 6},
+ {"TagT61String", Const, 6},
+ {"TagUTCTime", Const, 6},
+ {"TagUTF8String", Const, 6},
+ {"Unmarshal", Func, 0},
+ {"UnmarshalWithParams", Func, 0},
+ },
+ "encoding/base32": {
+ {"(*Encoding).AppendDecode", Method, 22},
+ {"(*Encoding).AppendEncode", Method, 22},
+ {"(*Encoding).Decode", Method, 0},
+ {"(*Encoding).DecodeString", Method, 0},
+ {"(*Encoding).DecodedLen", Method, 0},
+ {"(*Encoding).Encode", Method, 0},
+ {"(*Encoding).EncodeToString", Method, 0},
+ {"(*Encoding).EncodedLen", Method, 0},
+ {"(CorruptInputError).Error", Method, 0},
+ {"(Encoding).WithPadding", Method, 9},
+ {"CorruptInputError", Type, 0},
+ {"Encoding", Type, 0},
+ {"HexEncoding", Var, 0},
+ {"NewDecoder", Func, 0},
+ {"NewEncoder", Func, 0},
+ {"NewEncoding", Func, 0},
+ {"NoPadding", Const, 9},
+ {"StdEncoding", Var, 0},
+ {"StdPadding", Const, 9},
+ },
+ "encoding/base64": {
+ {"(*Encoding).AppendDecode", Method, 22},
+ {"(*Encoding).AppendEncode", Method, 22},
+ {"(*Encoding).Decode", Method, 0},
+ {"(*Encoding).DecodeString", Method, 0},
+ {"(*Encoding).DecodedLen", Method, 0},
+ {"(*Encoding).Encode", Method, 0},
+ {"(*Encoding).EncodeToString", Method, 0},
+ {"(*Encoding).EncodedLen", Method, 0},
+ {"(CorruptInputError).Error", Method, 0},
+ {"(Encoding).Strict", Method, 8},
+ {"(Encoding).WithPadding", Method, 5},
+ {"CorruptInputError", Type, 0},
+ {"Encoding", Type, 0},
+ {"NewDecoder", Func, 0},
+ {"NewEncoder", Func, 0},
+ {"NewEncoding", Func, 0},
+ {"NoPadding", Const, 5},
+ {"RawStdEncoding", Var, 5},
+ {"RawURLEncoding", Var, 5},
+ {"StdEncoding", Var, 0},
+ {"StdPadding", Const, 5},
+ {"URLEncoding", Var, 0},
+ },
+ "encoding/binary": {
+ {"AppendByteOrder", Type, 19},
+ {"AppendUvarint", Func, 19},
+ {"AppendVarint", Func, 19},
+ {"BigEndian", Var, 0},
+ {"ByteOrder", Type, 0},
+ {"LittleEndian", Var, 0},
+ {"MaxVarintLen16", Const, 0},
+ {"MaxVarintLen32", Const, 0},
+ {"MaxVarintLen64", Const, 0},
+ {"NativeEndian", Var, 21},
+ {"PutUvarint", Func, 0},
+ {"PutVarint", Func, 0},
+ {"Read", Func, 0},
+ {"ReadUvarint", Func, 0},
+ {"ReadVarint", Func, 0},
+ {"Size", Func, 0},
+ {"Uvarint", Func, 0},
+ {"Varint", Func, 0},
+ {"Write", Func, 0},
+ },
+ "encoding/csv": {
+ {"(*ParseError).Error", Method, 0},
+ {"(*ParseError).Unwrap", Method, 13},
+ {"(*Reader).FieldPos", Method, 17},
+ {"(*Reader).InputOffset", Method, 19},
+ {"(*Reader).Read", Method, 0},
+ {"(*Reader).ReadAll", Method, 0},
+ {"(*Writer).Error", Method, 1},
+ {"(*Writer).Flush", Method, 0},
+ {"(*Writer).Write", Method, 0},
+ {"(*Writer).WriteAll", Method, 0},
+ {"ErrBareQuote", Var, 0},
+ {"ErrFieldCount", Var, 0},
+ {"ErrQuote", Var, 0},
+ {"ErrTrailingComma", Var, 0},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"ParseError", Type, 0},
+ {"ParseError.Column", Field, 0},
+ {"ParseError.Err", Field, 0},
+ {"ParseError.Line", Field, 0},
+ {"ParseError.StartLine", Field, 10},
+ {"Reader", Type, 0},
+ {"Reader.Comma", Field, 0},
+ {"Reader.Comment", Field, 0},
+ {"Reader.FieldsPerRecord", Field, 0},
+ {"Reader.LazyQuotes", Field, 0},
+ {"Reader.ReuseRecord", Field, 9},
+ {"Reader.TrailingComma", Field, 0},
+ {"Reader.TrimLeadingSpace", Field, 0},
+ {"Writer", Type, 0},
+ {"Writer.Comma", Field, 0},
+ {"Writer.UseCRLF", Field, 0},
+ },
+ "encoding/gob": {
+ {"(*Decoder).Decode", Method, 0},
+ {"(*Decoder).DecodeValue", Method, 0},
+ {"(*Encoder).Encode", Method, 0},
+ {"(*Encoder).EncodeValue", Method, 0},
+ {"CommonType", Type, 0},
+ {"CommonType.Id", Field, 0},
+ {"CommonType.Name", Field, 0},
+ {"Decoder", Type, 0},
+ {"Encoder", Type, 0},
+ {"GobDecoder", Type, 0},
+ {"GobEncoder", Type, 0},
+ {"NewDecoder", Func, 0},
+ {"NewEncoder", Func, 0},
+ {"Register", Func, 0},
+ {"RegisterName", Func, 0},
+ },
+ "encoding/hex": {
+ {"(InvalidByteError).Error", Method, 0},
+ {"AppendDecode", Func, 22},
+ {"AppendEncode", Func, 22},
+ {"Decode", Func, 0},
+ {"DecodeString", Func, 0},
+ {"DecodedLen", Func, 0},
+ {"Dump", Func, 0},
+ {"Dumper", Func, 0},
+ {"Encode", Func, 0},
+ {"EncodeToString", Func, 0},
+ {"EncodedLen", Func, 0},
+ {"ErrLength", Var, 0},
+ {"InvalidByteError", Type, 0},
+ {"NewDecoder", Func, 10},
+ {"NewEncoder", Func, 10},
+ },
+ "encoding/json": {
+ {"(*Decoder).Buffered", Method, 1},
+ {"(*Decoder).Decode", Method, 0},
+ {"(*Decoder).DisallowUnknownFields", Method, 10},
+ {"(*Decoder).InputOffset", Method, 14},
+ {"(*Decoder).More", Method, 5},
+ {"(*Decoder).Token", Method, 5},
+ {"(*Decoder).UseNumber", Method, 1},
+ {"(*Encoder).Encode", Method, 0},
+ {"(*Encoder).SetEscapeHTML", Method, 7},
+ {"(*Encoder).SetIndent", Method, 7},
+ {"(*InvalidUTF8Error).Error", Method, 0},
+ {"(*InvalidUnmarshalError).Error", Method, 0},
+ {"(*MarshalerError).Error", Method, 0},
+ {"(*MarshalerError).Unwrap", Method, 13},
+ {"(*RawMessage).MarshalJSON", Method, 0},
+ {"(*RawMessage).UnmarshalJSON", Method, 0},
+ {"(*SyntaxError).Error", Method, 0},
+ {"(*UnmarshalFieldError).Error", Method, 0},
+ {"(*UnmarshalTypeError).Error", Method, 0},
+ {"(*UnsupportedTypeError).Error", Method, 0},
+ {"(*UnsupportedValueError).Error", Method, 0},
+ {"(Delim).String", Method, 5},
+ {"(Number).Float64", Method, 1},
+ {"(Number).Int64", Method, 1},
+ {"(Number).String", Method, 1},
+ {"(RawMessage).MarshalJSON", Method, 8},
+ {"Compact", Func, 0},
+ {"Decoder", Type, 0},
+ {"Delim", Type, 5},
+ {"Encoder", Type, 0},
+ {"HTMLEscape", Func, 0},
+ {"Indent", Func, 0},
+ {"InvalidUTF8Error", Type, 0},
+ {"InvalidUTF8Error.S", Field, 0},
+ {"InvalidUnmarshalError", Type, 0},
+ {"InvalidUnmarshalError.Type", Field, 0},
+ {"Marshal", Func, 0},
+ {"MarshalIndent", Func, 0},
+ {"Marshaler", Type, 0},
+ {"MarshalerError", Type, 0},
+ {"MarshalerError.Err", Field, 0},
+ {"MarshalerError.Type", Field, 0},
+ {"NewDecoder", Func, 0},
+ {"NewEncoder", Func, 0},
+ {"Number", Type, 1},
+ {"RawMessage", Type, 0},
+ {"SyntaxError", Type, 0},
+ {"SyntaxError.Offset", Field, 0},
+ {"Token", Type, 5},
+ {"Unmarshal", Func, 0},
+ {"UnmarshalFieldError", Type, 0},
+ {"UnmarshalFieldError.Field", Field, 0},
+ {"UnmarshalFieldError.Key", Field, 0},
+ {"UnmarshalFieldError.Type", Field, 0},
+ {"UnmarshalTypeError", Type, 0},
+ {"UnmarshalTypeError.Field", Field, 8},
+ {"UnmarshalTypeError.Offset", Field, 5},
+ {"UnmarshalTypeError.Struct", Field, 8},
+ {"UnmarshalTypeError.Type", Field, 0},
+ {"UnmarshalTypeError.Value", Field, 0},
+ {"Unmarshaler", Type, 0},
+ {"UnsupportedTypeError", Type, 0},
+ {"UnsupportedTypeError.Type", Field, 0},
+ {"UnsupportedValueError", Type, 0},
+ {"UnsupportedValueError.Str", Field, 0},
+ {"UnsupportedValueError.Value", Field, 0},
+ {"Valid", Func, 9},
+ },
+ "encoding/pem": {
+ {"Block", Type, 0},
+ {"Block.Bytes", Field, 0},
+ {"Block.Headers", Field, 0},
+ {"Block.Type", Field, 0},
+ {"Decode", Func, 0},
+ {"Encode", Func, 0},
+ {"EncodeToMemory", Func, 0},
+ },
+ "encoding/xml": {
+ {"(*Decoder).Decode", Method, 0},
+ {"(*Decoder).DecodeElement", Method, 0},
+ {"(*Decoder).InputOffset", Method, 4},
+ {"(*Decoder).InputPos", Method, 19},
+ {"(*Decoder).RawToken", Method, 0},
+ {"(*Decoder).Skip", Method, 0},
+ {"(*Decoder).Token", Method, 0},
+ {"(*Encoder).Close", Method, 20},
+ {"(*Encoder).Encode", Method, 0},
+ {"(*Encoder).EncodeElement", Method, 2},
+ {"(*Encoder).EncodeToken", Method, 2},
+ {"(*Encoder).Flush", Method, 2},
+ {"(*Encoder).Indent", Method, 1},
+ {"(*SyntaxError).Error", Method, 0},
+ {"(*TagPathError).Error", Method, 0},
+ {"(*UnsupportedTypeError).Error", Method, 0},
+ {"(CharData).Copy", Method, 0},
+ {"(Comment).Copy", Method, 0},
+ {"(Directive).Copy", Method, 0},
+ {"(ProcInst).Copy", Method, 0},
+ {"(StartElement).Copy", Method, 0},
+ {"(StartElement).End", Method, 2},
+ {"(UnmarshalError).Error", Method, 0},
+ {"Attr", Type, 0},
+ {"Attr.Name", Field, 0},
+ {"Attr.Value", Field, 0},
+ {"CharData", Type, 0},
+ {"Comment", Type, 0},
+ {"CopyToken", Func, 0},
+ {"Decoder", Type, 0},
+ {"Decoder.AutoClose", Field, 0},
+ {"Decoder.CharsetReader", Field, 0},
+ {"Decoder.DefaultSpace", Field, 1},
+ {"Decoder.Entity", Field, 0},
+ {"Decoder.Strict", Field, 0},
+ {"Directive", Type, 0},
+ {"Encoder", Type, 0},
+ {"EndElement", Type, 0},
+ {"EndElement.Name", Field, 0},
+ {"Escape", Func, 0},
+ {"EscapeText", Func, 1},
+ {"HTMLAutoClose", Var, 0},
+ {"HTMLEntity", Var, 0},
+ {"Header", Const, 0},
+ {"Marshal", Func, 0},
+ {"MarshalIndent", Func, 0},
+ {"Marshaler", Type, 2},
+ {"MarshalerAttr", Type, 2},
+ {"Name", Type, 0},
+ {"Name.Local", Field, 0},
+ {"Name.Space", Field, 0},
+ {"NewDecoder", Func, 0},
+ {"NewEncoder", Func, 0},
+ {"NewTokenDecoder", Func, 10},
+ {"ProcInst", Type, 0},
+ {"ProcInst.Inst", Field, 0},
+ {"ProcInst.Target", Field, 0},
+ {"StartElement", Type, 0},
+ {"StartElement.Attr", Field, 0},
+ {"StartElement.Name", Field, 0},
+ {"SyntaxError", Type, 0},
+ {"SyntaxError.Line", Field, 0},
+ {"SyntaxError.Msg", Field, 0},
+ {"TagPathError", Type, 0},
+ {"TagPathError.Field1", Field, 0},
+ {"TagPathError.Field2", Field, 0},
+ {"TagPathError.Struct", Field, 0},
+ {"TagPathError.Tag1", Field, 0},
+ {"TagPathError.Tag2", Field, 0},
+ {"Token", Type, 0},
+ {"TokenReader", Type, 10},
+ {"Unmarshal", Func, 0},
+ {"UnmarshalError", Type, 0},
+ {"Unmarshaler", Type, 2},
+ {"UnmarshalerAttr", Type, 2},
+ {"UnsupportedTypeError", Type, 0},
+ {"UnsupportedTypeError.Type", Field, 0},
+ },
+ "errors": {
+ {"As", Func, 13},
+ {"ErrUnsupported", Var, 21},
+ {"Is", Func, 13},
+ {"Join", Func, 20},
+ {"New", Func, 0},
+ {"Unwrap", Func, 13},
+ },
+ "expvar": {
+ {"(*Float).Add", Method, 0},
+ {"(*Float).Set", Method, 0},
+ {"(*Float).String", Method, 0},
+ {"(*Float).Value", Method, 8},
+ {"(*Int).Add", Method, 0},
+ {"(*Int).Set", Method, 0},
+ {"(*Int).String", Method, 0},
+ {"(*Int).Value", Method, 8},
+ {"(*Map).Add", Method, 0},
+ {"(*Map).AddFloat", Method, 0},
+ {"(*Map).Delete", Method, 12},
+ {"(*Map).Do", Method, 0},
+ {"(*Map).Get", Method, 0},
+ {"(*Map).Init", Method, 0},
+ {"(*Map).Set", Method, 0},
+ {"(*Map).String", Method, 0},
+ {"(*String).Set", Method, 0},
+ {"(*String).String", Method, 0},
+ {"(*String).Value", Method, 8},
+ {"(Func).String", Method, 0},
+ {"(Func).Value", Method, 8},
+ {"Do", Func, 0},
+ {"Float", Type, 0},
+ {"Func", Type, 0},
+ {"Get", Func, 0},
+ {"Handler", Func, 8},
+ {"Int", Type, 0},
+ {"KeyValue", Type, 0},
+ {"KeyValue.Key", Field, 0},
+ {"KeyValue.Value", Field, 0},
+ {"Map", Type, 0},
+ {"NewFloat", Func, 0},
+ {"NewInt", Func, 0},
+ {"NewMap", Func, 0},
+ {"NewString", Func, 0},
+ {"Publish", Func, 0},
+ {"String", Type, 0},
+ {"Var", Type, 0},
+ },
+ "flag": {
+ {"(*FlagSet).Arg", Method, 0},
+ {"(*FlagSet).Args", Method, 0},
+ {"(*FlagSet).Bool", Method, 0},
+ {"(*FlagSet).BoolFunc", Method, 21},
+ {"(*FlagSet).BoolVar", Method, 0},
+ {"(*FlagSet).Duration", Method, 0},
+ {"(*FlagSet).DurationVar", Method, 0},
+ {"(*FlagSet).ErrorHandling", Method, 10},
+ {"(*FlagSet).Float64", Method, 0},
+ {"(*FlagSet).Float64Var", Method, 0},
+ {"(*FlagSet).Func", Method, 16},
+ {"(*FlagSet).Init", Method, 0},
+ {"(*FlagSet).Int", Method, 0},
+ {"(*FlagSet).Int64", Method, 0},
+ {"(*FlagSet).Int64Var", Method, 0},
+ {"(*FlagSet).IntVar", Method, 0},
+ {"(*FlagSet).Lookup", Method, 0},
+ {"(*FlagSet).NArg", Method, 0},
+ {"(*FlagSet).NFlag", Method, 0},
+ {"(*FlagSet).Name", Method, 10},
+ {"(*FlagSet).Output", Method, 10},
+ {"(*FlagSet).Parse", Method, 0},
+ {"(*FlagSet).Parsed", Method, 0},
+ {"(*FlagSet).PrintDefaults", Method, 0},
+ {"(*FlagSet).Set", Method, 0},
+ {"(*FlagSet).SetOutput", Method, 0},
+ {"(*FlagSet).String", Method, 0},
+ {"(*FlagSet).StringVar", Method, 0},
+ {"(*FlagSet).TextVar", Method, 19},
+ {"(*FlagSet).Uint", Method, 0},
+ {"(*FlagSet).Uint64", Method, 0},
+ {"(*FlagSet).Uint64Var", Method, 0},
+ {"(*FlagSet).UintVar", Method, 0},
+ {"(*FlagSet).Var", Method, 0},
+ {"(*FlagSet).Visit", Method, 0},
+ {"(*FlagSet).VisitAll", Method, 0},
+ {"Arg", Func, 0},
+ {"Args", Func, 0},
+ {"Bool", Func, 0},
+ {"BoolFunc", Func, 21},
+ {"BoolVar", Func, 0},
+ {"CommandLine", Var, 2},
+ {"ContinueOnError", Const, 0},
+ {"Duration", Func, 0},
+ {"DurationVar", Func, 0},
+ {"ErrHelp", Var, 0},
+ {"ErrorHandling", Type, 0},
+ {"ExitOnError", Const, 0},
+ {"Flag", Type, 0},
+ {"Flag.DefValue", Field, 0},
+ {"Flag.Name", Field, 0},
+ {"Flag.Usage", Field, 0},
+ {"Flag.Value", Field, 0},
+ {"FlagSet", Type, 0},
+ {"FlagSet.Usage", Field, 0},
+ {"Float64", Func, 0},
+ {"Float64Var", Func, 0},
+ {"Func", Func, 16},
+ {"Getter", Type, 2},
+ {"Int", Func, 0},
+ {"Int64", Func, 0},
+ {"Int64Var", Func, 0},
+ {"IntVar", Func, 0},
+ {"Lookup", Func, 0},
+ {"NArg", Func, 0},
+ {"NFlag", Func, 0},
+ {"NewFlagSet", Func, 0},
+ {"PanicOnError", Const, 0},
+ {"Parse", Func, 0},
+ {"Parsed", Func, 0},
+ {"PrintDefaults", Func, 0},
+ {"Set", Func, 0},
+ {"String", Func, 0},
+ {"StringVar", Func, 0},
+ {"TextVar", Func, 19},
+ {"Uint", Func, 0},
+ {"Uint64", Func, 0},
+ {"Uint64Var", Func, 0},
+ {"UintVar", Func, 0},
+ {"UnquoteUsage", Func, 5},
+ {"Usage", Var, 0},
+ {"Value", Type, 0},
+ {"Var", Func, 0},
+ {"Visit", Func, 0},
+ {"VisitAll", Func, 0},
+ },
+ "fmt": {
+ {"Append", Func, 19},
+ {"Appendf", Func, 19},
+ {"Appendln", Func, 19},
+ {"Errorf", Func, 0},
+ {"FormatString", Func, 20},
+ {"Formatter", Type, 0},
+ {"Fprint", Func, 0},
+ {"Fprintf", Func, 0},
+ {"Fprintln", Func, 0},
+ {"Fscan", Func, 0},
+ {"Fscanf", Func, 0},
+ {"Fscanln", Func, 0},
+ {"GoStringer", Type, 0},
+ {"Print", Func, 0},
+ {"Printf", Func, 0},
+ {"Println", Func, 0},
+ {"Scan", Func, 0},
+ {"ScanState", Type, 0},
+ {"Scanf", Func, 0},
+ {"Scanln", Func, 0},
+ {"Scanner", Type, 0},
+ {"Sprint", Func, 0},
+ {"Sprintf", Func, 0},
+ {"Sprintln", Func, 0},
+ {"Sscan", Func, 0},
+ {"Sscanf", Func, 0},
+ {"Sscanln", Func, 0},
+ {"State", Type, 0},
+ {"Stringer", Type, 0},
+ },
+ "go/ast": {
+ {"(*ArrayType).End", Method, 0},
+ {"(*ArrayType).Pos", Method, 0},
+ {"(*AssignStmt).End", Method, 0},
+ {"(*AssignStmt).Pos", Method, 0},
+ {"(*BadDecl).End", Method, 0},
+ {"(*BadDecl).Pos", Method, 0},
+ {"(*BadExpr).End", Method, 0},
+ {"(*BadExpr).Pos", Method, 0},
+ {"(*BadStmt).End", Method, 0},
+ {"(*BadStmt).Pos", Method, 0},
+ {"(*BasicLit).End", Method, 0},
+ {"(*BasicLit).Pos", Method, 0},
+ {"(*BinaryExpr).End", Method, 0},
+ {"(*BinaryExpr).Pos", Method, 0},
+ {"(*BlockStmt).End", Method, 0},
+ {"(*BlockStmt).Pos", Method, 0},
+ {"(*BranchStmt).End", Method, 0},
+ {"(*BranchStmt).Pos", Method, 0},
+ {"(*CallExpr).End", Method, 0},
+ {"(*CallExpr).Pos", Method, 0},
+ {"(*CaseClause).End", Method, 0},
+ {"(*CaseClause).Pos", Method, 0},
+ {"(*ChanType).End", Method, 0},
+ {"(*ChanType).Pos", Method, 0},
+ {"(*CommClause).End", Method, 0},
+ {"(*CommClause).Pos", Method, 0},
+ {"(*Comment).End", Method, 0},
+ {"(*Comment).Pos", Method, 0},
+ {"(*CommentGroup).End", Method, 0},
+ {"(*CommentGroup).Pos", Method, 0},
+ {"(*CommentGroup).Text", Method, 0},
+ {"(*CompositeLit).End", Method, 0},
+ {"(*CompositeLit).Pos", Method, 0},
+ {"(*DeclStmt).End", Method, 0},
+ {"(*DeclStmt).Pos", Method, 0},
+ {"(*DeferStmt).End", Method, 0},
+ {"(*DeferStmt).Pos", Method, 0},
+ {"(*Ellipsis).End", Method, 0},
+ {"(*Ellipsis).Pos", Method, 0},
+ {"(*EmptyStmt).End", Method, 0},
+ {"(*EmptyStmt).Pos", Method, 0},
+ {"(*ExprStmt).End", Method, 0},
+ {"(*ExprStmt).Pos", Method, 0},
+ {"(*Field).End", Method, 0},
+ {"(*Field).Pos", Method, 0},
+ {"(*FieldList).End", Method, 0},
+ {"(*FieldList).NumFields", Method, 0},
+ {"(*FieldList).Pos", Method, 0},
+ {"(*File).End", Method, 0},
+ {"(*File).Pos", Method, 0},
+ {"(*ForStmt).End", Method, 0},
+ {"(*ForStmt).Pos", Method, 0},
+ {"(*FuncDecl).End", Method, 0},
+ {"(*FuncDecl).Pos", Method, 0},
+ {"(*FuncLit).End", Method, 0},
+ {"(*FuncLit).Pos", Method, 0},
+ {"(*FuncType).End", Method, 0},
+ {"(*FuncType).Pos", Method, 0},
+ {"(*GenDecl).End", Method, 0},
+ {"(*GenDecl).Pos", Method, 0},
+ {"(*GoStmt).End", Method, 0},
+ {"(*GoStmt).Pos", Method, 0},
+ {"(*Ident).End", Method, 0},
+ {"(*Ident).IsExported", Method, 0},
+ {"(*Ident).Pos", Method, 0},
+ {"(*Ident).String", Method, 0},
+ {"(*IfStmt).End", Method, 0},
+ {"(*IfStmt).Pos", Method, 0},
+ {"(*ImportSpec).End", Method, 0},
+ {"(*ImportSpec).Pos", Method, 0},
+ {"(*IncDecStmt).End", Method, 0},
+ {"(*IncDecStmt).Pos", Method, 0},
+ {"(*IndexExpr).End", Method, 0},
+ {"(*IndexExpr).Pos", Method, 0},
+ {"(*IndexListExpr).End", Method, 18},
+ {"(*IndexListExpr).Pos", Method, 18},
+ {"(*InterfaceType).End", Method, 0},
+ {"(*InterfaceType).Pos", Method, 0},
+ {"(*KeyValueExpr).End", Method, 0},
+ {"(*KeyValueExpr).Pos", Method, 0},
+ {"(*LabeledStmt).End", Method, 0},
+ {"(*LabeledStmt).Pos", Method, 0},
+ {"(*MapType).End", Method, 0},
+ {"(*MapType).Pos", Method, 0},
+ {"(*Object).Pos", Method, 0},
+ {"(*Package).End", Method, 0},
+ {"(*Package).Pos", Method, 0},
+ {"(*ParenExpr).End", Method, 0},
+ {"(*ParenExpr).Pos", Method, 0},
+ {"(*RangeStmt).End", Method, 0},
+ {"(*RangeStmt).Pos", Method, 0},
+ {"(*ReturnStmt).End", Method, 0},
+ {"(*ReturnStmt).Pos", Method, 0},
+ {"(*Scope).Insert", Method, 0},
+ {"(*Scope).Lookup", Method, 0},
+ {"(*Scope).String", Method, 0},
+ {"(*SelectStmt).End", Method, 0},
+ {"(*SelectStmt).Pos", Method, 0},
+ {"(*SelectorExpr).End", Method, 0},
+ {"(*SelectorExpr).Pos", Method, 0},
+ {"(*SendStmt).End", Method, 0},
+ {"(*SendStmt).Pos", Method, 0},
+ {"(*SliceExpr).End", Method, 0},
+ {"(*SliceExpr).Pos", Method, 0},
+ {"(*StarExpr).End", Method, 0},
+ {"(*StarExpr).Pos", Method, 0},
+ {"(*StructType).End", Method, 0},
+ {"(*StructType).Pos", Method, 0},
+ {"(*SwitchStmt).End", Method, 0},
+ {"(*SwitchStmt).Pos", Method, 0},
+ {"(*TypeAssertExpr).End", Method, 0},
+ {"(*TypeAssertExpr).Pos", Method, 0},
+ {"(*TypeSpec).End", Method, 0},
+ {"(*TypeSpec).Pos", Method, 0},
+ {"(*TypeSwitchStmt).End", Method, 0},
+ {"(*TypeSwitchStmt).Pos", Method, 0},
+ {"(*UnaryExpr).End", Method, 0},
+ {"(*UnaryExpr).Pos", Method, 0},
+ {"(*ValueSpec).End", Method, 0},
+ {"(*ValueSpec).Pos", Method, 0},
+ {"(CommentMap).Comments", Method, 1},
+ {"(CommentMap).Filter", Method, 1},
+ {"(CommentMap).String", Method, 1},
+ {"(CommentMap).Update", Method, 1},
+ {"(ObjKind).String", Method, 0},
+ {"ArrayType", Type, 0},
+ {"ArrayType.Elt", Field, 0},
+ {"ArrayType.Lbrack", Field, 0},
+ {"ArrayType.Len", Field, 0},
+ {"AssignStmt", Type, 0},
+ {"AssignStmt.Lhs", Field, 0},
+ {"AssignStmt.Rhs", Field, 0},
+ {"AssignStmt.Tok", Field, 0},
+ {"AssignStmt.TokPos", Field, 0},
+ {"Bad", Const, 0},
+ {"BadDecl", Type, 0},
+ {"BadDecl.From", Field, 0},
+ {"BadDecl.To", Field, 0},
+ {"BadExpr", Type, 0},
+ {"BadExpr.From", Field, 0},
+ {"BadExpr.To", Field, 0},
+ {"BadStmt", Type, 0},
+ {"BadStmt.From", Field, 0},
+ {"BadStmt.To", Field, 0},
+ {"BasicLit", Type, 0},
+ {"BasicLit.Kind", Field, 0},
+ {"BasicLit.Value", Field, 0},
+ {"BasicLit.ValuePos", Field, 0},
+ {"BinaryExpr", Type, 0},
+ {"BinaryExpr.Op", Field, 0},
+ {"BinaryExpr.OpPos", Field, 0},
+ {"BinaryExpr.X", Field, 0},
+ {"BinaryExpr.Y", Field, 0},
+ {"BlockStmt", Type, 0},
+ {"BlockStmt.Lbrace", Field, 0},
+ {"BlockStmt.List", Field, 0},
+ {"BlockStmt.Rbrace", Field, 0},
+ {"BranchStmt", Type, 0},
+ {"BranchStmt.Label", Field, 0},
+ {"BranchStmt.Tok", Field, 0},
+ {"BranchStmt.TokPos", Field, 0},
+ {"CallExpr", Type, 0},
+ {"CallExpr.Args", Field, 0},
+ {"CallExpr.Ellipsis", Field, 0},
+ {"CallExpr.Fun", Field, 0},
+ {"CallExpr.Lparen", Field, 0},
+ {"CallExpr.Rparen", Field, 0},
+ {"CaseClause", Type, 0},
+ {"CaseClause.Body", Field, 0},
+ {"CaseClause.Case", Field, 0},
+ {"CaseClause.Colon", Field, 0},
+ {"CaseClause.List", Field, 0},
+ {"ChanDir", Type, 0},
+ {"ChanType", Type, 0},
+ {"ChanType.Arrow", Field, 1},
+ {"ChanType.Begin", Field, 0},
+ {"ChanType.Dir", Field, 0},
+ {"ChanType.Value", Field, 0},
+ {"CommClause", Type, 0},
+ {"CommClause.Body", Field, 0},
+ {"CommClause.Case", Field, 0},
+ {"CommClause.Colon", Field, 0},
+ {"CommClause.Comm", Field, 0},
+ {"Comment", Type, 0},
+ {"Comment.Slash", Field, 0},
+ {"Comment.Text", Field, 0},
+ {"CommentGroup", Type, 0},
+ {"CommentGroup.List", Field, 0},
+ {"CommentMap", Type, 1},
+ {"CompositeLit", Type, 0},
+ {"CompositeLit.Elts", Field, 0},
+ {"CompositeLit.Incomplete", Field, 11},
+ {"CompositeLit.Lbrace", Field, 0},
+ {"CompositeLit.Rbrace", Field, 0},
+ {"CompositeLit.Type", Field, 0},
+ {"Con", Const, 0},
+ {"Decl", Type, 0},
+ {"DeclStmt", Type, 0},
+ {"DeclStmt.Decl", Field, 0},
+ {"DeferStmt", Type, 0},
+ {"DeferStmt.Call", Field, 0},
+ {"DeferStmt.Defer", Field, 0},
+ {"Ellipsis", Type, 0},
+ {"Ellipsis.Ellipsis", Field, 0},
+ {"Ellipsis.Elt", Field, 0},
+ {"EmptyStmt", Type, 0},
+ {"EmptyStmt.Implicit", Field, 5},
+ {"EmptyStmt.Semicolon", Field, 0},
+ {"Expr", Type, 0},
+ {"ExprStmt", Type, 0},
+ {"ExprStmt.X", Field, 0},
+ {"Field", Type, 0},
+ {"Field.Comment", Field, 0},
+ {"Field.Doc", Field, 0},
+ {"Field.Names", Field, 0},
+ {"Field.Tag", Field, 0},
+ {"Field.Type", Field, 0},
+ {"FieldFilter", Type, 0},
+ {"FieldList", Type, 0},
+ {"FieldList.Closing", Field, 0},
+ {"FieldList.List", Field, 0},
+ {"FieldList.Opening", Field, 0},
+ {"File", Type, 0},
+ {"File.Comments", Field, 0},
+ {"File.Decls", Field, 0},
+ {"File.Doc", Field, 0},
+ {"File.FileEnd", Field, 20},
+ {"File.FileStart", Field, 20},
+ {"File.GoVersion", Field, 21},
+ {"File.Imports", Field, 0},
+ {"File.Name", Field, 0},
+ {"File.Package", Field, 0},
+ {"File.Scope", Field, 0},
+ {"File.Unresolved", Field, 0},
+ {"FileExports", Func, 0},
+ {"Filter", Type, 0},
+ {"FilterDecl", Func, 0},
+ {"FilterFile", Func, 0},
+ {"FilterFuncDuplicates", Const, 0},
+ {"FilterImportDuplicates", Const, 0},
+ {"FilterPackage", Func, 0},
+ {"FilterUnassociatedComments", Const, 0},
+ {"ForStmt", Type, 0},
+ {"ForStmt.Body", Field, 0},
+ {"ForStmt.Cond", Field, 0},
+ {"ForStmt.For", Field, 0},
+ {"ForStmt.Init", Field, 0},
+ {"ForStmt.Post", Field, 0},
+ {"Fprint", Func, 0},
+ {"Fun", Const, 0},
+ {"FuncDecl", Type, 0},
+ {"FuncDecl.Body", Field, 0},
+ {"FuncDecl.Doc", Field, 0},
+ {"FuncDecl.Name", Field, 0},
+ {"FuncDecl.Recv", Field, 0},
+ {"FuncDecl.Type", Field, 0},
+ {"FuncLit", Type, 0},
+ {"FuncLit.Body", Field, 0},
+ {"FuncLit.Type", Field, 0},
+ {"FuncType", Type, 0},
+ {"FuncType.Func", Field, 0},
+ {"FuncType.Params", Field, 0},
+ {"FuncType.Results", Field, 0},
+ {"FuncType.TypeParams", Field, 18},
+ {"GenDecl", Type, 0},
+ {"GenDecl.Doc", Field, 0},
+ {"GenDecl.Lparen", Field, 0},
+ {"GenDecl.Rparen", Field, 0},
+ {"GenDecl.Specs", Field, 0},
+ {"GenDecl.Tok", Field, 0},
+ {"GenDecl.TokPos", Field, 0},
+ {"GoStmt", Type, 0},
+ {"GoStmt.Call", Field, 0},
+ {"GoStmt.Go", Field, 0},
+ {"Ident", Type, 0},
+ {"Ident.Name", Field, 0},
+ {"Ident.NamePos", Field, 0},
+ {"Ident.Obj", Field, 0},
+ {"IfStmt", Type, 0},
+ {"IfStmt.Body", Field, 0},
+ {"IfStmt.Cond", Field, 0},
+ {"IfStmt.Else", Field, 0},
+ {"IfStmt.If", Field, 0},
+ {"IfStmt.Init", Field, 0},
+ {"ImportSpec", Type, 0},
+ {"ImportSpec.Comment", Field, 0},
+ {"ImportSpec.Doc", Field, 0},
+ {"ImportSpec.EndPos", Field, 0},
+ {"ImportSpec.Name", Field, 0},
+ {"ImportSpec.Path", Field, 0},
+ {"Importer", Type, 0},
+ {"IncDecStmt", Type, 0},
+ {"IncDecStmt.Tok", Field, 0},
+ {"IncDecStmt.TokPos", Field, 0},
+ {"IncDecStmt.X", Field, 0},
+ {"IndexExpr", Type, 0},
+ {"IndexExpr.Index", Field, 0},
+ {"IndexExpr.Lbrack", Field, 0},
+ {"IndexExpr.Rbrack", Field, 0},
+ {"IndexExpr.X", Field, 0},
+ {"IndexListExpr", Type, 18},
+ {"IndexListExpr.Indices", Field, 18},
+ {"IndexListExpr.Lbrack", Field, 18},
+ {"IndexListExpr.Rbrack", Field, 18},
+ {"IndexListExpr.X", Field, 18},
+ {"Inspect", Func, 0},
+ {"InterfaceType", Type, 0},
+ {"InterfaceType.Incomplete", Field, 0},
+ {"InterfaceType.Interface", Field, 0},
+ {"InterfaceType.Methods", Field, 0},
+ {"IsExported", Func, 0},
+ {"IsGenerated", Func, 21},
+ {"KeyValueExpr", Type, 0},
+ {"KeyValueExpr.Colon", Field, 0},
+ {"KeyValueExpr.Key", Field, 0},
+ {"KeyValueExpr.Value", Field, 0},
+ {"LabeledStmt", Type, 0},
+ {"LabeledStmt.Colon", Field, 0},
+ {"LabeledStmt.Label", Field, 0},
+ {"LabeledStmt.Stmt", Field, 0},
+ {"Lbl", Const, 0},
+ {"MapType", Type, 0},
+ {"MapType.Key", Field, 0},
+ {"MapType.Map", Field, 0},
+ {"MapType.Value", Field, 0},
+ {"MergeMode", Type, 0},
+ {"MergePackageFiles", Func, 0},
+ {"NewCommentMap", Func, 1},
+ {"NewIdent", Func, 0},
+ {"NewObj", Func, 0},
+ {"NewPackage", Func, 0},
+ {"NewScope", Func, 0},
+ {"Node", Type, 0},
+ {"NotNilFilter", Func, 0},
+ {"ObjKind", Type, 0},
+ {"Object", Type, 0},
+ {"Object.Data", Field, 0},
+ {"Object.Decl", Field, 0},
+ {"Object.Kind", Field, 0},
+ {"Object.Name", Field, 0},
+ {"Object.Type", Field, 0},
+ {"Package", Type, 0},
+ {"Package.Files", Field, 0},
+ {"Package.Imports", Field, 0},
+ {"Package.Name", Field, 0},
+ {"Package.Scope", Field, 0},
+ {"PackageExports", Func, 0},
+ {"ParenExpr", Type, 0},
+ {"ParenExpr.Lparen", Field, 0},
+ {"ParenExpr.Rparen", Field, 0},
+ {"ParenExpr.X", Field, 0},
+ {"Pkg", Const, 0},
+ {"Print", Func, 0},
+ {"RECV", Const, 0},
+ {"RangeStmt", Type, 0},
+ {"RangeStmt.Body", Field, 0},
+ {"RangeStmt.For", Field, 0},
+ {"RangeStmt.Key", Field, 0},
+ {"RangeStmt.Range", Field, 20},
+ {"RangeStmt.Tok", Field, 0},
+ {"RangeStmt.TokPos", Field, 0},
+ {"RangeStmt.Value", Field, 0},
+ {"RangeStmt.X", Field, 0},
+ {"ReturnStmt", Type, 0},
+ {"ReturnStmt.Results", Field, 0},
+ {"ReturnStmt.Return", Field, 0},
+ {"SEND", Const, 0},
+ {"Scope", Type, 0},
+ {"Scope.Objects", Field, 0},
+ {"Scope.Outer", Field, 0},
+ {"SelectStmt", Type, 0},
+ {"SelectStmt.Body", Field, 0},
+ {"SelectStmt.Select", Field, 0},
+ {"SelectorExpr", Type, 0},
+ {"SelectorExpr.Sel", Field, 0},
+ {"SelectorExpr.X", Field, 0},
+ {"SendStmt", Type, 0},
+ {"SendStmt.Arrow", Field, 0},
+ {"SendStmt.Chan", Field, 0},
+ {"SendStmt.Value", Field, 0},
+ {"SliceExpr", Type, 0},
+ {"SliceExpr.High", Field, 0},
+ {"SliceExpr.Lbrack", Field, 0},
+ {"SliceExpr.Low", Field, 0},
+ {"SliceExpr.Max", Field, 2},
+ {"SliceExpr.Rbrack", Field, 0},
+ {"SliceExpr.Slice3", Field, 2},
+ {"SliceExpr.X", Field, 0},
+ {"SortImports", Func, 0},
+ {"Spec", Type, 0},
+ {"StarExpr", Type, 0},
+ {"StarExpr.Star", Field, 0},
+ {"StarExpr.X", Field, 0},
+ {"Stmt", Type, 0},
+ {"StructType", Type, 0},
+ {"StructType.Fields", Field, 0},
+ {"StructType.Incomplete", Field, 0},
+ {"StructType.Struct", Field, 0},
+ {"SwitchStmt", Type, 0},
+ {"SwitchStmt.Body", Field, 0},
+ {"SwitchStmt.Init", Field, 0},
+ {"SwitchStmt.Switch", Field, 0},
+ {"SwitchStmt.Tag", Field, 0},
+ {"Typ", Const, 0},
+ {"TypeAssertExpr", Type, 0},
+ {"TypeAssertExpr.Lparen", Field, 2},
+ {"TypeAssertExpr.Rparen", Field, 2},
+ {"TypeAssertExpr.Type", Field, 0},
+ {"TypeAssertExpr.X", Field, 0},
+ {"TypeSpec", Type, 0},
+ {"TypeSpec.Assign", Field, 9},
+ {"TypeSpec.Comment", Field, 0},
+ {"TypeSpec.Doc", Field, 0},
+ {"TypeSpec.Name", Field, 0},
+ {"TypeSpec.Type", Field, 0},
+ {"TypeSpec.TypeParams", Field, 18},
+ {"TypeSwitchStmt", Type, 0},
+ {"TypeSwitchStmt.Assign", Field, 0},
+ {"TypeSwitchStmt.Body", Field, 0},
+ {"TypeSwitchStmt.Init", Field, 0},
+ {"TypeSwitchStmt.Switch", Field, 0},
+ {"UnaryExpr", Type, 0},
+ {"UnaryExpr.Op", Field, 0},
+ {"UnaryExpr.OpPos", Field, 0},
+ {"UnaryExpr.X", Field, 0},
+ {"Unparen", Func, 22},
+ {"ValueSpec", Type, 0},
+ {"ValueSpec.Comment", Field, 0},
+ {"ValueSpec.Doc", Field, 0},
+ {"ValueSpec.Names", Field, 0},
+ {"ValueSpec.Type", Field, 0},
+ {"ValueSpec.Values", Field, 0},
+ {"Var", Const, 0},
+ {"Visitor", Type, 0},
+ {"Walk", Func, 0},
+ },
+ "go/build": {
+ {"(*Context).Import", Method, 0},
+ {"(*Context).ImportDir", Method, 0},
+ {"(*Context).MatchFile", Method, 2},
+ {"(*Context).SrcDirs", Method, 0},
+ {"(*MultiplePackageError).Error", Method, 4},
+ {"(*NoGoError).Error", Method, 0},
+ {"(*Package).IsCommand", Method, 0},
+ {"AllowBinary", Const, 0},
+ {"ArchChar", Func, 0},
+ {"Context", Type, 0},
+ {"Context.BuildTags", Field, 0},
+ {"Context.CgoEnabled", Field, 0},
+ {"Context.Compiler", Field, 0},
+ {"Context.Dir", Field, 14},
+ {"Context.GOARCH", Field, 0},
+ {"Context.GOOS", Field, 0},
+ {"Context.GOPATH", Field, 0},
+ {"Context.GOROOT", Field, 0},
+ {"Context.HasSubdir", Field, 0},
+ {"Context.InstallSuffix", Field, 1},
+ {"Context.IsAbsPath", Field, 0},
+ {"Context.IsDir", Field, 0},
+ {"Context.JoinPath", Field, 0},
+ {"Context.OpenFile", Field, 0},
+ {"Context.ReadDir", Field, 0},
+ {"Context.ReleaseTags", Field, 1},
+ {"Context.SplitPathList", Field, 0},
+ {"Context.ToolTags", Field, 17},
+ {"Context.UseAllFiles", Field, 0},
+ {"Default", Var, 0},
+ {"Directive", Type, 21},
+ {"Directive.Pos", Field, 21},
+ {"Directive.Text", Field, 21},
+ {"FindOnly", Const, 0},
+ {"IgnoreVendor", Const, 6},
+ {"Import", Func, 0},
+ {"ImportComment", Const, 4},
+ {"ImportDir", Func, 0},
+ {"ImportMode", Type, 0},
+ {"IsLocalImport", Func, 0},
+ {"MultiplePackageError", Type, 4},
+ {"MultiplePackageError.Dir", Field, 4},
+ {"MultiplePackageError.Files", Field, 4},
+ {"MultiplePackageError.Packages", Field, 4},
+ {"NoGoError", Type, 0},
+ {"NoGoError.Dir", Field, 0},
+ {"Package", Type, 0},
+ {"Package.AllTags", Field, 2},
+ {"Package.BinDir", Field, 0},
+ {"Package.BinaryOnly", Field, 7},
+ {"Package.CFiles", Field, 0},
+ {"Package.CXXFiles", Field, 2},
+ {"Package.CgoCFLAGS", Field, 0},
+ {"Package.CgoCPPFLAGS", Field, 2},
+ {"Package.CgoCXXFLAGS", Field, 2},
+ {"Package.CgoFFLAGS", Field, 7},
+ {"Package.CgoFiles", Field, 0},
+ {"Package.CgoLDFLAGS", Field, 0},
+ {"Package.CgoPkgConfig", Field, 0},
+ {"Package.ConflictDir", Field, 2},
+ {"Package.Dir", Field, 0},
+ {"Package.Directives", Field, 21},
+ {"Package.Doc", Field, 0},
+ {"Package.EmbedPatternPos", Field, 16},
+ {"Package.EmbedPatterns", Field, 16},
+ {"Package.FFiles", Field, 7},
+ {"Package.GoFiles", Field, 0},
+ {"Package.Goroot", Field, 0},
+ {"Package.HFiles", Field, 0},
+ {"Package.IgnoredGoFiles", Field, 1},
+ {"Package.IgnoredOtherFiles", Field, 16},
+ {"Package.ImportComment", Field, 4},
+ {"Package.ImportPath", Field, 0},
+ {"Package.ImportPos", Field, 0},
+ {"Package.Imports", Field, 0},
+ {"Package.InvalidGoFiles", Field, 6},
+ {"Package.MFiles", Field, 3},
+ {"Package.Name", Field, 0},
+ {"Package.PkgObj", Field, 0},
+ {"Package.PkgRoot", Field, 0},
+ {"Package.PkgTargetRoot", Field, 5},
+ {"Package.Root", Field, 0},
+ {"Package.SFiles", Field, 0},
+ {"Package.SrcRoot", Field, 0},
+ {"Package.SwigCXXFiles", Field, 1},
+ {"Package.SwigFiles", Field, 1},
+ {"Package.SysoFiles", Field, 0},
+ {"Package.TestDirectives", Field, 21},
+ {"Package.TestEmbedPatternPos", Field, 16},
+ {"Package.TestEmbedPatterns", Field, 16},
+ {"Package.TestGoFiles", Field, 0},
+ {"Package.TestImportPos", Field, 0},
+ {"Package.TestImports", Field, 0},
+ {"Package.XTestDirectives", Field, 21},
+ {"Package.XTestEmbedPatternPos", Field, 16},
+ {"Package.XTestEmbedPatterns", Field, 16},
+ {"Package.XTestGoFiles", Field, 0},
+ {"Package.XTestImportPos", Field, 0},
+ {"Package.XTestImports", Field, 0},
+ {"ToolDir", Var, 0},
+ },
+ "go/build/constraint": {
+ {"(*AndExpr).Eval", Method, 16},
+ {"(*AndExpr).String", Method, 16},
+ {"(*NotExpr).Eval", Method, 16},
+ {"(*NotExpr).String", Method, 16},
+ {"(*OrExpr).Eval", Method, 16},
+ {"(*OrExpr).String", Method, 16},
+ {"(*SyntaxError).Error", Method, 16},
+ {"(*TagExpr).Eval", Method, 16},
+ {"(*TagExpr).String", Method, 16},
+ {"AndExpr", Type, 16},
+ {"AndExpr.X", Field, 16},
+ {"AndExpr.Y", Field, 16},
+ {"Expr", Type, 16},
+ {"GoVersion", Func, 21},
+ {"IsGoBuild", Func, 16},
+ {"IsPlusBuild", Func, 16},
+ {"NotExpr", Type, 16},
+ {"NotExpr.X", Field, 16},
+ {"OrExpr", Type, 16},
+ {"OrExpr.X", Field, 16},
+ {"OrExpr.Y", Field, 16},
+ {"Parse", Func, 16},
+ {"PlusBuildLines", Func, 16},
+ {"SyntaxError", Type, 16},
+ {"SyntaxError.Err", Field, 16},
+ {"SyntaxError.Offset", Field, 16},
+ {"TagExpr", Type, 16},
+ {"TagExpr.Tag", Field, 16},
+ },
+ "go/constant": {
+ {"(Kind).String", Method, 18},
+ {"BinaryOp", Func, 5},
+ {"BitLen", Func, 5},
+ {"Bool", Const, 5},
+ {"BoolVal", Func, 5},
+ {"Bytes", Func, 5},
+ {"Compare", Func, 5},
+ {"Complex", Const, 5},
+ {"Denom", Func, 5},
+ {"Float", Const, 5},
+ {"Float32Val", Func, 5},
+ {"Float64Val", Func, 5},
+ {"Imag", Func, 5},
+ {"Int", Const, 5},
+ {"Int64Val", Func, 5},
+ {"Kind", Type, 5},
+ {"Make", Func, 13},
+ {"MakeBool", Func, 5},
+ {"MakeFloat64", Func, 5},
+ {"MakeFromBytes", Func, 5},
+ {"MakeFromLiteral", Func, 5},
+ {"MakeImag", Func, 5},
+ {"MakeInt64", Func, 5},
+ {"MakeString", Func, 5},
+ {"MakeUint64", Func, 5},
+ {"MakeUnknown", Func, 5},
+ {"Num", Func, 5},
+ {"Real", Func, 5},
+ {"Shift", Func, 5},
+ {"Sign", Func, 5},
+ {"String", Const, 5},
+ {"StringVal", Func, 5},
+ {"ToComplex", Func, 6},
+ {"ToFloat", Func, 6},
+ {"ToInt", Func, 6},
+ {"Uint64Val", Func, 5},
+ {"UnaryOp", Func, 5},
+ {"Unknown", Const, 5},
+ {"Val", Func, 13},
+ {"Value", Type, 5},
+ },
+ "go/doc": {
+ {"(*Package).Filter", Method, 0},
+ {"(*Package).HTML", Method, 19},
+ {"(*Package).Markdown", Method, 19},
+ {"(*Package).Parser", Method, 19},
+ {"(*Package).Printer", Method, 19},
+ {"(*Package).Synopsis", Method, 19},
+ {"(*Package).Text", Method, 19},
+ {"AllDecls", Const, 0},
+ {"AllMethods", Const, 0},
+ {"Example", Type, 0},
+ {"Example.Code", Field, 0},
+ {"Example.Comments", Field, 0},
+ {"Example.Doc", Field, 0},
+ {"Example.EmptyOutput", Field, 1},
+ {"Example.Name", Field, 0},
+ {"Example.Order", Field, 1},
+ {"Example.Output", Field, 0},
+ {"Example.Play", Field, 1},
+ {"Example.Suffix", Field, 14},
+ {"Example.Unordered", Field, 7},
+ {"Examples", Func, 0},
+ {"Filter", Type, 0},
+ {"Func", Type, 0},
+ {"Func.Decl", Field, 0},
+ {"Func.Doc", Field, 0},
+ {"Func.Examples", Field, 14},
+ {"Func.Level", Field, 0},
+ {"Func.Name", Field, 0},
+ {"Func.Orig", Field, 0},
+ {"Func.Recv", Field, 0},
+ {"IllegalPrefixes", Var, 1},
+ {"IsPredeclared", Func, 8},
+ {"Mode", Type, 0},
+ {"New", Func, 0},
+ {"NewFromFiles", Func, 14},
+ {"Note", Type, 1},
+ {"Note.Body", Field, 1},
+ {"Note.End", Field, 1},
+ {"Note.Pos", Field, 1},
+ {"Note.UID", Field, 1},
+ {"Package", Type, 0},
+ {"Package.Bugs", Field, 0},
+ {"Package.Consts", Field, 0},
+ {"Package.Doc", Field, 0},
+ {"Package.Examples", Field, 14},
+ {"Package.Filenames", Field, 0},
+ {"Package.Funcs", Field, 0},
+ {"Package.ImportPath", Field, 0},
+ {"Package.Imports", Field, 0},
+ {"Package.Name", Field, 0},
+ {"Package.Notes", Field, 1},
+ {"Package.Types", Field, 0},
+ {"Package.Vars", Field, 0},
+ {"PreserveAST", Const, 12},
+ {"Synopsis", Func, 0},
+ {"ToHTML", Func, 0},
+ {"ToText", Func, 0},
+ {"Type", Type, 0},
+ {"Type.Consts", Field, 0},
+ {"Type.Decl", Field, 0},
+ {"Type.Doc", Field, 0},
+ {"Type.Examples", Field, 14},
+ {"Type.Funcs", Field, 0},
+ {"Type.Methods", Field, 0},
+ {"Type.Name", Field, 0},
+ {"Type.Vars", Field, 0},
+ {"Value", Type, 0},
+ {"Value.Decl", Field, 0},
+ {"Value.Doc", Field, 0},
+ {"Value.Names", Field, 0},
+ },
+ "go/doc/comment": {
+ {"(*DocLink).DefaultURL", Method, 19},
+ {"(*Heading).DefaultID", Method, 19},
+ {"(*List).BlankBefore", Method, 19},
+ {"(*List).BlankBetween", Method, 19},
+ {"(*Parser).Parse", Method, 19},
+ {"(*Printer).Comment", Method, 19},
+ {"(*Printer).HTML", Method, 19},
+ {"(*Printer).Markdown", Method, 19},
+ {"(*Printer).Text", Method, 19},
+ {"Block", Type, 19},
+ {"Code", Type, 19},
+ {"Code.Text", Field, 19},
+ {"DefaultLookupPackage", Func, 19},
+ {"Doc", Type, 19},
+ {"Doc.Content", Field, 19},
+ {"Doc.Links", Field, 19},
+ {"DocLink", Type, 19},
+ {"DocLink.ImportPath", Field, 19},
+ {"DocLink.Name", Field, 19},
+ {"DocLink.Recv", Field, 19},
+ {"DocLink.Text", Field, 19},
+ {"Heading", Type, 19},
+ {"Heading.Text", Field, 19},
+ {"Italic", Type, 19},
+ {"Link", Type, 19},
+ {"Link.Auto", Field, 19},
+ {"Link.Text", Field, 19},
+ {"Link.URL", Field, 19},
+ {"LinkDef", Type, 19},
+ {"LinkDef.Text", Field, 19},
+ {"LinkDef.URL", Field, 19},
+ {"LinkDef.Used", Field, 19},
+ {"List", Type, 19},
+ {"List.ForceBlankBefore", Field, 19},
+ {"List.ForceBlankBetween", Field, 19},
+ {"List.Items", Field, 19},
+ {"ListItem", Type, 19},
+ {"ListItem.Content", Field, 19},
+ {"ListItem.Number", Field, 19},
+ {"Paragraph", Type, 19},
+ {"Paragraph.Text", Field, 19},
+ {"Parser", Type, 19},
+ {"Parser.LookupPackage", Field, 19},
+ {"Parser.LookupSym", Field, 19},
+ {"Parser.Words", Field, 19},
+ {"Plain", Type, 19},
+ {"Printer", Type, 19},
+ {"Printer.DocLinkBaseURL", Field, 19},
+ {"Printer.DocLinkURL", Field, 19},
+ {"Printer.HeadingID", Field, 19},
+ {"Printer.HeadingLevel", Field, 19},
+ {"Printer.TextCodePrefix", Field, 19},
+ {"Printer.TextPrefix", Field, 19},
+ {"Printer.TextWidth", Field, 19},
+ {"Text", Type, 19},
+ },
+ "go/format": {
+ {"Node", Func, 1},
+ {"Source", Func, 1},
+ },
+ "go/importer": {
+ {"Default", Func, 5},
+ {"For", Func, 5},
+ {"ForCompiler", Func, 12},
+ {"Lookup", Type, 5},
+ },
+ "go/parser": {
+ {"AllErrors", Const, 1},
+ {"DeclarationErrors", Const, 0},
+ {"ImportsOnly", Const, 0},
+ {"Mode", Type, 0},
+ {"PackageClauseOnly", Const, 0},
+ {"ParseComments", Const, 0},
+ {"ParseDir", Func, 0},
+ {"ParseExpr", Func, 0},
+ {"ParseExprFrom", Func, 5},
+ {"ParseFile", Func, 0},
+ {"SkipObjectResolution", Const, 17},
+ {"SpuriousErrors", Const, 0},
+ {"Trace", Const, 0},
+ },
+ "go/printer": {
+ {"(*Config).Fprint", Method, 0},
+ {"CommentedNode", Type, 0},
+ {"CommentedNode.Comments", Field, 0},
+ {"CommentedNode.Node", Field, 0},
+ {"Config", Type, 0},
+ {"Config.Indent", Field, 1},
+ {"Config.Mode", Field, 0},
+ {"Config.Tabwidth", Field, 0},
+ {"Fprint", Func, 0},
+ {"Mode", Type, 0},
+ {"RawFormat", Const, 0},
+ {"SourcePos", Const, 0},
+ {"TabIndent", Const, 0},
+ {"UseSpaces", Const, 0},
+ },
+ "go/scanner": {
+ {"(*ErrorList).Add", Method, 0},
+ {"(*ErrorList).RemoveMultiples", Method, 0},
+ {"(*ErrorList).Reset", Method, 0},
+ {"(*Scanner).Init", Method, 0},
+ {"(*Scanner).Scan", Method, 0},
+ {"(Error).Error", Method, 0},
+ {"(ErrorList).Err", Method, 0},
+ {"(ErrorList).Error", Method, 0},
+ {"(ErrorList).Len", Method, 0},
+ {"(ErrorList).Less", Method, 0},
+ {"(ErrorList).Sort", Method, 0},
+ {"(ErrorList).Swap", Method, 0},
+ {"Error", Type, 0},
+ {"Error.Msg", Field, 0},
+ {"Error.Pos", Field, 0},
+ {"ErrorHandler", Type, 0},
+ {"ErrorList", Type, 0},
+ {"Mode", Type, 0},
+ {"PrintError", Func, 0},
+ {"ScanComments", Const, 0},
+ {"Scanner", Type, 0},
+ {"Scanner.ErrorCount", Field, 0},
+ },
+ "go/token": {
+ {"(*File).AddLine", Method, 0},
+ {"(*File).AddLineColumnInfo", Method, 11},
+ {"(*File).AddLineInfo", Method, 0},
+ {"(*File).Base", Method, 0},
+ {"(*File).Line", Method, 0},
+ {"(*File).LineCount", Method, 0},
+ {"(*File).LineStart", Method, 12},
+ {"(*File).Lines", Method, 21},
+ {"(*File).MergeLine", Method, 2},
+ {"(*File).Name", Method, 0},
+ {"(*File).Offset", Method, 0},
+ {"(*File).Pos", Method, 0},
+ {"(*File).Position", Method, 0},
+ {"(*File).PositionFor", Method, 4},
+ {"(*File).SetLines", Method, 0},
+ {"(*File).SetLinesForContent", Method, 0},
+ {"(*File).Size", Method, 0},
+ {"(*FileSet).AddFile", Method, 0},
+ {"(*FileSet).Base", Method, 0},
+ {"(*FileSet).File", Method, 0},
+ {"(*FileSet).Iterate", Method, 0},
+ {"(*FileSet).Position", Method, 0},
+ {"(*FileSet).PositionFor", Method, 4},
+ {"(*FileSet).Read", Method, 0},
+ {"(*FileSet).RemoveFile", Method, 20},
+ {"(*FileSet).Write", Method, 0},
+ {"(*Position).IsValid", Method, 0},
+ {"(Pos).IsValid", Method, 0},
+ {"(Position).String", Method, 0},
+ {"(Token).IsKeyword", Method, 0},
+ {"(Token).IsLiteral", Method, 0},
+ {"(Token).IsOperator", Method, 0},
+ {"(Token).Precedence", Method, 0},
+ {"(Token).String", Method, 0},
+ {"ADD", Const, 0},
+ {"ADD_ASSIGN", Const, 0},
+ {"AND", Const, 0},
+ {"AND_ASSIGN", Const, 0},
+ {"AND_NOT", Const, 0},
+ {"AND_NOT_ASSIGN", Const, 0},
+ {"ARROW", Const, 0},
+ {"ASSIGN", Const, 0},
+ {"BREAK", Const, 0},
+ {"CASE", Const, 0},
+ {"CHAN", Const, 0},
+ {"CHAR", Const, 0},
+ {"COLON", Const, 0},
+ {"COMMA", Const, 0},
+ {"COMMENT", Const, 0},
+ {"CONST", Const, 0},
+ {"CONTINUE", Const, 0},
+ {"DEC", Const, 0},
+ {"DEFAULT", Const, 0},
+ {"DEFER", Const, 0},
+ {"DEFINE", Const, 0},
+ {"ELLIPSIS", Const, 0},
+ {"ELSE", Const, 0},
+ {"EOF", Const, 0},
+ {"EQL", Const, 0},
+ {"FALLTHROUGH", Const, 0},
+ {"FLOAT", Const, 0},
+ {"FOR", Const, 0},
+ {"FUNC", Const, 0},
+ {"File", Type, 0},
+ {"FileSet", Type, 0},
+ {"GEQ", Const, 0},
+ {"GO", Const, 0},
+ {"GOTO", Const, 0},
+ {"GTR", Const, 0},
+ {"HighestPrec", Const, 0},
+ {"IDENT", Const, 0},
+ {"IF", Const, 0},
+ {"ILLEGAL", Const, 0},
+ {"IMAG", Const, 0},
+ {"IMPORT", Const, 0},
+ {"INC", Const, 0},
+ {"INT", Const, 0},
+ {"INTERFACE", Const, 0},
+ {"IsExported", Func, 13},
+ {"IsIdentifier", Func, 13},
+ {"IsKeyword", Func, 13},
+ {"LAND", Const, 0},
+ {"LBRACE", Const, 0},
+ {"LBRACK", Const, 0},
+ {"LEQ", Const, 0},
+ {"LOR", Const, 0},
+ {"LPAREN", Const, 0},
+ {"LSS", Const, 0},
+ {"Lookup", Func, 0},
+ {"LowestPrec", Const, 0},
+ {"MAP", Const, 0},
+ {"MUL", Const, 0},
+ {"MUL_ASSIGN", Const, 0},
+ {"NEQ", Const, 0},
+ {"NOT", Const, 0},
+ {"NewFileSet", Func, 0},
+ {"NoPos", Const, 0},
+ {"OR", Const, 0},
+ {"OR_ASSIGN", Const, 0},
+ {"PACKAGE", Const, 0},
+ {"PERIOD", Const, 0},
+ {"Pos", Type, 0},
+ {"Position", Type, 0},
+ {"Position.Column", Field, 0},
+ {"Position.Filename", Field, 0},
+ {"Position.Line", Field, 0},
+ {"Position.Offset", Field, 0},
+ {"QUO", Const, 0},
+ {"QUO_ASSIGN", Const, 0},
+ {"RANGE", Const, 0},
+ {"RBRACE", Const, 0},
+ {"RBRACK", Const, 0},
+ {"REM", Const, 0},
+ {"REM_ASSIGN", Const, 0},
+ {"RETURN", Const, 0},
+ {"RPAREN", Const, 0},
+ {"SELECT", Const, 0},
+ {"SEMICOLON", Const, 0},
+ {"SHL", Const, 0},
+ {"SHL_ASSIGN", Const, 0},
+ {"SHR", Const, 0},
+ {"SHR_ASSIGN", Const, 0},
+ {"STRING", Const, 0},
+ {"STRUCT", Const, 0},
+ {"SUB", Const, 0},
+ {"SUB_ASSIGN", Const, 0},
+ {"SWITCH", Const, 0},
+ {"TILDE", Const, 18},
+ {"TYPE", Const, 0},
+ {"Token", Type, 0},
+ {"UnaryPrec", Const, 0},
+ {"VAR", Const, 0},
+ {"XOR", Const, 0},
+ {"XOR_ASSIGN", Const, 0},
+ },
+ "go/types": {
+ {"(*Alias).Obj", Method, 22},
+ {"(*Alias).String", Method, 22},
+ {"(*Alias).Underlying", Method, 22},
+ {"(*ArgumentError).Error", Method, 18},
+ {"(*ArgumentError).Unwrap", Method, 18},
+ {"(*Array).Elem", Method, 5},
+ {"(*Array).Len", Method, 5},
+ {"(*Array).String", Method, 5},
+ {"(*Array).Underlying", Method, 5},
+ {"(*Basic).Info", Method, 5},
+ {"(*Basic).Kind", Method, 5},
+ {"(*Basic).Name", Method, 5},
+ {"(*Basic).String", Method, 5},
+ {"(*Basic).Underlying", Method, 5},
+ {"(*Builtin).Exported", Method, 5},
+ {"(*Builtin).Id", Method, 5},
+ {"(*Builtin).Name", Method, 5},
+ {"(*Builtin).Parent", Method, 5},
+ {"(*Builtin).Pkg", Method, 5},
+ {"(*Builtin).Pos", Method, 5},
+ {"(*Builtin).String", Method, 5},
+ {"(*Builtin).Type", Method, 5},
+ {"(*Chan).Dir", Method, 5},
+ {"(*Chan).Elem", Method, 5},
+ {"(*Chan).String", Method, 5},
+ {"(*Chan).Underlying", Method, 5},
+ {"(*Checker).Files", Method, 5},
+ {"(*Config).Check", Method, 5},
+ {"(*Const).Exported", Method, 5},
+ {"(*Const).Id", Method, 5},
+ {"(*Const).Name", Method, 5},
+ {"(*Const).Parent", Method, 5},
+ {"(*Const).Pkg", Method, 5},
+ {"(*Const).Pos", Method, 5},
+ {"(*Const).String", Method, 5},
+ {"(*Const).Type", Method, 5},
+ {"(*Const).Val", Method, 5},
+ {"(*Func).Exported", Method, 5},
+ {"(*Func).FullName", Method, 5},
+ {"(*Func).Id", Method, 5},
+ {"(*Func).Name", Method, 5},
+ {"(*Func).Origin", Method, 19},
+ {"(*Func).Parent", Method, 5},
+ {"(*Func).Pkg", Method, 5},
+ {"(*Func).Pos", Method, 5},
+ {"(*Func).Scope", Method, 5},
+ {"(*Func).String", Method, 5},
+ {"(*Func).Type", Method, 5},
+ {"(*Info).ObjectOf", Method, 5},
+ {"(*Info).PkgNameOf", Method, 22},
+ {"(*Info).TypeOf", Method, 5},
+ {"(*Initializer).String", Method, 5},
+ {"(*Interface).Complete", Method, 5},
+ {"(*Interface).Embedded", Method, 5},
+ {"(*Interface).EmbeddedType", Method, 11},
+ {"(*Interface).Empty", Method, 5},
+ {"(*Interface).ExplicitMethod", Method, 5},
+ {"(*Interface).IsComparable", Method, 18},
+ {"(*Interface).IsImplicit", Method, 18},
+ {"(*Interface).IsMethodSet", Method, 18},
+ {"(*Interface).MarkImplicit", Method, 18},
+ {"(*Interface).Method", Method, 5},
+ {"(*Interface).NumEmbeddeds", Method, 5},
+ {"(*Interface).NumExplicitMethods", Method, 5},
+ {"(*Interface).NumMethods", Method, 5},
+ {"(*Interface).String", Method, 5},
+ {"(*Interface).Underlying", Method, 5},
+ {"(*Label).Exported", Method, 5},
+ {"(*Label).Id", Method, 5},
+ {"(*Label).Name", Method, 5},
+ {"(*Label).Parent", Method, 5},
+ {"(*Label).Pkg", Method, 5},
+ {"(*Label).Pos", Method, 5},
+ {"(*Label).String", Method, 5},
+ {"(*Label).Type", Method, 5},
+ {"(*Map).Elem", Method, 5},
+ {"(*Map).Key", Method, 5},
+ {"(*Map).String", Method, 5},
+ {"(*Map).Underlying", Method, 5},
+ {"(*MethodSet).At", Method, 5},
+ {"(*MethodSet).Len", Method, 5},
+ {"(*MethodSet).Lookup", Method, 5},
+ {"(*MethodSet).String", Method, 5},
+ {"(*Named).AddMethod", Method, 5},
+ {"(*Named).Method", Method, 5},
+ {"(*Named).NumMethods", Method, 5},
+ {"(*Named).Obj", Method, 5},
+ {"(*Named).Origin", Method, 18},
+ {"(*Named).SetTypeParams", Method, 18},
+ {"(*Named).SetUnderlying", Method, 5},
+ {"(*Named).String", Method, 5},
+ {"(*Named).TypeArgs", Method, 18},
+ {"(*Named).TypeParams", Method, 18},
+ {"(*Named).Underlying", Method, 5},
+ {"(*Nil).Exported", Method, 5},
+ {"(*Nil).Id", Method, 5},
+ {"(*Nil).Name", Method, 5},
+ {"(*Nil).Parent", Method, 5},
+ {"(*Nil).Pkg", Method, 5},
+ {"(*Nil).Pos", Method, 5},
+ {"(*Nil).String", Method, 5},
+ {"(*Nil).Type", Method, 5},
+ {"(*Package).Complete", Method, 5},
+ {"(*Package).GoVersion", Method, 21},
+ {"(*Package).Imports", Method, 5},
+ {"(*Package).MarkComplete", Method, 5},
+ {"(*Package).Name", Method, 5},
+ {"(*Package).Path", Method, 5},
+ {"(*Package).Scope", Method, 5},
+ {"(*Package).SetImports", Method, 5},
+ {"(*Package).SetName", Method, 6},
+ {"(*Package).String", Method, 5},
+ {"(*PkgName).Exported", Method, 5},
+ {"(*PkgName).Id", Method, 5},
+ {"(*PkgName).Imported", Method, 5},
+ {"(*PkgName).Name", Method, 5},
+ {"(*PkgName).Parent", Method, 5},
+ {"(*PkgName).Pkg", Method, 5},
+ {"(*PkgName).Pos", Method, 5},
+ {"(*PkgName).String", Method, 5},
+ {"(*PkgName).Type", Method, 5},
+ {"(*Pointer).Elem", Method, 5},
+ {"(*Pointer).String", Method, 5},
+ {"(*Pointer).Underlying", Method, 5},
+ {"(*Scope).Child", Method, 5},
+ {"(*Scope).Contains", Method, 5},
+ {"(*Scope).End", Method, 5},
+ {"(*Scope).Innermost", Method, 5},
+ {"(*Scope).Insert", Method, 5},
+ {"(*Scope).Len", Method, 5},
+ {"(*Scope).Lookup", Method, 5},
+ {"(*Scope).LookupParent", Method, 5},
+ {"(*Scope).Names", Method, 5},
+ {"(*Scope).NumChildren", Method, 5},
+ {"(*Scope).Parent", Method, 5},
+ {"(*Scope).Pos", Method, 5},
+ {"(*Scope).String", Method, 5},
+ {"(*Scope).WriteTo", Method, 5},
+ {"(*Selection).Index", Method, 5},
+ {"(*Selection).Indirect", Method, 5},
+ {"(*Selection).Kind", Method, 5},
+ {"(*Selection).Obj", Method, 5},
+ {"(*Selection).Recv", Method, 5},
+ {"(*Selection).String", Method, 5},
+ {"(*Selection).Type", Method, 5},
+ {"(*Signature).Params", Method, 5},
+ {"(*Signature).Recv", Method, 5},
+ {"(*Signature).RecvTypeParams", Method, 18},
+ {"(*Signature).Results", Method, 5},
+ {"(*Signature).String", Method, 5},
+ {"(*Signature).TypeParams", Method, 18},
+ {"(*Signature).Underlying", Method, 5},
+ {"(*Signature).Variadic", Method, 5},
+ {"(*Slice).Elem", Method, 5},
+ {"(*Slice).String", Method, 5},
+ {"(*Slice).Underlying", Method, 5},
+ {"(*StdSizes).Alignof", Method, 5},
+ {"(*StdSizes).Offsetsof", Method, 5},
+ {"(*StdSizes).Sizeof", Method, 5},
+ {"(*Struct).Field", Method, 5},
+ {"(*Struct).NumFields", Method, 5},
+ {"(*Struct).String", Method, 5},
+ {"(*Struct).Tag", Method, 5},
+ {"(*Struct).Underlying", Method, 5},
+ {"(*Term).String", Method, 18},
+ {"(*Term).Tilde", Method, 18},
+ {"(*Term).Type", Method, 18},
+ {"(*Tuple).At", Method, 5},
+ {"(*Tuple).Len", Method, 5},
+ {"(*Tuple).String", Method, 5},
+ {"(*Tuple).Underlying", Method, 5},
+ {"(*TypeList).At", Method, 18},
+ {"(*TypeList).Len", Method, 18},
+ {"(*TypeName).Exported", Method, 5},
+ {"(*TypeName).Id", Method, 5},
+ {"(*TypeName).IsAlias", Method, 9},
+ {"(*TypeName).Name", Method, 5},
+ {"(*TypeName).Parent", Method, 5},
+ {"(*TypeName).Pkg", Method, 5},
+ {"(*TypeName).Pos", Method, 5},
+ {"(*TypeName).String", Method, 5},
+ {"(*TypeName).Type", Method, 5},
+ {"(*TypeParam).Constraint", Method, 18},
+ {"(*TypeParam).Index", Method, 18},
+ {"(*TypeParam).Obj", Method, 18},
+ {"(*TypeParam).SetConstraint", Method, 18},
+ {"(*TypeParam).String", Method, 18},
+ {"(*TypeParam).Underlying", Method, 18},
+ {"(*TypeParamList).At", Method, 18},
+ {"(*TypeParamList).Len", Method, 18},
+ {"(*Union).Len", Method, 18},
+ {"(*Union).String", Method, 18},
+ {"(*Union).Term", Method, 18},
+ {"(*Union).Underlying", Method, 18},
+ {"(*Var).Anonymous", Method, 5},
+ {"(*Var).Embedded", Method, 11},
+ {"(*Var).Exported", Method, 5},
+ {"(*Var).Id", Method, 5},
+ {"(*Var).IsField", Method, 5},
+ {"(*Var).Name", Method, 5},
+ {"(*Var).Origin", Method, 19},
+ {"(*Var).Parent", Method, 5},
+ {"(*Var).Pkg", Method, 5},
+ {"(*Var).Pos", Method, 5},
+ {"(*Var).String", Method, 5},
+ {"(*Var).Type", Method, 5},
+ {"(Checker).ObjectOf", Method, 5},
+ {"(Checker).PkgNameOf", Method, 22},
+ {"(Checker).TypeOf", Method, 5},
+ {"(Error).Error", Method, 5},
+ {"(TypeAndValue).Addressable", Method, 5},
+ {"(TypeAndValue).Assignable", Method, 5},
+ {"(TypeAndValue).HasOk", Method, 5},
+ {"(TypeAndValue).IsBuiltin", Method, 5},
+ {"(TypeAndValue).IsNil", Method, 5},
+ {"(TypeAndValue).IsType", Method, 5},
+ {"(TypeAndValue).IsValue", Method, 5},
+ {"(TypeAndValue).IsVoid", Method, 5},
+ {"Alias", Type, 22},
+ {"ArgumentError", Type, 18},
+ {"ArgumentError.Err", Field, 18},
+ {"ArgumentError.Index", Field, 18},
+ {"Array", Type, 5},
+ {"AssertableTo", Func, 5},
+ {"AssignableTo", Func, 5},
+ {"Basic", Type, 5},
+ {"BasicInfo", Type, 5},
+ {"BasicKind", Type, 5},
+ {"Bool", Const, 5},
+ {"Builtin", Type, 5},
+ {"Byte", Const, 5},
+ {"Chan", Type, 5},
+ {"ChanDir", Type, 5},
+ {"CheckExpr", Func, 13},
+ {"Checker", Type, 5},
+ {"Checker.Info", Field, 5},
+ {"Comparable", Func, 5},
+ {"Complex128", Const, 5},
+ {"Complex64", Const, 5},
+ {"Config", Type, 5},
+ {"Config.Context", Field, 18},
+ {"Config.DisableUnusedImportCheck", Field, 5},
+ {"Config.Error", Field, 5},
+ {"Config.FakeImportC", Field, 5},
+ {"Config.GoVersion", Field, 18},
+ {"Config.IgnoreFuncBodies", Field, 5},
+ {"Config.Importer", Field, 5},
+ {"Config.Sizes", Field, 5},
+ {"Const", Type, 5},
+ {"Context", Type, 18},
+ {"ConvertibleTo", Func, 5},
+ {"DefPredeclaredTestFuncs", Func, 5},
+ {"Default", Func, 8},
+ {"Error", Type, 5},
+ {"Error.Fset", Field, 5},
+ {"Error.Msg", Field, 5},
+ {"Error.Pos", Field, 5},
+ {"Error.Soft", Field, 5},
+ {"Eval", Func, 5},
+ {"ExprString", Func, 5},
+ {"FieldVal", Const, 5},
+ {"Float32", Const, 5},
+ {"Float64", Const, 5},
+ {"Func", Type, 5},
+ {"Id", Func, 5},
+ {"Identical", Func, 5},
+ {"IdenticalIgnoreTags", Func, 8},
+ {"Implements", Func, 5},
+ {"ImportMode", Type, 6},
+ {"Importer", Type, 5},
+ {"ImporterFrom", Type, 6},
+ {"Info", Type, 5},
+ {"Info.Defs", Field, 5},
+ {"Info.FileVersions", Field, 22},
+ {"Info.Implicits", Field, 5},
+ {"Info.InitOrder", Field, 5},
+ {"Info.Instances", Field, 18},
+ {"Info.Scopes", Field, 5},
+ {"Info.Selections", Field, 5},
+ {"Info.Types", Field, 5},
+ {"Info.Uses", Field, 5},
+ {"Initializer", Type, 5},
+ {"Initializer.Lhs", Field, 5},
+ {"Initializer.Rhs", Field, 5},
+ {"Instance", Type, 18},
+ {"Instance.Type", Field, 18},
+ {"Instance.TypeArgs", Field, 18},
+ {"Instantiate", Func, 18},
+ {"Int", Const, 5},
+ {"Int16", Const, 5},
+ {"Int32", Const, 5},
+ {"Int64", Const, 5},
+ {"Int8", Const, 5},
+ {"Interface", Type, 5},
+ {"Invalid", Const, 5},
+ {"IsBoolean", Const, 5},
+ {"IsComplex", Const, 5},
+ {"IsConstType", Const, 5},
+ {"IsFloat", Const, 5},
+ {"IsInteger", Const, 5},
+ {"IsInterface", Func, 5},
+ {"IsNumeric", Const, 5},
+ {"IsOrdered", Const, 5},
+ {"IsString", Const, 5},
+ {"IsUnsigned", Const, 5},
+ {"IsUntyped", Const, 5},
+ {"Label", Type, 5},
+ {"LookupFieldOrMethod", Func, 5},
+ {"Map", Type, 5},
+ {"MethodExpr", Const, 5},
+ {"MethodSet", Type, 5},
+ {"MethodVal", Const, 5},
+ {"MissingMethod", Func, 5},
+ {"Named", Type, 5},
+ {"NewAlias", Func, 22},
+ {"NewArray", Func, 5},
+ {"NewChan", Func, 5},
+ {"NewChecker", Func, 5},
+ {"NewConst", Func, 5},
+ {"NewContext", Func, 18},
+ {"NewField", Func, 5},
+ {"NewFunc", Func, 5},
+ {"NewInterface", Func, 5},
+ {"NewInterfaceType", Func, 11},
+ {"NewLabel", Func, 5},
+ {"NewMap", Func, 5},
+ {"NewMethodSet", Func, 5},
+ {"NewNamed", Func, 5},
+ {"NewPackage", Func, 5},
+ {"NewParam", Func, 5},
+ {"NewPkgName", Func, 5},
+ {"NewPointer", Func, 5},
+ {"NewScope", Func, 5},
+ {"NewSignature", Func, 5},
+ {"NewSignatureType", Func, 18},
+ {"NewSlice", Func, 5},
+ {"NewStruct", Func, 5},
+ {"NewTerm", Func, 18},
+ {"NewTuple", Func, 5},
+ {"NewTypeName", Func, 5},
+ {"NewTypeParam", Func, 18},
+ {"NewUnion", Func, 18},
+ {"NewVar", Func, 5},
+ {"Nil", Type, 5},
+ {"Object", Type, 5},
+ {"ObjectString", Func, 5},
+ {"Package", Type, 5},
+ {"PkgName", Type, 5},
+ {"Pointer", Type, 5},
+ {"Qualifier", Type, 5},
+ {"RecvOnly", Const, 5},
+ {"RelativeTo", Func, 5},
+ {"Rune", Const, 5},
+ {"Satisfies", Func, 20},
+ {"Scope", Type, 5},
+ {"Selection", Type, 5},
+ {"SelectionKind", Type, 5},
+ {"SelectionString", Func, 5},
+ {"SendOnly", Const, 5},
+ {"SendRecv", Const, 5},
+ {"Signature", Type, 5},
+ {"Sizes", Type, 5},
+ {"SizesFor", Func, 9},
+ {"Slice", Type, 5},
+ {"StdSizes", Type, 5},
+ {"StdSizes.MaxAlign", Field, 5},
+ {"StdSizes.WordSize", Field, 5},
+ {"String", Const, 5},
+ {"Struct", Type, 5},
+ {"Term", Type, 18},
+ {"Tuple", Type, 5},
+ {"Typ", Var, 5},
+ {"Type", Type, 5},
+ {"TypeAndValue", Type, 5},
+ {"TypeAndValue.Type", Field, 5},
+ {"TypeAndValue.Value", Field, 5},
+ {"TypeList", Type, 18},
+ {"TypeName", Type, 5},
+ {"TypeParam", Type, 18},
+ {"TypeParamList", Type, 18},
+ {"TypeString", Func, 5},
+ {"Uint", Const, 5},
+ {"Uint16", Const, 5},
+ {"Uint32", Const, 5},
+ {"Uint64", Const, 5},
+ {"Uint8", Const, 5},
+ {"Uintptr", Const, 5},
+ {"Unalias", Func, 22},
+ {"Union", Type, 18},
+ {"Universe", Var, 5},
+ {"Unsafe", Var, 5},
+ {"UnsafePointer", Const, 5},
+ {"UntypedBool", Const, 5},
+ {"UntypedComplex", Const, 5},
+ {"UntypedFloat", Const, 5},
+ {"UntypedInt", Const, 5},
+ {"UntypedNil", Const, 5},
+ {"UntypedRune", Const, 5},
+ {"UntypedString", Const, 5},
+ {"Var", Type, 5},
+ {"WriteExpr", Func, 5},
+ {"WriteSignature", Func, 5},
+ {"WriteType", Func, 5},
+ },
+ "go/version": {
+ {"Compare", Func, 22},
+ {"IsValid", Func, 22},
+ {"Lang", Func, 22},
+ },
+ "hash": {
+ {"Hash", Type, 0},
+ {"Hash32", Type, 0},
+ {"Hash64", Type, 0},
+ },
+ "hash/adler32": {
+ {"Checksum", Func, 0},
+ {"New", Func, 0},
+ {"Size", Const, 0},
+ },
+ "hash/crc32": {
+ {"Castagnoli", Const, 0},
+ {"Checksum", Func, 0},
+ {"ChecksumIEEE", Func, 0},
+ {"IEEE", Const, 0},
+ {"IEEETable", Var, 0},
+ {"Koopman", Const, 0},
+ {"MakeTable", Func, 0},
+ {"New", Func, 0},
+ {"NewIEEE", Func, 0},
+ {"Size", Const, 0},
+ {"Table", Type, 0},
+ {"Update", Func, 0},
+ },
+ "hash/crc64": {
+ {"Checksum", Func, 0},
+ {"ECMA", Const, 0},
+ {"ISO", Const, 0},
+ {"MakeTable", Func, 0},
+ {"New", Func, 0},
+ {"Size", Const, 0},
+ {"Table", Type, 0},
+ {"Update", Func, 0},
+ },
+ "hash/fnv": {
+ {"New128", Func, 9},
+ {"New128a", Func, 9},
+ {"New32", Func, 0},
+ {"New32a", Func, 0},
+ {"New64", Func, 0},
+ {"New64a", Func, 0},
+ },
+ "hash/maphash": {
+ {"(*Hash).BlockSize", Method, 14},
+ {"(*Hash).Reset", Method, 14},
+ {"(*Hash).Seed", Method, 14},
+ {"(*Hash).SetSeed", Method, 14},
+ {"(*Hash).Size", Method, 14},
+ {"(*Hash).Sum", Method, 14},
+ {"(*Hash).Sum64", Method, 14},
+ {"(*Hash).Write", Method, 14},
+ {"(*Hash).WriteByte", Method, 14},
+ {"(*Hash).WriteString", Method, 14},
+ {"Bytes", Func, 19},
+ {"Hash", Type, 14},
+ {"MakeSeed", Func, 14},
+ {"Seed", Type, 14},
+ {"String", Func, 19},
+ },
+ "html": {
+ {"EscapeString", Func, 0},
+ {"UnescapeString", Func, 0},
+ },
+ "html/template": {
+ {"(*Error).Error", Method, 0},
+ {"(*Template).AddParseTree", Method, 0},
+ {"(*Template).Clone", Method, 0},
+ {"(*Template).DefinedTemplates", Method, 6},
+ {"(*Template).Delims", Method, 0},
+ {"(*Template).Execute", Method, 0},
+ {"(*Template).ExecuteTemplate", Method, 0},
+ {"(*Template).Funcs", Method, 0},
+ {"(*Template).Lookup", Method, 0},
+ {"(*Template).Name", Method, 0},
+ {"(*Template).New", Method, 0},
+ {"(*Template).Option", Method, 5},
+ {"(*Template).Parse", Method, 0},
+ {"(*Template).ParseFS", Method, 16},
+ {"(*Template).ParseFiles", Method, 0},
+ {"(*Template).ParseGlob", Method, 0},
+ {"(*Template).Templates", Method, 0},
+ {"CSS", Type, 0},
+ {"ErrAmbigContext", Const, 0},
+ {"ErrBadHTML", Const, 0},
+ {"ErrBranchEnd", Const, 0},
+ {"ErrEndContext", Const, 0},
+ {"ErrJSTemplate", Const, 21},
+ {"ErrNoSuchTemplate", Const, 0},
+ {"ErrOutputContext", Const, 0},
+ {"ErrPartialCharset", Const, 0},
+ {"ErrPartialEscape", Const, 0},
+ {"ErrPredefinedEscaper", Const, 9},
+ {"ErrRangeLoopReentry", Const, 0},
+ {"ErrSlashAmbig", Const, 0},
+ {"Error", Type, 0},
+ {"Error.Description", Field, 0},
+ {"Error.ErrorCode", Field, 0},
+ {"Error.Line", Field, 0},
+ {"Error.Name", Field, 0},
+ {"Error.Node", Field, 4},
+ {"ErrorCode", Type, 0},
+ {"FuncMap", Type, 0},
+ {"HTML", Type, 0},
+ {"HTMLAttr", Type, 0},
+ {"HTMLEscape", Func, 0},
+ {"HTMLEscapeString", Func, 0},
+ {"HTMLEscaper", Func, 0},
+ {"IsTrue", Func, 6},
+ {"JS", Type, 0},
+ {"JSEscape", Func, 0},
+ {"JSEscapeString", Func, 0},
+ {"JSEscaper", Func, 0},
+ {"JSStr", Type, 0},
+ {"Must", Func, 0},
+ {"New", Func, 0},
+ {"OK", Const, 0},
+ {"ParseFS", Func, 16},
+ {"ParseFiles", Func, 0},
+ {"ParseGlob", Func, 0},
+ {"Srcset", Type, 10},
+ {"Template", Type, 0},
+ {"Template.Tree", Field, 2},
+ {"URL", Type, 0},
+ {"URLQueryEscaper", Func, 0},
+ },
+ "image": {
+ {"(*Alpha).AlphaAt", Method, 4},
+ {"(*Alpha).At", Method, 0},
+ {"(*Alpha).Bounds", Method, 0},
+ {"(*Alpha).ColorModel", Method, 0},
+ {"(*Alpha).Opaque", Method, 0},
+ {"(*Alpha).PixOffset", Method, 0},
+ {"(*Alpha).RGBA64At", Method, 17},
+ {"(*Alpha).Set", Method, 0},
+ {"(*Alpha).SetAlpha", Method, 0},
+ {"(*Alpha).SetRGBA64", Method, 17},
+ {"(*Alpha).SubImage", Method, 0},
+ {"(*Alpha16).Alpha16At", Method, 4},
+ {"(*Alpha16).At", Method, 0},
+ {"(*Alpha16).Bounds", Method, 0},
+ {"(*Alpha16).ColorModel", Method, 0},
+ {"(*Alpha16).Opaque", Method, 0},
+ {"(*Alpha16).PixOffset", Method, 0},
+ {"(*Alpha16).RGBA64At", Method, 17},
+ {"(*Alpha16).Set", Method, 0},
+ {"(*Alpha16).SetAlpha16", Method, 0},
+ {"(*Alpha16).SetRGBA64", Method, 17},
+ {"(*Alpha16).SubImage", Method, 0},
+ {"(*CMYK).At", Method, 5},
+ {"(*CMYK).Bounds", Method, 5},
+ {"(*CMYK).CMYKAt", Method, 5},
+ {"(*CMYK).ColorModel", Method, 5},
+ {"(*CMYK).Opaque", Method, 5},
+ {"(*CMYK).PixOffset", Method, 5},
+ {"(*CMYK).RGBA64At", Method, 17},
+ {"(*CMYK).Set", Method, 5},
+ {"(*CMYK).SetCMYK", Method, 5},
+ {"(*CMYK).SetRGBA64", Method, 17},
+ {"(*CMYK).SubImage", Method, 5},
+ {"(*Gray).At", Method, 0},
+ {"(*Gray).Bounds", Method, 0},
+ {"(*Gray).ColorModel", Method, 0},
+ {"(*Gray).GrayAt", Method, 4},
+ {"(*Gray).Opaque", Method, 0},
+ {"(*Gray).PixOffset", Method, 0},
+ {"(*Gray).RGBA64At", Method, 17},
+ {"(*Gray).Set", Method, 0},
+ {"(*Gray).SetGray", Method, 0},
+ {"(*Gray).SetRGBA64", Method, 17},
+ {"(*Gray).SubImage", Method, 0},
+ {"(*Gray16).At", Method, 0},
+ {"(*Gray16).Bounds", Method, 0},
+ {"(*Gray16).ColorModel", Method, 0},
+ {"(*Gray16).Gray16At", Method, 4},
+ {"(*Gray16).Opaque", Method, 0},
+ {"(*Gray16).PixOffset", Method, 0},
+ {"(*Gray16).RGBA64At", Method, 17},
+ {"(*Gray16).Set", Method, 0},
+ {"(*Gray16).SetGray16", Method, 0},
+ {"(*Gray16).SetRGBA64", Method, 17},
+ {"(*Gray16).SubImage", Method, 0},
+ {"(*NRGBA).At", Method, 0},
+ {"(*NRGBA).Bounds", Method, 0},
+ {"(*NRGBA).ColorModel", Method, 0},
+ {"(*NRGBA).NRGBAAt", Method, 4},
+ {"(*NRGBA).Opaque", Method, 0},
+ {"(*NRGBA).PixOffset", Method, 0},
+ {"(*NRGBA).RGBA64At", Method, 17},
+ {"(*NRGBA).Set", Method, 0},
+ {"(*NRGBA).SetNRGBA", Method, 0},
+ {"(*NRGBA).SetRGBA64", Method, 17},
+ {"(*NRGBA).SubImage", Method, 0},
+ {"(*NRGBA64).At", Method, 0},
+ {"(*NRGBA64).Bounds", Method, 0},
+ {"(*NRGBA64).ColorModel", Method, 0},
+ {"(*NRGBA64).NRGBA64At", Method, 4},
+ {"(*NRGBA64).Opaque", Method, 0},
+ {"(*NRGBA64).PixOffset", Method, 0},
+ {"(*NRGBA64).RGBA64At", Method, 17},
+ {"(*NRGBA64).Set", Method, 0},
+ {"(*NRGBA64).SetNRGBA64", Method, 0},
+ {"(*NRGBA64).SetRGBA64", Method, 17},
+ {"(*NRGBA64).SubImage", Method, 0},
+ {"(*NYCbCrA).AOffset", Method, 6},
+ {"(*NYCbCrA).At", Method, 6},
+ {"(*NYCbCrA).Bounds", Method, 6},
+ {"(*NYCbCrA).COffset", Method, 6},
+ {"(*NYCbCrA).ColorModel", Method, 6},
+ {"(*NYCbCrA).NYCbCrAAt", Method, 6},
+ {"(*NYCbCrA).Opaque", Method, 6},
+ {"(*NYCbCrA).RGBA64At", Method, 17},
+ {"(*NYCbCrA).SubImage", Method, 6},
+ {"(*NYCbCrA).YCbCrAt", Method, 6},
+ {"(*NYCbCrA).YOffset", Method, 6},
+ {"(*Paletted).At", Method, 0},
+ {"(*Paletted).Bounds", Method, 0},
+ {"(*Paletted).ColorIndexAt", Method, 0},
+ {"(*Paletted).ColorModel", Method, 0},
+ {"(*Paletted).Opaque", Method, 0},
+ {"(*Paletted).PixOffset", Method, 0},
+ {"(*Paletted).RGBA64At", Method, 17},
+ {"(*Paletted).Set", Method, 0},
+ {"(*Paletted).SetColorIndex", Method, 0},
+ {"(*Paletted).SetRGBA64", Method, 17},
+ {"(*Paletted).SubImage", Method, 0},
+ {"(*RGBA).At", Method, 0},
+ {"(*RGBA).Bounds", Method, 0},
+ {"(*RGBA).ColorModel", Method, 0},
+ {"(*RGBA).Opaque", Method, 0},
+ {"(*RGBA).PixOffset", Method, 0},
+ {"(*RGBA).RGBA64At", Method, 17},
+ {"(*RGBA).RGBAAt", Method, 4},
+ {"(*RGBA).Set", Method, 0},
+ {"(*RGBA).SetRGBA", Method, 0},
+ {"(*RGBA).SetRGBA64", Method, 17},
+ {"(*RGBA).SubImage", Method, 0},
+ {"(*RGBA64).At", Method, 0},
+ {"(*RGBA64).Bounds", Method, 0},
+ {"(*RGBA64).ColorModel", Method, 0},
+ {"(*RGBA64).Opaque", Method, 0},
+ {"(*RGBA64).PixOffset", Method, 0},
+ {"(*RGBA64).RGBA64At", Method, 4},
+ {"(*RGBA64).Set", Method, 0},
+ {"(*RGBA64).SetRGBA64", Method, 0},
+ {"(*RGBA64).SubImage", Method, 0},
+ {"(*Uniform).At", Method, 0},
+ {"(*Uniform).Bounds", Method, 0},
+ {"(*Uniform).ColorModel", Method, 0},
+ {"(*Uniform).Convert", Method, 0},
+ {"(*Uniform).Opaque", Method, 0},
+ {"(*Uniform).RGBA", Method, 0},
+ {"(*Uniform).RGBA64At", Method, 17},
+ {"(*YCbCr).At", Method, 0},
+ {"(*YCbCr).Bounds", Method, 0},
+ {"(*YCbCr).COffset", Method, 0},
+ {"(*YCbCr).ColorModel", Method, 0},
+ {"(*YCbCr).Opaque", Method, 0},
+ {"(*YCbCr).RGBA64At", Method, 17},
+ {"(*YCbCr).SubImage", Method, 0},
+ {"(*YCbCr).YCbCrAt", Method, 4},
+ {"(*YCbCr).YOffset", Method, 0},
+ {"(Point).Add", Method, 0},
+ {"(Point).Div", Method, 0},
+ {"(Point).Eq", Method, 0},
+ {"(Point).In", Method, 0},
+ {"(Point).Mod", Method, 0},
+ {"(Point).Mul", Method, 0},
+ {"(Point).String", Method, 0},
+ {"(Point).Sub", Method, 0},
+ {"(Rectangle).Add", Method, 0},
+ {"(Rectangle).At", Method, 5},
+ {"(Rectangle).Bounds", Method, 5},
+ {"(Rectangle).Canon", Method, 0},
+ {"(Rectangle).ColorModel", Method, 5},
+ {"(Rectangle).Dx", Method, 0},
+ {"(Rectangle).Dy", Method, 0},
+ {"(Rectangle).Empty", Method, 0},
+ {"(Rectangle).Eq", Method, 0},
+ {"(Rectangle).In", Method, 0},
+ {"(Rectangle).Inset", Method, 0},
+ {"(Rectangle).Intersect", Method, 0},
+ {"(Rectangle).Overlaps", Method, 0},
+ {"(Rectangle).RGBA64At", Method, 17},
+ {"(Rectangle).Size", Method, 0},
+ {"(Rectangle).String", Method, 0},
+ {"(Rectangle).Sub", Method, 0},
+ {"(Rectangle).Union", Method, 0},
+ {"(YCbCrSubsampleRatio).String", Method, 0},
+ {"Alpha", Type, 0},
+ {"Alpha.Pix", Field, 0},
+ {"Alpha.Rect", Field, 0},
+ {"Alpha.Stride", Field, 0},
+ {"Alpha16", Type, 0},
+ {"Alpha16.Pix", Field, 0},
+ {"Alpha16.Rect", Field, 0},
+ {"Alpha16.Stride", Field, 0},
+ {"Black", Var, 0},
+ {"CMYK", Type, 5},
+ {"CMYK.Pix", Field, 5},
+ {"CMYK.Rect", Field, 5},
+ {"CMYK.Stride", Field, 5},
+ {"Config", Type, 0},
+ {"Config.ColorModel", Field, 0},
+ {"Config.Height", Field, 0},
+ {"Config.Width", Field, 0},
+ {"Decode", Func, 0},
+ {"DecodeConfig", Func, 0},
+ {"ErrFormat", Var, 0},
+ {"Gray", Type, 0},
+ {"Gray.Pix", Field, 0},
+ {"Gray.Rect", Field, 0},
+ {"Gray.Stride", Field, 0},
+ {"Gray16", Type, 0},
+ {"Gray16.Pix", Field, 0},
+ {"Gray16.Rect", Field, 0},
+ {"Gray16.Stride", Field, 0},
+ {"Image", Type, 0},
+ {"NRGBA", Type, 0},
+ {"NRGBA.Pix", Field, 0},
+ {"NRGBA.Rect", Field, 0},
+ {"NRGBA.Stride", Field, 0},
+ {"NRGBA64", Type, 0},
+ {"NRGBA64.Pix", Field, 0},
+ {"NRGBA64.Rect", Field, 0},
+ {"NRGBA64.Stride", Field, 0},
+ {"NYCbCrA", Type, 6},
+ {"NYCbCrA.A", Field, 6},
+ {"NYCbCrA.AStride", Field, 6},
+ {"NYCbCrA.YCbCr", Field, 6},
+ {"NewAlpha", Func, 0},
+ {"NewAlpha16", Func, 0},
+ {"NewCMYK", Func, 5},
+ {"NewGray", Func, 0},
+ {"NewGray16", Func, 0},
+ {"NewNRGBA", Func, 0},
+ {"NewNRGBA64", Func, 0},
+ {"NewNYCbCrA", Func, 6},
+ {"NewPaletted", Func, 0},
+ {"NewRGBA", Func, 0},
+ {"NewRGBA64", Func, 0},
+ {"NewUniform", Func, 0},
+ {"NewYCbCr", Func, 0},
+ {"Opaque", Var, 0},
+ {"Paletted", Type, 0},
+ {"Paletted.Palette", Field, 0},
+ {"Paletted.Pix", Field, 0},
+ {"Paletted.Rect", Field, 0},
+ {"Paletted.Stride", Field, 0},
+ {"PalettedImage", Type, 0},
+ {"Point", Type, 0},
+ {"Point.X", Field, 0},
+ {"Point.Y", Field, 0},
+ {"Pt", Func, 0},
+ {"RGBA", Type, 0},
+ {"RGBA.Pix", Field, 0},
+ {"RGBA.Rect", Field, 0},
+ {"RGBA.Stride", Field, 0},
+ {"RGBA64", Type, 0},
+ {"RGBA64.Pix", Field, 0},
+ {"RGBA64.Rect", Field, 0},
+ {"RGBA64.Stride", Field, 0},
+ {"RGBA64Image", Type, 17},
+ {"Rect", Func, 0},
+ {"Rectangle", Type, 0},
+ {"Rectangle.Max", Field, 0},
+ {"Rectangle.Min", Field, 0},
+ {"RegisterFormat", Func, 0},
+ {"Transparent", Var, 0},
+ {"Uniform", Type, 0},
+ {"Uniform.C", Field, 0},
+ {"White", Var, 0},
+ {"YCbCr", Type, 0},
+ {"YCbCr.CStride", Field, 0},
+ {"YCbCr.Cb", Field, 0},
+ {"YCbCr.Cr", Field, 0},
+ {"YCbCr.Rect", Field, 0},
+ {"YCbCr.SubsampleRatio", Field, 0},
+ {"YCbCr.Y", Field, 0},
+ {"YCbCr.YStride", Field, 0},
+ {"YCbCrSubsampleRatio", Type, 0},
+ {"YCbCrSubsampleRatio410", Const, 5},
+ {"YCbCrSubsampleRatio411", Const, 5},
+ {"YCbCrSubsampleRatio420", Const, 0},
+ {"YCbCrSubsampleRatio422", Const, 0},
+ {"YCbCrSubsampleRatio440", Const, 1},
+ {"YCbCrSubsampleRatio444", Const, 0},
+ {"ZP", Var, 0},
+ {"ZR", Var, 0},
+ },
+ "image/color": {
+ {"(Alpha).RGBA", Method, 0},
+ {"(Alpha16).RGBA", Method, 0},
+ {"(CMYK).RGBA", Method, 5},
+ {"(Gray).RGBA", Method, 0},
+ {"(Gray16).RGBA", Method, 0},
+ {"(NRGBA).RGBA", Method, 0},
+ {"(NRGBA64).RGBA", Method, 0},
+ {"(NYCbCrA).RGBA", Method, 6},
+ {"(Palette).Convert", Method, 0},
+ {"(Palette).Index", Method, 0},
+ {"(RGBA).RGBA", Method, 0},
+ {"(RGBA64).RGBA", Method, 0},
+ {"(YCbCr).RGBA", Method, 0},
+ {"Alpha", Type, 0},
+ {"Alpha.A", Field, 0},
+ {"Alpha16", Type, 0},
+ {"Alpha16.A", Field, 0},
+ {"Alpha16Model", Var, 0},
+ {"AlphaModel", Var, 0},
+ {"Black", Var, 0},
+ {"CMYK", Type, 5},
+ {"CMYK.C", Field, 5},
+ {"CMYK.K", Field, 5},
+ {"CMYK.M", Field, 5},
+ {"CMYK.Y", Field, 5},
+ {"CMYKModel", Var, 5},
+ {"CMYKToRGB", Func, 5},
+ {"Color", Type, 0},
+ {"Gray", Type, 0},
+ {"Gray.Y", Field, 0},
+ {"Gray16", Type, 0},
+ {"Gray16.Y", Field, 0},
+ {"Gray16Model", Var, 0},
+ {"GrayModel", Var, 0},
+ {"Model", Type, 0},
+ {"ModelFunc", Func, 0},
+ {"NRGBA", Type, 0},
+ {"NRGBA.A", Field, 0},
+ {"NRGBA.B", Field, 0},
+ {"NRGBA.G", Field, 0},
+ {"NRGBA.R", Field, 0},
+ {"NRGBA64", Type, 0},
+ {"NRGBA64.A", Field, 0},
+ {"NRGBA64.B", Field, 0},
+ {"NRGBA64.G", Field, 0},
+ {"NRGBA64.R", Field, 0},
+ {"NRGBA64Model", Var, 0},
+ {"NRGBAModel", Var, 0},
+ {"NYCbCrA", Type, 6},
+ {"NYCbCrA.A", Field, 6},
+ {"NYCbCrA.YCbCr", Field, 6},
+ {"NYCbCrAModel", Var, 6},
+ {"Opaque", Var, 0},
+ {"Palette", Type, 0},
+ {"RGBA", Type, 0},
+ {"RGBA.A", Field, 0},
+ {"RGBA.B", Field, 0},
+ {"RGBA.G", Field, 0},
+ {"RGBA.R", Field, 0},
+ {"RGBA64", Type, 0},
+ {"RGBA64.A", Field, 0},
+ {"RGBA64.B", Field, 0},
+ {"RGBA64.G", Field, 0},
+ {"RGBA64.R", Field, 0},
+ {"RGBA64Model", Var, 0},
+ {"RGBAModel", Var, 0},
+ {"RGBToCMYK", Func, 5},
+ {"RGBToYCbCr", Func, 0},
+ {"Transparent", Var, 0},
+ {"White", Var, 0},
+ {"YCbCr", Type, 0},
+ {"YCbCr.Cb", Field, 0},
+ {"YCbCr.Cr", Field, 0},
+ {"YCbCr.Y", Field, 0},
+ {"YCbCrModel", Var, 0},
+ {"YCbCrToRGB", Func, 0},
+ },
+ "image/color/palette": {
+ {"Plan9", Var, 2},
+ {"WebSafe", Var, 2},
+ },
+ "image/draw": {
+ {"(Op).Draw", Method, 2},
+ {"Draw", Func, 0},
+ {"DrawMask", Func, 0},
+ {"Drawer", Type, 2},
+ {"FloydSteinberg", Var, 2},
+ {"Image", Type, 0},
+ {"Op", Type, 0},
+ {"Over", Const, 0},
+ {"Quantizer", Type, 2},
+ {"RGBA64Image", Type, 17},
+ {"Src", Const, 0},
+ },
+ "image/gif": {
+ {"Decode", Func, 0},
+ {"DecodeAll", Func, 0},
+ {"DecodeConfig", Func, 0},
+ {"DisposalBackground", Const, 5},
+ {"DisposalNone", Const, 5},
+ {"DisposalPrevious", Const, 5},
+ {"Encode", Func, 2},
+ {"EncodeAll", Func, 2},
+ {"GIF", Type, 0},
+ {"GIF.BackgroundIndex", Field, 5},
+ {"GIF.Config", Field, 5},
+ {"GIF.Delay", Field, 0},
+ {"GIF.Disposal", Field, 5},
+ {"GIF.Image", Field, 0},
+ {"GIF.LoopCount", Field, 0},
+ {"Options", Type, 2},
+ {"Options.Drawer", Field, 2},
+ {"Options.NumColors", Field, 2},
+ {"Options.Quantizer", Field, 2},
+ },
+ "image/jpeg": {
+ {"(FormatError).Error", Method, 0},
+ {"(UnsupportedError).Error", Method, 0},
+ {"Decode", Func, 0},
+ {"DecodeConfig", Func, 0},
+ {"DefaultQuality", Const, 0},
+ {"Encode", Func, 0},
+ {"FormatError", Type, 0},
+ {"Options", Type, 0},
+ {"Options.Quality", Field, 0},
+ {"Reader", Type, 0},
+ {"UnsupportedError", Type, 0},
+ },
+ "image/png": {
+ {"(*Encoder).Encode", Method, 4},
+ {"(FormatError).Error", Method, 0},
+ {"(UnsupportedError).Error", Method, 0},
+ {"BestCompression", Const, 4},
+ {"BestSpeed", Const, 4},
+ {"CompressionLevel", Type, 4},
+ {"Decode", Func, 0},
+ {"DecodeConfig", Func, 0},
+ {"DefaultCompression", Const, 4},
+ {"Encode", Func, 0},
+ {"Encoder", Type, 4},
+ {"Encoder.BufferPool", Field, 9},
+ {"Encoder.CompressionLevel", Field, 4},
+ {"EncoderBuffer", Type, 9},
+ {"EncoderBufferPool", Type, 9},
+ {"FormatError", Type, 0},
+ {"NoCompression", Const, 4},
+ {"UnsupportedError", Type, 0},
+ },
+ "index/suffixarray": {
+ {"(*Index).Bytes", Method, 0},
+ {"(*Index).FindAllIndex", Method, 0},
+ {"(*Index).Lookup", Method, 0},
+ {"(*Index).Read", Method, 0},
+ {"(*Index).Write", Method, 0},
+ {"Index", Type, 0},
+ {"New", Func, 0},
+ },
+ "io": {
+ {"(*LimitedReader).Read", Method, 0},
+ {"(*OffsetWriter).Seek", Method, 20},
+ {"(*OffsetWriter).Write", Method, 20},
+ {"(*OffsetWriter).WriteAt", Method, 20},
+ {"(*PipeReader).Close", Method, 0},
+ {"(*PipeReader).CloseWithError", Method, 0},
+ {"(*PipeReader).Read", Method, 0},
+ {"(*PipeWriter).Close", Method, 0},
+ {"(*PipeWriter).CloseWithError", Method, 0},
+ {"(*PipeWriter).Write", Method, 0},
+ {"(*SectionReader).Outer", Method, 22},
+ {"(*SectionReader).Read", Method, 0},
+ {"(*SectionReader).ReadAt", Method, 0},
+ {"(*SectionReader).Seek", Method, 0},
+ {"(*SectionReader).Size", Method, 0},
+ {"ByteReader", Type, 0},
+ {"ByteScanner", Type, 0},
+ {"ByteWriter", Type, 1},
+ {"Closer", Type, 0},
+ {"Copy", Func, 0},
+ {"CopyBuffer", Func, 5},
+ {"CopyN", Func, 0},
+ {"Discard", Var, 16},
+ {"EOF", Var, 0},
+ {"ErrClosedPipe", Var, 0},
+ {"ErrNoProgress", Var, 1},
+ {"ErrShortBuffer", Var, 0},
+ {"ErrShortWrite", Var, 0},
+ {"ErrUnexpectedEOF", Var, 0},
+ {"LimitReader", Func, 0},
+ {"LimitedReader", Type, 0},
+ {"LimitedReader.N", Field, 0},
+ {"LimitedReader.R", Field, 0},
+ {"MultiReader", Func, 0},
+ {"MultiWriter", Func, 0},
+ {"NewOffsetWriter", Func, 20},
+ {"NewSectionReader", Func, 0},
+ {"NopCloser", Func, 16},
+ {"OffsetWriter", Type, 20},
+ {"Pipe", Func, 0},
+ {"PipeReader", Type, 0},
+ {"PipeWriter", Type, 0},
+ {"ReadAll", Func, 16},
+ {"ReadAtLeast", Func, 0},
+ {"ReadCloser", Type, 0},
+ {"ReadFull", Func, 0},
+ {"ReadSeekCloser", Type, 16},
+ {"ReadSeeker", Type, 0},
+ {"ReadWriteCloser", Type, 0},
+ {"ReadWriteSeeker", Type, 0},
+ {"ReadWriter", Type, 0},
+ {"Reader", Type, 0},
+ {"ReaderAt", Type, 0},
+ {"ReaderFrom", Type, 0},
+ {"RuneReader", Type, 0},
+ {"RuneScanner", Type, 0},
+ {"SectionReader", Type, 0},
+ {"SeekCurrent", Const, 7},
+ {"SeekEnd", Const, 7},
+ {"SeekStart", Const, 7},
+ {"Seeker", Type, 0},
+ {"StringWriter", Type, 12},
+ {"TeeReader", Func, 0},
+ {"WriteCloser", Type, 0},
+ {"WriteSeeker", Type, 0},
+ {"WriteString", Func, 0},
+ {"Writer", Type, 0},
+ {"WriterAt", Type, 0},
+ {"WriterTo", Type, 0},
+ },
+ "io/fs": {
+ {"(*PathError).Error", Method, 16},
+ {"(*PathError).Timeout", Method, 16},
+ {"(*PathError).Unwrap", Method, 16},
+ {"(FileMode).IsDir", Method, 16},
+ {"(FileMode).IsRegular", Method, 16},
+ {"(FileMode).Perm", Method, 16},
+ {"(FileMode).String", Method, 16},
+ {"(FileMode).Type", Method, 16},
+ {"DirEntry", Type, 16},
+ {"ErrClosed", Var, 16},
+ {"ErrExist", Var, 16},
+ {"ErrInvalid", Var, 16},
+ {"ErrNotExist", Var, 16},
+ {"ErrPermission", Var, 16},
+ {"FS", Type, 16},
+ {"File", Type, 16},
+ {"FileInfo", Type, 16},
+ {"FileInfoToDirEntry", Func, 17},
+ {"FileMode", Type, 16},
+ {"FormatDirEntry", Func, 21},
+ {"FormatFileInfo", Func, 21},
+ {"Glob", Func, 16},
+ {"GlobFS", Type, 16},
+ {"ModeAppend", Const, 16},
+ {"ModeCharDevice", Const, 16},
+ {"ModeDevice", Const, 16},
+ {"ModeDir", Const, 16},
+ {"ModeExclusive", Const, 16},
+ {"ModeIrregular", Const, 16},
+ {"ModeNamedPipe", Const, 16},
+ {"ModePerm", Const, 16},
+ {"ModeSetgid", Const, 16},
+ {"ModeSetuid", Const, 16},
+ {"ModeSocket", Const, 16},
+ {"ModeSticky", Const, 16},
+ {"ModeSymlink", Const, 16},
+ {"ModeTemporary", Const, 16},
+ {"ModeType", Const, 16},
+ {"PathError", Type, 16},
+ {"PathError.Err", Field, 16},
+ {"PathError.Op", Field, 16},
+ {"PathError.Path", Field, 16},
+ {"ReadDir", Func, 16},
+ {"ReadDirFS", Type, 16},
+ {"ReadDirFile", Type, 16},
+ {"ReadFile", Func, 16},
+ {"ReadFileFS", Type, 16},
+ {"SkipAll", Var, 20},
+ {"SkipDir", Var, 16},
+ {"Stat", Func, 16},
+ {"StatFS", Type, 16},
+ {"Sub", Func, 16},
+ {"SubFS", Type, 16},
+ {"ValidPath", Func, 16},
+ {"WalkDir", Func, 16},
+ {"WalkDirFunc", Type, 16},
+ },
+ "io/ioutil": {
+ {"Discard", Var, 0},
+ {"NopCloser", Func, 0},
+ {"ReadAll", Func, 0},
+ {"ReadDir", Func, 0},
+ {"ReadFile", Func, 0},
+ {"TempDir", Func, 0},
+ {"TempFile", Func, 0},
+ {"WriteFile", Func, 0},
+ },
+ "log": {
+ {"(*Logger).Fatal", Method, 0},
+ {"(*Logger).Fatalf", Method, 0},
+ {"(*Logger).Fatalln", Method, 0},
+ {"(*Logger).Flags", Method, 0},
+ {"(*Logger).Output", Method, 0},
+ {"(*Logger).Panic", Method, 0},
+ {"(*Logger).Panicf", Method, 0},
+ {"(*Logger).Panicln", Method, 0},
+ {"(*Logger).Prefix", Method, 0},
+ {"(*Logger).Print", Method, 0},
+ {"(*Logger).Printf", Method, 0},
+ {"(*Logger).Println", Method, 0},
+ {"(*Logger).SetFlags", Method, 0},
+ {"(*Logger).SetOutput", Method, 5},
+ {"(*Logger).SetPrefix", Method, 0},
+ {"(*Logger).Writer", Method, 12},
+ {"Default", Func, 16},
+ {"Fatal", Func, 0},
+ {"Fatalf", Func, 0},
+ {"Fatalln", Func, 0},
+ {"Flags", Func, 0},
+ {"LUTC", Const, 5},
+ {"Ldate", Const, 0},
+ {"Llongfile", Const, 0},
+ {"Lmicroseconds", Const, 0},
+ {"Lmsgprefix", Const, 14},
+ {"Logger", Type, 0},
+ {"Lshortfile", Const, 0},
+ {"LstdFlags", Const, 0},
+ {"Ltime", Const, 0},
+ {"New", Func, 0},
+ {"Output", Func, 5},
+ {"Panic", Func, 0},
+ {"Panicf", Func, 0},
+ {"Panicln", Func, 0},
+ {"Prefix", Func, 0},
+ {"Print", Func, 0},
+ {"Printf", Func, 0},
+ {"Println", Func, 0},
+ {"SetFlags", Func, 0},
+ {"SetOutput", Func, 0},
+ {"SetPrefix", Func, 0},
+ {"Writer", Func, 13},
+ },
+ "log/slog": {
+ {"(*JSONHandler).Enabled", Method, 21},
+ {"(*JSONHandler).Handle", Method, 21},
+ {"(*JSONHandler).WithAttrs", Method, 21},
+ {"(*JSONHandler).WithGroup", Method, 21},
+ {"(*Level).UnmarshalJSON", Method, 21},
+ {"(*Level).UnmarshalText", Method, 21},
+ {"(*LevelVar).Level", Method, 21},
+ {"(*LevelVar).MarshalText", Method, 21},
+ {"(*LevelVar).Set", Method, 21},
+ {"(*LevelVar).String", Method, 21},
+ {"(*LevelVar).UnmarshalText", Method, 21},
+ {"(*Logger).Debug", Method, 21},
+ {"(*Logger).DebugContext", Method, 21},
+ {"(*Logger).Enabled", Method, 21},
+ {"(*Logger).Error", Method, 21},
+ {"(*Logger).ErrorContext", Method, 21},
+ {"(*Logger).Handler", Method, 21},
+ {"(*Logger).Info", Method, 21},
+ {"(*Logger).InfoContext", Method, 21},
+ {"(*Logger).Log", Method, 21},
+ {"(*Logger).LogAttrs", Method, 21},
+ {"(*Logger).Warn", Method, 21},
+ {"(*Logger).WarnContext", Method, 21},
+ {"(*Logger).With", Method, 21},
+ {"(*Logger).WithGroup", Method, 21},
+ {"(*Record).Add", Method, 21},
+ {"(*Record).AddAttrs", Method, 21},
+ {"(*TextHandler).Enabled", Method, 21},
+ {"(*TextHandler).Handle", Method, 21},
+ {"(*TextHandler).WithAttrs", Method, 21},
+ {"(*TextHandler).WithGroup", Method, 21},
+ {"(Attr).Equal", Method, 21},
+ {"(Attr).String", Method, 21},
+ {"(Kind).String", Method, 21},
+ {"(Level).Level", Method, 21},
+ {"(Level).MarshalJSON", Method, 21},
+ {"(Level).MarshalText", Method, 21},
+ {"(Level).String", Method, 21},
+ {"(Record).Attrs", Method, 21},
+ {"(Record).Clone", Method, 21},
+ {"(Record).NumAttrs", Method, 21},
+ {"(Value).Any", Method, 21},
+ {"(Value).Bool", Method, 21},
+ {"(Value).Duration", Method, 21},
+ {"(Value).Equal", Method, 21},
+ {"(Value).Float64", Method, 21},
+ {"(Value).Group", Method, 21},
+ {"(Value).Int64", Method, 21},
+ {"(Value).Kind", Method, 21},
+ {"(Value).LogValuer", Method, 21},
+ {"(Value).Resolve", Method, 21},
+ {"(Value).String", Method, 21},
+ {"(Value).Time", Method, 21},
+ {"(Value).Uint64", Method, 21},
+ {"Any", Func, 21},
+ {"AnyValue", Func, 21},
+ {"Attr", Type, 21},
+ {"Attr.Key", Field, 21},
+ {"Attr.Value", Field, 21},
+ {"Bool", Func, 21},
+ {"BoolValue", Func, 21},
+ {"Debug", Func, 21},
+ {"DebugContext", Func, 21},
+ {"Default", Func, 21},
+ {"Duration", Func, 21},
+ {"DurationValue", Func, 21},
+ {"Error", Func, 21},
+ {"ErrorContext", Func, 21},
+ {"Float64", Func, 21},
+ {"Float64Value", Func, 21},
+ {"Group", Func, 21},
+ {"GroupValue", Func, 21},
+ {"Handler", Type, 21},
+ {"HandlerOptions", Type, 21},
+ {"HandlerOptions.AddSource", Field, 21},
+ {"HandlerOptions.Level", Field, 21},
+ {"HandlerOptions.ReplaceAttr", Field, 21},
+ {"Info", Func, 21},
+ {"InfoContext", Func, 21},
+ {"Int", Func, 21},
+ {"Int64", Func, 21},
+ {"Int64Value", Func, 21},
+ {"IntValue", Func, 21},
+ {"JSONHandler", Type, 21},
+ {"Kind", Type, 21},
+ {"KindAny", Const, 21},
+ {"KindBool", Const, 21},
+ {"KindDuration", Const, 21},
+ {"KindFloat64", Const, 21},
+ {"KindGroup", Const, 21},
+ {"KindInt64", Const, 21},
+ {"KindLogValuer", Const, 21},
+ {"KindString", Const, 21},
+ {"KindTime", Const, 21},
+ {"KindUint64", Const, 21},
+ {"Level", Type, 21},
+ {"LevelDebug", Const, 21},
+ {"LevelError", Const, 21},
+ {"LevelInfo", Const, 21},
+ {"LevelKey", Const, 21},
+ {"LevelVar", Type, 21},
+ {"LevelWarn", Const, 21},
+ {"Leveler", Type, 21},
+ {"Log", Func, 21},
+ {"LogAttrs", Func, 21},
+ {"LogValuer", Type, 21},
+ {"Logger", Type, 21},
+ {"MessageKey", Const, 21},
+ {"New", Func, 21},
+ {"NewJSONHandler", Func, 21},
+ {"NewLogLogger", Func, 21},
+ {"NewRecord", Func, 21},
+ {"NewTextHandler", Func, 21},
+ {"Record", Type, 21},
+ {"Record.Level", Field, 21},
+ {"Record.Message", Field, 21},
+ {"Record.PC", Field, 21},
+ {"Record.Time", Field, 21},
+ {"SetDefault", Func, 21},
+ {"SetLogLoggerLevel", Func, 22},
+ {"Source", Type, 21},
+ {"Source.File", Field, 21},
+ {"Source.Function", Field, 21},
+ {"Source.Line", Field, 21},
+ {"SourceKey", Const, 21},
+ {"String", Func, 21},
+ {"StringValue", Func, 21},
+ {"TextHandler", Type, 21},
+ {"Time", Func, 21},
+ {"TimeKey", Const, 21},
+ {"TimeValue", Func, 21},
+ {"Uint64", Func, 21},
+ {"Uint64Value", Func, 21},
+ {"Value", Type, 21},
+ {"Warn", Func, 21},
+ {"WarnContext", Func, 21},
+ {"With", Func, 21},
+ },
+ "log/syslog": {
+ {"(*Writer).Alert", Method, 0},
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).Crit", Method, 0},
+ {"(*Writer).Debug", Method, 0},
+ {"(*Writer).Emerg", Method, 0},
+ {"(*Writer).Err", Method, 0},
+ {"(*Writer).Info", Method, 0},
+ {"(*Writer).Notice", Method, 0},
+ {"(*Writer).Warning", Method, 0},
+ {"(*Writer).Write", Method, 0},
+ {"Dial", Func, 0},
+ {"LOG_ALERT", Const, 0},
+ {"LOG_AUTH", Const, 1},
+ {"LOG_AUTHPRIV", Const, 1},
+ {"LOG_CRIT", Const, 0},
+ {"LOG_CRON", Const, 1},
+ {"LOG_DAEMON", Const, 1},
+ {"LOG_DEBUG", Const, 0},
+ {"LOG_EMERG", Const, 0},
+ {"LOG_ERR", Const, 0},
+ {"LOG_FTP", Const, 1},
+ {"LOG_INFO", Const, 0},
+ {"LOG_KERN", Const, 1},
+ {"LOG_LOCAL0", Const, 1},
+ {"LOG_LOCAL1", Const, 1},
+ {"LOG_LOCAL2", Const, 1},
+ {"LOG_LOCAL3", Const, 1},
+ {"LOG_LOCAL4", Const, 1},
+ {"LOG_LOCAL5", Const, 1},
+ {"LOG_LOCAL6", Const, 1},
+ {"LOG_LOCAL7", Const, 1},
+ {"LOG_LPR", Const, 1},
+ {"LOG_MAIL", Const, 1},
+ {"LOG_NEWS", Const, 1},
+ {"LOG_NOTICE", Const, 0},
+ {"LOG_SYSLOG", Const, 1},
+ {"LOG_USER", Const, 1},
+ {"LOG_UUCP", Const, 1},
+ {"LOG_WARNING", Const, 0},
+ {"New", Func, 0},
+ {"NewLogger", Func, 0},
+ {"Priority", Type, 0},
+ {"Writer", Type, 0},
+ },
+ "maps": {
+ {"Clone", Func, 21},
+ {"Copy", Func, 21},
+ {"DeleteFunc", Func, 21},
+ {"Equal", Func, 21},
+ {"EqualFunc", Func, 21},
+ },
+ "math": {
+ {"Abs", Func, 0},
+ {"Acos", Func, 0},
+ {"Acosh", Func, 0},
+ {"Asin", Func, 0},
+ {"Asinh", Func, 0},
+ {"Atan", Func, 0},
+ {"Atan2", Func, 0},
+ {"Atanh", Func, 0},
+ {"Cbrt", Func, 0},
+ {"Ceil", Func, 0},
+ {"Copysign", Func, 0},
+ {"Cos", Func, 0},
+ {"Cosh", Func, 0},
+ {"Dim", Func, 0},
+ {"E", Const, 0},
+ {"Erf", Func, 0},
+ {"Erfc", Func, 0},
+ {"Erfcinv", Func, 10},
+ {"Erfinv", Func, 10},
+ {"Exp", Func, 0},
+ {"Exp2", Func, 0},
+ {"Expm1", Func, 0},
+ {"FMA", Func, 14},
+ {"Float32bits", Func, 0},
+ {"Float32frombits", Func, 0},
+ {"Float64bits", Func, 0},
+ {"Float64frombits", Func, 0},
+ {"Floor", Func, 0},
+ {"Frexp", Func, 0},
+ {"Gamma", Func, 0},
+ {"Hypot", Func, 0},
+ {"Ilogb", Func, 0},
+ {"Inf", Func, 0},
+ {"IsInf", Func, 0},
+ {"IsNaN", Func, 0},
+ {"J0", Func, 0},
+ {"J1", Func, 0},
+ {"Jn", Func, 0},
+ {"Ldexp", Func, 0},
+ {"Lgamma", Func, 0},
+ {"Ln10", Const, 0},
+ {"Ln2", Const, 0},
+ {"Log", Func, 0},
+ {"Log10", Func, 0},
+ {"Log10E", Const, 0},
+ {"Log1p", Func, 0},
+ {"Log2", Func, 0},
+ {"Log2E", Const, 0},
+ {"Logb", Func, 0},
+ {"Max", Func, 0},
+ {"MaxFloat32", Const, 0},
+ {"MaxFloat64", Const, 0},
+ {"MaxInt", Const, 17},
+ {"MaxInt16", Const, 0},
+ {"MaxInt32", Const, 0},
+ {"MaxInt64", Const, 0},
+ {"MaxInt8", Const, 0},
+ {"MaxUint", Const, 17},
+ {"MaxUint16", Const, 0},
+ {"MaxUint32", Const, 0},
+ {"MaxUint64", Const, 0},
+ {"MaxUint8", Const, 0},
+ {"Min", Func, 0},
+ {"MinInt", Const, 17},
+ {"MinInt16", Const, 0},
+ {"MinInt32", Const, 0},
+ {"MinInt64", Const, 0},
+ {"MinInt8", Const, 0},
+ {"Mod", Func, 0},
+ {"Modf", Func, 0},
+ {"NaN", Func, 0},
+ {"Nextafter", Func, 0},
+ {"Nextafter32", Func, 4},
+ {"Phi", Const, 0},
+ {"Pi", Const, 0},
+ {"Pow", Func, 0},
+ {"Pow10", Func, 0},
+ {"Remainder", Func, 0},
+ {"Round", Func, 10},
+ {"RoundToEven", Func, 10},
+ {"Signbit", Func, 0},
+ {"Sin", Func, 0},
+ {"Sincos", Func, 0},
+ {"Sinh", Func, 0},
+ {"SmallestNonzeroFloat32", Const, 0},
+ {"SmallestNonzeroFloat64", Const, 0},
+ {"Sqrt", Func, 0},
+ {"Sqrt2", Const, 0},
+ {"SqrtE", Const, 0},
+ {"SqrtPhi", Const, 0},
+ {"SqrtPi", Const, 0},
+ {"Tan", Func, 0},
+ {"Tanh", Func, 0},
+ {"Trunc", Func, 0},
+ {"Y0", Func, 0},
+ {"Y1", Func, 0},
+ {"Yn", Func, 0},
+ },
+ "math/big": {
+ {"(*Float).Abs", Method, 5},
+ {"(*Float).Acc", Method, 5},
+ {"(*Float).Add", Method, 5},
+ {"(*Float).Append", Method, 5},
+ {"(*Float).Cmp", Method, 5},
+ {"(*Float).Copy", Method, 5},
+ {"(*Float).Float32", Method, 5},
+ {"(*Float).Float64", Method, 5},
+ {"(*Float).Format", Method, 5},
+ {"(*Float).GobDecode", Method, 7},
+ {"(*Float).GobEncode", Method, 7},
+ {"(*Float).Int", Method, 5},
+ {"(*Float).Int64", Method, 5},
+ {"(*Float).IsInf", Method, 5},
+ {"(*Float).IsInt", Method, 5},
+ {"(*Float).MantExp", Method, 5},
+ {"(*Float).MarshalText", Method, 6},
+ {"(*Float).MinPrec", Method, 5},
+ {"(*Float).Mode", Method, 5},
+ {"(*Float).Mul", Method, 5},
+ {"(*Float).Neg", Method, 5},
+ {"(*Float).Parse", Method, 5},
+ {"(*Float).Prec", Method, 5},
+ {"(*Float).Quo", Method, 5},
+ {"(*Float).Rat", Method, 5},
+ {"(*Float).Scan", Method, 8},
+ {"(*Float).Set", Method, 5},
+ {"(*Float).SetFloat64", Method, 5},
+ {"(*Float).SetInf", Method, 5},
+ {"(*Float).SetInt", Method, 5},
+ {"(*Float).SetInt64", Method, 5},
+ {"(*Float).SetMantExp", Method, 5},
+ {"(*Float).SetMode", Method, 5},
+ {"(*Float).SetPrec", Method, 5},
+ {"(*Float).SetRat", Method, 5},
+ {"(*Float).SetString", Method, 5},
+ {"(*Float).SetUint64", Method, 5},
+ {"(*Float).Sign", Method, 5},
+ {"(*Float).Signbit", Method, 5},
+ {"(*Float).Sqrt", Method, 10},
+ {"(*Float).String", Method, 5},
+ {"(*Float).Sub", Method, 5},
+ {"(*Float).Text", Method, 5},
+ {"(*Float).Uint64", Method, 5},
+ {"(*Float).UnmarshalText", Method, 6},
+ {"(*Int).Abs", Method, 0},
+ {"(*Int).Add", Method, 0},
+ {"(*Int).And", Method, 0},
+ {"(*Int).AndNot", Method, 0},
+ {"(*Int).Append", Method, 6},
+ {"(*Int).Binomial", Method, 0},
+ {"(*Int).Bit", Method, 0},
+ {"(*Int).BitLen", Method, 0},
+ {"(*Int).Bits", Method, 0},
+ {"(*Int).Bytes", Method, 0},
+ {"(*Int).Cmp", Method, 0},
+ {"(*Int).CmpAbs", Method, 10},
+ {"(*Int).Div", Method, 0},
+ {"(*Int).DivMod", Method, 0},
+ {"(*Int).Exp", Method, 0},
+ {"(*Int).FillBytes", Method, 15},
+ {"(*Int).Float64", Method, 21},
+ {"(*Int).Format", Method, 0},
+ {"(*Int).GCD", Method, 0},
+ {"(*Int).GobDecode", Method, 0},
+ {"(*Int).GobEncode", Method, 0},
+ {"(*Int).Int64", Method, 0},
+ {"(*Int).IsInt64", Method, 9},
+ {"(*Int).IsUint64", Method, 9},
+ {"(*Int).Lsh", Method, 0},
+ {"(*Int).MarshalJSON", Method, 1},
+ {"(*Int).MarshalText", Method, 3},
+ {"(*Int).Mod", Method, 0},
+ {"(*Int).ModInverse", Method, 0},
+ {"(*Int).ModSqrt", Method, 5},
+ {"(*Int).Mul", Method, 0},
+ {"(*Int).MulRange", Method, 0},
+ {"(*Int).Neg", Method, 0},
+ {"(*Int).Not", Method, 0},
+ {"(*Int).Or", Method, 0},
+ {"(*Int).ProbablyPrime", Method, 0},
+ {"(*Int).Quo", Method, 0},
+ {"(*Int).QuoRem", Method, 0},
+ {"(*Int).Rand", Method, 0},
+ {"(*Int).Rem", Method, 0},
+ {"(*Int).Rsh", Method, 0},
+ {"(*Int).Scan", Method, 0},
+ {"(*Int).Set", Method, 0},
+ {"(*Int).SetBit", Method, 0},
+ {"(*Int).SetBits", Method, 0},
+ {"(*Int).SetBytes", Method, 0},
+ {"(*Int).SetInt64", Method, 0},
+ {"(*Int).SetString", Method, 0},
+ {"(*Int).SetUint64", Method, 1},
+ {"(*Int).Sign", Method, 0},
+ {"(*Int).Sqrt", Method, 8},
+ {"(*Int).String", Method, 0},
+ {"(*Int).Sub", Method, 0},
+ {"(*Int).Text", Method, 6},
+ {"(*Int).TrailingZeroBits", Method, 13},
+ {"(*Int).Uint64", Method, 1},
+ {"(*Int).UnmarshalJSON", Method, 1},
+ {"(*Int).UnmarshalText", Method, 3},
+ {"(*Int).Xor", Method, 0},
+ {"(*Rat).Abs", Method, 0},
+ {"(*Rat).Add", Method, 0},
+ {"(*Rat).Cmp", Method, 0},
+ {"(*Rat).Denom", Method, 0},
+ {"(*Rat).Float32", Method, 4},
+ {"(*Rat).Float64", Method, 1},
+ {"(*Rat).FloatPrec", Method, 22},
+ {"(*Rat).FloatString", Method, 0},
+ {"(*Rat).GobDecode", Method, 0},
+ {"(*Rat).GobEncode", Method, 0},
+ {"(*Rat).Inv", Method, 0},
+ {"(*Rat).IsInt", Method, 0},
+ {"(*Rat).MarshalText", Method, 3},
+ {"(*Rat).Mul", Method, 0},
+ {"(*Rat).Neg", Method, 0},
+ {"(*Rat).Num", Method, 0},
+ {"(*Rat).Quo", Method, 0},
+ {"(*Rat).RatString", Method, 0},
+ {"(*Rat).Scan", Method, 0},
+ {"(*Rat).Set", Method, 0},
+ {"(*Rat).SetFloat64", Method, 1},
+ {"(*Rat).SetFrac", Method, 0},
+ {"(*Rat).SetFrac64", Method, 0},
+ {"(*Rat).SetInt", Method, 0},
+ {"(*Rat).SetInt64", Method, 0},
+ {"(*Rat).SetString", Method, 0},
+ {"(*Rat).SetUint64", Method, 13},
+ {"(*Rat).Sign", Method, 0},
+ {"(*Rat).String", Method, 0},
+ {"(*Rat).Sub", Method, 0},
+ {"(*Rat).UnmarshalText", Method, 3},
+ {"(Accuracy).String", Method, 5},
+ {"(ErrNaN).Error", Method, 5},
+ {"(RoundingMode).String", Method, 5},
+ {"Above", Const, 5},
+ {"Accuracy", Type, 5},
+ {"AwayFromZero", Const, 5},
+ {"Below", Const, 5},
+ {"ErrNaN", Type, 5},
+ {"Exact", Const, 5},
+ {"Float", Type, 5},
+ {"Int", Type, 0},
+ {"Jacobi", Func, 5},
+ {"MaxBase", Const, 0},
+ {"MaxExp", Const, 5},
+ {"MaxPrec", Const, 5},
+ {"MinExp", Const, 5},
+ {"NewFloat", Func, 5},
+ {"NewInt", Func, 0},
+ {"NewRat", Func, 0},
+ {"ParseFloat", Func, 5},
+ {"Rat", Type, 0},
+ {"RoundingMode", Type, 5},
+ {"ToNearestAway", Const, 5},
+ {"ToNearestEven", Const, 5},
+ {"ToNegativeInf", Const, 5},
+ {"ToPositiveInf", Const, 5},
+ {"ToZero", Const, 5},
+ {"Word", Type, 0},
+ },
+ "math/bits": {
+ {"Add", Func, 12},
+ {"Add32", Func, 12},
+ {"Add64", Func, 12},
+ {"Div", Func, 12},
+ {"Div32", Func, 12},
+ {"Div64", Func, 12},
+ {"LeadingZeros", Func, 9},
+ {"LeadingZeros16", Func, 9},
+ {"LeadingZeros32", Func, 9},
+ {"LeadingZeros64", Func, 9},
+ {"LeadingZeros8", Func, 9},
+ {"Len", Func, 9},
+ {"Len16", Func, 9},
+ {"Len32", Func, 9},
+ {"Len64", Func, 9},
+ {"Len8", Func, 9},
+ {"Mul", Func, 12},
+ {"Mul32", Func, 12},
+ {"Mul64", Func, 12},
+ {"OnesCount", Func, 9},
+ {"OnesCount16", Func, 9},
+ {"OnesCount32", Func, 9},
+ {"OnesCount64", Func, 9},
+ {"OnesCount8", Func, 9},
+ {"Rem", Func, 14},
+ {"Rem32", Func, 14},
+ {"Rem64", Func, 14},
+ {"Reverse", Func, 9},
+ {"Reverse16", Func, 9},
+ {"Reverse32", Func, 9},
+ {"Reverse64", Func, 9},
+ {"Reverse8", Func, 9},
+ {"ReverseBytes", Func, 9},
+ {"ReverseBytes16", Func, 9},
+ {"ReverseBytes32", Func, 9},
+ {"ReverseBytes64", Func, 9},
+ {"RotateLeft", Func, 9},
+ {"RotateLeft16", Func, 9},
+ {"RotateLeft32", Func, 9},
+ {"RotateLeft64", Func, 9},
+ {"RotateLeft8", Func, 9},
+ {"Sub", Func, 12},
+ {"Sub32", Func, 12},
+ {"Sub64", Func, 12},
+ {"TrailingZeros", Func, 9},
+ {"TrailingZeros16", Func, 9},
+ {"TrailingZeros32", Func, 9},
+ {"TrailingZeros64", Func, 9},
+ {"TrailingZeros8", Func, 9},
+ {"UintSize", Const, 9},
+ },
+ "math/cmplx": {
+ {"Abs", Func, 0},
+ {"Acos", Func, 0},
+ {"Acosh", Func, 0},
+ {"Asin", Func, 0},
+ {"Asinh", Func, 0},
+ {"Atan", Func, 0},
+ {"Atanh", Func, 0},
+ {"Conj", Func, 0},
+ {"Cos", Func, 0},
+ {"Cosh", Func, 0},
+ {"Cot", Func, 0},
+ {"Exp", Func, 0},
+ {"Inf", Func, 0},
+ {"IsInf", Func, 0},
+ {"IsNaN", Func, 0},
+ {"Log", Func, 0},
+ {"Log10", Func, 0},
+ {"NaN", Func, 0},
+ {"Phase", Func, 0},
+ {"Polar", Func, 0},
+ {"Pow", Func, 0},
+ {"Rect", Func, 0},
+ {"Sin", Func, 0},
+ {"Sinh", Func, 0},
+ {"Sqrt", Func, 0},
+ {"Tan", Func, 0},
+ {"Tanh", Func, 0},
+ },
+ "math/rand": {
+ {"(*Rand).ExpFloat64", Method, 0},
+ {"(*Rand).Float32", Method, 0},
+ {"(*Rand).Float64", Method, 0},
+ {"(*Rand).Int", Method, 0},
+ {"(*Rand).Int31", Method, 0},
+ {"(*Rand).Int31n", Method, 0},
+ {"(*Rand).Int63", Method, 0},
+ {"(*Rand).Int63n", Method, 0},
+ {"(*Rand).Intn", Method, 0},
+ {"(*Rand).NormFloat64", Method, 0},
+ {"(*Rand).Perm", Method, 0},
+ {"(*Rand).Read", Method, 6},
+ {"(*Rand).Seed", Method, 0},
+ {"(*Rand).Shuffle", Method, 10},
+ {"(*Rand).Uint32", Method, 0},
+ {"(*Rand).Uint64", Method, 8},
+ {"(*Zipf).Uint64", Method, 0},
+ {"ExpFloat64", Func, 0},
+ {"Float32", Func, 0},
+ {"Float64", Func, 0},
+ {"Int", Func, 0},
+ {"Int31", Func, 0},
+ {"Int31n", Func, 0},
+ {"Int63", Func, 0},
+ {"Int63n", Func, 0},
+ {"Intn", Func, 0},
+ {"New", Func, 0},
+ {"NewSource", Func, 0},
+ {"NewZipf", Func, 0},
+ {"NormFloat64", Func, 0},
+ {"Perm", Func, 0},
+ {"Rand", Type, 0},
+ {"Read", Func, 6},
+ {"Seed", Func, 0},
+ {"Shuffle", Func, 10},
+ {"Source", Type, 0},
+ {"Source64", Type, 8},
+ {"Uint32", Func, 0},
+ {"Uint64", Func, 8},
+ {"Zipf", Type, 0},
+ },
+ "math/rand/v2": {
+ {"(*ChaCha8).MarshalBinary", Method, 22},
+ {"(*ChaCha8).Seed", Method, 22},
+ {"(*ChaCha8).Uint64", Method, 22},
+ {"(*ChaCha8).UnmarshalBinary", Method, 22},
+ {"(*PCG).MarshalBinary", Method, 22},
+ {"(*PCG).Seed", Method, 22},
+ {"(*PCG).Uint64", Method, 22},
+ {"(*PCG).UnmarshalBinary", Method, 22},
+ {"(*Rand).ExpFloat64", Method, 22},
+ {"(*Rand).Float32", Method, 22},
+ {"(*Rand).Float64", Method, 22},
+ {"(*Rand).Int", Method, 22},
+ {"(*Rand).Int32", Method, 22},
+ {"(*Rand).Int32N", Method, 22},
+ {"(*Rand).Int64", Method, 22},
+ {"(*Rand).Int64N", Method, 22},
+ {"(*Rand).IntN", Method, 22},
+ {"(*Rand).NormFloat64", Method, 22},
+ {"(*Rand).Perm", Method, 22},
+ {"(*Rand).Shuffle", Method, 22},
+ {"(*Rand).Uint32", Method, 22},
+ {"(*Rand).Uint32N", Method, 22},
+ {"(*Rand).Uint64", Method, 22},
+ {"(*Rand).Uint64N", Method, 22},
+ {"(*Rand).UintN", Method, 22},
+ {"(*Zipf).Uint64", Method, 22},
+ {"ChaCha8", Type, 22},
+ {"ExpFloat64", Func, 22},
+ {"Float32", Func, 22},
+ {"Float64", Func, 22},
+ {"Int", Func, 22},
+ {"Int32", Func, 22},
+ {"Int32N", Func, 22},
+ {"Int64", Func, 22},
+ {"Int64N", Func, 22},
+ {"IntN", Func, 22},
+ {"N", Func, 22},
+ {"New", Func, 22},
+ {"NewChaCha8", Func, 22},
+ {"NewPCG", Func, 22},
+ {"NewZipf", Func, 22},
+ {"NormFloat64", Func, 22},
+ {"PCG", Type, 22},
+ {"Perm", Func, 22},
+ {"Rand", Type, 22},
+ {"Shuffle", Func, 22},
+ {"Source", Type, 22},
+ {"Uint32", Func, 22},
+ {"Uint32N", Func, 22},
+ {"Uint64", Func, 22},
+ {"Uint64N", Func, 22},
+ {"UintN", Func, 22},
+ {"Zipf", Type, 22},
+ },
+ "mime": {
+ {"(*WordDecoder).Decode", Method, 5},
+ {"(*WordDecoder).DecodeHeader", Method, 5},
+ {"(WordEncoder).Encode", Method, 5},
+ {"AddExtensionType", Func, 0},
+ {"BEncoding", Const, 5},
+ {"ErrInvalidMediaParameter", Var, 9},
+ {"ExtensionsByType", Func, 5},
+ {"FormatMediaType", Func, 0},
+ {"ParseMediaType", Func, 0},
+ {"QEncoding", Const, 5},
+ {"TypeByExtension", Func, 0},
+ {"WordDecoder", Type, 5},
+ {"WordDecoder.CharsetReader", Field, 5},
+ {"WordEncoder", Type, 5},
+ },
+ "mime/multipart": {
+ {"(*FileHeader).Open", Method, 0},
+ {"(*Form).RemoveAll", Method, 0},
+ {"(*Part).Close", Method, 0},
+ {"(*Part).FileName", Method, 0},
+ {"(*Part).FormName", Method, 0},
+ {"(*Part).Read", Method, 0},
+ {"(*Reader).NextPart", Method, 0},
+ {"(*Reader).NextRawPart", Method, 14},
+ {"(*Reader).ReadForm", Method, 0},
+ {"(*Writer).Boundary", Method, 0},
+ {"(*Writer).Close", Method, 0},
+ {"(*Writer).CreateFormField", Method, 0},
+ {"(*Writer).CreateFormFile", Method, 0},
+ {"(*Writer).CreatePart", Method, 0},
+ {"(*Writer).FormDataContentType", Method, 0},
+ {"(*Writer).SetBoundary", Method, 1},
+ {"(*Writer).WriteField", Method, 0},
+ {"ErrMessageTooLarge", Var, 9},
+ {"File", Type, 0},
+ {"FileHeader", Type, 0},
+ {"FileHeader.Filename", Field, 0},
+ {"FileHeader.Header", Field, 0},
+ {"FileHeader.Size", Field, 9},
+ {"Form", Type, 0},
+ {"Form.File", Field, 0},
+ {"Form.Value", Field, 0},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"Part", Type, 0},
+ {"Part.Header", Field, 0},
+ {"Reader", Type, 0},
+ {"Writer", Type, 0},
+ },
+ "mime/quotedprintable": {
+ {"(*Reader).Read", Method, 5},
+ {"(*Writer).Close", Method, 5},
+ {"(*Writer).Write", Method, 5},
+ {"NewReader", Func, 5},
+ {"NewWriter", Func, 5},
+ {"Reader", Type, 5},
+ {"Writer", Type, 5},
+ {"Writer.Binary", Field, 5},
+ },
+ "net": {
+ {"(*AddrError).Error", Method, 0},
+ {"(*AddrError).Temporary", Method, 0},
+ {"(*AddrError).Timeout", Method, 0},
+ {"(*Buffers).Read", Method, 8},
+ {"(*Buffers).WriteTo", Method, 8},
+ {"(*DNSConfigError).Error", Method, 0},
+ {"(*DNSConfigError).Temporary", Method, 0},
+ {"(*DNSConfigError).Timeout", Method, 0},
+ {"(*DNSConfigError).Unwrap", Method, 13},
+ {"(*DNSError).Error", Method, 0},
+ {"(*DNSError).Temporary", Method, 0},
+ {"(*DNSError).Timeout", Method, 0},
+ {"(*Dialer).Dial", Method, 1},
+ {"(*Dialer).DialContext", Method, 7},
+ {"(*Dialer).MultipathTCP", Method, 21},
+ {"(*Dialer).SetMultipathTCP", Method, 21},
+ {"(*IP).UnmarshalText", Method, 2},
+ {"(*IPAddr).Network", Method, 0},
+ {"(*IPAddr).String", Method, 0},
+ {"(*IPConn).Close", Method, 0},
+ {"(*IPConn).File", Method, 0},
+ {"(*IPConn).LocalAddr", Method, 0},
+ {"(*IPConn).Read", Method, 0},
+ {"(*IPConn).ReadFrom", Method, 0},
+ {"(*IPConn).ReadFromIP", Method, 0},
+ {"(*IPConn).ReadMsgIP", Method, 1},
+ {"(*IPConn).RemoteAddr", Method, 0},
+ {"(*IPConn).SetDeadline", Method, 0},
+ {"(*IPConn).SetReadBuffer", Method, 0},
+ {"(*IPConn).SetReadDeadline", Method, 0},
+ {"(*IPConn).SetWriteBuffer", Method, 0},
+ {"(*IPConn).SetWriteDeadline", Method, 0},
+ {"(*IPConn).SyscallConn", Method, 9},
+ {"(*IPConn).Write", Method, 0},
+ {"(*IPConn).WriteMsgIP", Method, 1},
+ {"(*IPConn).WriteTo", Method, 0},
+ {"(*IPConn).WriteToIP", Method, 0},
+ {"(*IPNet).Contains", Method, 0},
+ {"(*IPNet).Network", Method, 0},
+ {"(*IPNet).String", Method, 0},
+ {"(*Interface).Addrs", Method, 0},
+ {"(*Interface).MulticastAddrs", Method, 0},
+ {"(*ListenConfig).Listen", Method, 11},
+ {"(*ListenConfig).ListenPacket", Method, 11},
+ {"(*ListenConfig).MultipathTCP", Method, 21},
+ {"(*ListenConfig).SetMultipathTCP", Method, 21},
+ {"(*OpError).Error", Method, 0},
+ {"(*OpError).Temporary", Method, 0},
+ {"(*OpError).Timeout", Method, 0},
+ {"(*OpError).Unwrap", Method, 13},
+ {"(*ParseError).Error", Method, 0},
+ {"(*ParseError).Temporary", Method, 17},
+ {"(*ParseError).Timeout", Method, 17},
+ {"(*Resolver).LookupAddr", Method, 8},
+ {"(*Resolver).LookupCNAME", Method, 8},
+ {"(*Resolver).LookupHost", Method, 8},
+ {"(*Resolver).LookupIP", Method, 15},
+ {"(*Resolver).LookupIPAddr", Method, 8},
+ {"(*Resolver).LookupMX", Method, 8},
+ {"(*Resolver).LookupNS", Method, 8},
+ {"(*Resolver).LookupNetIP", Method, 18},
+ {"(*Resolver).LookupPort", Method, 8},
+ {"(*Resolver).LookupSRV", Method, 8},
+ {"(*Resolver).LookupTXT", Method, 8},
+ {"(*TCPAddr).AddrPort", Method, 18},
+ {"(*TCPAddr).Network", Method, 0},
+ {"(*TCPAddr).String", Method, 0},
+ {"(*TCPConn).Close", Method, 0},
+ {"(*TCPConn).CloseRead", Method, 0},
+ {"(*TCPConn).CloseWrite", Method, 0},
+ {"(*TCPConn).File", Method, 0},
+ {"(*TCPConn).LocalAddr", Method, 0},
+ {"(*TCPConn).MultipathTCP", Method, 21},
+ {"(*TCPConn).Read", Method, 0},
+ {"(*TCPConn).ReadFrom", Method, 0},
+ {"(*TCPConn).RemoteAddr", Method, 0},
+ {"(*TCPConn).SetDeadline", Method, 0},
+ {"(*TCPConn).SetKeepAlive", Method, 0},
+ {"(*TCPConn).SetKeepAlivePeriod", Method, 2},
+ {"(*TCPConn).SetLinger", Method, 0},
+ {"(*TCPConn).SetNoDelay", Method, 0},
+ {"(*TCPConn).SetReadBuffer", Method, 0},
+ {"(*TCPConn).SetReadDeadline", Method, 0},
+ {"(*TCPConn).SetWriteBuffer", Method, 0},
+ {"(*TCPConn).SetWriteDeadline", Method, 0},
+ {"(*TCPConn).SyscallConn", Method, 9},
+ {"(*TCPConn).Write", Method, 0},
+ {"(*TCPConn).WriteTo", Method, 22},
+ {"(*TCPListener).Accept", Method, 0},
+ {"(*TCPListener).AcceptTCP", Method, 0},
+ {"(*TCPListener).Addr", Method, 0},
+ {"(*TCPListener).Close", Method, 0},
+ {"(*TCPListener).File", Method, 0},
+ {"(*TCPListener).SetDeadline", Method, 0},
+ {"(*TCPListener).SyscallConn", Method, 10},
+ {"(*UDPAddr).AddrPort", Method, 18},
+ {"(*UDPAddr).Network", Method, 0},
+ {"(*UDPAddr).String", Method, 0},
+ {"(*UDPConn).Close", Method, 0},
+ {"(*UDPConn).File", Method, 0},
+ {"(*UDPConn).LocalAddr", Method, 0},
+ {"(*UDPConn).Read", Method, 0},
+ {"(*UDPConn).ReadFrom", Method, 0},
+ {"(*UDPConn).ReadFromUDP", Method, 0},
+ {"(*UDPConn).ReadFromUDPAddrPort", Method, 18},
+ {"(*UDPConn).ReadMsgUDP", Method, 1},
+ {"(*UDPConn).ReadMsgUDPAddrPort", Method, 18},
+ {"(*UDPConn).RemoteAddr", Method, 0},
+ {"(*UDPConn).SetDeadline", Method, 0},
+ {"(*UDPConn).SetReadBuffer", Method, 0},
+ {"(*UDPConn).SetReadDeadline", Method, 0},
+ {"(*UDPConn).SetWriteBuffer", Method, 0},
+ {"(*UDPConn).SetWriteDeadline", Method, 0},
+ {"(*UDPConn).SyscallConn", Method, 9},
+ {"(*UDPConn).Write", Method, 0},
+ {"(*UDPConn).WriteMsgUDP", Method, 1},
+ {"(*UDPConn).WriteMsgUDPAddrPort", Method, 18},
+ {"(*UDPConn).WriteTo", Method, 0},
+ {"(*UDPConn).WriteToUDP", Method, 0},
+ {"(*UDPConn).WriteToUDPAddrPort", Method, 18},
+ {"(*UnixAddr).Network", Method, 0},
+ {"(*UnixAddr).String", Method, 0},
+ {"(*UnixConn).Close", Method, 0},
+ {"(*UnixConn).CloseRead", Method, 1},
+ {"(*UnixConn).CloseWrite", Method, 1},
+ {"(*UnixConn).File", Method, 0},
+ {"(*UnixConn).LocalAddr", Method, 0},
+ {"(*UnixConn).Read", Method, 0},
+ {"(*UnixConn).ReadFrom", Method, 0},
+ {"(*UnixConn).ReadFromUnix", Method, 0},
+ {"(*UnixConn).ReadMsgUnix", Method, 0},
+ {"(*UnixConn).RemoteAddr", Method, 0},
+ {"(*UnixConn).SetDeadline", Method, 0},
+ {"(*UnixConn).SetReadBuffer", Method, 0},
+ {"(*UnixConn).SetReadDeadline", Method, 0},
+ {"(*UnixConn).SetWriteBuffer", Method, 0},
+ {"(*UnixConn).SetWriteDeadline", Method, 0},
+ {"(*UnixConn).SyscallConn", Method, 9},
+ {"(*UnixConn).Write", Method, 0},
+ {"(*UnixConn).WriteMsgUnix", Method, 0},
+ {"(*UnixConn).WriteTo", Method, 0},
+ {"(*UnixConn).WriteToUnix", Method, 0},
+ {"(*UnixListener).Accept", Method, 0},
+ {"(*UnixListener).AcceptUnix", Method, 0},
+ {"(*UnixListener).Addr", Method, 0},
+ {"(*UnixListener).Close", Method, 0},
+ {"(*UnixListener).File", Method, 0},
+ {"(*UnixListener).SetDeadline", Method, 0},
+ {"(*UnixListener).SetUnlinkOnClose", Method, 8},
+ {"(*UnixListener).SyscallConn", Method, 10},
+ {"(Flags).String", Method, 0},
+ {"(HardwareAddr).String", Method, 0},
+ {"(IP).DefaultMask", Method, 0},
+ {"(IP).Equal", Method, 0},
+ {"(IP).IsGlobalUnicast", Method, 0},
+ {"(IP).IsInterfaceLocalMulticast", Method, 0},
+ {"(IP).IsLinkLocalMulticast", Method, 0},
+ {"(IP).IsLinkLocalUnicast", Method, 0},
+ {"(IP).IsLoopback", Method, 0},
+ {"(IP).IsMulticast", Method, 0},
+ {"(IP).IsPrivate", Method, 17},
+ {"(IP).IsUnspecified", Method, 0},
+ {"(IP).MarshalText", Method, 2},
+ {"(IP).Mask", Method, 0},
+ {"(IP).String", Method, 0},
+ {"(IP).To16", Method, 0},
+ {"(IP).To4", Method, 0},
+ {"(IPMask).Size", Method, 0},
+ {"(IPMask).String", Method, 0},
+ {"(InvalidAddrError).Error", Method, 0},
+ {"(InvalidAddrError).Temporary", Method, 0},
+ {"(InvalidAddrError).Timeout", Method, 0},
+ {"(UnknownNetworkError).Error", Method, 0},
+ {"(UnknownNetworkError).Temporary", Method, 0},
+ {"(UnknownNetworkError).Timeout", Method, 0},
+ {"Addr", Type, 0},
+ {"AddrError", Type, 0},
+ {"AddrError.Addr", Field, 0},
+ {"AddrError.Err", Field, 0},
+ {"Buffers", Type, 8},
+ {"CIDRMask", Func, 0},
+ {"Conn", Type, 0},
+ {"DNSConfigError", Type, 0},
+ {"DNSConfigError.Err", Field, 0},
+ {"DNSError", Type, 0},
+ {"DNSError.Err", Field, 0},
+ {"DNSError.IsNotFound", Field, 13},
+ {"DNSError.IsTemporary", Field, 6},
+ {"DNSError.IsTimeout", Field, 0},
+ {"DNSError.Name", Field, 0},
+ {"DNSError.Server", Field, 0},
+ {"DefaultResolver", Var, 8},
+ {"Dial", Func, 0},
+ {"DialIP", Func, 0},
+ {"DialTCP", Func, 0},
+ {"DialTimeout", Func, 0},
+ {"DialUDP", Func, 0},
+ {"DialUnix", Func, 0},
+ {"Dialer", Type, 1},
+ {"Dialer.Cancel", Field, 6},
+ {"Dialer.Control", Field, 11},
+ {"Dialer.ControlContext", Field, 20},
+ {"Dialer.Deadline", Field, 1},
+ {"Dialer.DualStack", Field, 2},
+ {"Dialer.FallbackDelay", Field, 5},
+ {"Dialer.KeepAlive", Field, 3},
+ {"Dialer.LocalAddr", Field, 1},
+ {"Dialer.Resolver", Field, 8},
+ {"Dialer.Timeout", Field, 1},
+ {"ErrClosed", Var, 16},
+ {"ErrWriteToConnected", Var, 0},
+ {"Error", Type, 0},
+ {"FileConn", Func, 0},
+ {"FileListener", Func, 0},
+ {"FilePacketConn", Func, 0},
+ {"FlagBroadcast", Const, 0},
+ {"FlagLoopback", Const, 0},
+ {"FlagMulticast", Const, 0},
+ {"FlagPointToPoint", Const, 0},
+ {"FlagRunning", Const, 20},
+ {"FlagUp", Const, 0},
+ {"Flags", Type, 0},
+ {"HardwareAddr", Type, 0},
+ {"IP", Type, 0},
+ {"IPAddr", Type, 0},
+ {"IPAddr.IP", Field, 0},
+ {"IPAddr.Zone", Field, 1},
+ {"IPConn", Type, 0},
+ {"IPMask", Type, 0},
+ {"IPNet", Type, 0},
+ {"IPNet.IP", Field, 0},
+ {"IPNet.Mask", Field, 0},
+ {"IPv4", Func, 0},
+ {"IPv4Mask", Func, 0},
+ {"IPv4allrouter", Var, 0},
+ {"IPv4allsys", Var, 0},
+ {"IPv4bcast", Var, 0},
+ {"IPv4len", Const, 0},
+ {"IPv4zero", Var, 0},
+ {"IPv6interfacelocalallnodes", Var, 0},
+ {"IPv6len", Const, 0},
+ {"IPv6linklocalallnodes", Var, 0},
+ {"IPv6linklocalallrouters", Var, 0},
+ {"IPv6loopback", Var, 0},
+ {"IPv6unspecified", Var, 0},
+ {"IPv6zero", Var, 0},
+ {"Interface", Type, 0},
+ {"Interface.Flags", Field, 0},
+ {"Interface.HardwareAddr", Field, 0},
+ {"Interface.Index", Field, 0},
+ {"Interface.MTU", Field, 0},
+ {"Interface.Name", Field, 0},
+ {"InterfaceAddrs", Func, 0},
+ {"InterfaceByIndex", Func, 0},
+ {"InterfaceByName", Func, 0},
+ {"Interfaces", Func, 0},
+ {"InvalidAddrError", Type, 0},
+ {"JoinHostPort", Func, 0},
+ {"Listen", Func, 0},
+ {"ListenConfig", Type, 11},
+ {"ListenConfig.Control", Field, 11},
+ {"ListenConfig.KeepAlive", Field, 13},
+ {"ListenIP", Func, 0},
+ {"ListenMulticastUDP", Func, 0},
+ {"ListenPacket", Func, 0},
+ {"ListenTCP", Func, 0},
+ {"ListenUDP", Func, 0},
+ {"ListenUnix", Func, 0},
+ {"ListenUnixgram", Func, 0},
+ {"Listener", Type, 0},
+ {"LookupAddr", Func, 0},
+ {"LookupCNAME", Func, 0},
+ {"LookupHost", Func, 0},
+ {"LookupIP", Func, 0},
+ {"LookupMX", Func, 0},
+ {"LookupNS", Func, 1},
+ {"LookupPort", Func, 0},
+ {"LookupSRV", Func, 0},
+ {"LookupTXT", Func, 0},
+ {"MX", Type, 0},
+ {"MX.Host", Field, 0},
+ {"MX.Pref", Field, 0},
+ {"NS", Type, 1},
+ {"NS.Host", Field, 1},
+ {"OpError", Type, 0},
+ {"OpError.Addr", Field, 0},
+ {"OpError.Err", Field, 0},
+ {"OpError.Net", Field, 0},
+ {"OpError.Op", Field, 0},
+ {"OpError.Source", Field, 5},
+ {"PacketConn", Type, 0},
+ {"ParseCIDR", Func, 0},
+ {"ParseError", Type, 0},
+ {"ParseError.Text", Field, 0},
+ {"ParseError.Type", Field, 0},
+ {"ParseIP", Func, 0},
+ {"ParseMAC", Func, 0},
+ {"Pipe", Func, 0},
+ {"ResolveIPAddr", Func, 0},
+ {"ResolveTCPAddr", Func, 0},
+ {"ResolveUDPAddr", Func, 0},
+ {"ResolveUnixAddr", Func, 0},
+ {"Resolver", Type, 8},
+ {"Resolver.Dial", Field, 9},
+ {"Resolver.PreferGo", Field, 8},
+ {"Resolver.StrictErrors", Field, 9},
+ {"SRV", Type, 0},
+ {"SRV.Port", Field, 0},
+ {"SRV.Priority", Field, 0},
+ {"SRV.Target", Field, 0},
+ {"SRV.Weight", Field, 0},
+ {"SplitHostPort", Func, 0},
+ {"TCPAddr", Type, 0},
+ {"TCPAddr.IP", Field, 0},
+ {"TCPAddr.Port", Field, 0},
+ {"TCPAddr.Zone", Field, 1},
+ {"TCPAddrFromAddrPort", Func, 18},
+ {"TCPConn", Type, 0},
+ {"TCPListener", Type, 0},
+ {"UDPAddr", Type, 0},
+ {"UDPAddr.IP", Field, 0},
+ {"UDPAddr.Port", Field, 0},
+ {"UDPAddr.Zone", Field, 1},
+ {"UDPAddrFromAddrPort", Func, 18},
+ {"UDPConn", Type, 0},
+ {"UnixAddr", Type, 0},
+ {"UnixAddr.Name", Field, 0},
+ {"UnixAddr.Net", Field, 0},
+ {"UnixConn", Type, 0},
+ {"UnixListener", Type, 0},
+ {"UnknownNetworkError", Type, 0},
+ },
+ "net/http": {
+ {"(*Client).CloseIdleConnections", Method, 12},
+ {"(*Client).Do", Method, 0},
+ {"(*Client).Get", Method, 0},
+ {"(*Client).Head", Method, 0},
+ {"(*Client).Post", Method, 0},
+ {"(*Client).PostForm", Method, 0},
+ {"(*Cookie).String", Method, 0},
+ {"(*Cookie).Valid", Method, 18},
+ {"(*MaxBytesError).Error", Method, 19},
+ {"(*ProtocolError).Error", Method, 0},
+ {"(*ProtocolError).Is", Method, 21},
+ {"(*Request).AddCookie", Method, 0},
+ {"(*Request).BasicAuth", Method, 4},
+ {"(*Request).Clone", Method, 13},
+ {"(*Request).Context", Method, 7},
+ {"(*Request).Cookie", Method, 0},
+ {"(*Request).Cookies", Method, 0},
+ {"(*Request).FormFile", Method, 0},
+ {"(*Request).FormValue", Method, 0},
+ {"(*Request).MultipartReader", Method, 0},
+ {"(*Request).ParseForm", Method, 0},
+ {"(*Request).ParseMultipartForm", Method, 0},
+ {"(*Request).PathValue", Method, 22},
+ {"(*Request).PostFormValue", Method, 1},
+ {"(*Request).ProtoAtLeast", Method, 0},
+ {"(*Request).Referer", Method, 0},
+ {"(*Request).SetBasicAuth", Method, 0},
+ {"(*Request).SetPathValue", Method, 22},
+ {"(*Request).UserAgent", Method, 0},
+ {"(*Request).WithContext", Method, 7},
+ {"(*Request).Write", Method, 0},
+ {"(*Request).WriteProxy", Method, 0},
+ {"(*Response).Cookies", Method, 0},
+ {"(*Response).Location", Method, 0},
+ {"(*Response).ProtoAtLeast", Method, 0},
+ {"(*Response).Write", Method, 0},
+ {"(*ResponseController).EnableFullDuplex", Method, 21},
+ {"(*ResponseController).Flush", Method, 20},
+ {"(*ResponseController).Hijack", Method, 20},
+ {"(*ResponseController).SetReadDeadline", Method, 20},
+ {"(*ResponseController).SetWriteDeadline", Method, 20},
+ {"(*ServeMux).Handle", Method, 0},
+ {"(*ServeMux).HandleFunc", Method, 0},
+ {"(*ServeMux).Handler", Method, 1},
+ {"(*ServeMux).ServeHTTP", Method, 0},
+ {"(*Server).Close", Method, 8},
+ {"(*Server).ListenAndServe", Method, 0},
+ {"(*Server).ListenAndServeTLS", Method, 0},
+ {"(*Server).RegisterOnShutdown", Method, 9},
+ {"(*Server).Serve", Method, 0},
+ {"(*Server).ServeTLS", Method, 9},
+ {"(*Server).SetKeepAlivesEnabled", Method, 3},
+ {"(*Server).Shutdown", Method, 8},
+ {"(*Transport).CancelRequest", Method, 1},
+ {"(*Transport).Clone", Method, 13},
+ {"(*Transport).CloseIdleConnections", Method, 0},
+ {"(*Transport).RegisterProtocol", Method, 0},
+ {"(*Transport).RoundTrip", Method, 0},
+ {"(ConnState).String", Method, 3},
+ {"(Dir).Open", Method, 0},
+ {"(HandlerFunc).ServeHTTP", Method, 0},
+ {"(Header).Add", Method, 0},
+ {"(Header).Clone", Method, 13},
+ {"(Header).Del", Method, 0},
+ {"(Header).Get", Method, 0},
+ {"(Header).Set", Method, 0},
+ {"(Header).Values", Method, 14},
+ {"(Header).Write", Method, 0},
+ {"(Header).WriteSubset", Method, 0},
+ {"AllowQuerySemicolons", Func, 17},
+ {"CanonicalHeaderKey", Func, 0},
+ {"Client", Type, 0},
+ {"Client.CheckRedirect", Field, 0},
+ {"Client.Jar", Field, 0},
+ {"Client.Timeout", Field, 3},
+ {"Client.Transport", Field, 0},
+ {"CloseNotifier", Type, 1},
+ {"ConnState", Type, 3},
+ {"Cookie", Type, 0},
+ {"Cookie.Domain", Field, 0},
+ {"Cookie.Expires", Field, 0},
+ {"Cookie.HttpOnly", Field, 0},
+ {"Cookie.MaxAge", Field, 0},
+ {"Cookie.Name", Field, 0},
+ {"Cookie.Path", Field, 0},
+ {"Cookie.Raw", Field, 0},
+ {"Cookie.RawExpires", Field, 0},
+ {"Cookie.SameSite", Field, 11},
+ {"Cookie.Secure", Field, 0},
+ {"Cookie.Unparsed", Field, 0},
+ {"Cookie.Value", Field, 0},
+ {"CookieJar", Type, 0},
+ {"DefaultClient", Var, 0},
+ {"DefaultMaxHeaderBytes", Const, 0},
+ {"DefaultMaxIdleConnsPerHost", Const, 0},
+ {"DefaultServeMux", Var, 0},
+ {"DefaultTransport", Var, 0},
+ {"DetectContentType", Func, 0},
+ {"Dir", Type, 0},
+ {"ErrAbortHandler", Var, 8},
+ {"ErrBodyNotAllowed", Var, 0},
+ {"ErrBodyReadAfterClose", Var, 0},
+ {"ErrContentLength", Var, 0},
+ {"ErrHandlerTimeout", Var, 0},
+ {"ErrHeaderTooLong", Var, 0},
+ {"ErrHijacked", Var, 0},
+ {"ErrLineTooLong", Var, 0},
+ {"ErrMissingBoundary", Var, 0},
+ {"ErrMissingContentLength", Var, 0},
+ {"ErrMissingFile", Var, 0},
+ {"ErrNoCookie", Var, 0},
+ {"ErrNoLocation", Var, 0},
+ {"ErrNotMultipart", Var, 0},
+ {"ErrNotSupported", Var, 0},
+ {"ErrSchemeMismatch", Var, 21},
+ {"ErrServerClosed", Var, 8},
+ {"ErrShortBody", Var, 0},
+ {"ErrSkipAltProtocol", Var, 6},
+ {"ErrUnexpectedTrailer", Var, 0},
+ {"ErrUseLastResponse", Var, 7},
+ {"ErrWriteAfterFlush", Var, 0},
+ {"Error", Func, 0},
+ {"FS", Func, 16},
+ {"File", Type, 0},
+ {"FileServer", Func, 0},
+ {"FileServerFS", Func, 22},
+ {"FileSystem", Type, 0},
+ {"Flusher", Type, 0},
+ {"Get", Func, 0},
+ {"Handle", Func, 0},
+ {"HandleFunc", Func, 0},
+ {"Handler", Type, 0},
+ {"HandlerFunc", Type, 0},
+ {"Head", Func, 0},
+ {"Header", Type, 0},
+ {"Hijacker", Type, 0},
+ {"ListenAndServe", Func, 0},
+ {"ListenAndServeTLS", Func, 0},
+ {"LocalAddrContextKey", Var, 7},
+ {"MaxBytesError", Type, 19},
+ {"MaxBytesError.Limit", Field, 19},
+ {"MaxBytesHandler", Func, 18},
+ {"MaxBytesReader", Func, 0},
+ {"MethodConnect", Const, 6},
+ {"MethodDelete", Const, 6},
+ {"MethodGet", Const, 6},
+ {"MethodHead", Const, 6},
+ {"MethodOptions", Const, 6},
+ {"MethodPatch", Const, 6},
+ {"MethodPost", Const, 6},
+ {"MethodPut", Const, 6},
+ {"MethodTrace", Const, 6},
+ {"NewFileTransport", Func, 0},
+ {"NewFileTransportFS", Func, 22},
+ {"NewRequest", Func, 0},
+ {"NewRequestWithContext", Func, 13},
+ {"NewResponseController", Func, 20},
+ {"NewServeMux", Func, 0},
+ {"NoBody", Var, 8},
+ {"NotFound", Func, 0},
+ {"NotFoundHandler", Func, 0},
+ {"ParseHTTPVersion", Func, 0},
+ {"ParseTime", Func, 1},
+ {"Post", Func, 0},
+ {"PostForm", Func, 0},
+ {"ProtocolError", Type, 0},
+ {"ProtocolError.ErrorString", Field, 0},
+ {"ProxyFromEnvironment", Func, 0},
+ {"ProxyURL", Func, 0},
+ {"PushOptions", Type, 8},
+ {"PushOptions.Header", Field, 8},
+ {"PushOptions.Method", Field, 8},
+ {"Pusher", Type, 8},
+ {"ReadRequest", Func, 0},
+ {"ReadResponse", Func, 0},
+ {"Redirect", Func, 0},
+ {"RedirectHandler", Func, 0},
+ {"Request", Type, 0},
+ {"Request.Body", Field, 0},
+ {"Request.Cancel", Field, 5},
+ {"Request.Close", Field, 0},
+ {"Request.ContentLength", Field, 0},
+ {"Request.Form", Field, 0},
+ {"Request.GetBody", Field, 8},
+ {"Request.Header", Field, 0},
+ {"Request.Host", Field, 0},
+ {"Request.Method", Field, 0},
+ {"Request.MultipartForm", Field, 0},
+ {"Request.PostForm", Field, 1},
+ {"Request.Proto", Field, 0},
+ {"Request.ProtoMajor", Field, 0},
+ {"Request.ProtoMinor", Field, 0},
+ {"Request.RemoteAddr", Field, 0},
+ {"Request.RequestURI", Field, 0},
+ {"Request.Response", Field, 7},
+ {"Request.TLS", Field, 0},
+ {"Request.Trailer", Field, 0},
+ {"Request.TransferEncoding", Field, 0},
+ {"Request.URL", Field, 0},
+ {"Response", Type, 0},
+ {"Response.Body", Field, 0},
+ {"Response.Close", Field, 0},
+ {"Response.ContentLength", Field, 0},
+ {"Response.Header", Field, 0},
+ {"Response.Proto", Field, 0},
+ {"Response.ProtoMajor", Field, 0},
+ {"Response.ProtoMinor", Field, 0},
+ {"Response.Request", Field, 0},
+ {"Response.Status", Field, 0},
+ {"Response.StatusCode", Field, 0},
+ {"Response.TLS", Field, 3},
+ {"Response.Trailer", Field, 0},
+ {"Response.TransferEncoding", Field, 0},
+ {"Response.Uncompressed", Field, 7},
+ {"ResponseController", Type, 20},
+ {"ResponseWriter", Type, 0},
+ {"RoundTripper", Type, 0},
+ {"SameSite", Type, 11},
+ {"SameSiteDefaultMode", Const, 11},
+ {"SameSiteLaxMode", Const, 11},
+ {"SameSiteNoneMode", Const, 13},
+ {"SameSiteStrictMode", Const, 11},
+ {"Serve", Func, 0},
+ {"ServeContent", Func, 0},
+ {"ServeFile", Func, 0},
+ {"ServeFileFS", Func, 22},
+ {"ServeMux", Type, 0},
+ {"ServeTLS", Func, 9},
+ {"Server", Type, 0},
+ {"Server.Addr", Field, 0},
+ {"Server.BaseContext", Field, 13},
+ {"Server.ConnContext", Field, 13},
+ {"Server.ConnState", Field, 3},
+ {"Server.DisableGeneralOptionsHandler", Field, 20},
+ {"Server.ErrorLog", Field, 3},
+ {"Server.Handler", Field, 0},
+ {"Server.IdleTimeout", Field, 8},
+ {"Server.MaxHeaderBytes", Field, 0},
+ {"Server.ReadHeaderTimeout", Field, 8},
+ {"Server.ReadTimeout", Field, 0},
+ {"Server.TLSConfig", Field, 0},
+ {"Server.TLSNextProto", Field, 1},
+ {"Server.WriteTimeout", Field, 0},
+ {"ServerContextKey", Var, 7},
+ {"SetCookie", Func, 0},
+ {"StateActive", Const, 3},
+ {"StateClosed", Const, 3},
+ {"StateHijacked", Const, 3},
+ {"StateIdle", Const, 3},
+ {"StateNew", Const, 3},
+ {"StatusAccepted", Const, 0},
+ {"StatusAlreadyReported", Const, 7},
+ {"StatusBadGateway", Const, 0},
+ {"StatusBadRequest", Const, 0},
+ {"StatusConflict", Const, 0},
+ {"StatusContinue", Const, 0},
+ {"StatusCreated", Const, 0},
+ {"StatusEarlyHints", Const, 13},
+ {"StatusExpectationFailed", Const, 0},
+ {"StatusFailedDependency", Const, 7},
+ {"StatusForbidden", Const, 0},
+ {"StatusFound", Const, 0},
+ {"StatusGatewayTimeout", Const, 0},
+ {"StatusGone", Const, 0},
+ {"StatusHTTPVersionNotSupported", Const, 0},
+ {"StatusIMUsed", Const, 7},
+ {"StatusInsufficientStorage", Const, 7},
+ {"StatusInternalServerError", Const, 0},
+ {"StatusLengthRequired", Const, 0},
+ {"StatusLocked", Const, 7},
+ {"StatusLoopDetected", Const, 7},
+ {"StatusMethodNotAllowed", Const, 0},
+ {"StatusMisdirectedRequest", Const, 11},
+ {"StatusMovedPermanently", Const, 0},
+ {"StatusMultiStatus", Const, 7},
+ {"StatusMultipleChoices", Const, 0},
+ {"StatusNetworkAuthenticationRequired", Const, 6},
+ {"StatusNoContent", Const, 0},
+ {"StatusNonAuthoritativeInfo", Const, 0},
+ {"StatusNotAcceptable", Const, 0},
+ {"StatusNotExtended", Const, 7},
+ {"StatusNotFound", Const, 0},
+ {"StatusNotImplemented", Const, 0},
+ {"StatusNotModified", Const, 0},
+ {"StatusOK", Const, 0},
+ {"StatusPartialContent", Const, 0},
+ {"StatusPaymentRequired", Const, 0},
+ {"StatusPermanentRedirect", Const, 7},
+ {"StatusPreconditionFailed", Const, 0},
+ {"StatusPreconditionRequired", Const, 6},
+ {"StatusProcessing", Const, 7},
+ {"StatusProxyAuthRequired", Const, 0},
+ {"StatusRequestEntityTooLarge", Const, 0},
+ {"StatusRequestHeaderFieldsTooLarge", Const, 6},
+ {"StatusRequestTimeout", Const, 0},
+ {"StatusRequestURITooLong", Const, 0},
+ {"StatusRequestedRangeNotSatisfiable", Const, 0},
+ {"StatusResetContent", Const, 0},
+ {"StatusSeeOther", Const, 0},
+ {"StatusServiceUnavailable", Const, 0},
+ {"StatusSwitchingProtocols", Const, 0},
+ {"StatusTeapot", Const, 0},
+ {"StatusTemporaryRedirect", Const, 0},
+ {"StatusText", Func, 0},
+ {"StatusTooEarly", Const, 12},
+ {"StatusTooManyRequests", Const, 6},
+ {"StatusUnauthorized", Const, 0},
+ {"StatusUnavailableForLegalReasons", Const, 6},
+ {"StatusUnprocessableEntity", Const, 7},
+ {"StatusUnsupportedMediaType", Const, 0},
+ {"StatusUpgradeRequired", Const, 7},
+ {"StatusUseProxy", Const, 0},
+ {"StatusVariantAlsoNegotiates", Const, 7},
+ {"StripPrefix", Func, 0},
+ {"TimeFormat", Const, 0},
+ {"TimeoutHandler", Func, 0},
+ {"TrailerPrefix", Const, 8},
+ {"Transport", Type, 0},
+ {"Transport.Dial", Field, 0},
+ {"Transport.DialContext", Field, 7},
+ {"Transport.DialTLS", Field, 4},
+ {"Transport.DialTLSContext", Field, 14},
+ {"Transport.DisableCompression", Field, 0},
+ {"Transport.DisableKeepAlives", Field, 0},
+ {"Transport.ExpectContinueTimeout", Field, 6},
+ {"Transport.ForceAttemptHTTP2", Field, 13},
+ {"Transport.GetProxyConnectHeader", Field, 16},
+ {"Transport.IdleConnTimeout", Field, 7},
+ {"Transport.MaxConnsPerHost", Field, 11},
+ {"Transport.MaxIdleConns", Field, 7},
+ {"Transport.MaxIdleConnsPerHost", Field, 0},
+ {"Transport.MaxResponseHeaderBytes", Field, 7},
+ {"Transport.OnProxyConnectResponse", Field, 20},
+ {"Transport.Proxy", Field, 0},
+ {"Transport.ProxyConnectHeader", Field, 8},
+ {"Transport.ReadBufferSize", Field, 13},
+ {"Transport.ResponseHeaderTimeout", Field, 1},
+ {"Transport.TLSClientConfig", Field, 0},
+ {"Transport.TLSHandshakeTimeout", Field, 3},
+ {"Transport.TLSNextProto", Field, 6},
+ {"Transport.WriteBufferSize", Field, 13},
+ },
+ "net/http/cgi": {
+ {"(*Handler).ServeHTTP", Method, 0},
+ {"Handler", Type, 0},
+ {"Handler.Args", Field, 0},
+ {"Handler.Dir", Field, 0},
+ {"Handler.Env", Field, 0},
+ {"Handler.InheritEnv", Field, 0},
+ {"Handler.Logger", Field, 0},
+ {"Handler.Path", Field, 0},
+ {"Handler.PathLocationHandler", Field, 0},
+ {"Handler.Root", Field, 0},
+ {"Handler.Stderr", Field, 7},
+ {"Request", Func, 0},
+ {"RequestFromMap", Func, 0},
+ {"Serve", Func, 0},
+ },
+ "net/http/cookiejar": {
+ {"(*Jar).Cookies", Method, 1},
+ {"(*Jar).SetCookies", Method, 1},
+ {"Jar", Type, 1},
+ {"New", Func, 1},
+ {"Options", Type, 1},
+ {"Options.PublicSuffixList", Field, 1},
+ {"PublicSuffixList", Type, 1},
+ },
+ "net/http/fcgi": {
+ {"ErrConnClosed", Var, 5},
+ {"ErrRequestAborted", Var, 5},
+ {"ProcessEnv", Func, 9},
+ {"Serve", Func, 0},
+ },
+ "net/http/httptest": {
+ {"(*ResponseRecorder).Flush", Method, 0},
+ {"(*ResponseRecorder).Header", Method, 0},
+ {"(*ResponseRecorder).Result", Method, 7},
+ {"(*ResponseRecorder).Write", Method, 0},
+ {"(*ResponseRecorder).WriteHeader", Method, 0},
+ {"(*ResponseRecorder).WriteString", Method, 6},
+ {"(*Server).Certificate", Method, 9},
+ {"(*Server).Client", Method, 9},
+ {"(*Server).Close", Method, 0},
+ {"(*Server).CloseClientConnections", Method, 0},
+ {"(*Server).Start", Method, 0},
+ {"(*Server).StartTLS", Method, 0},
+ {"DefaultRemoteAddr", Const, 0},
+ {"NewRecorder", Func, 0},
+ {"NewRequest", Func, 7},
+ {"NewServer", Func, 0},
+ {"NewTLSServer", Func, 0},
+ {"NewUnstartedServer", Func, 0},
+ {"ResponseRecorder", Type, 0},
+ {"ResponseRecorder.Body", Field, 0},
+ {"ResponseRecorder.Code", Field, 0},
+ {"ResponseRecorder.Flushed", Field, 0},
+ {"ResponseRecorder.HeaderMap", Field, 0},
+ {"Server", Type, 0},
+ {"Server.Config", Field, 0},
+ {"Server.EnableHTTP2", Field, 14},
+ {"Server.Listener", Field, 0},
+ {"Server.TLS", Field, 0},
+ {"Server.URL", Field, 0},
+ },
+ "net/http/httptrace": {
+ {"ClientTrace", Type, 7},
+ {"ClientTrace.ConnectDone", Field, 7},
+ {"ClientTrace.ConnectStart", Field, 7},
+ {"ClientTrace.DNSDone", Field, 7},
+ {"ClientTrace.DNSStart", Field, 7},
+ {"ClientTrace.GetConn", Field, 7},
+ {"ClientTrace.Got100Continue", Field, 7},
+ {"ClientTrace.Got1xxResponse", Field, 11},
+ {"ClientTrace.GotConn", Field, 7},
+ {"ClientTrace.GotFirstResponseByte", Field, 7},
+ {"ClientTrace.PutIdleConn", Field, 7},
+ {"ClientTrace.TLSHandshakeDone", Field, 8},
+ {"ClientTrace.TLSHandshakeStart", Field, 8},
+ {"ClientTrace.Wait100Continue", Field, 7},
+ {"ClientTrace.WroteHeaderField", Field, 11},
+ {"ClientTrace.WroteHeaders", Field, 7},
+ {"ClientTrace.WroteRequest", Field, 7},
+ {"ContextClientTrace", Func, 7},
+ {"DNSDoneInfo", Type, 7},
+ {"DNSDoneInfo.Addrs", Field, 7},
+ {"DNSDoneInfo.Coalesced", Field, 7},
+ {"DNSDoneInfo.Err", Field, 7},
+ {"DNSStartInfo", Type, 7},
+ {"DNSStartInfo.Host", Field, 7},
+ {"GotConnInfo", Type, 7},
+ {"GotConnInfo.Conn", Field, 7},
+ {"GotConnInfo.IdleTime", Field, 7},
+ {"GotConnInfo.Reused", Field, 7},
+ {"GotConnInfo.WasIdle", Field, 7},
+ {"WithClientTrace", Func, 7},
+ {"WroteRequestInfo", Type, 7},
+ {"WroteRequestInfo.Err", Field, 7},
+ },
+ "net/http/httputil": {
+ {"(*ClientConn).Close", Method, 0},
+ {"(*ClientConn).Do", Method, 0},
+ {"(*ClientConn).Hijack", Method, 0},
+ {"(*ClientConn).Pending", Method, 0},
+ {"(*ClientConn).Read", Method, 0},
+ {"(*ClientConn).Write", Method, 0},
+ {"(*ProxyRequest).SetURL", Method, 20},
+ {"(*ProxyRequest).SetXForwarded", Method, 20},
+ {"(*ReverseProxy).ServeHTTP", Method, 0},
+ {"(*ServerConn).Close", Method, 0},
+ {"(*ServerConn).Hijack", Method, 0},
+ {"(*ServerConn).Pending", Method, 0},
+ {"(*ServerConn).Read", Method, 0},
+ {"(*ServerConn).Write", Method, 0},
+ {"BufferPool", Type, 6},
+ {"ClientConn", Type, 0},
+ {"DumpRequest", Func, 0},
+ {"DumpRequestOut", Func, 0},
+ {"DumpResponse", Func, 0},
+ {"ErrClosed", Var, 0},
+ {"ErrLineTooLong", Var, 0},
+ {"ErrPersistEOF", Var, 0},
+ {"ErrPipeline", Var, 0},
+ {"NewChunkedReader", Func, 0},
+ {"NewChunkedWriter", Func, 0},
+ {"NewClientConn", Func, 0},
+ {"NewProxyClientConn", Func, 0},
+ {"NewServerConn", Func, 0},
+ {"NewSingleHostReverseProxy", Func, 0},
+ {"ProxyRequest", Type, 20},
+ {"ProxyRequest.In", Field, 20},
+ {"ProxyRequest.Out", Field, 20},
+ {"ReverseProxy", Type, 0},
+ {"ReverseProxy.BufferPool", Field, 6},
+ {"ReverseProxy.Director", Field, 0},
+ {"ReverseProxy.ErrorHandler", Field, 11},
+ {"ReverseProxy.ErrorLog", Field, 4},
+ {"ReverseProxy.FlushInterval", Field, 0},
+ {"ReverseProxy.ModifyResponse", Field, 8},
+ {"ReverseProxy.Rewrite", Field, 20},
+ {"ReverseProxy.Transport", Field, 0},
+ {"ServerConn", Type, 0},
+ },
+ "net/http/pprof": {
+ {"Cmdline", Func, 0},
+ {"Handler", Func, 0},
+ {"Index", Func, 0},
+ {"Profile", Func, 0},
+ {"Symbol", Func, 0},
+ {"Trace", Func, 5},
+ },
+ "net/mail": {
+ {"(*Address).String", Method, 0},
+ {"(*AddressParser).Parse", Method, 5},
+ {"(*AddressParser).ParseList", Method, 5},
+ {"(Header).AddressList", Method, 0},
+ {"(Header).Date", Method, 0},
+ {"(Header).Get", Method, 0},
+ {"Address", Type, 0},
+ {"Address.Address", Field, 0},
+ {"Address.Name", Field, 0},
+ {"AddressParser", Type, 5},
+ {"AddressParser.WordDecoder", Field, 5},
+ {"ErrHeaderNotPresent", Var, 0},
+ {"Header", Type, 0},
+ {"Message", Type, 0},
+ {"Message.Body", Field, 0},
+ {"Message.Header", Field, 0},
+ {"ParseAddress", Func, 1},
+ {"ParseAddressList", Func, 1},
+ {"ParseDate", Func, 8},
+ {"ReadMessage", Func, 0},
+ },
+ "net/netip": {
+ {"(*Addr).UnmarshalBinary", Method, 18},
+ {"(*Addr).UnmarshalText", Method, 18},
+ {"(*AddrPort).UnmarshalBinary", Method, 18},
+ {"(*AddrPort).UnmarshalText", Method, 18},
+ {"(*Prefix).UnmarshalBinary", Method, 18},
+ {"(*Prefix).UnmarshalText", Method, 18},
+ {"(Addr).AppendTo", Method, 18},
+ {"(Addr).As16", Method, 18},
+ {"(Addr).As4", Method, 18},
+ {"(Addr).AsSlice", Method, 18},
+ {"(Addr).BitLen", Method, 18},
+ {"(Addr).Compare", Method, 18},
+ {"(Addr).Is4", Method, 18},
+ {"(Addr).Is4In6", Method, 18},
+ {"(Addr).Is6", Method, 18},
+ {"(Addr).IsGlobalUnicast", Method, 18},
+ {"(Addr).IsInterfaceLocalMulticast", Method, 18},
+ {"(Addr).IsLinkLocalMulticast", Method, 18},
+ {"(Addr).IsLinkLocalUnicast", Method, 18},
+ {"(Addr).IsLoopback", Method, 18},
+ {"(Addr).IsMulticast", Method, 18},
+ {"(Addr).IsPrivate", Method, 18},
+ {"(Addr).IsUnspecified", Method, 18},
+ {"(Addr).IsValid", Method, 18},
+ {"(Addr).Less", Method, 18},
+ {"(Addr).MarshalBinary", Method, 18},
+ {"(Addr).MarshalText", Method, 18},
+ {"(Addr).Next", Method, 18},
+ {"(Addr).Prefix", Method, 18},
+ {"(Addr).Prev", Method, 18},
+ {"(Addr).String", Method, 18},
+ {"(Addr).StringExpanded", Method, 18},
+ {"(Addr).Unmap", Method, 18},
+ {"(Addr).WithZone", Method, 18},
+ {"(Addr).Zone", Method, 18},
+ {"(AddrPort).Addr", Method, 18},
+ {"(AddrPort).AppendTo", Method, 18},
+ {"(AddrPort).Compare", Method, 22},
+ {"(AddrPort).IsValid", Method, 18},
+ {"(AddrPort).MarshalBinary", Method, 18},
+ {"(AddrPort).MarshalText", Method, 18},
+ {"(AddrPort).Port", Method, 18},
+ {"(AddrPort).String", Method, 18},
+ {"(Prefix).Addr", Method, 18},
+ {"(Prefix).AppendTo", Method, 18},
+ {"(Prefix).Bits", Method, 18},
+ {"(Prefix).Contains", Method, 18},
+ {"(Prefix).IsSingleIP", Method, 18},
+ {"(Prefix).IsValid", Method, 18},
+ {"(Prefix).MarshalBinary", Method, 18},
+ {"(Prefix).MarshalText", Method, 18},
+ {"(Prefix).Masked", Method, 18},
+ {"(Prefix).Overlaps", Method, 18},
+ {"(Prefix).String", Method, 18},
+ {"Addr", Type, 18},
+ {"AddrFrom16", Func, 18},
+ {"AddrFrom4", Func, 18},
+ {"AddrFromSlice", Func, 18},
+ {"AddrPort", Type, 18},
+ {"AddrPortFrom", Func, 18},
+ {"IPv4Unspecified", Func, 18},
+ {"IPv6LinkLocalAllNodes", Func, 18},
+ {"IPv6LinkLocalAllRouters", Func, 20},
+ {"IPv6Loopback", Func, 20},
+ {"IPv6Unspecified", Func, 18},
+ {"MustParseAddr", Func, 18},
+ {"MustParseAddrPort", Func, 18},
+ {"MustParsePrefix", Func, 18},
+ {"ParseAddr", Func, 18},
+ {"ParseAddrPort", Func, 18},
+ {"ParsePrefix", Func, 18},
+ {"Prefix", Type, 18},
+ {"PrefixFrom", Func, 18},
+ },
+ "net/rpc": {
+ {"(*Client).Call", Method, 0},
+ {"(*Client).Close", Method, 0},
+ {"(*Client).Go", Method, 0},
+ {"(*Server).Accept", Method, 0},
+ {"(*Server).HandleHTTP", Method, 0},
+ {"(*Server).Register", Method, 0},
+ {"(*Server).RegisterName", Method, 0},
+ {"(*Server).ServeCodec", Method, 0},
+ {"(*Server).ServeConn", Method, 0},
+ {"(*Server).ServeHTTP", Method, 0},
+ {"(*Server).ServeRequest", Method, 0},
+ {"(ServerError).Error", Method, 0},
+ {"Accept", Func, 0},
+ {"Call", Type, 0},
+ {"Call.Args", Field, 0},
+ {"Call.Done", Field, 0},
+ {"Call.Error", Field, 0},
+ {"Call.Reply", Field, 0},
+ {"Call.ServiceMethod", Field, 0},
+ {"Client", Type, 0},
+ {"ClientCodec", Type, 0},
+ {"DefaultDebugPath", Const, 0},
+ {"DefaultRPCPath", Const, 0},
+ {"DefaultServer", Var, 0},
+ {"Dial", Func, 0},
+ {"DialHTTP", Func, 0},
+ {"DialHTTPPath", Func, 0},
+ {"ErrShutdown", Var, 0},
+ {"HandleHTTP", Func, 0},
+ {"NewClient", Func, 0},
+ {"NewClientWithCodec", Func, 0},
+ {"NewServer", Func, 0},
+ {"Register", Func, 0},
+ {"RegisterName", Func, 0},
+ {"Request", Type, 0},
+ {"Request.Seq", Field, 0},
+ {"Request.ServiceMethod", Field, 0},
+ {"Response", Type, 0},
+ {"Response.Error", Field, 0},
+ {"Response.Seq", Field, 0},
+ {"Response.ServiceMethod", Field, 0},
+ {"ServeCodec", Func, 0},
+ {"ServeConn", Func, 0},
+ {"ServeRequest", Func, 0},
+ {"Server", Type, 0},
+ {"ServerCodec", Type, 0},
+ {"ServerError", Type, 0},
+ },
+ "net/rpc/jsonrpc": {
+ {"Dial", Func, 0},
+ {"NewClient", Func, 0},
+ {"NewClientCodec", Func, 0},
+ {"NewServerCodec", Func, 0},
+ {"ServeConn", Func, 0},
+ },
+ "net/smtp": {
+ {"(*Client).Auth", Method, 0},
+ {"(*Client).Close", Method, 2},
+ {"(*Client).Data", Method, 0},
+ {"(*Client).Extension", Method, 0},
+ {"(*Client).Hello", Method, 1},
+ {"(*Client).Mail", Method, 0},
+ {"(*Client).Noop", Method, 10},
+ {"(*Client).Quit", Method, 0},
+ {"(*Client).Rcpt", Method, 0},
+ {"(*Client).Reset", Method, 0},
+ {"(*Client).StartTLS", Method, 0},
+ {"(*Client).TLSConnectionState", Method, 5},
+ {"(*Client).Verify", Method, 0},
+ {"Auth", Type, 0},
+ {"CRAMMD5Auth", Func, 0},
+ {"Client", Type, 0},
+ {"Client.Text", Field, 0},
+ {"Dial", Func, 0},
+ {"NewClient", Func, 0},
+ {"PlainAuth", Func, 0},
+ {"SendMail", Func, 0},
+ {"ServerInfo", Type, 0},
+ {"ServerInfo.Auth", Field, 0},
+ {"ServerInfo.Name", Field, 0},
+ {"ServerInfo.TLS", Field, 0},
+ },
+ "net/textproto": {
+ {"(*Conn).Close", Method, 0},
+ {"(*Conn).Cmd", Method, 0},
+ {"(*Conn).DotReader", Method, 0},
+ {"(*Conn).DotWriter", Method, 0},
+ {"(*Conn).EndRequest", Method, 0},
+ {"(*Conn).EndResponse", Method, 0},
+ {"(*Conn).Next", Method, 0},
+ {"(*Conn).PrintfLine", Method, 0},
+ {"(*Conn).ReadCodeLine", Method, 0},
+ {"(*Conn).ReadContinuedLine", Method, 0},
+ {"(*Conn).ReadContinuedLineBytes", Method, 0},
+ {"(*Conn).ReadDotBytes", Method, 0},
+ {"(*Conn).ReadDotLines", Method, 0},
+ {"(*Conn).ReadLine", Method, 0},
+ {"(*Conn).ReadLineBytes", Method, 0},
+ {"(*Conn).ReadMIMEHeader", Method, 0},
+ {"(*Conn).ReadResponse", Method, 0},
+ {"(*Conn).StartRequest", Method, 0},
+ {"(*Conn).StartResponse", Method, 0},
+ {"(*Error).Error", Method, 0},
+ {"(*Pipeline).EndRequest", Method, 0},
+ {"(*Pipeline).EndResponse", Method, 0},
+ {"(*Pipeline).Next", Method, 0},
+ {"(*Pipeline).StartRequest", Method, 0},
+ {"(*Pipeline).StartResponse", Method, 0},
+ {"(*Reader).DotReader", Method, 0},
+ {"(*Reader).ReadCodeLine", Method, 0},
+ {"(*Reader).ReadContinuedLine", Method, 0},
+ {"(*Reader).ReadContinuedLineBytes", Method, 0},
+ {"(*Reader).ReadDotBytes", Method, 0},
+ {"(*Reader).ReadDotLines", Method, 0},
+ {"(*Reader).ReadLine", Method, 0},
+ {"(*Reader).ReadLineBytes", Method, 0},
+ {"(*Reader).ReadMIMEHeader", Method, 0},
+ {"(*Reader).ReadResponse", Method, 0},
+ {"(*Writer).DotWriter", Method, 0},
+ {"(*Writer).PrintfLine", Method, 0},
+ {"(MIMEHeader).Add", Method, 0},
+ {"(MIMEHeader).Del", Method, 0},
+ {"(MIMEHeader).Get", Method, 0},
+ {"(MIMEHeader).Set", Method, 0},
+ {"(MIMEHeader).Values", Method, 14},
+ {"(ProtocolError).Error", Method, 0},
+ {"CanonicalMIMEHeaderKey", Func, 0},
+ {"Conn", Type, 0},
+ {"Conn.Pipeline", Field, 0},
+ {"Conn.Reader", Field, 0},
+ {"Conn.Writer", Field, 0},
+ {"Dial", Func, 0},
+ {"Error", Type, 0},
+ {"Error.Code", Field, 0},
+ {"Error.Msg", Field, 0},
+ {"MIMEHeader", Type, 0},
+ {"NewConn", Func, 0},
+ {"NewReader", Func, 0},
+ {"NewWriter", Func, 0},
+ {"Pipeline", Type, 0},
+ {"ProtocolError", Type, 0},
+ {"Reader", Type, 0},
+ {"Reader.R", Field, 0},
+ {"TrimBytes", Func, 1},
+ {"TrimString", Func, 1},
+ {"Writer", Type, 0},
+ {"Writer.W", Field, 0},
+ },
+ "net/url": {
+ {"(*Error).Error", Method, 0},
+ {"(*Error).Temporary", Method, 6},
+ {"(*Error).Timeout", Method, 6},
+ {"(*Error).Unwrap", Method, 13},
+ {"(*URL).EscapedFragment", Method, 15},
+ {"(*URL).EscapedPath", Method, 5},
+ {"(*URL).Hostname", Method, 8},
+ {"(*URL).IsAbs", Method, 0},
+ {"(*URL).JoinPath", Method, 19},
+ {"(*URL).MarshalBinary", Method, 8},
+ {"(*URL).Parse", Method, 0},
+ {"(*URL).Port", Method, 8},
+ {"(*URL).Query", Method, 0},
+ {"(*URL).Redacted", Method, 15},
+ {"(*URL).RequestURI", Method, 0},
+ {"(*URL).ResolveReference", Method, 0},
+ {"(*URL).String", Method, 0},
+ {"(*URL).UnmarshalBinary", Method, 8},
+ {"(*Userinfo).Password", Method, 0},
+ {"(*Userinfo).String", Method, 0},
+ {"(*Userinfo).Username", Method, 0},
+ {"(EscapeError).Error", Method, 0},
+ {"(InvalidHostError).Error", Method, 6},
+ {"(Values).Add", Method, 0},
+ {"(Values).Del", Method, 0},
+ {"(Values).Encode", Method, 0},
+ {"(Values).Get", Method, 0},
+ {"(Values).Has", Method, 17},
+ {"(Values).Set", Method, 0},
+ {"Error", Type, 0},
+ {"Error.Err", Field, 0},
+ {"Error.Op", Field, 0},
+ {"Error.URL", Field, 0},
+ {"EscapeError", Type, 0},
+ {"InvalidHostError", Type, 6},
+ {"JoinPath", Func, 19},
+ {"Parse", Func, 0},
+ {"ParseQuery", Func, 0},
+ {"ParseRequestURI", Func, 0},
+ {"PathEscape", Func, 8},
+ {"PathUnescape", Func, 8},
+ {"QueryEscape", Func, 0},
+ {"QueryUnescape", Func, 0},
+ {"URL", Type, 0},
+ {"URL.ForceQuery", Field, 7},
+ {"URL.Fragment", Field, 0},
+ {"URL.Host", Field, 0},
+ {"URL.OmitHost", Field, 19},
+ {"URL.Opaque", Field, 0},
+ {"URL.Path", Field, 0},
+ {"URL.RawFragment", Field, 15},
+ {"URL.RawPath", Field, 5},
+ {"URL.RawQuery", Field, 0},
+ {"URL.Scheme", Field, 0},
+ {"URL.User", Field, 0},
+ {"User", Func, 0},
+ {"UserPassword", Func, 0},
+ {"Userinfo", Type, 0},
+ {"Values", Type, 0},
+ },
+ "os": {
+ {"(*File).Chdir", Method, 0},
+ {"(*File).Chmod", Method, 0},
+ {"(*File).Chown", Method, 0},
+ {"(*File).Close", Method, 0},
+ {"(*File).Fd", Method, 0},
+ {"(*File).Name", Method, 0},
+ {"(*File).Read", Method, 0},
+ {"(*File).ReadAt", Method, 0},
+ {"(*File).ReadDir", Method, 16},
+ {"(*File).ReadFrom", Method, 15},
+ {"(*File).Readdir", Method, 0},
+ {"(*File).Readdirnames", Method, 0},
+ {"(*File).Seek", Method, 0},
+ {"(*File).SetDeadline", Method, 10},
+ {"(*File).SetReadDeadline", Method, 10},
+ {"(*File).SetWriteDeadline", Method, 10},
+ {"(*File).Stat", Method, 0},
+ {"(*File).Sync", Method, 0},
+ {"(*File).SyscallConn", Method, 12},
+ {"(*File).Truncate", Method, 0},
+ {"(*File).Write", Method, 0},
+ {"(*File).WriteAt", Method, 0},
+ {"(*File).WriteString", Method, 0},
+ {"(*File).WriteTo", Method, 22},
+ {"(*LinkError).Error", Method, 0},
+ {"(*LinkError).Unwrap", Method, 13},
+ {"(*PathError).Error", Method, 0},
+ {"(*PathError).Timeout", Method, 10},
+ {"(*PathError).Unwrap", Method, 13},
+ {"(*Process).Kill", Method, 0},
+ {"(*Process).Release", Method, 0},
+ {"(*Process).Signal", Method, 0},
+ {"(*Process).Wait", Method, 0},
+ {"(*ProcessState).ExitCode", Method, 12},
+ {"(*ProcessState).Exited", Method, 0},
+ {"(*ProcessState).Pid", Method, 0},
+ {"(*ProcessState).String", Method, 0},
+ {"(*ProcessState).Success", Method, 0},
+ {"(*ProcessState).Sys", Method, 0},
+ {"(*ProcessState).SysUsage", Method, 0},
+ {"(*ProcessState).SystemTime", Method, 0},
+ {"(*ProcessState).UserTime", Method, 0},
+ {"(*SyscallError).Error", Method, 0},
+ {"(*SyscallError).Timeout", Method, 10},
+ {"(*SyscallError).Unwrap", Method, 13},
+ {"(FileMode).IsDir", Method, 0},
+ {"(FileMode).IsRegular", Method, 1},
+ {"(FileMode).Perm", Method, 0},
+ {"(FileMode).String", Method, 0},
+ {"Args", Var, 0},
+ {"Chdir", Func, 0},
+ {"Chmod", Func, 0},
+ {"Chown", Func, 0},
+ {"Chtimes", Func, 0},
+ {"Clearenv", Func, 0},
+ {"Create", Func, 0},
+ {"CreateTemp", Func, 16},
+ {"DevNull", Const, 0},
+ {"DirEntry", Type, 16},
+ {"DirFS", Func, 16},
+ {"Environ", Func, 0},
+ {"ErrClosed", Var, 8},
+ {"ErrDeadlineExceeded", Var, 15},
+ {"ErrExist", Var, 0},
+ {"ErrInvalid", Var, 0},
+ {"ErrNoDeadline", Var, 10},
+ {"ErrNotExist", Var, 0},
+ {"ErrPermission", Var, 0},
+ {"ErrProcessDone", Var, 16},
+ {"Executable", Func, 8},
+ {"Exit", Func, 0},
+ {"Expand", Func, 0},
+ {"ExpandEnv", Func, 0},
+ {"File", Type, 0},
+ {"FileInfo", Type, 0},
+ {"FileMode", Type, 0},
+ {"FindProcess", Func, 0},
+ {"Getegid", Func, 0},
+ {"Getenv", Func, 0},
+ {"Geteuid", Func, 0},
+ {"Getgid", Func, 0},
+ {"Getgroups", Func, 0},
+ {"Getpagesize", Func, 0},
+ {"Getpid", Func, 0},
+ {"Getppid", Func, 0},
+ {"Getuid", Func, 0},
+ {"Getwd", Func, 0},
+ {"Hostname", Func, 0},
+ {"Interrupt", Var, 0},
+ {"IsExist", Func, 0},
+ {"IsNotExist", Func, 0},
+ {"IsPathSeparator", Func, 0},
+ {"IsPermission", Func, 0},
+ {"IsTimeout", Func, 10},
+ {"Kill", Var, 0},
+ {"Lchown", Func, 0},
+ {"Link", Func, 0},
+ {"LinkError", Type, 0},
+ {"LinkError.Err", Field, 0},
+ {"LinkError.New", Field, 0},
+ {"LinkError.Old", Field, 0},
+ {"LinkError.Op", Field, 0},
+ {"LookupEnv", Func, 5},
+ {"Lstat", Func, 0},
+ {"Mkdir", Func, 0},
+ {"MkdirAll", Func, 0},
+ {"MkdirTemp", Func, 16},
+ {"ModeAppend", Const, 0},
+ {"ModeCharDevice", Const, 0},
+ {"ModeDevice", Const, 0},
+ {"ModeDir", Const, 0},
+ {"ModeExclusive", Const, 0},
+ {"ModeIrregular", Const, 11},
+ {"ModeNamedPipe", Const, 0},
+ {"ModePerm", Const, 0},
+ {"ModeSetgid", Const, 0},
+ {"ModeSetuid", Const, 0},
+ {"ModeSocket", Const, 0},
+ {"ModeSticky", Const, 0},
+ {"ModeSymlink", Const, 0},
+ {"ModeTemporary", Const, 0},
+ {"ModeType", Const, 0},
+ {"NewFile", Func, 0},
+ {"NewSyscallError", Func, 0},
+ {"O_APPEND", Const, 0},
+ {"O_CREATE", Const, 0},
+ {"O_EXCL", Const, 0},
+ {"O_RDONLY", Const, 0},
+ {"O_RDWR", Const, 0},
+ {"O_SYNC", Const, 0},
+ {"O_TRUNC", Const, 0},
+ {"O_WRONLY", Const, 0},
+ {"Open", Func, 0},
+ {"OpenFile", Func, 0},
+ {"PathError", Type, 0},
+ {"PathError.Err", Field, 0},
+ {"PathError.Op", Field, 0},
+ {"PathError.Path", Field, 0},
+ {"PathListSeparator", Const, 0},
+ {"PathSeparator", Const, 0},
+ {"Pipe", Func, 0},
+ {"ProcAttr", Type, 0},
+ {"ProcAttr.Dir", Field, 0},
+ {"ProcAttr.Env", Field, 0},
+ {"ProcAttr.Files", Field, 0},
+ {"ProcAttr.Sys", Field, 0},
+ {"Process", Type, 0},
+ {"Process.Pid", Field, 0},
+ {"ProcessState", Type, 0},
+ {"ReadDir", Func, 16},
+ {"ReadFile", Func, 16},
+ {"Readlink", Func, 0},
+ {"Remove", Func, 0},
+ {"RemoveAll", Func, 0},
+ {"Rename", Func, 0},
+ {"SEEK_CUR", Const, 0},
+ {"SEEK_END", Const, 0},
+ {"SEEK_SET", Const, 0},
+ {"SameFile", Func, 0},
+ {"Setenv", Func, 0},
+ {"Signal", Type, 0},
+ {"StartProcess", Func, 0},
+ {"Stat", Func, 0},
+ {"Stderr", Var, 0},
+ {"Stdin", Var, 0},
+ {"Stdout", Var, 0},
+ {"Symlink", Func, 0},
+ {"SyscallError", Type, 0},
+ {"SyscallError.Err", Field, 0},
+ {"SyscallError.Syscall", Field, 0},
+ {"TempDir", Func, 0},
+ {"Truncate", Func, 0},
+ {"Unsetenv", Func, 4},
+ {"UserCacheDir", Func, 11},
+ {"UserConfigDir", Func, 13},
+ {"UserHomeDir", Func, 12},
+ {"WriteFile", Func, 16},
+ },
+ "os/exec": {
+ {"(*Cmd).CombinedOutput", Method, 0},
+ {"(*Cmd).Environ", Method, 19},
+ {"(*Cmd).Output", Method, 0},
+ {"(*Cmd).Run", Method, 0},
+ {"(*Cmd).Start", Method, 0},
+ {"(*Cmd).StderrPipe", Method, 0},
+ {"(*Cmd).StdinPipe", Method, 0},
+ {"(*Cmd).StdoutPipe", Method, 0},
+ {"(*Cmd).String", Method, 13},
+ {"(*Cmd).Wait", Method, 0},
+ {"(*Error).Error", Method, 0},
+ {"(*Error).Unwrap", Method, 13},
+ {"(*ExitError).Error", Method, 0},
+ {"(ExitError).ExitCode", Method, 12},
+ {"(ExitError).Exited", Method, 0},
+ {"(ExitError).Pid", Method, 0},
+ {"(ExitError).String", Method, 0},
+ {"(ExitError).Success", Method, 0},
+ {"(ExitError).Sys", Method, 0},
+ {"(ExitError).SysUsage", Method, 0},
+ {"(ExitError).SystemTime", Method, 0},
+ {"(ExitError).UserTime", Method, 0},
+ {"Cmd", Type, 0},
+ {"Cmd.Args", Field, 0},
+ {"Cmd.Cancel", Field, 20},
+ {"Cmd.Dir", Field, 0},
+ {"Cmd.Env", Field, 0},
+ {"Cmd.Err", Field, 19},
+ {"Cmd.ExtraFiles", Field, 0},
+ {"Cmd.Path", Field, 0},
+ {"Cmd.Process", Field, 0},
+ {"Cmd.ProcessState", Field, 0},
+ {"Cmd.Stderr", Field, 0},
+ {"Cmd.Stdin", Field, 0},
+ {"Cmd.Stdout", Field, 0},
+ {"Cmd.SysProcAttr", Field, 0},
+ {"Cmd.WaitDelay", Field, 20},
+ {"Command", Func, 0},
+ {"CommandContext", Func, 7},
+ {"ErrDot", Var, 19},
+ {"ErrNotFound", Var, 0},
+ {"ErrWaitDelay", Var, 20},
+ {"Error", Type, 0},
+ {"Error.Err", Field, 0},
+ {"Error.Name", Field, 0},
+ {"ExitError", Type, 0},
+ {"ExitError.ProcessState", Field, 0},
+ {"ExitError.Stderr", Field, 6},
+ {"LookPath", Func, 0},
+ },
+ "os/signal": {
+ {"Ignore", Func, 5},
+ {"Ignored", Func, 11},
+ {"Notify", Func, 0},
+ {"NotifyContext", Func, 16},
+ {"Reset", Func, 5},
+ {"Stop", Func, 1},
+ },
+ "os/user": {
+ {"(*User).GroupIds", Method, 7},
+ {"(UnknownGroupError).Error", Method, 7},
+ {"(UnknownGroupIdError).Error", Method, 7},
+ {"(UnknownUserError).Error", Method, 0},
+ {"(UnknownUserIdError).Error", Method, 0},
+ {"Current", Func, 0},
+ {"Group", Type, 7},
+ {"Group.Gid", Field, 7},
+ {"Group.Name", Field, 7},
+ {"Lookup", Func, 0},
+ {"LookupGroup", Func, 7},
+ {"LookupGroupId", Func, 7},
+ {"LookupId", Func, 0},
+ {"UnknownGroupError", Type, 7},
+ {"UnknownGroupIdError", Type, 7},
+ {"UnknownUserError", Type, 0},
+ {"UnknownUserIdError", Type, 0},
+ {"User", Type, 0},
+ {"User.Gid", Field, 0},
+ {"User.HomeDir", Field, 0},
+ {"User.Name", Field, 0},
+ {"User.Uid", Field, 0},
+ {"User.Username", Field, 0},
+ },
+ "path": {
+ {"Base", Func, 0},
+ {"Clean", Func, 0},
+ {"Dir", Func, 0},
+ {"ErrBadPattern", Var, 0},
+ {"Ext", Func, 0},
+ {"IsAbs", Func, 0},
+ {"Join", Func, 0},
+ {"Match", Func, 0},
+ {"Split", Func, 0},
+ },
+ "path/filepath": {
+ {"Abs", Func, 0},
+ {"Base", Func, 0},
+ {"Clean", Func, 0},
+ {"Dir", Func, 0},
+ {"ErrBadPattern", Var, 0},
+ {"EvalSymlinks", Func, 0},
+ {"Ext", Func, 0},
+ {"FromSlash", Func, 0},
+ {"Glob", Func, 0},
+ {"HasPrefix", Func, 0},
+ {"IsAbs", Func, 0},
+ {"IsLocal", Func, 20},
+ {"Join", Func, 0},
+ {"ListSeparator", Const, 0},
+ {"Match", Func, 0},
+ {"Rel", Func, 0},
+ {"Separator", Const, 0},
+ {"SkipAll", Var, 20},
+ {"SkipDir", Var, 0},
+ {"Split", Func, 0},
+ {"SplitList", Func, 0},
+ {"ToSlash", Func, 0},
+ {"VolumeName", Func, 0},
+ {"Walk", Func, 0},
+ {"WalkDir", Func, 16},
+ {"WalkFunc", Type, 0},
+ },
+ "plugin": {
+ {"(*Plugin).Lookup", Method, 8},
+ {"Open", Func, 8},
+ {"Plugin", Type, 8},
+ {"Symbol", Type, 8},
+ },
+ "reflect": {
+ {"(*MapIter).Key", Method, 12},
+ {"(*MapIter).Next", Method, 12},
+ {"(*MapIter).Reset", Method, 18},
+ {"(*MapIter).Value", Method, 12},
+ {"(*ValueError).Error", Method, 0},
+ {"(ChanDir).String", Method, 0},
+ {"(Kind).String", Method, 0},
+ {"(Method).IsExported", Method, 17},
+ {"(StructField).IsExported", Method, 17},
+ {"(StructTag).Get", Method, 0},
+ {"(StructTag).Lookup", Method, 7},
+ {"(Value).Addr", Method, 0},
+ {"(Value).Bool", Method, 0},
+ {"(Value).Bytes", Method, 0},
+ {"(Value).Call", Method, 0},
+ {"(Value).CallSlice", Method, 0},
+ {"(Value).CanAddr", Method, 0},
+ {"(Value).CanComplex", Method, 18},
+ {"(Value).CanConvert", Method, 17},
+ {"(Value).CanFloat", Method, 18},
+ {"(Value).CanInt", Method, 18},
+ {"(Value).CanInterface", Method, 0},
+ {"(Value).CanSet", Method, 0},
+ {"(Value).CanUint", Method, 18},
+ {"(Value).Cap", Method, 0},
+ {"(Value).Clear", Method, 21},
+ {"(Value).Close", Method, 0},
+ {"(Value).Comparable", Method, 20},
+ {"(Value).Complex", Method, 0},
+ {"(Value).Convert", Method, 1},
+ {"(Value).Elem", Method, 0},
+ {"(Value).Equal", Method, 20},
+ {"(Value).Field", Method, 0},
+ {"(Value).FieldByIndex", Method, 0},
+ {"(Value).FieldByIndexErr", Method, 18},
+ {"(Value).FieldByName", Method, 0},
+ {"(Value).FieldByNameFunc", Method, 0},
+ {"(Value).Float", Method, 0},
+ {"(Value).Grow", Method, 20},
+ {"(Value).Index", Method, 0},
+ {"(Value).Int", Method, 0},
+ {"(Value).Interface", Method, 0},
+ {"(Value).InterfaceData", Method, 0},
+ {"(Value).IsNil", Method, 0},
+ {"(Value).IsValid", Method, 0},
+ {"(Value).IsZero", Method, 13},
+ {"(Value).Kind", Method, 0},
+ {"(Value).Len", Method, 0},
+ {"(Value).MapIndex", Method, 0},
+ {"(Value).MapKeys", Method, 0},
+ {"(Value).MapRange", Method, 12},
+ {"(Value).Method", Method, 0},
+ {"(Value).MethodByName", Method, 0},
+ {"(Value).NumField", Method, 0},
+ {"(Value).NumMethod", Method, 0},
+ {"(Value).OverflowComplex", Method, 0},
+ {"(Value).OverflowFloat", Method, 0},
+ {"(Value).OverflowInt", Method, 0},
+ {"(Value).OverflowUint", Method, 0},
+ {"(Value).Pointer", Method, 0},
+ {"(Value).Recv", Method, 0},
+ {"(Value).Send", Method, 0},
+ {"(Value).Set", Method, 0},
+ {"(Value).SetBool", Method, 0},
+ {"(Value).SetBytes", Method, 0},
+ {"(Value).SetCap", Method, 2},
+ {"(Value).SetComplex", Method, 0},
+ {"(Value).SetFloat", Method, 0},
+ {"(Value).SetInt", Method, 0},
+ {"(Value).SetIterKey", Method, 18},
+ {"(Value).SetIterValue", Method, 18},
+ {"(Value).SetLen", Method, 0},
+ {"(Value).SetMapIndex", Method, 0},
+ {"(Value).SetPointer", Method, 0},
+ {"(Value).SetString", Method, 0},
+ {"(Value).SetUint", Method, 0},
+ {"(Value).SetZero", Method, 20},
+ {"(Value).Slice", Method, 0},
+ {"(Value).Slice3", Method, 2},
+ {"(Value).String", Method, 0},
+ {"(Value).TryRecv", Method, 0},
+ {"(Value).TrySend", Method, 0},
+ {"(Value).Type", Method, 0},
+ {"(Value).Uint", Method, 0},
+ {"(Value).UnsafeAddr", Method, 0},
+ {"(Value).UnsafePointer", Method, 18},
+ {"Append", Func, 0},
+ {"AppendSlice", Func, 0},
+ {"Array", Const, 0},
+ {"ArrayOf", Func, 5},
+ {"Bool", Const, 0},
+ {"BothDir", Const, 0},
+ {"Chan", Const, 0},
+ {"ChanDir", Type, 0},
+ {"ChanOf", Func, 1},
+ {"Complex128", Const, 0},
+ {"Complex64", Const, 0},
+ {"Copy", Func, 0},
+ {"DeepEqual", Func, 0},
+ {"Float32", Const, 0},
+ {"Float64", Const, 0},
+ {"Func", Const, 0},
+ {"FuncOf", Func, 5},
+ {"Indirect", Func, 0},
+ {"Int", Const, 0},
+ {"Int16", Const, 0},
+ {"Int32", Const, 0},
+ {"Int64", Const, 0},
+ {"Int8", Const, 0},
+ {"Interface", Const, 0},
+ {"Invalid", Const, 0},
+ {"Kind", Type, 0},
+ {"MakeChan", Func, 0},
+ {"MakeFunc", Func, 1},
+ {"MakeMap", Func, 0},
+ {"MakeMapWithSize", Func, 9},
+ {"MakeSlice", Func, 0},
+ {"Map", Const, 0},
+ {"MapIter", Type, 12},
+ {"MapOf", Func, 1},
+ {"Method", Type, 0},
+ {"Method.Func", Field, 0},
+ {"Method.Index", Field, 0},
+ {"Method.Name", Field, 0},
+ {"Method.PkgPath", Field, 0},
+ {"Method.Type", Field, 0},
+ {"New", Func, 0},
+ {"NewAt", Func, 0},
+ {"Pointer", Const, 18},
+ {"PointerTo", Func, 18},
+ {"Ptr", Const, 0},
+ {"PtrTo", Func, 0},
+ {"RecvDir", Const, 0},
+ {"Select", Func, 1},
+ {"SelectCase", Type, 1},
+ {"SelectCase.Chan", Field, 1},
+ {"SelectCase.Dir", Field, 1},
+ {"SelectCase.Send", Field, 1},
+ {"SelectDefault", Const, 1},
+ {"SelectDir", Type, 1},
+ {"SelectRecv", Const, 1},
+ {"SelectSend", Const, 1},
+ {"SendDir", Const, 0},
+ {"Slice", Const, 0},
+ {"SliceHeader", Type, 0},
+ {"SliceHeader.Cap", Field, 0},
+ {"SliceHeader.Data", Field, 0},
+ {"SliceHeader.Len", Field, 0},
+ {"SliceOf", Func, 1},
+ {"String", Const, 0},
+ {"StringHeader", Type, 0},
+ {"StringHeader.Data", Field, 0},
+ {"StringHeader.Len", Field, 0},
+ {"Struct", Const, 0},
+ {"StructField", Type, 0},
+ {"StructField.Anonymous", Field, 0},
+ {"StructField.Index", Field, 0},
+ {"StructField.Name", Field, 0},
+ {"StructField.Offset", Field, 0},
+ {"StructField.PkgPath", Field, 0},
+ {"StructField.Tag", Field, 0},
+ {"StructField.Type", Field, 0},
+ {"StructOf", Func, 7},
+ {"StructTag", Type, 0},
+ {"Swapper", Func, 8},
+ {"Type", Type, 0},
+ {"TypeFor", Func, 22},
+ {"TypeOf", Func, 0},
+ {"Uint", Const, 0},
+ {"Uint16", Const, 0},
+ {"Uint32", Const, 0},
+ {"Uint64", Const, 0},
+ {"Uint8", Const, 0},
+ {"Uintptr", Const, 0},
+ {"UnsafePointer", Const, 0},
+ {"Value", Type, 0},
+ {"ValueError", Type, 0},
+ {"ValueError.Kind", Field, 0},
+ {"ValueError.Method", Field, 0},
+ {"ValueOf", Func, 0},
+ {"VisibleFields", Func, 17},
+ {"Zero", Func, 0},
+ },
+ "regexp": {
+ {"(*Regexp).Copy", Method, 6},
+ {"(*Regexp).Expand", Method, 0},
+ {"(*Regexp).ExpandString", Method, 0},
+ {"(*Regexp).Find", Method, 0},
+ {"(*Regexp).FindAll", Method, 0},
+ {"(*Regexp).FindAllIndex", Method, 0},
+ {"(*Regexp).FindAllString", Method, 0},
+ {"(*Regexp).FindAllStringIndex", Method, 0},
+ {"(*Regexp).FindAllStringSubmatch", Method, 0},
+ {"(*Regexp).FindAllStringSubmatchIndex", Method, 0},
+ {"(*Regexp).FindAllSubmatch", Method, 0},
+ {"(*Regexp).FindAllSubmatchIndex", Method, 0},
+ {"(*Regexp).FindIndex", Method, 0},
+ {"(*Regexp).FindReaderIndex", Method, 0},
+ {"(*Regexp).FindReaderSubmatchIndex", Method, 0},
+ {"(*Regexp).FindString", Method, 0},
+ {"(*Regexp).FindStringIndex", Method, 0},
+ {"(*Regexp).FindStringSubmatch", Method, 0},
+ {"(*Regexp).FindStringSubmatchIndex", Method, 0},
+ {"(*Regexp).FindSubmatch", Method, 0},
+ {"(*Regexp).FindSubmatchIndex", Method, 0},
+ {"(*Regexp).LiteralPrefix", Method, 0},
+ {"(*Regexp).Longest", Method, 1},
+ {"(*Regexp).MarshalText", Method, 21},
+ {"(*Regexp).Match", Method, 0},
+ {"(*Regexp).MatchReader", Method, 0},
+ {"(*Regexp).MatchString", Method, 0},
+ {"(*Regexp).NumSubexp", Method, 0},
+ {"(*Regexp).ReplaceAll", Method, 0},
+ {"(*Regexp).ReplaceAllFunc", Method, 0},
+ {"(*Regexp).ReplaceAllLiteral", Method, 0},
+ {"(*Regexp).ReplaceAllLiteralString", Method, 0},
+ {"(*Regexp).ReplaceAllString", Method, 0},
+ {"(*Regexp).ReplaceAllStringFunc", Method, 0},
+ {"(*Regexp).Split", Method, 1},
+ {"(*Regexp).String", Method, 0},
+ {"(*Regexp).SubexpIndex", Method, 15},
+ {"(*Regexp).SubexpNames", Method, 0},
+ {"(*Regexp).UnmarshalText", Method, 21},
+ {"Compile", Func, 0},
+ {"CompilePOSIX", Func, 0},
+ {"Match", Func, 0},
+ {"MatchReader", Func, 0},
+ {"MatchString", Func, 0},
+ {"MustCompile", Func, 0},
+ {"MustCompilePOSIX", Func, 0},
+ {"QuoteMeta", Func, 0},
+ {"Regexp", Type, 0},
+ },
+ "regexp/syntax": {
+ {"(*Error).Error", Method, 0},
+ {"(*Inst).MatchEmptyWidth", Method, 0},
+ {"(*Inst).MatchRune", Method, 0},
+ {"(*Inst).MatchRunePos", Method, 3},
+ {"(*Inst).String", Method, 0},
+ {"(*Prog).Prefix", Method, 0},
+ {"(*Prog).StartCond", Method, 0},
+ {"(*Prog).String", Method, 0},
+ {"(*Regexp).CapNames", Method, 0},
+ {"(*Regexp).Equal", Method, 0},
+ {"(*Regexp).MaxCap", Method, 0},
+ {"(*Regexp).Simplify", Method, 0},
+ {"(*Regexp).String", Method, 0},
+ {"(ErrorCode).String", Method, 0},
+ {"(InstOp).String", Method, 3},
+ {"(Op).String", Method, 11},
+ {"ClassNL", Const, 0},
+ {"Compile", Func, 0},
+ {"DotNL", Const, 0},
+ {"EmptyBeginLine", Const, 0},
+ {"EmptyBeginText", Const, 0},
+ {"EmptyEndLine", Const, 0},
+ {"EmptyEndText", Const, 0},
+ {"EmptyNoWordBoundary", Const, 0},
+ {"EmptyOp", Type, 0},
+ {"EmptyOpContext", Func, 0},
+ {"EmptyWordBoundary", Const, 0},
+ {"ErrInternalError", Const, 0},
+ {"ErrInvalidCharClass", Const, 0},
+ {"ErrInvalidCharRange", Const, 0},
+ {"ErrInvalidEscape", Const, 0},
+ {"ErrInvalidNamedCapture", Const, 0},
+ {"ErrInvalidPerlOp", Const, 0},
+ {"ErrInvalidRepeatOp", Const, 0},
+ {"ErrInvalidRepeatSize", Const, 0},
+ {"ErrInvalidUTF8", Const, 0},
+ {"ErrLarge", Const, 20},
+ {"ErrMissingBracket", Const, 0},
+ {"ErrMissingParen", Const, 0},
+ {"ErrMissingRepeatArgument", Const, 0},
+ {"ErrNestingDepth", Const, 19},
+ {"ErrTrailingBackslash", Const, 0},
+ {"ErrUnexpectedParen", Const, 1},
+ {"Error", Type, 0},
+ {"Error.Code", Field, 0},
+ {"Error.Expr", Field, 0},
+ {"ErrorCode", Type, 0},
+ {"Flags", Type, 0},
+ {"FoldCase", Const, 0},
+ {"Inst", Type, 0},
+ {"Inst.Arg", Field, 0},
+ {"Inst.Op", Field, 0},
+ {"Inst.Out", Field, 0},
+ {"Inst.Rune", Field, 0},
+ {"InstAlt", Const, 0},
+ {"InstAltMatch", Const, 0},
+ {"InstCapture", Const, 0},
+ {"InstEmptyWidth", Const, 0},
+ {"InstFail", Const, 0},
+ {"InstMatch", Const, 0},
+ {"InstNop", Const, 0},
+ {"InstOp", Type, 0},
+ {"InstRune", Const, 0},
+ {"InstRune1", Const, 0},
+ {"InstRuneAny", Const, 0},
+ {"InstRuneAnyNotNL", Const, 0},
+ {"IsWordChar", Func, 0},
+ {"Literal", Const, 0},
+ {"MatchNL", Const, 0},
+ {"NonGreedy", Const, 0},
+ {"OneLine", Const, 0},
+ {"Op", Type, 0},
+ {"OpAlternate", Const, 0},
+ {"OpAnyChar", Const, 0},
+ {"OpAnyCharNotNL", Const, 0},
+ {"OpBeginLine", Const, 0},
+ {"OpBeginText", Const, 0},
+ {"OpCapture", Const, 0},
+ {"OpCharClass", Const, 0},
+ {"OpConcat", Const, 0},
+ {"OpEmptyMatch", Const, 0},
+ {"OpEndLine", Const, 0},
+ {"OpEndText", Const, 0},
+ {"OpLiteral", Const, 0},
+ {"OpNoMatch", Const, 0},
+ {"OpNoWordBoundary", Const, 0},
+ {"OpPlus", Const, 0},
+ {"OpQuest", Const, 0},
+ {"OpRepeat", Const, 0},
+ {"OpStar", Const, 0},
+ {"OpWordBoundary", Const, 0},
+ {"POSIX", Const, 0},
+ {"Parse", Func, 0},
+ {"Perl", Const, 0},
+ {"PerlX", Const, 0},
+ {"Prog", Type, 0},
+ {"Prog.Inst", Field, 0},
+ {"Prog.NumCap", Field, 0},
+ {"Prog.Start", Field, 0},
+ {"Regexp", Type, 0},
+ {"Regexp.Cap", Field, 0},
+ {"Regexp.Flags", Field, 0},
+ {"Regexp.Max", Field, 0},
+ {"Regexp.Min", Field, 0},
+ {"Regexp.Name", Field, 0},
+ {"Regexp.Op", Field, 0},
+ {"Regexp.Rune", Field, 0},
+ {"Regexp.Rune0", Field, 0},
+ {"Regexp.Sub", Field, 0},
+ {"Regexp.Sub0", Field, 0},
+ {"Simple", Const, 0},
+ {"UnicodeGroups", Const, 0},
+ {"WasDollar", Const, 0},
+ },
+ "runtime": {
+ {"(*BlockProfileRecord).Stack", Method, 1},
+ {"(*Frames).Next", Method, 7},
+ {"(*Func).Entry", Method, 0},
+ {"(*Func).FileLine", Method, 0},
+ {"(*Func).Name", Method, 0},
+ {"(*MemProfileRecord).InUseBytes", Method, 0},
+ {"(*MemProfileRecord).InUseObjects", Method, 0},
+ {"(*MemProfileRecord).Stack", Method, 0},
+ {"(*PanicNilError).Error", Method, 21},
+ {"(*PanicNilError).RuntimeError", Method, 21},
+ {"(*Pinner).Pin", Method, 21},
+ {"(*Pinner).Unpin", Method, 21},
+ {"(*StackRecord).Stack", Method, 0},
+ {"(*TypeAssertionError).Error", Method, 0},
+ {"(*TypeAssertionError).RuntimeError", Method, 0},
+ {"BlockProfile", Func, 1},
+ {"BlockProfileRecord", Type, 1},
+ {"BlockProfileRecord.Count", Field, 1},
+ {"BlockProfileRecord.Cycles", Field, 1},
+ {"BlockProfileRecord.StackRecord", Field, 1},
+ {"Breakpoint", Func, 0},
+ {"CPUProfile", Func, 0},
+ {"Caller", Func, 0},
+ {"Callers", Func, 0},
+ {"CallersFrames", Func, 7},
+ {"Compiler", Const, 0},
+ {"Error", Type, 0},
+ {"Frame", Type, 7},
+ {"Frame.Entry", Field, 7},
+ {"Frame.File", Field, 7},
+ {"Frame.Func", Field, 7},
+ {"Frame.Function", Field, 7},
+ {"Frame.Line", Field, 7},
+ {"Frame.PC", Field, 7},
+ {"Frames", Type, 7},
+ {"Func", Type, 0},
+ {"FuncForPC", Func, 0},
+ {"GC", Func, 0},
+ {"GOARCH", Const, 0},
+ {"GOMAXPROCS", Func, 0},
+ {"GOOS", Const, 0},
+ {"GOROOT", Func, 0},
+ {"Goexit", Func, 0},
+ {"GoroutineProfile", Func, 0},
+ {"Gosched", Func, 0},
+ {"KeepAlive", Func, 7},
+ {"LockOSThread", Func, 0},
+ {"MemProfile", Func, 0},
+ {"MemProfileRate", Var, 0},
+ {"MemProfileRecord", Type, 0},
+ {"MemProfileRecord.AllocBytes", Field, 0},
+ {"MemProfileRecord.AllocObjects", Field, 0},
+ {"MemProfileRecord.FreeBytes", Field, 0},
+ {"MemProfileRecord.FreeObjects", Field, 0},
+ {"MemProfileRecord.Stack0", Field, 0},
+ {"MemStats", Type, 0},
+ {"MemStats.Alloc", Field, 0},
+ {"MemStats.BuckHashSys", Field, 0},
+ {"MemStats.BySize", Field, 0},
+ {"MemStats.DebugGC", Field, 0},
+ {"MemStats.EnableGC", Field, 0},
+ {"MemStats.Frees", Field, 0},
+ {"MemStats.GCCPUFraction", Field, 5},
+ {"MemStats.GCSys", Field, 2},
+ {"MemStats.HeapAlloc", Field, 0},
+ {"MemStats.HeapIdle", Field, 0},
+ {"MemStats.HeapInuse", Field, 0},
+ {"MemStats.HeapObjects", Field, 0},
+ {"MemStats.HeapReleased", Field, 0},
+ {"MemStats.HeapSys", Field, 0},
+ {"MemStats.LastGC", Field, 0},
+ {"MemStats.Lookups", Field, 0},
+ {"MemStats.MCacheInuse", Field, 0},
+ {"MemStats.MCacheSys", Field, 0},
+ {"MemStats.MSpanInuse", Field, 0},
+ {"MemStats.MSpanSys", Field, 0},
+ {"MemStats.Mallocs", Field, 0},
+ {"MemStats.NextGC", Field, 0},
+ {"MemStats.NumForcedGC", Field, 8},
+ {"MemStats.NumGC", Field, 0},
+ {"MemStats.OtherSys", Field, 2},
+ {"MemStats.PauseEnd", Field, 4},
+ {"MemStats.PauseNs", Field, 0},
+ {"MemStats.PauseTotalNs", Field, 0},
+ {"MemStats.StackInuse", Field, 0},
+ {"MemStats.StackSys", Field, 0},
+ {"MemStats.Sys", Field, 0},
+ {"MemStats.TotalAlloc", Field, 0},
+ {"MutexProfile", Func, 8},
+ {"NumCPU", Func, 0},
+ {"NumCgoCall", Func, 0},
+ {"NumGoroutine", Func, 0},
+ {"PanicNilError", Type, 21},
+ {"Pinner", Type, 21},
+ {"ReadMemStats", Func, 0},
+ {"ReadTrace", Func, 5},
+ {"SetBlockProfileRate", Func, 1},
+ {"SetCPUProfileRate", Func, 0},
+ {"SetCgoTraceback", Func, 7},
+ {"SetFinalizer", Func, 0},
+ {"SetMutexProfileFraction", Func, 8},
+ {"Stack", Func, 0},
+ {"StackRecord", Type, 0},
+ {"StackRecord.Stack0", Field, 0},
+ {"StartTrace", Func, 5},
+ {"StopTrace", Func, 5},
+ {"ThreadCreateProfile", Func, 0},
+ {"TypeAssertionError", Type, 0},
+ {"UnlockOSThread", Func, 0},
+ {"Version", Func, 0},
+ },
+ "runtime/cgo": {
+ {"(Handle).Delete", Method, 17},
+ {"(Handle).Value", Method, 17},
+ {"Handle", Type, 17},
+ {"Incomplete", Type, 20},
+ {"NewHandle", Func, 17},
+ },
+ "runtime/coverage": {
+ {"ClearCounters", Func, 20},
+ {"WriteCounters", Func, 20},
+ {"WriteCountersDir", Func, 20},
+ {"WriteMeta", Func, 20},
+ {"WriteMetaDir", Func, 20},
+ },
+ "runtime/debug": {
+ {"(*BuildInfo).String", Method, 18},
+ {"BuildInfo", Type, 12},
+ {"BuildInfo.Deps", Field, 12},
+ {"BuildInfo.GoVersion", Field, 18},
+ {"BuildInfo.Main", Field, 12},
+ {"BuildInfo.Path", Field, 12},
+ {"BuildInfo.Settings", Field, 18},
+ {"BuildSetting", Type, 18},
+ {"BuildSetting.Key", Field, 18},
+ {"BuildSetting.Value", Field, 18},
+ {"FreeOSMemory", Func, 1},
+ {"GCStats", Type, 1},
+ {"GCStats.LastGC", Field, 1},
+ {"GCStats.NumGC", Field, 1},
+ {"GCStats.Pause", Field, 1},
+ {"GCStats.PauseEnd", Field, 4},
+ {"GCStats.PauseQuantiles", Field, 1},
+ {"GCStats.PauseTotal", Field, 1},
+ {"Module", Type, 12},
+ {"Module.Path", Field, 12},
+ {"Module.Replace", Field, 12},
+ {"Module.Sum", Field, 12},
+ {"Module.Version", Field, 12},
+ {"ParseBuildInfo", Func, 18},
+ {"PrintStack", Func, 0},
+ {"ReadBuildInfo", Func, 12},
+ {"ReadGCStats", Func, 1},
+ {"SetGCPercent", Func, 1},
+ {"SetMaxStack", Func, 2},
+ {"SetMaxThreads", Func, 2},
+ {"SetMemoryLimit", Func, 19},
+ {"SetPanicOnFault", Func, 3},
+ {"SetTraceback", Func, 6},
+ {"Stack", Func, 0},
+ {"WriteHeapDump", Func, 3},
+ },
+ "runtime/metrics": {
+ {"(Value).Float64", Method, 16},
+ {"(Value).Float64Histogram", Method, 16},
+ {"(Value).Kind", Method, 16},
+ {"(Value).Uint64", Method, 16},
+ {"All", Func, 16},
+ {"Description", Type, 16},
+ {"Description.Cumulative", Field, 16},
+ {"Description.Description", Field, 16},
+ {"Description.Kind", Field, 16},
+ {"Description.Name", Field, 16},
+ {"Float64Histogram", Type, 16},
+ {"Float64Histogram.Buckets", Field, 16},
+ {"Float64Histogram.Counts", Field, 16},
+ {"KindBad", Const, 16},
+ {"KindFloat64", Const, 16},
+ {"KindFloat64Histogram", Const, 16},
+ {"KindUint64", Const, 16},
+ {"Read", Func, 16},
+ {"Sample", Type, 16},
+ {"Sample.Name", Field, 16},
+ {"Sample.Value", Field, 16},
+ {"Value", Type, 16},
+ {"ValueKind", Type, 16},
+ },
+ "runtime/pprof": {
+ {"(*Profile).Add", Method, 0},
+ {"(*Profile).Count", Method, 0},
+ {"(*Profile).Name", Method, 0},
+ {"(*Profile).Remove", Method, 0},
+ {"(*Profile).WriteTo", Method, 0},
+ {"Do", Func, 9},
+ {"ForLabels", Func, 9},
+ {"Label", Func, 9},
+ {"LabelSet", Type, 9},
+ {"Labels", Func, 9},
+ {"Lookup", Func, 0},
+ {"NewProfile", Func, 0},
+ {"Profile", Type, 0},
+ {"Profiles", Func, 0},
+ {"SetGoroutineLabels", Func, 9},
+ {"StartCPUProfile", Func, 0},
+ {"StopCPUProfile", Func, 0},
+ {"WithLabels", Func, 9},
+ {"WriteHeapProfile", Func, 0},
+ },
+ "runtime/trace": {
+ {"(*Region).End", Method, 11},
+ {"(*Task).End", Method, 11},
+ {"IsEnabled", Func, 11},
+ {"Log", Func, 11},
+ {"Logf", Func, 11},
+ {"NewTask", Func, 11},
+ {"Region", Type, 11},
+ {"Start", Func, 5},
+ {"StartRegion", Func, 11},
+ {"Stop", Func, 5},
+ {"Task", Type, 11},
+ {"WithRegion", Func, 11},
+ },
+ "slices": {
+ {"BinarySearch", Func, 21},
+ {"BinarySearchFunc", Func, 21},
+ {"Clip", Func, 21},
+ {"Clone", Func, 21},
+ {"Compact", Func, 21},
+ {"CompactFunc", Func, 21},
+ {"Compare", Func, 21},
+ {"CompareFunc", Func, 21},
+ {"Concat", Func, 22},
+ {"Contains", Func, 21},
+ {"ContainsFunc", Func, 21},
+ {"Delete", Func, 21},
+ {"DeleteFunc", Func, 21},
+ {"Equal", Func, 21},
+ {"EqualFunc", Func, 21},
+ {"Grow", Func, 21},
+ {"Index", Func, 21},
+ {"IndexFunc", Func, 21},
+ {"Insert", Func, 21},
+ {"IsSorted", Func, 21},
+ {"IsSortedFunc", Func, 21},
+ {"Max", Func, 21},
+ {"MaxFunc", Func, 21},
+ {"Min", Func, 21},
+ {"MinFunc", Func, 21},
+ {"Replace", Func, 21},
+ {"Reverse", Func, 21},
+ {"Sort", Func, 21},
+ {"SortFunc", Func, 21},
+ {"SortStableFunc", Func, 21},
+ },
+ "sort": {
+ {"(Float64Slice).Len", Method, 0},
+ {"(Float64Slice).Less", Method, 0},
+ {"(Float64Slice).Search", Method, 0},
+ {"(Float64Slice).Sort", Method, 0},
+ {"(Float64Slice).Swap", Method, 0},
+ {"(IntSlice).Len", Method, 0},
+ {"(IntSlice).Less", Method, 0},
+ {"(IntSlice).Search", Method, 0},
+ {"(IntSlice).Sort", Method, 0},
+ {"(IntSlice).Swap", Method, 0},
+ {"(StringSlice).Len", Method, 0},
+ {"(StringSlice).Less", Method, 0},
+ {"(StringSlice).Search", Method, 0},
+ {"(StringSlice).Sort", Method, 0},
+ {"(StringSlice).Swap", Method, 0},
+ {"Find", Func, 19},
+ {"Float64Slice", Type, 0},
+ {"Float64s", Func, 0},
+ {"Float64sAreSorted", Func, 0},
+ {"IntSlice", Type, 0},
+ {"Interface", Type, 0},
+ {"Ints", Func, 0},
+ {"IntsAreSorted", Func, 0},
+ {"IsSorted", Func, 0},
+ {"Reverse", Func, 1},
+ {"Search", Func, 0},
+ {"SearchFloat64s", Func, 0},
+ {"SearchInts", Func, 0},
+ {"SearchStrings", Func, 0},
+ {"Slice", Func, 8},
+ {"SliceIsSorted", Func, 8},
+ {"SliceStable", Func, 8},
+ {"Sort", Func, 0},
+ {"Stable", Func, 2},
+ {"StringSlice", Type, 0},
+ {"Strings", Func, 0},
+ {"StringsAreSorted", Func, 0},
+ },
+ "strconv": {
+ {"(*NumError).Error", Method, 0},
+ {"(*NumError).Unwrap", Method, 14},
+ {"AppendBool", Func, 0},
+ {"AppendFloat", Func, 0},
+ {"AppendInt", Func, 0},
+ {"AppendQuote", Func, 0},
+ {"AppendQuoteRune", Func, 0},
+ {"AppendQuoteRuneToASCII", Func, 0},
+ {"AppendQuoteRuneToGraphic", Func, 6},
+ {"AppendQuoteToASCII", Func, 0},
+ {"AppendQuoteToGraphic", Func, 6},
+ {"AppendUint", Func, 0},
+ {"Atoi", Func, 0},
+ {"CanBackquote", Func, 0},
+ {"ErrRange", Var, 0},
+ {"ErrSyntax", Var, 0},
+ {"FormatBool", Func, 0},
+ {"FormatComplex", Func, 15},
+ {"FormatFloat", Func, 0},
+ {"FormatInt", Func, 0},
+ {"FormatUint", Func, 0},
+ {"IntSize", Const, 0},
+ {"IsGraphic", Func, 6},
+ {"IsPrint", Func, 0},
+ {"Itoa", Func, 0},
+ {"NumError", Type, 0},
+ {"NumError.Err", Field, 0},
+ {"NumError.Func", Field, 0},
+ {"NumError.Num", Field, 0},
+ {"ParseBool", Func, 0},
+ {"ParseComplex", Func, 15},
+ {"ParseFloat", Func, 0},
+ {"ParseInt", Func, 0},
+ {"ParseUint", Func, 0},
+ {"Quote", Func, 0},
+ {"QuoteRune", Func, 0},
+ {"QuoteRuneToASCII", Func, 0},
+ {"QuoteRuneToGraphic", Func, 6},
+ {"QuoteToASCII", Func, 0},
+ {"QuoteToGraphic", Func, 6},
+ {"QuotedPrefix", Func, 17},
+ {"Unquote", Func, 0},
+ {"UnquoteChar", Func, 0},
+ },
+ "strings": {
+ {"(*Builder).Cap", Method, 12},
+ {"(*Builder).Grow", Method, 10},
+ {"(*Builder).Len", Method, 10},
+ {"(*Builder).Reset", Method, 10},
+ {"(*Builder).String", Method, 10},
+ {"(*Builder).Write", Method, 10},
+ {"(*Builder).WriteByte", Method, 10},
+ {"(*Builder).WriteRune", Method, 10},
+ {"(*Builder).WriteString", Method, 10},
+ {"(*Reader).Len", Method, 0},
+ {"(*Reader).Read", Method, 0},
+ {"(*Reader).ReadAt", Method, 0},
+ {"(*Reader).ReadByte", Method, 0},
+ {"(*Reader).ReadRune", Method, 0},
+ {"(*Reader).Reset", Method, 7},
+ {"(*Reader).Seek", Method, 0},
+ {"(*Reader).Size", Method, 5},
+ {"(*Reader).UnreadByte", Method, 0},
+ {"(*Reader).UnreadRune", Method, 0},
+ {"(*Reader).WriteTo", Method, 1},
+ {"(*Replacer).Replace", Method, 0},
+ {"(*Replacer).WriteString", Method, 0},
+ {"Builder", Type, 10},
+ {"Clone", Func, 18},
+ {"Compare", Func, 5},
+ {"Contains", Func, 0},
+ {"ContainsAny", Func, 0},
+ {"ContainsFunc", Func, 21},
+ {"ContainsRune", Func, 0},
+ {"Count", Func, 0},
+ {"Cut", Func, 18},
+ {"CutPrefix", Func, 20},
+ {"CutSuffix", Func, 20},
+ {"EqualFold", Func, 0},
+ {"Fields", Func, 0},
+ {"FieldsFunc", Func, 0},
+ {"HasPrefix", Func, 0},
+ {"HasSuffix", Func, 0},
+ {"Index", Func, 0},
+ {"IndexAny", Func, 0},
+ {"IndexByte", Func, 2},
+ {"IndexFunc", Func, 0},
+ {"IndexRune", Func, 0},
+ {"Join", Func, 0},
+ {"LastIndex", Func, 0},
+ {"LastIndexAny", Func, 0},
+ {"LastIndexByte", Func, 5},
+ {"LastIndexFunc", Func, 0},
+ {"Map", Func, 0},
+ {"NewReader", Func, 0},
+ {"NewReplacer", Func, 0},
+ {"Reader", Type, 0},
+ {"Repeat", Func, 0},
+ {"Replace", Func, 0},
+ {"ReplaceAll", Func, 12},
+ {"Replacer", Type, 0},
+ {"Split", Func, 0},
+ {"SplitAfter", Func, 0},
+ {"SplitAfterN", Func, 0},
+ {"SplitN", Func, 0},
+ {"Title", Func, 0},
+ {"ToLower", Func, 0},
+ {"ToLowerSpecial", Func, 0},
+ {"ToTitle", Func, 0},
+ {"ToTitleSpecial", Func, 0},
+ {"ToUpper", Func, 0},
+ {"ToUpperSpecial", Func, 0},
+ {"ToValidUTF8", Func, 13},
+ {"Trim", Func, 0},
+ {"TrimFunc", Func, 0},
+ {"TrimLeft", Func, 0},
+ {"TrimLeftFunc", Func, 0},
+ {"TrimPrefix", Func, 1},
+ {"TrimRight", Func, 0},
+ {"TrimRightFunc", Func, 0},
+ {"TrimSpace", Func, 0},
+ {"TrimSuffix", Func, 1},
+ },
+ "sync": {
+ {"(*Cond).Broadcast", Method, 0},
+ {"(*Cond).Signal", Method, 0},
+ {"(*Cond).Wait", Method, 0},
+ {"(*Map).CompareAndDelete", Method, 20},
+ {"(*Map).CompareAndSwap", Method, 20},
+ {"(*Map).Delete", Method, 9},
+ {"(*Map).Load", Method, 9},
+ {"(*Map).LoadAndDelete", Method, 15},
+ {"(*Map).LoadOrStore", Method, 9},
+ {"(*Map).Range", Method, 9},
+ {"(*Map).Store", Method, 9},
+ {"(*Map).Swap", Method, 20},
+ {"(*Mutex).Lock", Method, 0},
+ {"(*Mutex).TryLock", Method, 18},
+ {"(*Mutex).Unlock", Method, 0},
+ {"(*Once).Do", Method, 0},
+ {"(*Pool).Get", Method, 3},
+ {"(*Pool).Put", Method, 3},
+ {"(*RWMutex).Lock", Method, 0},
+ {"(*RWMutex).RLock", Method, 0},
+ {"(*RWMutex).RLocker", Method, 0},
+ {"(*RWMutex).RUnlock", Method, 0},
+ {"(*RWMutex).TryLock", Method, 18},
+ {"(*RWMutex).TryRLock", Method, 18},
+ {"(*RWMutex).Unlock", Method, 0},
+ {"(*WaitGroup).Add", Method, 0},
+ {"(*WaitGroup).Done", Method, 0},
+ {"(*WaitGroup).Wait", Method, 0},
+ {"Cond", Type, 0},
+ {"Cond.L", Field, 0},
+ {"Locker", Type, 0},
+ {"Map", Type, 9},
+ {"Mutex", Type, 0},
+ {"NewCond", Func, 0},
+ {"Once", Type, 0},
+ {"OnceFunc", Func, 21},
+ {"OnceValue", Func, 21},
+ {"OnceValues", Func, 21},
+ {"Pool", Type, 3},
+ {"Pool.New", Field, 3},
+ {"RWMutex", Type, 0},
+ {"WaitGroup", Type, 0},
+ },
+ "sync/atomic": {
+ {"(*Bool).CompareAndSwap", Method, 19},
+ {"(*Bool).Load", Method, 19},
+ {"(*Bool).Store", Method, 19},
+ {"(*Bool).Swap", Method, 19},
+ {"(*Int32).Add", Method, 19},
+ {"(*Int32).CompareAndSwap", Method, 19},
+ {"(*Int32).Load", Method, 19},
+ {"(*Int32).Store", Method, 19},
+ {"(*Int32).Swap", Method, 19},
+ {"(*Int64).Add", Method, 19},
+ {"(*Int64).CompareAndSwap", Method, 19},
+ {"(*Int64).Load", Method, 19},
+ {"(*Int64).Store", Method, 19},
+ {"(*Int64).Swap", Method, 19},
+ {"(*Pointer).CompareAndSwap", Method, 19},
+ {"(*Pointer).Load", Method, 19},
+ {"(*Pointer).Store", Method, 19},
+ {"(*Pointer).Swap", Method, 19},
+ {"(*Uint32).Add", Method, 19},
+ {"(*Uint32).CompareAndSwap", Method, 19},
+ {"(*Uint32).Load", Method, 19},
+ {"(*Uint32).Store", Method, 19},
+ {"(*Uint32).Swap", Method, 19},
+ {"(*Uint64).Add", Method, 19},
+ {"(*Uint64).CompareAndSwap", Method, 19},
+ {"(*Uint64).Load", Method, 19},
+ {"(*Uint64).Store", Method, 19},
+ {"(*Uint64).Swap", Method, 19},
+ {"(*Uintptr).Add", Method, 19},
+ {"(*Uintptr).CompareAndSwap", Method, 19},
+ {"(*Uintptr).Load", Method, 19},
+ {"(*Uintptr).Store", Method, 19},
+ {"(*Uintptr).Swap", Method, 19},
+ {"(*Value).CompareAndSwap", Method, 17},
+ {"(*Value).Load", Method, 4},
+ {"(*Value).Store", Method, 4},
+ {"(*Value).Swap", Method, 17},
+ {"AddInt32", Func, 0},
+ {"AddInt64", Func, 0},
+ {"AddUint32", Func, 0},
+ {"AddUint64", Func, 0},
+ {"AddUintptr", Func, 0},
+ {"Bool", Type, 19},
+ {"CompareAndSwapInt32", Func, 0},
+ {"CompareAndSwapInt64", Func, 0},
+ {"CompareAndSwapPointer", Func, 0},
+ {"CompareAndSwapUint32", Func, 0},
+ {"CompareAndSwapUint64", Func, 0},
+ {"CompareAndSwapUintptr", Func, 0},
+ {"Int32", Type, 19},
+ {"Int64", Type, 19},
+ {"LoadInt32", Func, 0},
+ {"LoadInt64", Func, 0},
+ {"LoadPointer", Func, 0},
+ {"LoadUint32", Func, 0},
+ {"LoadUint64", Func, 0},
+ {"LoadUintptr", Func, 0},
+ {"Pointer", Type, 19},
+ {"StoreInt32", Func, 0},
+ {"StoreInt64", Func, 0},
+ {"StorePointer", Func, 0},
+ {"StoreUint32", Func, 0},
+ {"StoreUint64", Func, 0},
+ {"StoreUintptr", Func, 0},
+ {"SwapInt32", Func, 2},
+ {"SwapInt64", Func, 2},
+ {"SwapPointer", Func, 2},
+ {"SwapUint32", Func, 2},
+ {"SwapUint64", Func, 2},
+ {"SwapUintptr", Func, 2},
+ {"Uint32", Type, 19},
+ {"Uint64", Type, 19},
+ {"Uintptr", Type, 19},
+ {"Value", Type, 4},
+ },
+ "syscall": {
+ {"(*Cmsghdr).SetLen", Method, 0},
+ {"(*DLL).FindProc", Method, 0},
+ {"(*DLL).MustFindProc", Method, 0},
+ {"(*DLL).Release", Method, 0},
+ {"(*DLLError).Error", Method, 0},
+ {"(*DLLError).Unwrap", Method, 16},
+ {"(*Filetime).Nanoseconds", Method, 0},
+ {"(*Iovec).SetLen", Method, 0},
+ {"(*LazyDLL).Handle", Method, 0},
+ {"(*LazyDLL).Load", Method, 0},
+ {"(*LazyDLL).NewProc", Method, 0},
+ {"(*LazyProc).Addr", Method, 0},
+ {"(*LazyProc).Call", Method, 0},
+ {"(*LazyProc).Find", Method, 0},
+ {"(*Msghdr).SetControllen", Method, 0},
+ {"(*Proc).Addr", Method, 0},
+ {"(*Proc).Call", Method, 0},
+ {"(*PtraceRegs).PC", Method, 0},
+ {"(*PtraceRegs).SetPC", Method, 0},
+ {"(*RawSockaddrAny).Sockaddr", Method, 0},
+ {"(*SID).Copy", Method, 0},
+ {"(*SID).Len", Method, 0},
+ {"(*SID).LookupAccount", Method, 0},
+ {"(*SID).String", Method, 0},
+ {"(*Timespec).Nano", Method, 0},
+ {"(*Timespec).Unix", Method, 0},
+ {"(*Timeval).Nano", Method, 0},
+ {"(*Timeval).Nanoseconds", Method, 0},
+ {"(*Timeval).Unix", Method, 0},
+ {"(Errno).Error", Method, 0},
+ {"(Errno).Is", Method, 13},
+ {"(Errno).Temporary", Method, 0},
+ {"(Errno).Timeout", Method, 0},
+ {"(Signal).Signal", Method, 0},
+ {"(Signal).String", Method, 0},
+ {"(Token).Close", Method, 0},
+ {"(Token).GetTokenPrimaryGroup", Method, 0},
+ {"(Token).GetTokenUser", Method, 0},
+ {"(Token).GetUserProfileDirectory", Method, 0},
+ {"(WaitStatus).Continued", Method, 0},
+ {"(WaitStatus).CoreDump", Method, 0},
+ {"(WaitStatus).ExitStatus", Method, 0},
+ {"(WaitStatus).Exited", Method, 0},
+ {"(WaitStatus).Signal", Method, 0},
+ {"(WaitStatus).Signaled", Method, 0},
+ {"(WaitStatus).StopSignal", Method, 0},
+ {"(WaitStatus).Stopped", Method, 0},
+ {"(WaitStatus).TrapCause", Method, 0},
+ {"AF_ALG", Const, 0},
+ {"AF_APPLETALK", Const, 0},
+ {"AF_ARP", Const, 0},
+ {"AF_ASH", Const, 0},
+ {"AF_ATM", Const, 0},
+ {"AF_ATMPVC", Const, 0},
+ {"AF_ATMSVC", Const, 0},
+ {"AF_AX25", Const, 0},
+ {"AF_BLUETOOTH", Const, 0},
+ {"AF_BRIDGE", Const, 0},
+ {"AF_CAIF", Const, 0},
+ {"AF_CAN", Const, 0},
+ {"AF_CCITT", Const, 0},
+ {"AF_CHAOS", Const, 0},
+ {"AF_CNT", Const, 0},
+ {"AF_COIP", Const, 0},
+ {"AF_DATAKIT", Const, 0},
+ {"AF_DECnet", Const, 0},
+ {"AF_DLI", Const, 0},
+ {"AF_E164", Const, 0},
+ {"AF_ECMA", Const, 0},
+ {"AF_ECONET", Const, 0},
+ {"AF_ENCAP", Const, 1},
+ {"AF_FILE", Const, 0},
+ {"AF_HYLINK", Const, 0},
+ {"AF_IEEE80211", Const, 0},
+ {"AF_IEEE802154", Const, 0},
+ {"AF_IMPLINK", Const, 0},
+ {"AF_INET", Const, 0},
+ {"AF_INET6", Const, 0},
+ {"AF_INET6_SDP", Const, 3},
+ {"AF_INET_SDP", Const, 3},
+ {"AF_IPX", Const, 0},
+ {"AF_IRDA", Const, 0},
+ {"AF_ISDN", Const, 0},
+ {"AF_ISO", Const, 0},
+ {"AF_IUCV", Const, 0},
+ {"AF_KEY", Const, 0},
+ {"AF_LAT", Const, 0},
+ {"AF_LINK", Const, 0},
+ {"AF_LLC", Const, 0},
+ {"AF_LOCAL", Const, 0},
+ {"AF_MAX", Const, 0},
+ {"AF_MPLS", Const, 1},
+ {"AF_NATM", Const, 0},
+ {"AF_NDRV", Const, 0},
+ {"AF_NETBEUI", Const, 0},
+ {"AF_NETBIOS", Const, 0},
+ {"AF_NETGRAPH", Const, 0},
+ {"AF_NETLINK", Const, 0},
+ {"AF_NETROM", Const, 0},
+ {"AF_NS", Const, 0},
+ {"AF_OROUTE", Const, 1},
+ {"AF_OSI", Const, 0},
+ {"AF_PACKET", Const, 0},
+ {"AF_PHONET", Const, 0},
+ {"AF_PPP", Const, 0},
+ {"AF_PPPOX", Const, 0},
+ {"AF_PUP", Const, 0},
+ {"AF_RDS", Const, 0},
+ {"AF_RESERVED_36", Const, 0},
+ {"AF_ROSE", Const, 0},
+ {"AF_ROUTE", Const, 0},
+ {"AF_RXRPC", Const, 0},
+ {"AF_SCLUSTER", Const, 0},
+ {"AF_SECURITY", Const, 0},
+ {"AF_SIP", Const, 0},
+ {"AF_SLOW", Const, 0},
+ {"AF_SNA", Const, 0},
+ {"AF_SYSTEM", Const, 0},
+ {"AF_TIPC", Const, 0},
+ {"AF_UNIX", Const, 0},
+ {"AF_UNSPEC", Const, 0},
+ {"AF_UTUN", Const, 16},
+ {"AF_VENDOR00", Const, 0},
+ {"AF_VENDOR01", Const, 0},
+ {"AF_VENDOR02", Const, 0},
+ {"AF_VENDOR03", Const, 0},
+ {"AF_VENDOR04", Const, 0},
+ {"AF_VENDOR05", Const, 0},
+ {"AF_VENDOR06", Const, 0},
+ {"AF_VENDOR07", Const, 0},
+ {"AF_VENDOR08", Const, 0},
+ {"AF_VENDOR09", Const, 0},
+ {"AF_VENDOR10", Const, 0},
+ {"AF_VENDOR11", Const, 0},
+ {"AF_VENDOR12", Const, 0},
+ {"AF_VENDOR13", Const, 0},
+ {"AF_VENDOR14", Const, 0},
+ {"AF_VENDOR15", Const, 0},
+ {"AF_VENDOR16", Const, 0},
+ {"AF_VENDOR17", Const, 0},
+ {"AF_VENDOR18", Const, 0},
+ {"AF_VENDOR19", Const, 0},
+ {"AF_VENDOR20", Const, 0},
+ {"AF_VENDOR21", Const, 0},
+ {"AF_VENDOR22", Const, 0},
+ {"AF_VENDOR23", Const, 0},
+ {"AF_VENDOR24", Const, 0},
+ {"AF_VENDOR25", Const, 0},
+ {"AF_VENDOR26", Const, 0},
+ {"AF_VENDOR27", Const, 0},
+ {"AF_VENDOR28", Const, 0},
+ {"AF_VENDOR29", Const, 0},
+ {"AF_VENDOR30", Const, 0},
+ {"AF_VENDOR31", Const, 0},
+ {"AF_VENDOR32", Const, 0},
+ {"AF_VENDOR33", Const, 0},
+ {"AF_VENDOR34", Const, 0},
+ {"AF_VENDOR35", Const, 0},
+ {"AF_VENDOR36", Const, 0},
+ {"AF_VENDOR37", Const, 0},
+ {"AF_VENDOR38", Const, 0},
+ {"AF_VENDOR39", Const, 0},
+ {"AF_VENDOR40", Const, 0},
+ {"AF_VENDOR41", Const, 0},
+ {"AF_VENDOR42", Const, 0},
+ {"AF_VENDOR43", Const, 0},
+ {"AF_VENDOR44", Const, 0},
+ {"AF_VENDOR45", Const, 0},
+ {"AF_VENDOR46", Const, 0},
+ {"AF_VENDOR47", Const, 0},
+ {"AF_WANPIPE", Const, 0},
+ {"AF_X25", Const, 0},
+ {"AI_CANONNAME", Const, 1},
+ {"AI_NUMERICHOST", Const, 1},
+ {"AI_PASSIVE", Const, 1},
+ {"APPLICATION_ERROR", Const, 0},
+ {"ARPHRD_ADAPT", Const, 0},
+ {"ARPHRD_APPLETLK", Const, 0},
+ {"ARPHRD_ARCNET", Const, 0},
+ {"ARPHRD_ASH", Const, 0},
+ {"ARPHRD_ATM", Const, 0},
+ {"ARPHRD_AX25", Const, 0},
+ {"ARPHRD_BIF", Const, 0},
+ {"ARPHRD_CHAOS", Const, 0},
+ {"ARPHRD_CISCO", Const, 0},
+ {"ARPHRD_CSLIP", Const, 0},
+ {"ARPHRD_CSLIP6", Const, 0},
+ {"ARPHRD_DDCMP", Const, 0},
+ {"ARPHRD_DLCI", Const, 0},
+ {"ARPHRD_ECONET", Const, 0},
+ {"ARPHRD_EETHER", Const, 0},
+ {"ARPHRD_ETHER", Const, 0},
+ {"ARPHRD_EUI64", Const, 0},
+ {"ARPHRD_FCAL", Const, 0},
+ {"ARPHRD_FCFABRIC", Const, 0},
+ {"ARPHRD_FCPL", Const, 0},
+ {"ARPHRD_FCPP", Const, 0},
+ {"ARPHRD_FDDI", Const, 0},
+ {"ARPHRD_FRAD", Const, 0},
+ {"ARPHRD_FRELAY", Const, 1},
+ {"ARPHRD_HDLC", Const, 0},
+ {"ARPHRD_HIPPI", Const, 0},
+ {"ARPHRD_HWX25", Const, 0},
+ {"ARPHRD_IEEE1394", Const, 0},
+ {"ARPHRD_IEEE802", Const, 0},
+ {"ARPHRD_IEEE80211", Const, 0},
+ {"ARPHRD_IEEE80211_PRISM", Const, 0},
+ {"ARPHRD_IEEE80211_RADIOTAP", Const, 0},
+ {"ARPHRD_IEEE802154", Const, 0},
+ {"ARPHRD_IEEE802154_PHY", Const, 0},
+ {"ARPHRD_IEEE802_TR", Const, 0},
+ {"ARPHRD_INFINIBAND", Const, 0},
+ {"ARPHRD_IPDDP", Const, 0},
+ {"ARPHRD_IPGRE", Const, 0},
+ {"ARPHRD_IRDA", Const, 0},
+ {"ARPHRD_LAPB", Const, 0},
+ {"ARPHRD_LOCALTLK", Const, 0},
+ {"ARPHRD_LOOPBACK", Const, 0},
+ {"ARPHRD_METRICOM", Const, 0},
+ {"ARPHRD_NETROM", Const, 0},
+ {"ARPHRD_NONE", Const, 0},
+ {"ARPHRD_PIMREG", Const, 0},
+ {"ARPHRD_PPP", Const, 0},
+ {"ARPHRD_PRONET", Const, 0},
+ {"ARPHRD_RAWHDLC", Const, 0},
+ {"ARPHRD_ROSE", Const, 0},
+ {"ARPHRD_RSRVD", Const, 0},
+ {"ARPHRD_SIT", Const, 0},
+ {"ARPHRD_SKIP", Const, 0},
+ {"ARPHRD_SLIP", Const, 0},
+ {"ARPHRD_SLIP6", Const, 0},
+ {"ARPHRD_STRIP", Const, 1},
+ {"ARPHRD_TUNNEL", Const, 0},
+ {"ARPHRD_TUNNEL6", Const, 0},
+ {"ARPHRD_VOID", Const, 0},
+ {"ARPHRD_X25", Const, 0},
+ {"AUTHTYPE_CLIENT", Const, 0},
+ {"AUTHTYPE_SERVER", Const, 0},
+ {"Accept", Func, 0},
+ {"Accept4", Func, 1},
+ {"AcceptEx", Func, 0},
+ {"Access", Func, 0},
+ {"Acct", Func, 0},
+ {"AddrinfoW", Type, 1},
+ {"AddrinfoW.Addr", Field, 1},
+ {"AddrinfoW.Addrlen", Field, 1},
+ {"AddrinfoW.Canonname", Field, 1},
+ {"AddrinfoW.Family", Field, 1},
+ {"AddrinfoW.Flags", Field, 1},
+ {"AddrinfoW.Next", Field, 1},
+ {"AddrinfoW.Protocol", Field, 1},
+ {"AddrinfoW.Socktype", Field, 1},
+ {"Adjtime", Func, 0},
+ {"Adjtimex", Func, 0},
+ {"AllThreadsSyscall", Func, 16},
+ {"AllThreadsSyscall6", Func, 16},
+ {"AttachLsf", Func, 0},
+ {"B0", Const, 0},
+ {"B1000000", Const, 0},
+ {"B110", Const, 0},
+ {"B115200", Const, 0},
+ {"B1152000", Const, 0},
+ {"B1200", Const, 0},
+ {"B134", Const, 0},
+ {"B14400", Const, 1},
+ {"B150", Const, 0},
+ {"B1500000", Const, 0},
+ {"B1800", Const, 0},
+ {"B19200", Const, 0},
+ {"B200", Const, 0},
+ {"B2000000", Const, 0},
+ {"B230400", Const, 0},
+ {"B2400", Const, 0},
+ {"B2500000", Const, 0},
+ {"B28800", Const, 1},
+ {"B300", Const, 0},
+ {"B3000000", Const, 0},
+ {"B3500000", Const, 0},
+ {"B38400", Const, 0},
+ {"B4000000", Const, 0},
+ {"B460800", Const, 0},
+ {"B4800", Const, 0},
+ {"B50", Const, 0},
+ {"B500000", Const, 0},
+ {"B57600", Const, 0},
+ {"B576000", Const, 0},
+ {"B600", Const, 0},
+ {"B7200", Const, 1},
+ {"B75", Const, 0},
+ {"B76800", Const, 1},
+ {"B921600", Const, 0},
+ {"B9600", Const, 0},
+ {"BASE_PROTOCOL", Const, 2},
+ {"BIOCFEEDBACK", Const, 0},
+ {"BIOCFLUSH", Const, 0},
+ {"BIOCGBLEN", Const, 0},
+ {"BIOCGDIRECTION", Const, 0},
+ {"BIOCGDIRFILT", Const, 1},
+ {"BIOCGDLT", Const, 0},
+ {"BIOCGDLTLIST", Const, 0},
+ {"BIOCGETBUFMODE", Const, 0},
+ {"BIOCGETIF", Const, 0},
+ {"BIOCGETZMAX", Const, 0},
+ {"BIOCGFEEDBACK", Const, 1},
+ {"BIOCGFILDROP", Const, 1},
+ {"BIOCGHDRCMPLT", Const, 0},
+ {"BIOCGRSIG", Const, 0},
+ {"BIOCGRTIMEOUT", Const, 0},
+ {"BIOCGSEESENT", Const, 0},
+ {"BIOCGSTATS", Const, 0},
+ {"BIOCGSTATSOLD", Const, 1},
+ {"BIOCGTSTAMP", Const, 1},
+ {"BIOCIMMEDIATE", Const, 0},
+ {"BIOCLOCK", Const, 0},
+ {"BIOCPROMISC", Const, 0},
+ {"BIOCROTZBUF", Const, 0},
+ {"BIOCSBLEN", Const, 0},
+ {"BIOCSDIRECTION", Const, 0},
+ {"BIOCSDIRFILT", Const, 1},
+ {"BIOCSDLT", Const, 0},
+ {"BIOCSETBUFMODE", Const, 0},
+ {"BIOCSETF", Const, 0},
+ {"BIOCSETFNR", Const, 0},
+ {"BIOCSETIF", Const, 0},
+ {"BIOCSETWF", Const, 0},
+ {"BIOCSETZBUF", Const, 0},
+ {"BIOCSFEEDBACK", Const, 1},
+ {"BIOCSFILDROP", Const, 1},
+ {"BIOCSHDRCMPLT", Const, 0},
+ {"BIOCSRSIG", Const, 0},
+ {"BIOCSRTIMEOUT", Const, 0},
+ {"BIOCSSEESENT", Const, 0},
+ {"BIOCSTCPF", Const, 1},
+ {"BIOCSTSTAMP", Const, 1},
+ {"BIOCSUDPF", Const, 1},
+ {"BIOCVERSION", Const, 0},
+ {"BPF_A", Const, 0},
+ {"BPF_ABS", Const, 0},
+ {"BPF_ADD", Const, 0},
+ {"BPF_ALIGNMENT", Const, 0},
+ {"BPF_ALIGNMENT32", Const, 1},
+ {"BPF_ALU", Const, 0},
+ {"BPF_AND", Const, 0},
+ {"BPF_B", Const, 0},
+ {"BPF_BUFMODE_BUFFER", Const, 0},
+ {"BPF_BUFMODE_ZBUF", Const, 0},
+ {"BPF_DFLTBUFSIZE", Const, 1},
+ {"BPF_DIRECTION_IN", Const, 1},
+ {"BPF_DIRECTION_OUT", Const, 1},
+ {"BPF_DIV", Const, 0},
+ {"BPF_H", Const, 0},
+ {"BPF_IMM", Const, 0},
+ {"BPF_IND", Const, 0},
+ {"BPF_JA", Const, 0},
+ {"BPF_JEQ", Const, 0},
+ {"BPF_JGE", Const, 0},
+ {"BPF_JGT", Const, 0},
+ {"BPF_JMP", Const, 0},
+ {"BPF_JSET", Const, 0},
+ {"BPF_K", Const, 0},
+ {"BPF_LD", Const, 0},
+ {"BPF_LDX", Const, 0},
+ {"BPF_LEN", Const, 0},
+ {"BPF_LSH", Const, 0},
+ {"BPF_MAJOR_VERSION", Const, 0},
+ {"BPF_MAXBUFSIZE", Const, 0},
+ {"BPF_MAXINSNS", Const, 0},
+ {"BPF_MEM", Const, 0},
+ {"BPF_MEMWORDS", Const, 0},
+ {"BPF_MINBUFSIZE", Const, 0},
+ {"BPF_MINOR_VERSION", Const, 0},
+ {"BPF_MISC", Const, 0},
+ {"BPF_MSH", Const, 0},
+ {"BPF_MUL", Const, 0},
+ {"BPF_NEG", Const, 0},
+ {"BPF_OR", Const, 0},
+ {"BPF_RELEASE", Const, 0},
+ {"BPF_RET", Const, 0},
+ {"BPF_RSH", Const, 0},
+ {"BPF_ST", Const, 0},
+ {"BPF_STX", Const, 0},
+ {"BPF_SUB", Const, 0},
+ {"BPF_TAX", Const, 0},
+ {"BPF_TXA", Const, 0},
+ {"BPF_T_BINTIME", Const, 1},
+ {"BPF_T_BINTIME_FAST", Const, 1},
+ {"BPF_T_BINTIME_MONOTONIC", Const, 1},
+ {"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1},
+ {"BPF_T_FAST", Const, 1},
+ {"BPF_T_FLAG_MASK", Const, 1},
+ {"BPF_T_FORMAT_MASK", Const, 1},
+ {"BPF_T_MICROTIME", Const, 1},
+ {"BPF_T_MICROTIME_FAST", Const, 1},
+ {"BPF_T_MICROTIME_MONOTONIC", Const, 1},
+ {"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1},
+ {"BPF_T_MONOTONIC", Const, 1},
+ {"BPF_T_MONOTONIC_FAST", Const, 1},
+ {"BPF_T_NANOTIME", Const, 1},
+ {"BPF_T_NANOTIME_FAST", Const, 1},
+ {"BPF_T_NANOTIME_MONOTONIC", Const, 1},
+ {"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1},
+ {"BPF_T_NONE", Const, 1},
+ {"BPF_T_NORMAL", Const, 1},
+ {"BPF_W", Const, 0},
+ {"BPF_X", Const, 0},
+ {"BRKINT", Const, 0},
+ {"Bind", Func, 0},
+ {"BindToDevice", Func, 0},
+ {"BpfBuflen", Func, 0},
+ {"BpfDatalink", Func, 0},
+ {"BpfHdr", Type, 0},
+ {"BpfHdr.Caplen", Field, 0},
+ {"BpfHdr.Datalen", Field, 0},
+ {"BpfHdr.Hdrlen", Field, 0},
+ {"BpfHdr.Pad_cgo_0", Field, 0},
+ {"BpfHdr.Tstamp", Field, 0},
+ {"BpfHeadercmpl", Func, 0},
+ {"BpfInsn", Type, 0},
+ {"BpfInsn.Code", Field, 0},
+ {"BpfInsn.Jf", Field, 0},
+ {"BpfInsn.Jt", Field, 0},
+ {"BpfInsn.K", Field, 0},
+ {"BpfInterface", Func, 0},
+ {"BpfJump", Func, 0},
+ {"BpfProgram", Type, 0},
+ {"BpfProgram.Insns", Field, 0},
+ {"BpfProgram.Len", Field, 0},
+ {"BpfProgram.Pad_cgo_0", Field, 0},
+ {"BpfStat", Type, 0},
+ {"BpfStat.Capt", Field, 2},
+ {"BpfStat.Drop", Field, 0},
+ {"BpfStat.Padding", Field, 2},
+ {"BpfStat.Recv", Field, 0},
+ {"BpfStats", Func, 0},
+ {"BpfStmt", Func, 0},
+ {"BpfTimeout", Func, 0},
+ {"BpfTimeval", Type, 2},
+ {"BpfTimeval.Sec", Field, 2},
+ {"BpfTimeval.Usec", Field, 2},
+ {"BpfVersion", Type, 0},
+ {"BpfVersion.Major", Field, 0},
+ {"BpfVersion.Minor", Field, 0},
+ {"BpfZbuf", Type, 0},
+ {"BpfZbuf.Bufa", Field, 0},
+ {"BpfZbuf.Bufb", Field, 0},
+ {"BpfZbuf.Buflen", Field, 0},
+ {"BpfZbufHeader", Type, 0},
+ {"BpfZbufHeader.Kernel_gen", Field, 0},
+ {"BpfZbufHeader.Kernel_len", Field, 0},
+ {"BpfZbufHeader.User_gen", Field, 0},
+ {"BpfZbufHeader.X_bzh_pad", Field, 0},
+ {"ByHandleFileInformation", Type, 0},
+ {"ByHandleFileInformation.CreationTime", Field, 0},
+ {"ByHandleFileInformation.FileAttributes", Field, 0},
+ {"ByHandleFileInformation.FileIndexHigh", Field, 0},
+ {"ByHandleFileInformation.FileIndexLow", Field, 0},
+ {"ByHandleFileInformation.FileSizeHigh", Field, 0},
+ {"ByHandleFileInformation.FileSizeLow", Field, 0},
+ {"ByHandleFileInformation.LastAccessTime", Field, 0},
+ {"ByHandleFileInformation.LastWriteTime", Field, 0},
+ {"ByHandleFileInformation.NumberOfLinks", Field, 0},
+ {"ByHandleFileInformation.VolumeSerialNumber", Field, 0},
+ {"BytePtrFromString", Func, 1},
+ {"ByteSliceFromString", Func, 1},
+ {"CCR0_FLUSH", Const, 1},
+ {"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0},
+ {"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0},
+ {"CERT_CHAIN_POLICY_BASE", Const, 0},
+ {"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0},
+ {"CERT_CHAIN_POLICY_EV", Const, 0},
+ {"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0},
+ {"CERT_CHAIN_POLICY_NT_AUTH", Const, 0},
+ {"CERT_CHAIN_POLICY_SSL", Const, 0},
+ {"CERT_E_CN_NO_MATCH", Const, 0},
+ {"CERT_E_EXPIRED", Const, 0},
+ {"CERT_E_PURPOSE", Const, 0},
+ {"CERT_E_ROLE", Const, 0},
+ {"CERT_E_UNTRUSTEDROOT", Const, 0},
+ {"CERT_STORE_ADD_ALWAYS", Const, 0},
+ {"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0},
+ {"CERT_STORE_PROV_MEMORY", Const, 0},
+ {"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0},
+ {"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0},
+ {"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0},
+ {"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0},
+ {"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0},
+ {"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0},
+ {"CERT_TRUST_INVALID_EXTENSION", Const, 0},
+ {"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0},
+ {"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0},
+ {"CERT_TRUST_IS_CYCLIC", Const, 0},
+ {"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0},
+ {"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0},
+ {"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0},
+ {"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0},
+ {"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0},
+ {"CERT_TRUST_IS_REVOKED", Const, 0},
+ {"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0},
+ {"CERT_TRUST_NO_ERROR", Const, 0},
+ {"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0},
+ {"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0},
+ {"CFLUSH", Const, 1},
+ {"CLOCAL", Const, 0},
+ {"CLONE_CHILD_CLEARTID", Const, 2},
+ {"CLONE_CHILD_SETTID", Const, 2},
+ {"CLONE_CLEAR_SIGHAND", Const, 20},
+ {"CLONE_CSIGNAL", Const, 3},
+ {"CLONE_DETACHED", Const, 2},
+ {"CLONE_FILES", Const, 2},
+ {"CLONE_FS", Const, 2},
+ {"CLONE_INTO_CGROUP", Const, 20},
+ {"CLONE_IO", Const, 2},
+ {"CLONE_NEWCGROUP", Const, 20},
+ {"CLONE_NEWIPC", Const, 2},
+ {"CLONE_NEWNET", Const, 2},
+ {"CLONE_NEWNS", Const, 2},
+ {"CLONE_NEWPID", Const, 2},
+ {"CLONE_NEWTIME", Const, 20},
+ {"CLONE_NEWUSER", Const, 2},
+ {"CLONE_NEWUTS", Const, 2},
+ {"CLONE_PARENT", Const, 2},
+ {"CLONE_PARENT_SETTID", Const, 2},
+ {"CLONE_PID", Const, 3},
+ {"CLONE_PIDFD", Const, 20},
+ {"CLONE_PTRACE", Const, 2},
+ {"CLONE_SETTLS", Const, 2},
+ {"CLONE_SIGHAND", Const, 2},
+ {"CLONE_SYSVSEM", Const, 2},
+ {"CLONE_THREAD", Const, 2},
+ {"CLONE_UNTRACED", Const, 2},
+ {"CLONE_VFORK", Const, 2},
+ {"CLONE_VM", Const, 2},
+ {"CPUID_CFLUSH", Const, 1},
+ {"CREAD", Const, 0},
+ {"CREATE_ALWAYS", Const, 0},
+ {"CREATE_NEW", Const, 0},
+ {"CREATE_NEW_PROCESS_GROUP", Const, 1},
+ {"CREATE_UNICODE_ENVIRONMENT", Const, 0},
+ {"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0},
+ {"CRYPT_DELETEKEYSET", Const, 0},
+ {"CRYPT_MACHINE_KEYSET", Const, 0},
+ {"CRYPT_NEWKEYSET", Const, 0},
+ {"CRYPT_SILENT", Const, 0},
+ {"CRYPT_VERIFYCONTEXT", Const, 0},
+ {"CS5", Const, 0},
+ {"CS6", Const, 0},
+ {"CS7", Const, 0},
+ {"CS8", Const, 0},
+ {"CSIZE", Const, 0},
+ {"CSTART", Const, 1},
+ {"CSTATUS", Const, 1},
+ {"CSTOP", Const, 1},
+ {"CSTOPB", Const, 0},
+ {"CSUSP", Const, 1},
+ {"CTL_MAXNAME", Const, 0},
+ {"CTL_NET", Const, 0},
+ {"CTL_QUERY", Const, 1},
+ {"CTRL_BREAK_EVENT", Const, 1},
+ {"CTRL_CLOSE_EVENT", Const, 14},
+ {"CTRL_C_EVENT", Const, 1},
+ {"CTRL_LOGOFF_EVENT", Const, 14},
+ {"CTRL_SHUTDOWN_EVENT", Const, 14},
+ {"CancelIo", Func, 0},
+ {"CancelIoEx", Func, 1},
+ {"CertAddCertificateContextToStore", Func, 0},
+ {"CertChainContext", Type, 0},
+ {"CertChainContext.ChainCount", Field, 0},
+ {"CertChainContext.Chains", Field, 0},
+ {"CertChainContext.HasRevocationFreshnessTime", Field, 0},
+ {"CertChainContext.LowerQualityChainCount", Field, 0},
+ {"CertChainContext.LowerQualityChains", Field, 0},
+ {"CertChainContext.RevocationFreshnessTime", Field, 0},
+ {"CertChainContext.Size", Field, 0},
+ {"CertChainContext.TrustStatus", Field, 0},
+ {"CertChainElement", Type, 0},
+ {"CertChainElement.ApplicationUsage", Field, 0},
+ {"CertChainElement.CertContext", Field, 0},
+ {"CertChainElement.ExtendedErrorInfo", Field, 0},
+ {"CertChainElement.IssuanceUsage", Field, 0},
+ {"CertChainElement.RevocationInfo", Field, 0},
+ {"CertChainElement.Size", Field, 0},
+ {"CertChainElement.TrustStatus", Field, 0},
+ {"CertChainPara", Type, 0},
+ {"CertChainPara.CacheResync", Field, 0},
+ {"CertChainPara.CheckRevocationFreshnessTime", Field, 0},
+ {"CertChainPara.RequestedUsage", Field, 0},
+ {"CertChainPara.RequstedIssuancePolicy", Field, 0},
+ {"CertChainPara.RevocationFreshnessTime", Field, 0},
+ {"CertChainPara.Size", Field, 0},
+ {"CertChainPara.URLRetrievalTimeout", Field, 0},
+ {"CertChainPolicyPara", Type, 0},
+ {"CertChainPolicyPara.ExtraPolicyPara", Field, 0},
+ {"CertChainPolicyPara.Flags", Field, 0},
+ {"CertChainPolicyPara.Size", Field, 0},
+ {"CertChainPolicyStatus", Type, 0},
+ {"CertChainPolicyStatus.ChainIndex", Field, 0},
+ {"CertChainPolicyStatus.ElementIndex", Field, 0},
+ {"CertChainPolicyStatus.Error", Field, 0},
+ {"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0},
+ {"CertChainPolicyStatus.Size", Field, 0},
+ {"CertCloseStore", Func, 0},
+ {"CertContext", Type, 0},
+ {"CertContext.CertInfo", Field, 0},
+ {"CertContext.EncodedCert", Field, 0},
+ {"CertContext.EncodingType", Field, 0},
+ {"CertContext.Length", Field, 0},
+ {"CertContext.Store", Field, 0},
+ {"CertCreateCertificateContext", Func, 0},
+ {"CertEnhKeyUsage", Type, 0},
+ {"CertEnhKeyUsage.Length", Field, 0},
+ {"CertEnhKeyUsage.UsageIdentifiers", Field, 0},
+ {"CertEnumCertificatesInStore", Func, 0},
+ {"CertFreeCertificateChain", Func, 0},
+ {"CertFreeCertificateContext", Func, 0},
+ {"CertGetCertificateChain", Func, 0},
+ {"CertInfo", Type, 11},
+ {"CertOpenStore", Func, 0},
+ {"CertOpenSystemStore", Func, 0},
+ {"CertRevocationCrlInfo", Type, 11},
+ {"CertRevocationInfo", Type, 0},
+ {"CertRevocationInfo.CrlInfo", Field, 0},
+ {"CertRevocationInfo.FreshnessTime", Field, 0},
+ {"CertRevocationInfo.HasFreshnessTime", Field, 0},
+ {"CertRevocationInfo.OidSpecificInfo", Field, 0},
+ {"CertRevocationInfo.RevocationOid", Field, 0},
+ {"CertRevocationInfo.RevocationResult", Field, 0},
+ {"CertRevocationInfo.Size", Field, 0},
+ {"CertSimpleChain", Type, 0},
+ {"CertSimpleChain.Elements", Field, 0},
+ {"CertSimpleChain.HasRevocationFreshnessTime", Field, 0},
+ {"CertSimpleChain.NumElements", Field, 0},
+ {"CertSimpleChain.RevocationFreshnessTime", Field, 0},
+ {"CertSimpleChain.Size", Field, 0},
+ {"CertSimpleChain.TrustListInfo", Field, 0},
+ {"CertSimpleChain.TrustStatus", Field, 0},
+ {"CertTrustListInfo", Type, 11},
+ {"CertTrustStatus", Type, 0},
+ {"CertTrustStatus.ErrorStatus", Field, 0},
+ {"CertTrustStatus.InfoStatus", Field, 0},
+ {"CertUsageMatch", Type, 0},
+ {"CertUsageMatch.Type", Field, 0},
+ {"CertUsageMatch.Usage", Field, 0},
+ {"CertVerifyCertificateChainPolicy", Func, 0},
+ {"Chdir", Func, 0},
+ {"CheckBpfVersion", Func, 0},
+ {"Chflags", Func, 0},
+ {"Chmod", Func, 0},
+ {"Chown", Func, 0},
+ {"Chroot", Func, 0},
+ {"Clearenv", Func, 0},
+ {"Close", Func, 0},
+ {"CloseHandle", Func, 0},
+ {"CloseOnExec", Func, 0},
+ {"Closesocket", Func, 0},
+ {"CmsgLen", Func, 0},
+ {"CmsgSpace", Func, 0},
+ {"Cmsghdr", Type, 0},
+ {"Cmsghdr.Len", Field, 0},
+ {"Cmsghdr.Level", Field, 0},
+ {"Cmsghdr.Type", Field, 0},
+ {"Cmsghdr.X__cmsg_data", Field, 0},
+ {"CommandLineToArgv", Func, 0},
+ {"ComputerName", Func, 0},
+ {"Conn", Type, 9},
+ {"Connect", Func, 0},
+ {"ConnectEx", Func, 1},
+ {"ConvertSidToStringSid", Func, 0},
+ {"ConvertStringSidToSid", Func, 0},
+ {"CopySid", Func, 0},
+ {"Creat", Func, 0},
+ {"CreateDirectory", Func, 0},
+ {"CreateFile", Func, 0},
+ {"CreateFileMapping", Func, 0},
+ {"CreateHardLink", Func, 4},
+ {"CreateIoCompletionPort", Func, 0},
+ {"CreatePipe", Func, 0},
+ {"CreateProcess", Func, 0},
+ {"CreateProcessAsUser", Func, 10},
+ {"CreateSymbolicLink", Func, 4},
+ {"CreateToolhelp32Snapshot", Func, 4},
+ {"Credential", Type, 0},
+ {"Credential.Gid", Field, 0},
+ {"Credential.Groups", Field, 0},
+ {"Credential.NoSetGroups", Field, 9},
+ {"Credential.Uid", Field, 0},
+ {"CryptAcquireContext", Func, 0},
+ {"CryptGenRandom", Func, 0},
+ {"CryptReleaseContext", Func, 0},
+ {"DIOCBSFLUSH", Const, 1},
+ {"DIOCOSFPFLUSH", Const, 1},
+ {"DLL", Type, 0},
+ {"DLL.Handle", Field, 0},
+ {"DLL.Name", Field, 0},
+ {"DLLError", Type, 0},
+ {"DLLError.Err", Field, 0},
+ {"DLLError.Msg", Field, 0},
+ {"DLLError.ObjName", Field, 0},
+ {"DLT_A429", Const, 0},
+ {"DLT_A653_ICM", Const, 0},
+ {"DLT_AIRONET_HEADER", Const, 0},
+ {"DLT_AOS", Const, 1},
+ {"DLT_APPLE_IP_OVER_IEEE1394", Const, 0},
+ {"DLT_ARCNET", Const, 0},
+ {"DLT_ARCNET_LINUX", Const, 0},
+ {"DLT_ATM_CLIP", Const, 0},
+ {"DLT_ATM_RFC1483", Const, 0},
+ {"DLT_AURORA", Const, 0},
+ {"DLT_AX25", Const, 0},
+ {"DLT_AX25_KISS", Const, 0},
+ {"DLT_BACNET_MS_TP", Const, 0},
+ {"DLT_BLUETOOTH_HCI_H4", Const, 0},
+ {"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0},
+ {"DLT_CAN20B", Const, 0},
+ {"DLT_CAN_SOCKETCAN", Const, 1},
+ {"DLT_CHAOS", Const, 0},
+ {"DLT_CHDLC", Const, 0},
+ {"DLT_CISCO_IOS", Const, 0},
+ {"DLT_C_HDLC", Const, 0},
+ {"DLT_C_HDLC_WITH_DIR", Const, 0},
+ {"DLT_DBUS", Const, 1},
+ {"DLT_DECT", Const, 1},
+ {"DLT_DOCSIS", Const, 0},
+ {"DLT_DVB_CI", Const, 1},
+ {"DLT_ECONET", Const, 0},
+ {"DLT_EN10MB", Const, 0},
+ {"DLT_EN3MB", Const, 0},
+ {"DLT_ENC", Const, 0},
+ {"DLT_ERF", Const, 0},
+ {"DLT_ERF_ETH", Const, 0},
+ {"DLT_ERF_POS", Const, 0},
+ {"DLT_FC_2", Const, 1},
+ {"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1},
+ {"DLT_FDDI", Const, 0},
+ {"DLT_FLEXRAY", Const, 0},
+ {"DLT_FRELAY", Const, 0},
+ {"DLT_FRELAY_WITH_DIR", Const, 0},
+ {"DLT_GCOM_SERIAL", Const, 0},
+ {"DLT_GCOM_T1E1", Const, 0},
+ {"DLT_GPF_F", Const, 0},
+ {"DLT_GPF_T", Const, 0},
+ {"DLT_GPRS_LLC", Const, 0},
+ {"DLT_GSMTAP_ABIS", Const, 1},
+ {"DLT_GSMTAP_UM", Const, 1},
+ {"DLT_HDLC", Const, 1},
+ {"DLT_HHDLC", Const, 0},
+ {"DLT_HIPPI", Const, 1},
+ {"DLT_IBM_SN", Const, 0},
+ {"DLT_IBM_SP", Const, 0},
+ {"DLT_IEEE802", Const, 0},
+ {"DLT_IEEE802_11", Const, 0},
+ {"DLT_IEEE802_11_RADIO", Const, 0},
+ {"DLT_IEEE802_11_RADIO_AVS", Const, 0},
+ {"DLT_IEEE802_15_4", Const, 0},
+ {"DLT_IEEE802_15_4_LINUX", Const, 0},
+ {"DLT_IEEE802_15_4_NOFCS", Const, 1},
+ {"DLT_IEEE802_15_4_NONASK_PHY", Const, 0},
+ {"DLT_IEEE802_16_MAC_CPS", Const, 0},
+ {"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0},
+ {"DLT_IPFILTER", Const, 0},
+ {"DLT_IPMB", Const, 0},
+ {"DLT_IPMB_LINUX", Const, 0},
+ {"DLT_IPNET", Const, 1},
+ {"DLT_IPOIB", Const, 1},
+ {"DLT_IPV4", Const, 1},
+ {"DLT_IPV6", Const, 1},
+ {"DLT_IP_OVER_FC", Const, 0},
+ {"DLT_JUNIPER_ATM1", Const, 0},
+ {"DLT_JUNIPER_ATM2", Const, 0},
+ {"DLT_JUNIPER_ATM_CEMIC", Const, 1},
+ {"DLT_JUNIPER_CHDLC", Const, 0},
+ {"DLT_JUNIPER_ES", Const, 0},
+ {"DLT_JUNIPER_ETHER", Const, 0},
+ {"DLT_JUNIPER_FIBRECHANNEL", Const, 1},
+ {"DLT_JUNIPER_FRELAY", Const, 0},
+ {"DLT_JUNIPER_GGSN", Const, 0},
+ {"DLT_JUNIPER_ISM", Const, 0},
+ {"DLT_JUNIPER_MFR", Const, 0},
+ {"DLT_JUNIPER_MLFR", Const, 0},
+ {"DLT_JUNIPER_MLPPP", Const, 0},
+ {"DLT_JUNIPER_MONITOR", Const, 0},
+ {"DLT_JUNIPER_PIC_PEER", Const, 0},
+ {"DLT_JUNIPER_PPP", Const, 0},
+ {"DLT_JUNIPER_PPPOE", Const, 0},
+ {"DLT_JUNIPER_PPPOE_ATM", Const, 0},
+ {"DLT_JUNIPER_SERVICES", Const, 0},
+ {"DLT_JUNIPER_SRX_E2E", Const, 1},
+ {"DLT_JUNIPER_ST", Const, 0},
+ {"DLT_JUNIPER_VP", Const, 0},
+ {"DLT_JUNIPER_VS", Const, 1},
+ {"DLT_LAPB_WITH_DIR", Const, 0},
+ {"DLT_LAPD", Const, 0},
+ {"DLT_LIN", Const, 0},
+ {"DLT_LINUX_EVDEV", Const, 1},
+ {"DLT_LINUX_IRDA", Const, 0},
+ {"DLT_LINUX_LAPD", Const, 0},
+ {"DLT_LINUX_PPP_WITHDIRECTION", Const, 0},
+ {"DLT_LINUX_SLL", Const, 0},
+ {"DLT_LOOP", Const, 0},
+ {"DLT_LTALK", Const, 0},
+ {"DLT_MATCHING_MAX", Const, 1},
+ {"DLT_MATCHING_MIN", Const, 1},
+ {"DLT_MFR", Const, 0},
+ {"DLT_MOST", Const, 0},
+ {"DLT_MPEG_2_TS", Const, 1},
+ {"DLT_MPLS", Const, 1},
+ {"DLT_MTP2", Const, 0},
+ {"DLT_MTP2_WITH_PHDR", Const, 0},
+ {"DLT_MTP3", Const, 0},
+ {"DLT_MUX27010", Const, 1},
+ {"DLT_NETANALYZER", Const, 1},
+ {"DLT_NETANALYZER_TRANSPARENT", Const, 1},
+ {"DLT_NFC_LLCP", Const, 1},
+ {"DLT_NFLOG", Const, 1},
+ {"DLT_NG40", Const, 1},
+ {"DLT_NULL", Const, 0},
+ {"DLT_PCI_EXP", Const, 0},
+ {"DLT_PFLOG", Const, 0},
+ {"DLT_PFSYNC", Const, 0},
+ {"DLT_PPI", Const, 0},
+ {"DLT_PPP", Const, 0},
+ {"DLT_PPP_BSDOS", Const, 0},
+ {"DLT_PPP_ETHER", Const, 0},
+ {"DLT_PPP_PPPD", Const, 0},
+ {"DLT_PPP_SERIAL", Const, 0},
+ {"DLT_PPP_WITH_DIR", Const, 0},
+ {"DLT_PPP_WITH_DIRECTION", Const, 0},
+ {"DLT_PRISM_HEADER", Const, 0},
+ {"DLT_PRONET", Const, 0},
+ {"DLT_RAIF1", Const, 0},
+ {"DLT_RAW", Const, 0},
+ {"DLT_RAWAF_MASK", Const, 1},
+ {"DLT_RIO", Const, 0},
+ {"DLT_SCCP", Const, 0},
+ {"DLT_SITA", Const, 0},
+ {"DLT_SLIP", Const, 0},
+ {"DLT_SLIP_BSDOS", Const, 0},
+ {"DLT_STANAG_5066_D_PDU", Const, 1},
+ {"DLT_SUNATM", Const, 0},
+ {"DLT_SYMANTEC_FIREWALL", Const, 0},
+ {"DLT_TZSP", Const, 0},
+ {"DLT_USB", Const, 0},
+ {"DLT_USB_LINUX", Const, 0},
+ {"DLT_USB_LINUX_MMAPPED", Const, 1},
+ {"DLT_USER0", Const, 0},
+ {"DLT_USER1", Const, 0},
+ {"DLT_USER10", Const, 0},
+ {"DLT_USER11", Const, 0},
+ {"DLT_USER12", Const, 0},
+ {"DLT_USER13", Const, 0},
+ {"DLT_USER14", Const, 0},
+ {"DLT_USER15", Const, 0},
+ {"DLT_USER2", Const, 0},
+ {"DLT_USER3", Const, 0},
+ {"DLT_USER4", Const, 0},
+ {"DLT_USER5", Const, 0},
+ {"DLT_USER6", Const, 0},
+ {"DLT_USER7", Const, 0},
+ {"DLT_USER8", Const, 0},
+ {"DLT_USER9", Const, 0},
+ {"DLT_WIHART", Const, 1},
+ {"DLT_X2E_SERIAL", Const, 0},
+ {"DLT_X2E_XORAYA", Const, 0},
+ {"DNSMXData", Type, 0},
+ {"DNSMXData.NameExchange", Field, 0},
+ {"DNSMXData.Pad", Field, 0},
+ {"DNSMXData.Preference", Field, 0},
+ {"DNSPTRData", Type, 0},
+ {"DNSPTRData.Host", Field, 0},
+ {"DNSRecord", Type, 0},
+ {"DNSRecord.Data", Field, 0},
+ {"DNSRecord.Dw", Field, 0},
+ {"DNSRecord.Length", Field, 0},
+ {"DNSRecord.Name", Field, 0},
+ {"DNSRecord.Next", Field, 0},
+ {"DNSRecord.Reserved", Field, 0},
+ {"DNSRecord.Ttl", Field, 0},
+ {"DNSRecord.Type", Field, 0},
+ {"DNSSRVData", Type, 0},
+ {"DNSSRVData.Pad", Field, 0},
+ {"DNSSRVData.Port", Field, 0},
+ {"DNSSRVData.Priority", Field, 0},
+ {"DNSSRVData.Target", Field, 0},
+ {"DNSSRVData.Weight", Field, 0},
+ {"DNSTXTData", Type, 0},
+ {"DNSTXTData.StringArray", Field, 0},
+ {"DNSTXTData.StringCount", Field, 0},
+ {"DNS_INFO_NO_RECORDS", Const, 4},
+ {"DNS_TYPE_A", Const, 0},
+ {"DNS_TYPE_A6", Const, 0},
+ {"DNS_TYPE_AAAA", Const, 0},
+ {"DNS_TYPE_ADDRS", Const, 0},
+ {"DNS_TYPE_AFSDB", Const, 0},
+ {"DNS_TYPE_ALL", Const, 0},
+ {"DNS_TYPE_ANY", Const, 0},
+ {"DNS_TYPE_ATMA", Const, 0},
+ {"DNS_TYPE_AXFR", Const, 0},
+ {"DNS_TYPE_CERT", Const, 0},
+ {"DNS_TYPE_CNAME", Const, 0},
+ {"DNS_TYPE_DHCID", Const, 0},
+ {"DNS_TYPE_DNAME", Const, 0},
+ {"DNS_TYPE_DNSKEY", Const, 0},
+ {"DNS_TYPE_DS", Const, 0},
+ {"DNS_TYPE_EID", Const, 0},
+ {"DNS_TYPE_GID", Const, 0},
+ {"DNS_TYPE_GPOS", Const, 0},
+ {"DNS_TYPE_HINFO", Const, 0},
+ {"DNS_TYPE_ISDN", Const, 0},
+ {"DNS_TYPE_IXFR", Const, 0},
+ {"DNS_TYPE_KEY", Const, 0},
+ {"DNS_TYPE_KX", Const, 0},
+ {"DNS_TYPE_LOC", Const, 0},
+ {"DNS_TYPE_MAILA", Const, 0},
+ {"DNS_TYPE_MAILB", Const, 0},
+ {"DNS_TYPE_MB", Const, 0},
+ {"DNS_TYPE_MD", Const, 0},
+ {"DNS_TYPE_MF", Const, 0},
+ {"DNS_TYPE_MG", Const, 0},
+ {"DNS_TYPE_MINFO", Const, 0},
+ {"DNS_TYPE_MR", Const, 0},
+ {"DNS_TYPE_MX", Const, 0},
+ {"DNS_TYPE_NAPTR", Const, 0},
+ {"DNS_TYPE_NBSTAT", Const, 0},
+ {"DNS_TYPE_NIMLOC", Const, 0},
+ {"DNS_TYPE_NS", Const, 0},
+ {"DNS_TYPE_NSAP", Const, 0},
+ {"DNS_TYPE_NSAPPTR", Const, 0},
+ {"DNS_TYPE_NSEC", Const, 0},
+ {"DNS_TYPE_NULL", Const, 0},
+ {"DNS_TYPE_NXT", Const, 0},
+ {"DNS_TYPE_OPT", Const, 0},
+ {"DNS_TYPE_PTR", Const, 0},
+ {"DNS_TYPE_PX", Const, 0},
+ {"DNS_TYPE_RP", Const, 0},
+ {"DNS_TYPE_RRSIG", Const, 0},
+ {"DNS_TYPE_RT", Const, 0},
+ {"DNS_TYPE_SIG", Const, 0},
+ {"DNS_TYPE_SINK", Const, 0},
+ {"DNS_TYPE_SOA", Const, 0},
+ {"DNS_TYPE_SRV", Const, 0},
+ {"DNS_TYPE_TEXT", Const, 0},
+ {"DNS_TYPE_TKEY", Const, 0},
+ {"DNS_TYPE_TSIG", Const, 0},
+ {"DNS_TYPE_UID", Const, 0},
+ {"DNS_TYPE_UINFO", Const, 0},
+ {"DNS_TYPE_UNSPEC", Const, 0},
+ {"DNS_TYPE_WINS", Const, 0},
+ {"DNS_TYPE_WINSR", Const, 0},
+ {"DNS_TYPE_WKS", Const, 0},
+ {"DNS_TYPE_X25", Const, 0},
+ {"DT_BLK", Const, 0},
+ {"DT_CHR", Const, 0},
+ {"DT_DIR", Const, 0},
+ {"DT_FIFO", Const, 0},
+ {"DT_LNK", Const, 0},
+ {"DT_REG", Const, 0},
+ {"DT_SOCK", Const, 0},
+ {"DT_UNKNOWN", Const, 0},
+ {"DT_WHT", Const, 0},
+ {"DUPLICATE_CLOSE_SOURCE", Const, 0},
+ {"DUPLICATE_SAME_ACCESS", Const, 0},
+ {"DeleteFile", Func, 0},
+ {"DetachLsf", Func, 0},
+ {"DeviceIoControl", Func, 4},
+ {"Dirent", Type, 0},
+ {"Dirent.Fileno", Field, 0},
+ {"Dirent.Ino", Field, 0},
+ {"Dirent.Name", Field, 0},
+ {"Dirent.Namlen", Field, 0},
+ {"Dirent.Off", Field, 0},
+ {"Dirent.Pad0", Field, 12},
+ {"Dirent.Pad1", Field, 12},
+ {"Dirent.Pad_cgo_0", Field, 0},
+ {"Dirent.Reclen", Field, 0},
+ {"Dirent.Seekoff", Field, 0},
+ {"Dirent.Type", Field, 0},
+ {"Dirent.X__d_padding", Field, 3},
+ {"DnsNameCompare", Func, 4},
+ {"DnsQuery", Func, 0},
+ {"DnsRecordListFree", Func, 0},
+ {"DnsSectionAdditional", Const, 4},
+ {"DnsSectionAnswer", Const, 4},
+ {"DnsSectionAuthority", Const, 4},
+ {"DnsSectionQuestion", Const, 4},
+ {"Dup", Func, 0},
+ {"Dup2", Func, 0},
+ {"Dup3", Func, 2},
+ {"DuplicateHandle", Func, 0},
+ {"E2BIG", Const, 0},
+ {"EACCES", Const, 0},
+ {"EADDRINUSE", Const, 0},
+ {"EADDRNOTAVAIL", Const, 0},
+ {"EADV", Const, 0},
+ {"EAFNOSUPPORT", Const, 0},
+ {"EAGAIN", Const, 0},
+ {"EALREADY", Const, 0},
+ {"EAUTH", Const, 0},
+ {"EBADARCH", Const, 0},
+ {"EBADE", Const, 0},
+ {"EBADEXEC", Const, 0},
+ {"EBADF", Const, 0},
+ {"EBADFD", Const, 0},
+ {"EBADMACHO", Const, 0},
+ {"EBADMSG", Const, 0},
+ {"EBADR", Const, 0},
+ {"EBADRPC", Const, 0},
+ {"EBADRQC", Const, 0},
+ {"EBADSLT", Const, 0},
+ {"EBFONT", Const, 0},
+ {"EBUSY", Const, 0},
+ {"ECANCELED", Const, 0},
+ {"ECAPMODE", Const, 1},
+ {"ECHILD", Const, 0},
+ {"ECHO", Const, 0},
+ {"ECHOCTL", Const, 0},
+ {"ECHOE", Const, 0},
+ {"ECHOK", Const, 0},
+ {"ECHOKE", Const, 0},
+ {"ECHONL", Const, 0},
+ {"ECHOPRT", Const, 0},
+ {"ECHRNG", Const, 0},
+ {"ECOMM", Const, 0},
+ {"ECONNABORTED", Const, 0},
+ {"ECONNREFUSED", Const, 0},
+ {"ECONNRESET", Const, 0},
+ {"EDEADLK", Const, 0},
+ {"EDEADLOCK", Const, 0},
+ {"EDESTADDRREQ", Const, 0},
+ {"EDEVERR", Const, 0},
+ {"EDOM", Const, 0},
+ {"EDOOFUS", Const, 0},
+ {"EDOTDOT", Const, 0},
+ {"EDQUOT", Const, 0},
+ {"EEXIST", Const, 0},
+ {"EFAULT", Const, 0},
+ {"EFBIG", Const, 0},
+ {"EFER_LMA", Const, 1},
+ {"EFER_LME", Const, 1},
+ {"EFER_NXE", Const, 1},
+ {"EFER_SCE", Const, 1},
+ {"EFTYPE", Const, 0},
+ {"EHOSTDOWN", Const, 0},
+ {"EHOSTUNREACH", Const, 0},
+ {"EHWPOISON", Const, 0},
+ {"EIDRM", Const, 0},
+ {"EILSEQ", Const, 0},
+ {"EINPROGRESS", Const, 0},
+ {"EINTR", Const, 0},
+ {"EINVAL", Const, 0},
+ {"EIO", Const, 0},
+ {"EIPSEC", Const, 1},
+ {"EISCONN", Const, 0},
+ {"EISDIR", Const, 0},
+ {"EISNAM", Const, 0},
+ {"EKEYEXPIRED", Const, 0},
+ {"EKEYREJECTED", Const, 0},
+ {"EKEYREVOKED", Const, 0},
+ {"EL2HLT", Const, 0},
+ {"EL2NSYNC", Const, 0},
+ {"EL3HLT", Const, 0},
+ {"EL3RST", Const, 0},
+ {"ELAST", Const, 0},
+ {"ELF_NGREG", Const, 0},
+ {"ELF_PRARGSZ", Const, 0},
+ {"ELIBACC", Const, 0},
+ {"ELIBBAD", Const, 0},
+ {"ELIBEXEC", Const, 0},
+ {"ELIBMAX", Const, 0},
+ {"ELIBSCN", Const, 0},
+ {"ELNRNG", Const, 0},
+ {"ELOOP", Const, 0},
+ {"EMEDIUMTYPE", Const, 0},
+ {"EMFILE", Const, 0},
+ {"EMLINK", Const, 0},
+ {"EMSGSIZE", Const, 0},
+ {"EMT_TAGOVF", Const, 1},
+ {"EMULTIHOP", Const, 0},
+ {"EMUL_ENABLED", Const, 1},
+ {"EMUL_LINUX", Const, 1},
+ {"EMUL_LINUX32", Const, 1},
+ {"EMUL_MAXID", Const, 1},
+ {"EMUL_NATIVE", Const, 1},
+ {"ENAMETOOLONG", Const, 0},
+ {"ENAVAIL", Const, 0},
+ {"ENDRUNDISC", Const, 1},
+ {"ENEEDAUTH", Const, 0},
+ {"ENETDOWN", Const, 0},
+ {"ENETRESET", Const, 0},
+ {"ENETUNREACH", Const, 0},
+ {"ENFILE", Const, 0},
+ {"ENOANO", Const, 0},
+ {"ENOATTR", Const, 0},
+ {"ENOBUFS", Const, 0},
+ {"ENOCSI", Const, 0},
+ {"ENODATA", Const, 0},
+ {"ENODEV", Const, 0},
+ {"ENOENT", Const, 0},
+ {"ENOEXEC", Const, 0},
+ {"ENOKEY", Const, 0},
+ {"ENOLCK", Const, 0},
+ {"ENOLINK", Const, 0},
+ {"ENOMEDIUM", Const, 0},
+ {"ENOMEM", Const, 0},
+ {"ENOMSG", Const, 0},
+ {"ENONET", Const, 0},
+ {"ENOPKG", Const, 0},
+ {"ENOPOLICY", Const, 0},
+ {"ENOPROTOOPT", Const, 0},
+ {"ENOSPC", Const, 0},
+ {"ENOSR", Const, 0},
+ {"ENOSTR", Const, 0},
+ {"ENOSYS", Const, 0},
+ {"ENOTBLK", Const, 0},
+ {"ENOTCAPABLE", Const, 0},
+ {"ENOTCONN", Const, 0},
+ {"ENOTDIR", Const, 0},
+ {"ENOTEMPTY", Const, 0},
+ {"ENOTNAM", Const, 0},
+ {"ENOTRECOVERABLE", Const, 0},
+ {"ENOTSOCK", Const, 0},
+ {"ENOTSUP", Const, 0},
+ {"ENOTTY", Const, 0},
+ {"ENOTUNIQ", Const, 0},
+ {"ENXIO", Const, 0},
+ {"EN_SW_CTL_INF", Const, 1},
+ {"EN_SW_CTL_PREC", Const, 1},
+ {"EN_SW_CTL_ROUND", Const, 1},
+ {"EN_SW_DATACHAIN", Const, 1},
+ {"EN_SW_DENORM", Const, 1},
+ {"EN_SW_INVOP", Const, 1},
+ {"EN_SW_OVERFLOW", Const, 1},
+ {"EN_SW_PRECLOSS", Const, 1},
+ {"EN_SW_UNDERFLOW", Const, 1},
+ {"EN_SW_ZERODIV", Const, 1},
+ {"EOPNOTSUPP", Const, 0},
+ {"EOVERFLOW", Const, 0},
+ {"EOWNERDEAD", Const, 0},
+ {"EPERM", Const, 0},
+ {"EPFNOSUPPORT", Const, 0},
+ {"EPIPE", Const, 0},
+ {"EPOLLERR", Const, 0},
+ {"EPOLLET", Const, 0},
+ {"EPOLLHUP", Const, 0},
+ {"EPOLLIN", Const, 0},
+ {"EPOLLMSG", Const, 0},
+ {"EPOLLONESHOT", Const, 0},
+ {"EPOLLOUT", Const, 0},
+ {"EPOLLPRI", Const, 0},
+ {"EPOLLRDBAND", Const, 0},
+ {"EPOLLRDHUP", Const, 0},
+ {"EPOLLRDNORM", Const, 0},
+ {"EPOLLWRBAND", Const, 0},
+ {"EPOLLWRNORM", Const, 0},
+ {"EPOLL_CLOEXEC", Const, 0},
+ {"EPOLL_CTL_ADD", Const, 0},
+ {"EPOLL_CTL_DEL", Const, 0},
+ {"EPOLL_CTL_MOD", Const, 0},
+ {"EPOLL_NONBLOCK", Const, 0},
+ {"EPROCLIM", Const, 0},
+ {"EPROCUNAVAIL", Const, 0},
+ {"EPROGMISMATCH", Const, 0},
+ {"EPROGUNAVAIL", Const, 0},
+ {"EPROTO", Const, 0},
+ {"EPROTONOSUPPORT", Const, 0},
+ {"EPROTOTYPE", Const, 0},
+ {"EPWROFF", Const, 0},
+ {"EQFULL", Const, 16},
+ {"ERANGE", Const, 0},
+ {"EREMCHG", Const, 0},
+ {"EREMOTE", Const, 0},
+ {"EREMOTEIO", Const, 0},
+ {"ERESTART", Const, 0},
+ {"ERFKILL", Const, 0},
+ {"EROFS", Const, 0},
+ {"ERPCMISMATCH", Const, 0},
+ {"ERROR_ACCESS_DENIED", Const, 0},
+ {"ERROR_ALREADY_EXISTS", Const, 0},
+ {"ERROR_BROKEN_PIPE", Const, 0},
+ {"ERROR_BUFFER_OVERFLOW", Const, 0},
+ {"ERROR_DIR_NOT_EMPTY", Const, 8},
+ {"ERROR_ENVVAR_NOT_FOUND", Const, 0},
+ {"ERROR_FILE_EXISTS", Const, 0},
+ {"ERROR_FILE_NOT_FOUND", Const, 0},
+ {"ERROR_HANDLE_EOF", Const, 2},
+ {"ERROR_INSUFFICIENT_BUFFER", Const, 0},
+ {"ERROR_IO_PENDING", Const, 0},
+ {"ERROR_MOD_NOT_FOUND", Const, 0},
+ {"ERROR_MORE_DATA", Const, 3},
+ {"ERROR_NETNAME_DELETED", Const, 3},
+ {"ERROR_NOT_FOUND", Const, 1},
+ {"ERROR_NO_MORE_FILES", Const, 0},
+ {"ERROR_OPERATION_ABORTED", Const, 0},
+ {"ERROR_PATH_NOT_FOUND", Const, 0},
+ {"ERROR_PRIVILEGE_NOT_HELD", Const, 4},
+ {"ERROR_PROC_NOT_FOUND", Const, 0},
+ {"ESHLIBVERS", Const, 0},
+ {"ESHUTDOWN", Const, 0},
+ {"ESOCKTNOSUPPORT", Const, 0},
+ {"ESPIPE", Const, 0},
+ {"ESRCH", Const, 0},
+ {"ESRMNT", Const, 0},
+ {"ESTALE", Const, 0},
+ {"ESTRPIPE", Const, 0},
+ {"ETHERCAP_JUMBO_MTU", Const, 1},
+ {"ETHERCAP_VLAN_HWTAGGING", Const, 1},
+ {"ETHERCAP_VLAN_MTU", Const, 1},
+ {"ETHERMIN", Const, 1},
+ {"ETHERMTU", Const, 1},
+ {"ETHERMTU_JUMBO", Const, 1},
+ {"ETHERTYPE_8023", Const, 1},
+ {"ETHERTYPE_AARP", Const, 1},
+ {"ETHERTYPE_ACCTON", Const, 1},
+ {"ETHERTYPE_AEONIC", Const, 1},
+ {"ETHERTYPE_ALPHA", Const, 1},
+ {"ETHERTYPE_AMBER", Const, 1},
+ {"ETHERTYPE_AMOEBA", Const, 1},
+ {"ETHERTYPE_AOE", Const, 1},
+ {"ETHERTYPE_APOLLO", Const, 1},
+ {"ETHERTYPE_APOLLODOMAIN", Const, 1},
+ {"ETHERTYPE_APPLETALK", Const, 1},
+ {"ETHERTYPE_APPLITEK", Const, 1},
+ {"ETHERTYPE_ARGONAUT", Const, 1},
+ {"ETHERTYPE_ARP", Const, 1},
+ {"ETHERTYPE_AT", Const, 1},
+ {"ETHERTYPE_ATALK", Const, 1},
+ {"ETHERTYPE_ATOMIC", Const, 1},
+ {"ETHERTYPE_ATT", Const, 1},
+ {"ETHERTYPE_ATTSTANFORD", Const, 1},
+ {"ETHERTYPE_AUTOPHON", Const, 1},
+ {"ETHERTYPE_AXIS", Const, 1},
+ {"ETHERTYPE_BCLOOP", Const, 1},
+ {"ETHERTYPE_BOFL", Const, 1},
+ {"ETHERTYPE_CABLETRON", Const, 1},
+ {"ETHERTYPE_CHAOS", Const, 1},
+ {"ETHERTYPE_COMDESIGN", Const, 1},
+ {"ETHERTYPE_COMPUGRAPHIC", Const, 1},
+ {"ETHERTYPE_COUNTERPOINT", Const, 1},
+ {"ETHERTYPE_CRONUS", Const, 1},
+ {"ETHERTYPE_CRONUSVLN", Const, 1},
+ {"ETHERTYPE_DCA", Const, 1},
+ {"ETHERTYPE_DDE", Const, 1},
+ {"ETHERTYPE_DEBNI", Const, 1},
+ {"ETHERTYPE_DECAM", Const, 1},
+ {"ETHERTYPE_DECCUST", Const, 1},
+ {"ETHERTYPE_DECDIAG", Const, 1},
+ {"ETHERTYPE_DECDNS", Const, 1},
+ {"ETHERTYPE_DECDTS", Const, 1},
+ {"ETHERTYPE_DECEXPER", Const, 1},
+ {"ETHERTYPE_DECLAST", Const, 1},
+ {"ETHERTYPE_DECLTM", Const, 1},
+ {"ETHERTYPE_DECMUMPS", Const, 1},
+ {"ETHERTYPE_DECNETBIOS", Const, 1},
+ {"ETHERTYPE_DELTACON", Const, 1},
+ {"ETHERTYPE_DIDDLE", Const, 1},
+ {"ETHERTYPE_DLOG1", Const, 1},
+ {"ETHERTYPE_DLOG2", Const, 1},
+ {"ETHERTYPE_DN", Const, 1},
+ {"ETHERTYPE_DOGFIGHT", Const, 1},
+ {"ETHERTYPE_DSMD", Const, 1},
+ {"ETHERTYPE_ECMA", Const, 1},
+ {"ETHERTYPE_ENCRYPT", Const, 1},
+ {"ETHERTYPE_ES", Const, 1},
+ {"ETHERTYPE_EXCELAN", Const, 1},
+ {"ETHERTYPE_EXPERDATA", Const, 1},
+ {"ETHERTYPE_FLIP", Const, 1},
+ {"ETHERTYPE_FLOWCONTROL", Const, 1},
+ {"ETHERTYPE_FRARP", Const, 1},
+ {"ETHERTYPE_GENDYN", Const, 1},
+ {"ETHERTYPE_HAYES", Const, 1},
+ {"ETHERTYPE_HIPPI_FP", Const, 1},
+ {"ETHERTYPE_HITACHI", Const, 1},
+ {"ETHERTYPE_HP", Const, 1},
+ {"ETHERTYPE_IEEEPUP", Const, 1},
+ {"ETHERTYPE_IEEEPUPAT", Const, 1},
+ {"ETHERTYPE_IMLBL", Const, 1},
+ {"ETHERTYPE_IMLBLDIAG", Const, 1},
+ {"ETHERTYPE_IP", Const, 1},
+ {"ETHERTYPE_IPAS", Const, 1},
+ {"ETHERTYPE_IPV6", Const, 1},
+ {"ETHERTYPE_IPX", Const, 1},
+ {"ETHERTYPE_IPXNEW", Const, 1},
+ {"ETHERTYPE_KALPANA", Const, 1},
+ {"ETHERTYPE_LANBRIDGE", Const, 1},
+ {"ETHERTYPE_LANPROBE", Const, 1},
+ {"ETHERTYPE_LAT", Const, 1},
+ {"ETHERTYPE_LBACK", Const, 1},
+ {"ETHERTYPE_LITTLE", Const, 1},
+ {"ETHERTYPE_LLDP", Const, 1},
+ {"ETHERTYPE_LOGICRAFT", Const, 1},
+ {"ETHERTYPE_LOOPBACK", Const, 1},
+ {"ETHERTYPE_MATRA", Const, 1},
+ {"ETHERTYPE_MAX", Const, 1},
+ {"ETHERTYPE_MERIT", Const, 1},
+ {"ETHERTYPE_MICP", Const, 1},
+ {"ETHERTYPE_MOPDL", Const, 1},
+ {"ETHERTYPE_MOPRC", Const, 1},
+ {"ETHERTYPE_MOTOROLA", Const, 1},
+ {"ETHERTYPE_MPLS", Const, 1},
+ {"ETHERTYPE_MPLS_MCAST", Const, 1},
+ {"ETHERTYPE_MUMPS", Const, 1},
+ {"ETHERTYPE_NBPCC", Const, 1},
+ {"ETHERTYPE_NBPCLAIM", Const, 1},
+ {"ETHERTYPE_NBPCLREQ", Const, 1},
+ {"ETHERTYPE_NBPCLRSP", Const, 1},
+ {"ETHERTYPE_NBPCREQ", Const, 1},
+ {"ETHERTYPE_NBPCRSP", Const, 1},
+ {"ETHERTYPE_NBPDG", Const, 1},
+ {"ETHERTYPE_NBPDGB", Const, 1},
+ {"ETHERTYPE_NBPDLTE", Const, 1},
+ {"ETHERTYPE_NBPRAR", Const, 1},
+ {"ETHERTYPE_NBPRAS", Const, 1},
+ {"ETHERTYPE_NBPRST", Const, 1},
+ {"ETHERTYPE_NBPSCD", Const, 1},
+ {"ETHERTYPE_NBPVCD", Const, 1},
+ {"ETHERTYPE_NBS", Const, 1},
+ {"ETHERTYPE_NCD", Const, 1},
+ {"ETHERTYPE_NESTAR", Const, 1},
+ {"ETHERTYPE_NETBEUI", Const, 1},
+ {"ETHERTYPE_NOVELL", Const, 1},
+ {"ETHERTYPE_NS", Const, 1},
+ {"ETHERTYPE_NSAT", Const, 1},
+ {"ETHERTYPE_NSCOMPAT", Const, 1},
+ {"ETHERTYPE_NTRAILER", Const, 1},
+ {"ETHERTYPE_OS9", Const, 1},
+ {"ETHERTYPE_OS9NET", Const, 1},
+ {"ETHERTYPE_PACER", Const, 1},
+ {"ETHERTYPE_PAE", Const, 1},
+ {"ETHERTYPE_PCS", Const, 1},
+ {"ETHERTYPE_PLANNING", Const, 1},
+ {"ETHERTYPE_PPP", Const, 1},
+ {"ETHERTYPE_PPPOE", Const, 1},
+ {"ETHERTYPE_PPPOEDISC", Const, 1},
+ {"ETHERTYPE_PRIMENTS", Const, 1},
+ {"ETHERTYPE_PUP", Const, 1},
+ {"ETHERTYPE_PUPAT", Const, 1},
+ {"ETHERTYPE_QINQ", Const, 1},
+ {"ETHERTYPE_RACAL", Const, 1},
+ {"ETHERTYPE_RATIONAL", Const, 1},
+ {"ETHERTYPE_RAWFR", Const, 1},
+ {"ETHERTYPE_RCL", Const, 1},
+ {"ETHERTYPE_RDP", Const, 1},
+ {"ETHERTYPE_RETIX", Const, 1},
+ {"ETHERTYPE_REVARP", Const, 1},
+ {"ETHERTYPE_SCA", Const, 1},
+ {"ETHERTYPE_SECTRA", Const, 1},
+ {"ETHERTYPE_SECUREDATA", Const, 1},
+ {"ETHERTYPE_SGITW", Const, 1},
+ {"ETHERTYPE_SG_BOUNCE", Const, 1},
+ {"ETHERTYPE_SG_DIAG", Const, 1},
+ {"ETHERTYPE_SG_NETGAMES", Const, 1},
+ {"ETHERTYPE_SG_RESV", Const, 1},
+ {"ETHERTYPE_SIMNET", Const, 1},
+ {"ETHERTYPE_SLOW", Const, 1},
+ {"ETHERTYPE_SLOWPROTOCOLS", Const, 1},
+ {"ETHERTYPE_SNA", Const, 1},
+ {"ETHERTYPE_SNMP", Const, 1},
+ {"ETHERTYPE_SONIX", Const, 1},
+ {"ETHERTYPE_SPIDER", Const, 1},
+ {"ETHERTYPE_SPRITE", Const, 1},
+ {"ETHERTYPE_STP", Const, 1},
+ {"ETHERTYPE_TALARIS", Const, 1},
+ {"ETHERTYPE_TALARISMC", Const, 1},
+ {"ETHERTYPE_TCPCOMP", Const, 1},
+ {"ETHERTYPE_TCPSM", Const, 1},
+ {"ETHERTYPE_TEC", Const, 1},
+ {"ETHERTYPE_TIGAN", Const, 1},
+ {"ETHERTYPE_TRAIL", Const, 1},
+ {"ETHERTYPE_TRANSETHER", Const, 1},
+ {"ETHERTYPE_TYMSHARE", Const, 1},
+ {"ETHERTYPE_UBBST", Const, 1},
+ {"ETHERTYPE_UBDEBUG", Const, 1},
+ {"ETHERTYPE_UBDIAGLOOP", Const, 1},
+ {"ETHERTYPE_UBDL", Const, 1},
+ {"ETHERTYPE_UBNIU", Const, 1},
+ {"ETHERTYPE_UBNMC", Const, 1},
+ {"ETHERTYPE_VALID", Const, 1},
+ {"ETHERTYPE_VARIAN", Const, 1},
+ {"ETHERTYPE_VAXELN", Const, 1},
+ {"ETHERTYPE_VEECO", Const, 1},
+ {"ETHERTYPE_VEXP", Const, 1},
+ {"ETHERTYPE_VGLAB", Const, 1},
+ {"ETHERTYPE_VINES", Const, 1},
+ {"ETHERTYPE_VINESECHO", Const, 1},
+ {"ETHERTYPE_VINESLOOP", Const, 1},
+ {"ETHERTYPE_VITAL", Const, 1},
+ {"ETHERTYPE_VLAN", Const, 1},
+ {"ETHERTYPE_VLTLMAN", Const, 1},
+ {"ETHERTYPE_VPROD", Const, 1},
+ {"ETHERTYPE_VURESERVED", Const, 1},
+ {"ETHERTYPE_WATERLOO", Const, 1},
+ {"ETHERTYPE_WELLFLEET", Const, 1},
+ {"ETHERTYPE_X25", Const, 1},
+ {"ETHERTYPE_X75", Const, 1},
+ {"ETHERTYPE_XNSSM", Const, 1},
+ {"ETHERTYPE_XTP", Const, 1},
+ {"ETHER_ADDR_LEN", Const, 1},
+ {"ETHER_ALIGN", Const, 1},
+ {"ETHER_CRC_LEN", Const, 1},
+ {"ETHER_CRC_POLY_BE", Const, 1},
+ {"ETHER_CRC_POLY_LE", Const, 1},
+ {"ETHER_HDR_LEN", Const, 1},
+ {"ETHER_MAX_DIX_LEN", Const, 1},
+ {"ETHER_MAX_LEN", Const, 1},
+ {"ETHER_MAX_LEN_JUMBO", Const, 1},
+ {"ETHER_MIN_LEN", Const, 1},
+ {"ETHER_PPPOE_ENCAP_LEN", Const, 1},
+ {"ETHER_TYPE_LEN", Const, 1},
+ {"ETHER_VLAN_ENCAP_LEN", Const, 1},
+ {"ETH_P_1588", Const, 0},
+ {"ETH_P_8021Q", Const, 0},
+ {"ETH_P_802_2", Const, 0},
+ {"ETH_P_802_3", Const, 0},
+ {"ETH_P_AARP", Const, 0},
+ {"ETH_P_ALL", Const, 0},
+ {"ETH_P_AOE", Const, 0},
+ {"ETH_P_ARCNET", Const, 0},
+ {"ETH_P_ARP", Const, 0},
+ {"ETH_P_ATALK", Const, 0},
+ {"ETH_P_ATMFATE", Const, 0},
+ {"ETH_P_ATMMPOA", Const, 0},
+ {"ETH_P_AX25", Const, 0},
+ {"ETH_P_BPQ", Const, 0},
+ {"ETH_P_CAIF", Const, 0},
+ {"ETH_P_CAN", Const, 0},
+ {"ETH_P_CONTROL", Const, 0},
+ {"ETH_P_CUST", Const, 0},
+ {"ETH_P_DDCMP", Const, 0},
+ {"ETH_P_DEC", Const, 0},
+ {"ETH_P_DIAG", Const, 0},
+ {"ETH_P_DNA_DL", Const, 0},
+ {"ETH_P_DNA_RC", Const, 0},
+ {"ETH_P_DNA_RT", Const, 0},
+ {"ETH_P_DSA", Const, 0},
+ {"ETH_P_ECONET", Const, 0},
+ {"ETH_P_EDSA", Const, 0},
+ {"ETH_P_FCOE", Const, 0},
+ {"ETH_P_FIP", Const, 0},
+ {"ETH_P_HDLC", Const, 0},
+ {"ETH_P_IEEE802154", Const, 0},
+ {"ETH_P_IEEEPUP", Const, 0},
+ {"ETH_P_IEEEPUPAT", Const, 0},
+ {"ETH_P_IP", Const, 0},
+ {"ETH_P_IPV6", Const, 0},
+ {"ETH_P_IPX", Const, 0},
+ {"ETH_P_IRDA", Const, 0},
+ {"ETH_P_LAT", Const, 0},
+ {"ETH_P_LINK_CTL", Const, 0},
+ {"ETH_P_LOCALTALK", Const, 0},
+ {"ETH_P_LOOP", Const, 0},
+ {"ETH_P_MOBITEX", Const, 0},
+ {"ETH_P_MPLS_MC", Const, 0},
+ {"ETH_P_MPLS_UC", Const, 0},
+ {"ETH_P_PAE", Const, 0},
+ {"ETH_P_PAUSE", Const, 0},
+ {"ETH_P_PHONET", Const, 0},
+ {"ETH_P_PPPTALK", Const, 0},
+ {"ETH_P_PPP_DISC", Const, 0},
+ {"ETH_P_PPP_MP", Const, 0},
+ {"ETH_P_PPP_SES", Const, 0},
+ {"ETH_P_PUP", Const, 0},
+ {"ETH_P_PUPAT", Const, 0},
+ {"ETH_P_RARP", Const, 0},
+ {"ETH_P_SCA", Const, 0},
+ {"ETH_P_SLOW", Const, 0},
+ {"ETH_P_SNAP", Const, 0},
+ {"ETH_P_TEB", Const, 0},
+ {"ETH_P_TIPC", Const, 0},
+ {"ETH_P_TRAILER", Const, 0},
+ {"ETH_P_TR_802_2", Const, 0},
+ {"ETH_P_WAN_PPP", Const, 0},
+ {"ETH_P_WCCP", Const, 0},
+ {"ETH_P_X25", Const, 0},
+ {"ETIME", Const, 0},
+ {"ETIMEDOUT", Const, 0},
+ {"ETOOMANYREFS", Const, 0},
+ {"ETXTBSY", Const, 0},
+ {"EUCLEAN", Const, 0},
+ {"EUNATCH", Const, 0},
+ {"EUSERS", Const, 0},
+ {"EVFILT_AIO", Const, 0},
+ {"EVFILT_FS", Const, 0},
+ {"EVFILT_LIO", Const, 0},
+ {"EVFILT_MACHPORT", Const, 0},
+ {"EVFILT_PROC", Const, 0},
+ {"EVFILT_READ", Const, 0},
+ {"EVFILT_SIGNAL", Const, 0},
+ {"EVFILT_SYSCOUNT", Const, 0},
+ {"EVFILT_THREADMARKER", Const, 0},
+ {"EVFILT_TIMER", Const, 0},
+ {"EVFILT_USER", Const, 0},
+ {"EVFILT_VM", Const, 0},
+ {"EVFILT_VNODE", Const, 0},
+ {"EVFILT_WRITE", Const, 0},
+ {"EV_ADD", Const, 0},
+ {"EV_CLEAR", Const, 0},
+ {"EV_DELETE", Const, 0},
+ {"EV_DISABLE", Const, 0},
+ {"EV_DISPATCH", Const, 0},
+ {"EV_DROP", Const, 3},
+ {"EV_ENABLE", Const, 0},
+ {"EV_EOF", Const, 0},
+ {"EV_ERROR", Const, 0},
+ {"EV_FLAG0", Const, 0},
+ {"EV_FLAG1", Const, 0},
+ {"EV_ONESHOT", Const, 0},
+ {"EV_OOBAND", Const, 0},
+ {"EV_POLL", Const, 0},
+ {"EV_RECEIPT", Const, 0},
+ {"EV_SYSFLAGS", Const, 0},
+ {"EWINDOWS", Const, 0},
+ {"EWOULDBLOCK", Const, 0},
+ {"EXDEV", Const, 0},
+ {"EXFULL", Const, 0},
+ {"EXTA", Const, 0},
+ {"EXTB", Const, 0},
+ {"EXTPROC", Const, 0},
+ {"Environ", Func, 0},
+ {"EpollCreate", Func, 0},
+ {"EpollCreate1", Func, 0},
+ {"EpollCtl", Func, 0},
+ {"EpollEvent", Type, 0},
+ {"EpollEvent.Events", Field, 0},
+ {"EpollEvent.Fd", Field, 0},
+ {"EpollEvent.Pad", Field, 0},
+ {"EpollEvent.PadFd", Field, 0},
+ {"EpollWait", Func, 0},
+ {"Errno", Type, 0},
+ {"EscapeArg", Func, 0},
+ {"Exchangedata", Func, 0},
+ {"Exec", Func, 0},
+ {"Exit", Func, 0},
+ {"ExitProcess", Func, 0},
+ {"FD_CLOEXEC", Const, 0},
+ {"FD_SETSIZE", Const, 0},
+ {"FILE_ACTION_ADDED", Const, 0},
+ {"FILE_ACTION_MODIFIED", Const, 0},
+ {"FILE_ACTION_REMOVED", Const, 0},
+ {"FILE_ACTION_RENAMED_NEW_NAME", Const, 0},
+ {"FILE_ACTION_RENAMED_OLD_NAME", Const, 0},
+ {"FILE_APPEND_DATA", Const, 0},
+ {"FILE_ATTRIBUTE_ARCHIVE", Const, 0},
+ {"FILE_ATTRIBUTE_DIRECTORY", Const, 0},
+ {"FILE_ATTRIBUTE_HIDDEN", Const, 0},
+ {"FILE_ATTRIBUTE_NORMAL", Const, 0},
+ {"FILE_ATTRIBUTE_READONLY", Const, 0},
+ {"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4},
+ {"FILE_ATTRIBUTE_SYSTEM", Const, 0},
+ {"FILE_BEGIN", Const, 0},
+ {"FILE_CURRENT", Const, 0},
+ {"FILE_END", Const, 0},
+ {"FILE_FLAG_BACKUP_SEMANTICS", Const, 0},
+ {"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4},
+ {"FILE_FLAG_OVERLAPPED", Const, 0},
+ {"FILE_LIST_DIRECTORY", Const, 0},
+ {"FILE_MAP_COPY", Const, 0},
+ {"FILE_MAP_EXECUTE", Const, 0},
+ {"FILE_MAP_READ", Const, 0},
+ {"FILE_MAP_WRITE", Const, 0},
+ {"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0},
+ {"FILE_NOTIFY_CHANGE_CREATION", Const, 0},
+ {"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0},
+ {"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0},
+ {"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0},
+ {"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0},
+ {"FILE_NOTIFY_CHANGE_SIZE", Const, 0},
+ {"FILE_SHARE_DELETE", Const, 0},
+ {"FILE_SHARE_READ", Const, 0},
+ {"FILE_SHARE_WRITE", Const, 0},
+ {"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2},
+ {"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2},
+ {"FILE_TYPE_CHAR", Const, 0},
+ {"FILE_TYPE_DISK", Const, 0},
+ {"FILE_TYPE_PIPE", Const, 0},
+ {"FILE_TYPE_REMOTE", Const, 0},
+ {"FILE_TYPE_UNKNOWN", Const, 0},
+ {"FILE_WRITE_ATTRIBUTES", Const, 0},
+ {"FLUSHO", Const, 0},
+ {"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0},
+ {"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0},
+ {"FORMAT_MESSAGE_FROM_HMODULE", Const, 0},
+ {"FORMAT_MESSAGE_FROM_STRING", Const, 0},
+ {"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0},
+ {"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0},
+ {"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0},
+ {"FSCTL_GET_REPARSE_POINT", Const, 4},
+ {"F_ADDFILESIGS", Const, 0},
+ {"F_ADDSIGS", Const, 0},
+ {"F_ALLOCATEALL", Const, 0},
+ {"F_ALLOCATECONTIG", Const, 0},
+ {"F_CANCEL", Const, 0},
+ {"F_CHKCLEAN", Const, 0},
+ {"F_CLOSEM", Const, 1},
+ {"F_DUP2FD", Const, 0},
+ {"F_DUP2FD_CLOEXEC", Const, 1},
+ {"F_DUPFD", Const, 0},
+ {"F_DUPFD_CLOEXEC", Const, 0},
+ {"F_EXLCK", Const, 0},
+ {"F_FINDSIGS", Const, 16},
+ {"F_FLUSH_DATA", Const, 0},
+ {"F_FREEZE_FS", Const, 0},
+ {"F_FSCTL", Const, 1},
+ {"F_FSDIRMASK", Const, 1},
+ {"F_FSIN", Const, 1},
+ {"F_FSINOUT", Const, 1},
+ {"F_FSOUT", Const, 1},
+ {"F_FSPRIV", Const, 1},
+ {"F_FSVOID", Const, 1},
+ {"F_FULLFSYNC", Const, 0},
+ {"F_GETCODEDIR", Const, 16},
+ {"F_GETFD", Const, 0},
+ {"F_GETFL", Const, 0},
+ {"F_GETLEASE", Const, 0},
+ {"F_GETLK", Const, 0},
+ {"F_GETLK64", Const, 0},
+ {"F_GETLKPID", Const, 0},
+ {"F_GETNOSIGPIPE", Const, 0},
+ {"F_GETOWN", Const, 0},
+ {"F_GETOWN_EX", Const, 0},
+ {"F_GETPATH", Const, 0},
+ {"F_GETPATH_MTMINFO", Const, 0},
+ {"F_GETPIPE_SZ", Const, 0},
+ {"F_GETPROTECTIONCLASS", Const, 0},
+ {"F_GETPROTECTIONLEVEL", Const, 16},
+ {"F_GETSIG", Const, 0},
+ {"F_GLOBAL_NOCACHE", Const, 0},
+ {"F_LOCK", Const, 0},
+ {"F_LOG2PHYS", Const, 0},
+ {"F_LOG2PHYS_EXT", Const, 0},
+ {"F_MARKDEPENDENCY", Const, 0},
+ {"F_MAXFD", Const, 1},
+ {"F_NOCACHE", Const, 0},
+ {"F_NODIRECT", Const, 0},
+ {"F_NOTIFY", Const, 0},
+ {"F_OGETLK", Const, 0},
+ {"F_OK", Const, 0},
+ {"F_OSETLK", Const, 0},
+ {"F_OSETLKW", Const, 0},
+ {"F_PARAM_MASK", Const, 1},
+ {"F_PARAM_MAX", Const, 1},
+ {"F_PATHPKG_CHECK", Const, 0},
+ {"F_PEOFPOSMODE", Const, 0},
+ {"F_PREALLOCATE", Const, 0},
+ {"F_RDADVISE", Const, 0},
+ {"F_RDAHEAD", Const, 0},
+ {"F_RDLCK", Const, 0},
+ {"F_READAHEAD", Const, 0},
+ {"F_READBOOTSTRAP", Const, 0},
+ {"F_SETBACKINGSTORE", Const, 0},
+ {"F_SETFD", Const, 0},
+ {"F_SETFL", Const, 0},
+ {"F_SETLEASE", Const, 0},
+ {"F_SETLK", Const, 0},
+ {"F_SETLK64", Const, 0},
+ {"F_SETLKW", Const, 0},
+ {"F_SETLKW64", Const, 0},
+ {"F_SETLKWTIMEOUT", Const, 16},
+ {"F_SETLK_REMOTE", Const, 0},
+ {"F_SETNOSIGPIPE", Const, 0},
+ {"F_SETOWN", Const, 0},
+ {"F_SETOWN_EX", Const, 0},
+ {"F_SETPIPE_SZ", Const, 0},
+ {"F_SETPROTECTIONCLASS", Const, 0},
+ {"F_SETSIG", Const, 0},
+ {"F_SETSIZE", Const, 0},
+ {"F_SHLCK", Const, 0},
+ {"F_SINGLE_WRITER", Const, 16},
+ {"F_TEST", Const, 0},
+ {"F_THAW_FS", Const, 0},
+ {"F_TLOCK", Const, 0},
+ {"F_TRANSCODEKEY", Const, 16},
+ {"F_ULOCK", Const, 0},
+ {"F_UNLCK", Const, 0},
+ {"F_UNLCKSYS", Const, 0},
+ {"F_VOLPOSMODE", Const, 0},
+ {"F_WRITEBOOTSTRAP", Const, 0},
+ {"F_WRLCK", Const, 0},
+ {"Faccessat", Func, 0},
+ {"Fallocate", Func, 0},
+ {"Fbootstraptransfer_t", Type, 0},
+ {"Fbootstraptransfer_t.Buffer", Field, 0},
+ {"Fbootstraptransfer_t.Length", Field, 0},
+ {"Fbootstraptransfer_t.Offset", Field, 0},
+ {"Fchdir", Func, 0},
+ {"Fchflags", Func, 0},
+ {"Fchmod", Func, 0},
+ {"Fchmodat", Func, 0},
+ {"Fchown", Func, 0},
+ {"Fchownat", Func, 0},
+ {"FcntlFlock", Func, 3},
+ {"FdSet", Type, 0},
+ {"FdSet.Bits", Field, 0},
+ {"FdSet.X__fds_bits", Field, 0},
+ {"Fdatasync", Func, 0},
+ {"FileNotifyInformation", Type, 0},
+ {"FileNotifyInformation.Action", Field, 0},
+ {"FileNotifyInformation.FileName", Field, 0},
+ {"FileNotifyInformation.FileNameLength", Field, 0},
+ {"FileNotifyInformation.NextEntryOffset", Field, 0},
+ {"Filetime", Type, 0},
+ {"Filetime.HighDateTime", Field, 0},
+ {"Filetime.LowDateTime", Field, 0},
+ {"FindClose", Func, 0},
+ {"FindFirstFile", Func, 0},
+ {"FindNextFile", Func, 0},
+ {"Flock", Func, 0},
+ {"Flock_t", Type, 0},
+ {"Flock_t.Len", Field, 0},
+ {"Flock_t.Pad_cgo_0", Field, 0},
+ {"Flock_t.Pad_cgo_1", Field, 3},
+ {"Flock_t.Pid", Field, 0},
+ {"Flock_t.Start", Field, 0},
+ {"Flock_t.Sysid", Field, 0},
+ {"Flock_t.Type", Field, 0},
+ {"Flock_t.Whence", Field, 0},
+ {"FlushBpf", Func, 0},
+ {"FlushFileBuffers", Func, 0},
+ {"FlushViewOfFile", Func, 0},
+ {"ForkExec", Func, 0},
+ {"ForkLock", Var, 0},
+ {"FormatMessage", Func, 0},
+ {"Fpathconf", Func, 0},
+ {"FreeAddrInfoW", Func, 1},
+ {"FreeEnvironmentStrings", Func, 0},
+ {"FreeLibrary", Func, 0},
+ {"Fsid", Type, 0},
+ {"Fsid.Val", Field, 0},
+ {"Fsid.X__fsid_val", Field, 2},
+ {"Fsid.X__val", Field, 0},
+ {"Fstat", Func, 0},
+ {"Fstatat", Func, 12},
+ {"Fstatfs", Func, 0},
+ {"Fstore_t", Type, 0},
+ {"Fstore_t.Bytesalloc", Field, 0},
+ {"Fstore_t.Flags", Field, 0},
+ {"Fstore_t.Length", Field, 0},
+ {"Fstore_t.Offset", Field, 0},
+ {"Fstore_t.Posmode", Field, 0},
+ {"Fsync", Func, 0},
+ {"Ftruncate", Func, 0},
+ {"FullPath", Func, 4},
+ {"Futimes", Func, 0},
+ {"Futimesat", Func, 0},
+ {"GENERIC_ALL", Const, 0},
+ {"GENERIC_EXECUTE", Const, 0},
+ {"GENERIC_READ", Const, 0},
+ {"GENERIC_WRITE", Const, 0},
+ {"GUID", Type, 1},
+ {"GUID.Data1", Field, 1},
+ {"GUID.Data2", Field, 1},
+ {"GUID.Data3", Field, 1},
+ {"GUID.Data4", Field, 1},
+ {"GetAcceptExSockaddrs", Func, 0},
+ {"GetAdaptersInfo", Func, 0},
+ {"GetAddrInfoW", Func, 1},
+ {"GetCommandLine", Func, 0},
+ {"GetComputerName", Func, 0},
+ {"GetConsoleMode", Func, 1},
+ {"GetCurrentDirectory", Func, 0},
+ {"GetCurrentProcess", Func, 0},
+ {"GetEnvironmentStrings", Func, 0},
+ {"GetEnvironmentVariable", Func, 0},
+ {"GetExitCodeProcess", Func, 0},
+ {"GetFileAttributes", Func, 0},
+ {"GetFileAttributesEx", Func, 0},
+ {"GetFileExInfoStandard", Const, 0},
+ {"GetFileExMaxInfoLevel", Const, 0},
+ {"GetFileInformationByHandle", Func, 0},
+ {"GetFileType", Func, 0},
+ {"GetFullPathName", Func, 0},
+ {"GetHostByName", Func, 0},
+ {"GetIfEntry", Func, 0},
+ {"GetLastError", Func, 0},
+ {"GetLengthSid", Func, 0},
+ {"GetLongPathName", Func, 0},
+ {"GetProcAddress", Func, 0},
+ {"GetProcessTimes", Func, 0},
+ {"GetProtoByName", Func, 0},
+ {"GetQueuedCompletionStatus", Func, 0},
+ {"GetServByName", Func, 0},
+ {"GetShortPathName", Func, 0},
+ {"GetStartupInfo", Func, 0},
+ {"GetStdHandle", Func, 0},
+ {"GetSystemTimeAsFileTime", Func, 0},
+ {"GetTempPath", Func, 0},
+ {"GetTimeZoneInformation", Func, 0},
+ {"GetTokenInformation", Func, 0},
+ {"GetUserNameEx", Func, 0},
+ {"GetUserProfileDirectory", Func, 0},
+ {"GetVersion", Func, 0},
+ {"Getcwd", Func, 0},
+ {"Getdents", Func, 0},
+ {"Getdirentries", Func, 0},
+ {"Getdtablesize", Func, 0},
+ {"Getegid", Func, 0},
+ {"Getenv", Func, 0},
+ {"Geteuid", Func, 0},
+ {"Getfsstat", Func, 0},
+ {"Getgid", Func, 0},
+ {"Getgroups", Func, 0},
+ {"Getpagesize", Func, 0},
+ {"Getpeername", Func, 0},
+ {"Getpgid", Func, 0},
+ {"Getpgrp", Func, 0},
+ {"Getpid", Func, 0},
+ {"Getppid", Func, 0},
+ {"Getpriority", Func, 0},
+ {"Getrlimit", Func, 0},
+ {"Getrusage", Func, 0},
+ {"Getsid", Func, 0},
+ {"Getsockname", Func, 0},
+ {"Getsockopt", Func, 1},
+ {"GetsockoptByte", Func, 0},
+ {"GetsockoptICMPv6Filter", Func, 2},
+ {"GetsockoptIPMreq", Func, 0},
+ {"GetsockoptIPMreqn", Func, 0},
+ {"GetsockoptIPv6MTUInfo", Func, 2},
+ {"GetsockoptIPv6Mreq", Func, 0},
+ {"GetsockoptInet4Addr", Func, 0},
+ {"GetsockoptInt", Func, 0},
+ {"GetsockoptUcred", Func, 1},
+ {"Gettid", Func, 0},
+ {"Gettimeofday", Func, 0},
+ {"Getuid", Func, 0},
+ {"Getwd", Func, 0},
+ {"Getxattr", Func, 1},
+ {"HANDLE_FLAG_INHERIT", Const, 0},
+ {"HKEY_CLASSES_ROOT", Const, 0},
+ {"HKEY_CURRENT_CONFIG", Const, 0},
+ {"HKEY_CURRENT_USER", Const, 0},
+ {"HKEY_DYN_DATA", Const, 0},
+ {"HKEY_LOCAL_MACHINE", Const, 0},
+ {"HKEY_PERFORMANCE_DATA", Const, 0},
+ {"HKEY_USERS", Const, 0},
+ {"HUPCL", Const, 0},
+ {"Handle", Type, 0},
+ {"Hostent", Type, 0},
+ {"Hostent.AddrList", Field, 0},
+ {"Hostent.AddrType", Field, 0},
+ {"Hostent.Aliases", Field, 0},
+ {"Hostent.Length", Field, 0},
+ {"Hostent.Name", Field, 0},
+ {"ICANON", Const, 0},
+ {"ICMP6_FILTER", Const, 2},
+ {"ICMPV6_FILTER", Const, 2},
+ {"ICMPv6Filter", Type, 2},
+ {"ICMPv6Filter.Data", Field, 2},
+ {"ICMPv6Filter.Filt", Field, 2},
+ {"ICRNL", Const, 0},
+ {"IEXTEN", Const, 0},
+ {"IFAN_ARRIVAL", Const, 1},
+ {"IFAN_DEPARTURE", Const, 1},
+ {"IFA_ADDRESS", Const, 0},
+ {"IFA_ANYCAST", Const, 0},
+ {"IFA_BROADCAST", Const, 0},
+ {"IFA_CACHEINFO", Const, 0},
+ {"IFA_F_DADFAILED", Const, 0},
+ {"IFA_F_DEPRECATED", Const, 0},
+ {"IFA_F_HOMEADDRESS", Const, 0},
+ {"IFA_F_NODAD", Const, 0},
+ {"IFA_F_OPTIMISTIC", Const, 0},
+ {"IFA_F_PERMANENT", Const, 0},
+ {"IFA_F_SECONDARY", Const, 0},
+ {"IFA_F_TEMPORARY", Const, 0},
+ {"IFA_F_TENTATIVE", Const, 0},
+ {"IFA_LABEL", Const, 0},
+ {"IFA_LOCAL", Const, 0},
+ {"IFA_MAX", Const, 0},
+ {"IFA_MULTICAST", Const, 0},
+ {"IFA_ROUTE", Const, 1},
+ {"IFA_UNSPEC", Const, 0},
+ {"IFF_ALLMULTI", Const, 0},
+ {"IFF_ALTPHYS", Const, 0},
+ {"IFF_AUTOMEDIA", Const, 0},
+ {"IFF_BROADCAST", Const, 0},
+ {"IFF_CANTCHANGE", Const, 0},
+ {"IFF_CANTCONFIG", Const, 1},
+ {"IFF_DEBUG", Const, 0},
+ {"IFF_DRV_OACTIVE", Const, 0},
+ {"IFF_DRV_RUNNING", Const, 0},
+ {"IFF_DYING", Const, 0},
+ {"IFF_DYNAMIC", Const, 0},
+ {"IFF_LINK0", Const, 0},
+ {"IFF_LINK1", Const, 0},
+ {"IFF_LINK2", Const, 0},
+ {"IFF_LOOPBACK", Const, 0},
+ {"IFF_MASTER", Const, 0},
+ {"IFF_MONITOR", Const, 0},
+ {"IFF_MULTICAST", Const, 0},
+ {"IFF_NOARP", Const, 0},
+ {"IFF_NOTRAILERS", Const, 0},
+ {"IFF_NO_PI", Const, 0},
+ {"IFF_OACTIVE", Const, 0},
+ {"IFF_ONE_QUEUE", Const, 0},
+ {"IFF_POINTOPOINT", Const, 0},
+ {"IFF_POINTTOPOINT", Const, 0},
+ {"IFF_PORTSEL", Const, 0},
+ {"IFF_PPROMISC", Const, 0},
+ {"IFF_PROMISC", Const, 0},
+ {"IFF_RENAMING", Const, 0},
+ {"IFF_RUNNING", Const, 0},
+ {"IFF_SIMPLEX", Const, 0},
+ {"IFF_SLAVE", Const, 0},
+ {"IFF_SMART", Const, 0},
+ {"IFF_STATICARP", Const, 0},
+ {"IFF_TAP", Const, 0},
+ {"IFF_TUN", Const, 0},
+ {"IFF_TUN_EXCL", Const, 0},
+ {"IFF_UP", Const, 0},
+ {"IFF_VNET_HDR", Const, 0},
+ {"IFLA_ADDRESS", Const, 0},
+ {"IFLA_BROADCAST", Const, 0},
+ {"IFLA_COST", Const, 0},
+ {"IFLA_IFALIAS", Const, 0},
+ {"IFLA_IFNAME", Const, 0},
+ {"IFLA_LINK", Const, 0},
+ {"IFLA_LINKINFO", Const, 0},
+ {"IFLA_LINKMODE", Const, 0},
+ {"IFLA_MAP", Const, 0},
+ {"IFLA_MASTER", Const, 0},
+ {"IFLA_MAX", Const, 0},
+ {"IFLA_MTU", Const, 0},
+ {"IFLA_NET_NS_PID", Const, 0},
+ {"IFLA_OPERSTATE", Const, 0},
+ {"IFLA_PRIORITY", Const, 0},
+ {"IFLA_PROTINFO", Const, 0},
+ {"IFLA_QDISC", Const, 0},
+ {"IFLA_STATS", Const, 0},
+ {"IFLA_TXQLEN", Const, 0},
+ {"IFLA_UNSPEC", Const, 0},
+ {"IFLA_WEIGHT", Const, 0},
+ {"IFLA_WIRELESS", Const, 0},
+ {"IFNAMSIZ", Const, 0},
+ {"IFT_1822", Const, 0},
+ {"IFT_A12MPPSWITCH", Const, 0},
+ {"IFT_AAL2", Const, 0},
+ {"IFT_AAL5", Const, 0},
+ {"IFT_ADSL", Const, 0},
+ {"IFT_AFLANE8023", Const, 0},
+ {"IFT_AFLANE8025", Const, 0},
+ {"IFT_ARAP", Const, 0},
+ {"IFT_ARCNET", Const, 0},
+ {"IFT_ARCNETPLUS", Const, 0},
+ {"IFT_ASYNC", Const, 0},
+ {"IFT_ATM", Const, 0},
+ {"IFT_ATMDXI", Const, 0},
+ {"IFT_ATMFUNI", Const, 0},
+ {"IFT_ATMIMA", Const, 0},
+ {"IFT_ATMLOGICAL", Const, 0},
+ {"IFT_ATMRADIO", Const, 0},
+ {"IFT_ATMSUBINTERFACE", Const, 0},
+ {"IFT_ATMVCIENDPT", Const, 0},
+ {"IFT_ATMVIRTUAL", Const, 0},
+ {"IFT_BGPPOLICYACCOUNTING", Const, 0},
+ {"IFT_BLUETOOTH", Const, 1},
+ {"IFT_BRIDGE", Const, 0},
+ {"IFT_BSC", Const, 0},
+ {"IFT_CARP", Const, 0},
+ {"IFT_CCTEMUL", Const, 0},
+ {"IFT_CELLULAR", Const, 0},
+ {"IFT_CEPT", Const, 0},
+ {"IFT_CES", Const, 0},
+ {"IFT_CHANNEL", Const, 0},
+ {"IFT_CNR", Const, 0},
+ {"IFT_COFFEE", Const, 0},
+ {"IFT_COMPOSITELINK", Const, 0},
+ {"IFT_DCN", Const, 0},
+ {"IFT_DIGITALPOWERLINE", Const, 0},
+ {"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0},
+ {"IFT_DLSW", Const, 0},
+ {"IFT_DOCSCABLEDOWNSTREAM", Const, 0},
+ {"IFT_DOCSCABLEMACLAYER", Const, 0},
+ {"IFT_DOCSCABLEUPSTREAM", Const, 0},
+ {"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1},
+ {"IFT_DS0", Const, 0},
+ {"IFT_DS0BUNDLE", Const, 0},
+ {"IFT_DS1FDL", Const, 0},
+ {"IFT_DS3", Const, 0},
+ {"IFT_DTM", Const, 0},
+ {"IFT_DUMMY", Const, 1},
+ {"IFT_DVBASILN", Const, 0},
+ {"IFT_DVBASIOUT", Const, 0},
+ {"IFT_DVBRCCDOWNSTREAM", Const, 0},
+ {"IFT_DVBRCCMACLAYER", Const, 0},
+ {"IFT_DVBRCCUPSTREAM", Const, 0},
+ {"IFT_ECONET", Const, 1},
+ {"IFT_ENC", Const, 0},
+ {"IFT_EON", Const, 0},
+ {"IFT_EPLRS", Const, 0},
+ {"IFT_ESCON", Const, 0},
+ {"IFT_ETHER", Const, 0},
+ {"IFT_FAITH", Const, 0},
+ {"IFT_FAST", Const, 0},
+ {"IFT_FASTETHER", Const, 0},
+ {"IFT_FASTETHERFX", Const, 0},
+ {"IFT_FDDI", Const, 0},
+ {"IFT_FIBRECHANNEL", Const, 0},
+ {"IFT_FRAMERELAYINTERCONNECT", Const, 0},
+ {"IFT_FRAMERELAYMPI", Const, 0},
+ {"IFT_FRDLCIENDPT", Const, 0},
+ {"IFT_FRELAY", Const, 0},
+ {"IFT_FRELAYDCE", Const, 0},
+ {"IFT_FRF16MFRBUNDLE", Const, 0},
+ {"IFT_FRFORWARD", Const, 0},
+ {"IFT_G703AT2MB", Const, 0},
+ {"IFT_G703AT64K", Const, 0},
+ {"IFT_GIF", Const, 0},
+ {"IFT_GIGABITETHERNET", Const, 0},
+ {"IFT_GR303IDT", Const, 0},
+ {"IFT_GR303RDT", Const, 0},
+ {"IFT_H323GATEKEEPER", Const, 0},
+ {"IFT_H323PROXY", Const, 0},
+ {"IFT_HDH1822", Const, 0},
+ {"IFT_HDLC", Const, 0},
+ {"IFT_HDSL2", Const, 0},
+ {"IFT_HIPERLAN2", Const, 0},
+ {"IFT_HIPPI", Const, 0},
+ {"IFT_HIPPIINTERFACE", Const, 0},
+ {"IFT_HOSTPAD", Const, 0},
+ {"IFT_HSSI", Const, 0},
+ {"IFT_HY", Const, 0},
+ {"IFT_IBM370PARCHAN", Const, 0},
+ {"IFT_IDSL", Const, 0},
+ {"IFT_IEEE1394", Const, 0},
+ {"IFT_IEEE80211", Const, 0},
+ {"IFT_IEEE80212", Const, 0},
+ {"IFT_IEEE8023ADLAG", Const, 0},
+ {"IFT_IFGSN", Const, 0},
+ {"IFT_IMT", Const, 0},
+ {"IFT_INFINIBAND", Const, 1},
+ {"IFT_INTERLEAVE", Const, 0},
+ {"IFT_IP", Const, 0},
+ {"IFT_IPFORWARD", Const, 0},
+ {"IFT_IPOVERATM", Const, 0},
+ {"IFT_IPOVERCDLC", Const, 0},
+ {"IFT_IPOVERCLAW", Const, 0},
+ {"IFT_IPSWITCH", Const, 0},
+ {"IFT_IPXIP", Const, 0},
+ {"IFT_ISDN", Const, 0},
+ {"IFT_ISDNBASIC", Const, 0},
+ {"IFT_ISDNPRIMARY", Const, 0},
+ {"IFT_ISDNS", Const, 0},
+ {"IFT_ISDNU", Const, 0},
+ {"IFT_ISO88022LLC", Const, 0},
+ {"IFT_ISO88023", Const, 0},
+ {"IFT_ISO88024", Const, 0},
+ {"IFT_ISO88025", Const, 0},
+ {"IFT_ISO88025CRFPINT", Const, 0},
+ {"IFT_ISO88025DTR", Const, 0},
+ {"IFT_ISO88025FIBER", Const, 0},
+ {"IFT_ISO88026", Const, 0},
+ {"IFT_ISUP", Const, 0},
+ {"IFT_L2VLAN", Const, 0},
+ {"IFT_L3IPVLAN", Const, 0},
+ {"IFT_L3IPXVLAN", Const, 0},
+ {"IFT_LAPB", Const, 0},
+ {"IFT_LAPD", Const, 0},
+ {"IFT_LAPF", Const, 0},
+ {"IFT_LINEGROUP", Const, 1},
+ {"IFT_LOCALTALK", Const, 0},
+ {"IFT_LOOP", Const, 0},
+ {"IFT_MEDIAMAILOVERIP", Const, 0},
+ {"IFT_MFSIGLINK", Const, 0},
+ {"IFT_MIOX25", Const, 0},
+ {"IFT_MODEM", Const, 0},
+ {"IFT_MPC", Const, 0},
+ {"IFT_MPLS", Const, 0},
+ {"IFT_MPLSTUNNEL", Const, 0},
+ {"IFT_MSDSL", Const, 0},
+ {"IFT_MVL", Const, 0},
+ {"IFT_MYRINET", Const, 0},
+ {"IFT_NFAS", Const, 0},
+ {"IFT_NSIP", Const, 0},
+ {"IFT_OPTICALCHANNEL", Const, 0},
+ {"IFT_OPTICALTRANSPORT", Const, 0},
+ {"IFT_OTHER", Const, 0},
+ {"IFT_P10", Const, 0},
+ {"IFT_P80", Const, 0},
+ {"IFT_PARA", Const, 0},
+ {"IFT_PDP", Const, 0},
+ {"IFT_PFLOG", Const, 0},
+ {"IFT_PFLOW", Const, 1},
+ {"IFT_PFSYNC", Const, 0},
+ {"IFT_PLC", Const, 0},
+ {"IFT_PON155", Const, 1},
+ {"IFT_PON622", Const, 1},
+ {"IFT_POS", Const, 0},
+ {"IFT_PPP", Const, 0},
+ {"IFT_PPPMULTILINKBUNDLE", Const, 0},
+ {"IFT_PROPATM", Const, 1},
+ {"IFT_PROPBWAP2MP", Const, 0},
+ {"IFT_PROPCNLS", Const, 0},
+ {"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0},
+ {"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0},
+ {"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0},
+ {"IFT_PROPMUX", Const, 0},
+ {"IFT_PROPVIRTUAL", Const, 0},
+ {"IFT_PROPWIRELESSP2P", Const, 0},
+ {"IFT_PTPSERIAL", Const, 0},
+ {"IFT_PVC", Const, 0},
+ {"IFT_Q2931", Const, 1},
+ {"IFT_QLLC", Const, 0},
+ {"IFT_RADIOMAC", Const, 0},
+ {"IFT_RADSL", Const, 0},
+ {"IFT_REACHDSL", Const, 0},
+ {"IFT_RFC1483", Const, 0},
+ {"IFT_RS232", Const, 0},
+ {"IFT_RSRB", Const, 0},
+ {"IFT_SDLC", Const, 0},
+ {"IFT_SDSL", Const, 0},
+ {"IFT_SHDSL", Const, 0},
+ {"IFT_SIP", Const, 0},
+ {"IFT_SIPSIG", Const, 1},
+ {"IFT_SIPTG", Const, 1},
+ {"IFT_SLIP", Const, 0},
+ {"IFT_SMDSDXI", Const, 0},
+ {"IFT_SMDSICIP", Const, 0},
+ {"IFT_SONET", Const, 0},
+ {"IFT_SONETOVERHEADCHANNEL", Const, 0},
+ {"IFT_SONETPATH", Const, 0},
+ {"IFT_SONETVT", Const, 0},
+ {"IFT_SRP", Const, 0},
+ {"IFT_SS7SIGLINK", Const, 0},
+ {"IFT_STACKTOSTACK", Const, 0},
+ {"IFT_STARLAN", Const, 0},
+ {"IFT_STF", Const, 0},
+ {"IFT_T1", Const, 0},
+ {"IFT_TDLC", Const, 0},
+ {"IFT_TELINK", Const, 1},
+ {"IFT_TERMPAD", Const, 0},
+ {"IFT_TR008", Const, 0},
+ {"IFT_TRANSPHDLC", Const, 0},
+ {"IFT_TUNNEL", Const, 0},
+ {"IFT_ULTRA", Const, 0},
+ {"IFT_USB", Const, 0},
+ {"IFT_V11", Const, 0},
+ {"IFT_V35", Const, 0},
+ {"IFT_V36", Const, 0},
+ {"IFT_V37", Const, 0},
+ {"IFT_VDSL", Const, 0},
+ {"IFT_VIRTUALIPADDRESS", Const, 0},
+ {"IFT_VIRTUALTG", Const, 1},
+ {"IFT_VOICEDID", Const, 1},
+ {"IFT_VOICEEM", Const, 0},
+ {"IFT_VOICEEMFGD", Const, 1},
+ {"IFT_VOICEENCAP", Const, 0},
+ {"IFT_VOICEFGDEANA", Const, 1},
+ {"IFT_VOICEFXO", Const, 0},
+ {"IFT_VOICEFXS", Const, 0},
+ {"IFT_VOICEOVERATM", Const, 0},
+ {"IFT_VOICEOVERCABLE", Const, 1},
+ {"IFT_VOICEOVERFRAMERELAY", Const, 0},
+ {"IFT_VOICEOVERIP", Const, 0},
+ {"IFT_X213", Const, 0},
+ {"IFT_X25", Const, 0},
+ {"IFT_X25DDN", Const, 0},
+ {"IFT_X25HUNTGROUP", Const, 0},
+ {"IFT_X25MLP", Const, 0},
+ {"IFT_X25PLE", Const, 0},
+ {"IFT_XETHER", Const, 0},
+ {"IGNBRK", Const, 0},
+ {"IGNCR", Const, 0},
+ {"IGNORE", Const, 0},
+ {"IGNPAR", Const, 0},
+ {"IMAXBEL", Const, 0},
+ {"INFINITE", Const, 0},
+ {"INLCR", Const, 0},
+ {"INPCK", Const, 0},
+ {"INVALID_FILE_ATTRIBUTES", Const, 0},
+ {"IN_ACCESS", Const, 0},
+ {"IN_ALL_EVENTS", Const, 0},
+ {"IN_ATTRIB", Const, 0},
+ {"IN_CLASSA_HOST", Const, 0},
+ {"IN_CLASSA_MAX", Const, 0},
+ {"IN_CLASSA_NET", Const, 0},
+ {"IN_CLASSA_NSHIFT", Const, 0},
+ {"IN_CLASSB_HOST", Const, 0},
+ {"IN_CLASSB_MAX", Const, 0},
+ {"IN_CLASSB_NET", Const, 0},
+ {"IN_CLASSB_NSHIFT", Const, 0},
+ {"IN_CLASSC_HOST", Const, 0},
+ {"IN_CLASSC_NET", Const, 0},
+ {"IN_CLASSC_NSHIFT", Const, 0},
+ {"IN_CLASSD_HOST", Const, 0},
+ {"IN_CLASSD_NET", Const, 0},
+ {"IN_CLASSD_NSHIFT", Const, 0},
+ {"IN_CLOEXEC", Const, 0},
+ {"IN_CLOSE", Const, 0},
+ {"IN_CLOSE_NOWRITE", Const, 0},
+ {"IN_CLOSE_WRITE", Const, 0},
+ {"IN_CREATE", Const, 0},
+ {"IN_DELETE", Const, 0},
+ {"IN_DELETE_SELF", Const, 0},
+ {"IN_DONT_FOLLOW", Const, 0},
+ {"IN_EXCL_UNLINK", Const, 0},
+ {"IN_IGNORED", Const, 0},
+ {"IN_ISDIR", Const, 0},
+ {"IN_LINKLOCALNETNUM", Const, 0},
+ {"IN_LOOPBACKNET", Const, 0},
+ {"IN_MASK_ADD", Const, 0},
+ {"IN_MODIFY", Const, 0},
+ {"IN_MOVE", Const, 0},
+ {"IN_MOVED_FROM", Const, 0},
+ {"IN_MOVED_TO", Const, 0},
+ {"IN_MOVE_SELF", Const, 0},
+ {"IN_NONBLOCK", Const, 0},
+ {"IN_ONESHOT", Const, 0},
+ {"IN_ONLYDIR", Const, 0},
+ {"IN_OPEN", Const, 0},
+ {"IN_Q_OVERFLOW", Const, 0},
+ {"IN_RFC3021_HOST", Const, 1},
+ {"IN_RFC3021_MASK", Const, 1},
+ {"IN_RFC3021_NET", Const, 1},
+ {"IN_RFC3021_NSHIFT", Const, 1},
+ {"IN_UNMOUNT", Const, 0},
+ {"IOC_IN", Const, 1},
+ {"IOC_INOUT", Const, 1},
+ {"IOC_OUT", Const, 1},
+ {"IOC_VENDOR", Const, 3},
+ {"IOC_WS2", Const, 1},
+ {"IO_REPARSE_TAG_SYMLINK", Const, 4},
+ {"IPMreq", Type, 0},
+ {"IPMreq.Interface", Field, 0},
+ {"IPMreq.Multiaddr", Field, 0},
+ {"IPMreqn", Type, 0},
+ {"IPMreqn.Address", Field, 0},
+ {"IPMreqn.Ifindex", Field, 0},
+ {"IPMreqn.Multiaddr", Field, 0},
+ {"IPPROTO_3PC", Const, 0},
+ {"IPPROTO_ADFS", Const, 0},
+ {"IPPROTO_AH", Const, 0},
+ {"IPPROTO_AHIP", Const, 0},
+ {"IPPROTO_APES", Const, 0},
+ {"IPPROTO_ARGUS", Const, 0},
+ {"IPPROTO_AX25", Const, 0},
+ {"IPPROTO_BHA", Const, 0},
+ {"IPPROTO_BLT", Const, 0},
+ {"IPPROTO_BRSATMON", Const, 0},
+ {"IPPROTO_CARP", Const, 0},
+ {"IPPROTO_CFTP", Const, 0},
+ {"IPPROTO_CHAOS", Const, 0},
+ {"IPPROTO_CMTP", Const, 0},
+ {"IPPROTO_COMP", Const, 0},
+ {"IPPROTO_CPHB", Const, 0},
+ {"IPPROTO_CPNX", Const, 0},
+ {"IPPROTO_DCCP", Const, 0},
+ {"IPPROTO_DDP", Const, 0},
+ {"IPPROTO_DGP", Const, 0},
+ {"IPPROTO_DIVERT", Const, 0},
+ {"IPPROTO_DIVERT_INIT", Const, 3},
+ {"IPPROTO_DIVERT_RESP", Const, 3},
+ {"IPPROTO_DONE", Const, 0},
+ {"IPPROTO_DSTOPTS", Const, 0},
+ {"IPPROTO_EGP", Const, 0},
+ {"IPPROTO_EMCON", Const, 0},
+ {"IPPROTO_ENCAP", Const, 0},
+ {"IPPROTO_EON", Const, 0},
+ {"IPPROTO_ESP", Const, 0},
+ {"IPPROTO_ETHERIP", Const, 0},
+ {"IPPROTO_FRAGMENT", Const, 0},
+ {"IPPROTO_GGP", Const, 0},
+ {"IPPROTO_GMTP", Const, 0},
+ {"IPPROTO_GRE", Const, 0},
+ {"IPPROTO_HELLO", Const, 0},
+ {"IPPROTO_HMP", Const, 0},
+ {"IPPROTO_HOPOPTS", Const, 0},
+ {"IPPROTO_ICMP", Const, 0},
+ {"IPPROTO_ICMPV6", Const, 0},
+ {"IPPROTO_IDP", Const, 0},
+ {"IPPROTO_IDPR", Const, 0},
+ {"IPPROTO_IDRP", Const, 0},
+ {"IPPROTO_IGMP", Const, 0},
+ {"IPPROTO_IGP", Const, 0},
+ {"IPPROTO_IGRP", Const, 0},
+ {"IPPROTO_IL", Const, 0},
+ {"IPPROTO_INLSP", Const, 0},
+ {"IPPROTO_INP", Const, 0},
+ {"IPPROTO_IP", Const, 0},
+ {"IPPROTO_IPCOMP", Const, 0},
+ {"IPPROTO_IPCV", Const, 0},
+ {"IPPROTO_IPEIP", Const, 0},
+ {"IPPROTO_IPIP", Const, 0},
+ {"IPPROTO_IPPC", Const, 0},
+ {"IPPROTO_IPV4", Const, 0},
+ {"IPPROTO_IPV6", Const, 0},
+ {"IPPROTO_IPV6_ICMP", Const, 1},
+ {"IPPROTO_IRTP", Const, 0},
+ {"IPPROTO_KRYPTOLAN", Const, 0},
+ {"IPPROTO_LARP", Const, 0},
+ {"IPPROTO_LEAF1", Const, 0},
+ {"IPPROTO_LEAF2", Const, 0},
+ {"IPPROTO_MAX", Const, 0},
+ {"IPPROTO_MAXID", Const, 0},
+ {"IPPROTO_MEAS", Const, 0},
+ {"IPPROTO_MH", Const, 1},
+ {"IPPROTO_MHRP", Const, 0},
+ {"IPPROTO_MICP", Const, 0},
+ {"IPPROTO_MOBILE", Const, 0},
+ {"IPPROTO_MPLS", Const, 1},
+ {"IPPROTO_MTP", Const, 0},
+ {"IPPROTO_MUX", Const, 0},
+ {"IPPROTO_ND", Const, 0},
+ {"IPPROTO_NHRP", Const, 0},
+ {"IPPROTO_NONE", Const, 0},
+ {"IPPROTO_NSP", Const, 0},
+ {"IPPROTO_NVPII", Const, 0},
+ {"IPPROTO_OLD_DIVERT", Const, 0},
+ {"IPPROTO_OSPFIGP", Const, 0},
+ {"IPPROTO_PFSYNC", Const, 0},
+ {"IPPROTO_PGM", Const, 0},
+ {"IPPROTO_PIGP", Const, 0},
+ {"IPPROTO_PIM", Const, 0},
+ {"IPPROTO_PRM", Const, 0},
+ {"IPPROTO_PUP", Const, 0},
+ {"IPPROTO_PVP", Const, 0},
+ {"IPPROTO_RAW", Const, 0},
+ {"IPPROTO_RCCMON", Const, 0},
+ {"IPPROTO_RDP", Const, 0},
+ {"IPPROTO_ROUTING", Const, 0},
+ {"IPPROTO_RSVP", Const, 0},
+ {"IPPROTO_RVD", Const, 0},
+ {"IPPROTO_SATEXPAK", Const, 0},
+ {"IPPROTO_SATMON", Const, 0},
+ {"IPPROTO_SCCSP", Const, 0},
+ {"IPPROTO_SCTP", Const, 0},
+ {"IPPROTO_SDRP", Const, 0},
+ {"IPPROTO_SEND", Const, 1},
+ {"IPPROTO_SEP", Const, 0},
+ {"IPPROTO_SKIP", Const, 0},
+ {"IPPROTO_SPACER", Const, 0},
+ {"IPPROTO_SRPC", Const, 0},
+ {"IPPROTO_ST", Const, 0},
+ {"IPPROTO_SVMTP", Const, 0},
+ {"IPPROTO_SWIPE", Const, 0},
+ {"IPPROTO_TCF", Const, 0},
+ {"IPPROTO_TCP", Const, 0},
+ {"IPPROTO_TLSP", Const, 0},
+ {"IPPROTO_TP", Const, 0},
+ {"IPPROTO_TPXX", Const, 0},
+ {"IPPROTO_TRUNK1", Const, 0},
+ {"IPPROTO_TRUNK2", Const, 0},
+ {"IPPROTO_TTP", Const, 0},
+ {"IPPROTO_UDP", Const, 0},
+ {"IPPROTO_UDPLITE", Const, 0},
+ {"IPPROTO_VINES", Const, 0},
+ {"IPPROTO_VISA", Const, 0},
+ {"IPPROTO_VMTP", Const, 0},
+ {"IPPROTO_VRRP", Const, 1},
+ {"IPPROTO_WBEXPAK", Const, 0},
+ {"IPPROTO_WBMON", Const, 0},
+ {"IPPROTO_WSN", Const, 0},
+ {"IPPROTO_XNET", Const, 0},
+ {"IPPROTO_XTP", Const, 0},
+ {"IPV6_2292DSTOPTS", Const, 0},
+ {"IPV6_2292HOPLIMIT", Const, 0},
+ {"IPV6_2292HOPOPTS", Const, 0},
+ {"IPV6_2292NEXTHOP", Const, 0},
+ {"IPV6_2292PKTINFO", Const, 0},
+ {"IPV6_2292PKTOPTIONS", Const, 0},
+ {"IPV6_2292RTHDR", Const, 0},
+ {"IPV6_ADDRFORM", Const, 0},
+ {"IPV6_ADD_MEMBERSHIP", Const, 0},
+ {"IPV6_AUTHHDR", Const, 0},
+ {"IPV6_AUTH_LEVEL", Const, 1},
+ {"IPV6_AUTOFLOWLABEL", Const, 0},
+ {"IPV6_BINDANY", Const, 0},
+ {"IPV6_BINDV6ONLY", Const, 0},
+ {"IPV6_BOUND_IF", Const, 0},
+ {"IPV6_CHECKSUM", Const, 0},
+ {"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0},
+ {"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0},
+ {"IPV6_DEFHLIM", Const, 0},
+ {"IPV6_DONTFRAG", Const, 0},
+ {"IPV6_DROP_MEMBERSHIP", Const, 0},
+ {"IPV6_DSTOPTS", Const, 0},
+ {"IPV6_ESP_NETWORK_LEVEL", Const, 1},
+ {"IPV6_ESP_TRANS_LEVEL", Const, 1},
+ {"IPV6_FAITH", Const, 0},
+ {"IPV6_FLOWINFO_MASK", Const, 0},
+ {"IPV6_FLOWLABEL_MASK", Const, 0},
+ {"IPV6_FRAGTTL", Const, 0},
+ {"IPV6_FW_ADD", Const, 0},
+ {"IPV6_FW_DEL", Const, 0},
+ {"IPV6_FW_FLUSH", Const, 0},
+ {"IPV6_FW_GET", Const, 0},
+ {"IPV6_FW_ZERO", Const, 0},
+ {"IPV6_HLIMDEC", Const, 0},
+ {"IPV6_HOPLIMIT", Const, 0},
+ {"IPV6_HOPOPTS", Const, 0},
+ {"IPV6_IPCOMP_LEVEL", Const, 1},
+ {"IPV6_IPSEC_POLICY", Const, 0},
+ {"IPV6_JOIN_ANYCAST", Const, 0},
+ {"IPV6_JOIN_GROUP", Const, 0},
+ {"IPV6_LEAVE_ANYCAST", Const, 0},
+ {"IPV6_LEAVE_GROUP", Const, 0},
+ {"IPV6_MAXHLIM", Const, 0},
+ {"IPV6_MAXOPTHDR", Const, 0},
+ {"IPV6_MAXPACKET", Const, 0},
+ {"IPV6_MAX_GROUP_SRC_FILTER", Const, 0},
+ {"IPV6_MAX_MEMBERSHIPS", Const, 0},
+ {"IPV6_MAX_SOCK_SRC_FILTER", Const, 0},
+ {"IPV6_MIN_MEMBERSHIPS", Const, 0},
+ {"IPV6_MMTU", Const, 0},
+ {"IPV6_MSFILTER", Const, 0},
+ {"IPV6_MTU", Const, 0},
+ {"IPV6_MTU_DISCOVER", Const, 0},
+ {"IPV6_MULTICAST_HOPS", Const, 0},
+ {"IPV6_MULTICAST_IF", Const, 0},
+ {"IPV6_MULTICAST_LOOP", Const, 0},
+ {"IPV6_NEXTHOP", Const, 0},
+ {"IPV6_OPTIONS", Const, 1},
+ {"IPV6_PATHMTU", Const, 0},
+ {"IPV6_PIPEX", Const, 1},
+ {"IPV6_PKTINFO", Const, 0},
+ {"IPV6_PMTUDISC_DO", Const, 0},
+ {"IPV6_PMTUDISC_DONT", Const, 0},
+ {"IPV6_PMTUDISC_PROBE", Const, 0},
+ {"IPV6_PMTUDISC_WANT", Const, 0},
+ {"IPV6_PORTRANGE", Const, 0},
+ {"IPV6_PORTRANGE_DEFAULT", Const, 0},
+ {"IPV6_PORTRANGE_HIGH", Const, 0},
+ {"IPV6_PORTRANGE_LOW", Const, 0},
+ {"IPV6_PREFER_TEMPADDR", Const, 0},
+ {"IPV6_RECVDSTOPTS", Const, 0},
+ {"IPV6_RECVDSTPORT", Const, 3},
+ {"IPV6_RECVERR", Const, 0},
+ {"IPV6_RECVHOPLIMIT", Const, 0},
+ {"IPV6_RECVHOPOPTS", Const, 0},
+ {"IPV6_RECVPATHMTU", Const, 0},
+ {"IPV6_RECVPKTINFO", Const, 0},
+ {"IPV6_RECVRTHDR", Const, 0},
+ {"IPV6_RECVTCLASS", Const, 0},
+ {"IPV6_ROUTER_ALERT", Const, 0},
+ {"IPV6_RTABLE", Const, 1},
+ {"IPV6_RTHDR", Const, 0},
+ {"IPV6_RTHDRDSTOPTS", Const, 0},
+ {"IPV6_RTHDR_LOOSE", Const, 0},
+ {"IPV6_RTHDR_STRICT", Const, 0},
+ {"IPV6_RTHDR_TYPE_0", Const, 0},
+ {"IPV6_RXDSTOPTS", Const, 0},
+ {"IPV6_RXHOPOPTS", Const, 0},
+ {"IPV6_SOCKOPT_RESERVED1", Const, 0},
+ {"IPV6_TCLASS", Const, 0},
+ {"IPV6_UNICAST_HOPS", Const, 0},
+ {"IPV6_USE_MIN_MTU", Const, 0},
+ {"IPV6_V6ONLY", Const, 0},
+ {"IPV6_VERSION", Const, 0},
+ {"IPV6_VERSION_MASK", Const, 0},
+ {"IPV6_XFRM_POLICY", Const, 0},
+ {"IP_ADD_MEMBERSHIP", Const, 0},
+ {"IP_ADD_SOURCE_MEMBERSHIP", Const, 0},
+ {"IP_AUTH_LEVEL", Const, 1},
+ {"IP_BINDANY", Const, 0},
+ {"IP_BLOCK_SOURCE", Const, 0},
+ {"IP_BOUND_IF", Const, 0},
+ {"IP_DEFAULT_MULTICAST_LOOP", Const, 0},
+ {"IP_DEFAULT_MULTICAST_TTL", Const, 0},
+ {"IP_DF", Const, 0},
+ {"IP_DIVERTFL", Const, 3},
+ {"IP_DONTFRAG", Const, 0},
+ {"IP_DROP_MEMBERSHIP", Const, 0},
+ {"IP_DROP_SOURCE_MEMBERSHIP", Const, 0},
+ {"IP_DUMMYNET3", Const, 0},
+ {"IP_DUMMYNET_CONFIGURE", Const, 0},
+ {"IP_DUMMYNET_DEL", Const, 0},
+ {"IP_DUMMYNET_FLUSH", Const, 0},
+ {"IP_DUMMYNET_GET", Const, 0},
+ {"IP_EF", Const, 1},
+ {"IP_ERRORMTU", Const, 1},
+ {"IP_ESP_NETWORK_LEVEL", Const, 1},
+ {"IP_ESP_TRANS_LEVEL", Const, 1},
+ {"IP_FAITH", Const, 0},
+ {"IP_FREEBIND", Const, 0},
+ {"IP_FW3", Const, 0},
+ {"IP_FW_ADD", Const, 0},
+ {"IP_FW_DEL", Const, 0},
+ {"IP_FW_FLUSH", Const, 0},
+ {"IP_FW_GET", Const, 0},
+ {"IP_FW_NAT_CFG", Const, 0},
+ {"IP_FW_NAT_DEL", Const, 0},
+ {"IP_FW_NAT_GET_CONFIG", Const, 0},
+ {"IP_FW_NAT_GET_LOG", Const, 0},
+ {"IP_FW_RESETLOG", Const, 0},
+ {"IP_FW_TABLE_ADD", Const, 0},
+ {"IP_FW_TABLE_DEL", Const, 0},
+ {"IP_FW_TABLE_FLUSH", Const, 0},
+ {"IP_FW_TABLE_GETSIZE", Const, 0},
+ {"IP_FW_TABLE_LIST", Const, 0},
+ {"IP_FW_ZERO", Const, 0},
+ {"IP_HDRINCL", Const, 0},
+ {"IP_IPCOMP_LEVEL", Const, 1},
+ {"IP_IPSECFLOWINFO", Const, 1},
+ {"IP_IPSEC_LOCAL_AUTH", Const, 1},
+ {"IP_IPSEC_LOCAL_CRED", Const, 1},
+ {"IP_IPSEC_LOCAL_ID", Const, 1},
+ {"IP_IPSEC_POLICY", Const, 0},
+ {"IP_IPSEC_REMOTE_AUTH", Const, 1},
+ {"IP_IPSEC_REMOTE_CRED", Const, 1},
+ {"IP_IPSEC_REMOTE_ID", Const, 1},
+ {"IP_MAXPACKET", Const, 0},
+ {"IP_MAX_GROUP_SRC_FILTER", Const, 0},
+ {"IP_MAX_MEMBERSHIPS", Const, 0},
+ {"IP_MAX_SOCK_MUTE_FILTER", Const, 0},
+ {"IP_MAX_SOCK_SRC_FILTER", Const, 0},
+ {"IP_MAX_SOURCE_FILTER", Const, 0},
+ {"IP_MF", Const, 0},
+ {"IP_MINFRAGSIZE", Const, 1},
+ {"IP_MINTTL", Const, 0},
+ {"IP_MIN_MEMBERSHIPS", Const, 0},
+ {"IP_MSFILTER", Const, 0},
+ {"IP_MSS", Const, 0},
+ {"IP_MTU", Const, 0},
+ {"IP_MTU_DISCOVER", Const, 0},
+ {"IP_MULTICAST_IF", Const, 0},
+ {"IP_MULTICAST_IFINDEX", Const, 0},
+ {"IP_MULTICAST_LOOP", Const, 0},
+ {"IP_MULTICAST_TTL", Const, 0},
+ {"IP_MULTICAST_VIF", Const, 0},
+ {"IP_NAT__XXX", Const, 0},
+ {"IP_OFFMASK", Const, 0},
+ {"IP_OLD_FW_ADD", Const, 0},
+ {"IP_OLD_FW_DEL", Const, 0},
+ {"IP_OLD_FW_FLUSH", Const, 0},
+ {"IP_OLD_FW_GET", Const, 0},
+ {"IP_OLD_FW_RESETLOG", Const, 0},
+ {"IP_OLD_FW_ZERO", Const, 0},
+ {"IP_ONESBCAST", Const, 0},
+ {"IP_OPTIONS", Const, 0},
+ {"IP_ORIGDSTADDR", Const, 0},
+ {"IP_PASSSEC", Const, 0},
+ {"IP_PIPEX", Const, 1},
+ {"IP_PKTINFO", Const, 0},
+ {"IP_PKTOPTIONS", Const, 0},
+ {"IP_PMTUDISC", Const, 0},
+ {"IP_PMTUDISC_DO", Const, 0},
+ {"IP_PMTUDISC_DONT", Const, 0},
+ {"IP_PMTUDISC_PROBE", Const, 0},
+ {"IP_PMTUDISC_WANT", Const, 0},
+ {"IP_PORTRANGE", Const, 0},
+ {"IP_PORTRANGE_DEFAULT", Const, 0},
+ {"IP_PORTRANGE_HIGH", Const, 0},
+ {"IP_PORTRANGE_LOW", Const, 0},
+ {"IP_RECVDSTADDR", Const, 0},
+ {"IP_RECVDSTPORT", Const, 1},
+ {"IP_RECVERR", Const, 0},
+ {"IP_RECVIF", Const, 0},
+ {"IP_RECVOPTS", Const, 0},
+ {"IP_RECVORIGDSTADDR", Const, 0},
+ {"IP_RECVPKTINFO", Const, 0},
+ {"IP_RECVRETOPTS", Const, 0},
+ {"IP_RECVRTABLE", Const, 1},
+ {"IP_RECVTOS", Const, 0},
+ {"IP_RECVTTL", Const, 0},
+ {"IP_RETOPTS", Const, 0},
+ {"IP_RF", Const, 0},
+ {"IP_ROUTER_ALERT", Const, 0},
+ {"IP_RSVP_OFF", Const, 0},
+ {"IP_RSVP_ON", Const, 0},
+ {"IP_RSVP_VIF_OFF", Const, 0},
+ {"IP_RSVP_VIF_ON", Const, 0},
+ {"IP_RTABLE", Const, 1},
+ {"IP_SENDSRCADDR", Const, 0},
+ {"IP_STRIPHDR", Const, 0},
+ {"IP_TOS", Const, 0},
+ {"IP_TRAFFIC_MGT_BACKGROUND", Const, 0},
+ {"IP_TRANSPARENT", Const, 0},
+ {"IP_TTL", Const, 0},
+ {"IP_UNBLOCK_SOURCE", Const, 0},
+ {"IP_XFRM_POLICY", Const, 0},
+ {"IPv6MTUInfo", Type, 2},
+ {"IPv6MTUInfo.Addr", Field, 2},
+ {"IPv6MTUInfo.Mtu", Field, 2},
+ {"IPv6Mreq", Type, 0},
+ {"IPv6Mreq.Interface", Field, 0},
+ {"IPv6Mreq.Multiaddr", Field, 0},
+ {"ISIG", Const, 0},
+ {"ISTRIP", Const, 0},
+ {"IUCLC", Const, 0},
+ {"IUTF8", Const, 0},
+ {"IXANY", Const, 0},
+ {"IXOFF", Const, 0},
+ {"IXON", Const, 0},
+ {"IfAddrmsg", Type, 0},
+ {"IfAddrmsg.Family", Field, 0},
+ {"IfAddrmsg.Flags", Field, 0},
+ {"IfAddrmsg.Index", Field, 0},
+ {"IfAddrmsg.Prefixlen", Field, 0},
+ {"IfAddrmsg.Scope", Field, 0},
+ {"IfAnnounceMsghdr", Type, 1},
+ {"IfAnnounceMsghdr.Hdrlen", Field, 2},
+ {"IfAnnounceMsghdr.Index", Field, 1},
+ {"IfAnnounceMsghdr.Msglen", Field, 1},
+ {"IfAnnounceMsghdr.Name", Field, 1},
+ {"IfAnnounceMsghdr.Type", Field, 1},
+ {"IfAnnounceMsghdr.Version", Field, 1},
+ {"IfAnnounceMsghdr.What", Field, 1},
+ {"IfData", Type, 0},
+ {"IfData.Addrlen", Field, 0},
+ {"IfData.Baudrate", Field, 0},
+ {"IfData.Capabilities", Field, 2},
+ {"IfData.Collisions", Field, 0},
+ {"IfData.Datalen", Field, 0},
+ {"IfData.Epoch", Field, 0},
+ {"IfData.Hdrlen", Field, 0},
+ {"IfData.Hwassist", Field, 0},
+ {"IfData.Ibytes", Field, 0},
+ {"IfData.Ierrors", Field, 0},
+ {"IfData.Imcasts", Field, 0},
+ {"IfData.Ipackets", Field, 0},
+ {"IfData.Iqdrops", Field, 0},
+ {"IfData.Lastchange", Field, 0},
+ {"IfData.Link_state", Field, 0},
+ {"IfData.Mclpool", Field, 2},
+ {"IfData.Metric", Field, 0},
+ {"IfData.Mtu", Field, 0},
+ {"IfData.Noproto", Field, 0},
+ {"IfData.Obytes", Field, 0},
+ {"IfData.Oerrors", Field, 0},
+ {"IfData.Omcasts", Field, 0},
+ {"IfData.Opackets", Field, 0},
+ {"IfData.Pad", Field, 2},
+ {"IfData.Pad_cgo_0", Field, 2},
+ {"IfData.Pad_cgo_1", Field, 2},
+ {"IfData.Physical", Field, 0},
+ {"IfData.Recvquota", Field, 0},
+ {"IfData.Recvtiming", Field, 0},
+ {"IfData.Reserved1", Field, 0},
+ {"IfData.Reserved2", Field, 0},
+ {"IfData.Spare_char1", Field, 0},
+ {"IfData.Spare_char2", Field, 0},
+ {"IfData.Type", Field, 0},
+ {"IfData.Typelen", Field, 0},
+ {"IfData.Unused1", Field, 0},
+ {"IfData.Unused2", Field, 0},
+ {"IfData.Xmitquota", Field, 0},
+ {"IfData.Xmittiming", Field, 0},
+ {"IfInfomsg", Type, 0},
+ {"IfInfomsg.Change", Field, 0},
+ {"IfInfomsg.Family", Field, 0},
+ {"IfInfomsg.Flags", Field, 0},
+ {"IfInfomsg.Index", Field, 0},
+ {"IfInfomsg.Type", Field, 0},
+ {"IfInfomsg.X__ifi_pad", Field, 0},
+ {"IfMsghdr", Type, 0},
+ {"IfMsghdr.Addrs", Field, 0},
+ {"IfMsghdr.Data", Field, 0},
+ {"IfMsghdr.Flags", Field, 0},
+ {"IfMsghdr.Hdrlen", Field, 2},
+ {"IfMsghdr.Index", Field, 0},
+ {"IfMsghdr.Msglen", Field, 0},
+ {"IfMsghdr.Pad1", Field, 2},
+ {"IfMsghdr.Pad2", Field, 2},
+ {"IfMsghdr.Pad_cgo_0", Field, 0},
+ {"IfMsghdr.Pad_cgo_1", Field, 2},
+ {"IfMsghdr.Tableid", Field, 2},
+ {"IfMsghdr.Type", Field, 0},
+ {"IfMsghdr.Version", Field, 0},
+ {"IfMsghdr.Xflags", Field, 2},
+ {"IfaMsghdr", Type, 0},
+ {"IfaMsghdr.Addrs", Field, 0},
+ {"IfaMsghdr.Flags", Field, 0},
+ {"IfaMsghdr.Hdrlen", Field, 2},
+ {"IfaMsghdr.Index", Field, 0},
+ {"IfaMsghdr.Metric", Field, 0},
+ {"IfaMsghdr.Msglen", Field, 0},
+ {"IfaMsghdr.Pad1", Field, 2},
+ {"IfaMsghdr.Pad2", Field, 2},
+ {"IfaMsghdr.Pad_cgo_0", Field, 0},
+ {"IfaMsghdr.Tableid", Field, 2},
+ {"IfaMsghdr.Type", Field, 0},
+ {"IfaMsghdr.Version", Field, 0},
+ {"IfmaMsghdr", Type, 0},
+ {"IfmaMsghdr.Addrs", Field, 0},
+ {"IfmaMsghdr.Flags", Field, 0},
+ {"IfmaMsghdr.Index", Field, 0},
+ {"IfmaMsghdr.Msglen", Field, 0},
+ {"IfmaMsghdr.Pad_cgo_0", Field, 0},
+ {"IfmaMsghdr.Type", Field, 0},
+ {"IfmaMsghdr.Version", Field, 0},
+ {"IfmaMsghdr2", Type, 0},
+ {"IfmaMsghdr2.Addrs", Field, 0},
+ {"IfmaMsghdr2.Flags", Field, 0},
+ {"IfmaMsghdr2.Index", Field, 0},
+ {"IfmaMsghdr2.Msglen", Field, 0},
+ {"IfmaMsghdr2.Pad_cgo_0", Field, 0},
+ {"IfmaMsghdr2.Refcount", Field, 0},
+ {"IfmaMsghdr2.Type", Field, 0},
+ {"IfmaMsghdr2.Version", Field, 0},
+ {"ImplementsGetwd", Const, 0},
+ {"Inet4Pktinfo", Type, 0},
+ {"Inet4Pktinfo.Addr", Field, 0},
+ {"Inet4Pktinfo.Ifindex", Field, 0},
+ {"Inet4Pktinfo.Spec_dst", Field, 0},
+ {"Inet6Pktinfo", Type, 0},
+ {"Inet6Pktinfo.Addr", Field, 0},
+ {"Inet6Pktinfo.Ifindex", Field, 0},
+ {"InotifyAddWatch", Func, 0},
+ {"InotifyEvent", Type, 0},
+ {"InotifyEvent.Cookie", Field, 0},
+ {"InotifyEvent.Len", Field, 0},
+ {"InotifyEvent.Mask", Field, 0},
+ {"InotifyEvent.Name", Field, 0},
+ {"InotifyEvent.Wd", Field, 0},
+ {"InotifyInit", Func, 0},
+ {"InotifyInit1", Func, 0},
+ {"InotifyRmWatch", Func, 0},
+ {"InterfaceAddrMessage", Type, 0},
+ {"InterfaceAddrMessage.Data", Field, 0},
+ {"InterfaceAddrMessage.Header", Field, 0},
+ {"InterfaceAnnounceMessage", Type, 1},
+ {"InterfaceAnnounceMessage.Header", Field, 1},
+ {"InterfaceInfo", Type, 0},
+ {"InterfaceInfo.Address", Field, 0},
+ {"InterfaceInfo.BroadcastAddress", Field, 0},
+ {"InterfaceInfo.Flags", Field, 0},
+ {"InterfaceInfo.Netmask", Field, 0},
+ {"InterfaceMessage", Type, 0},
+ {"InterfaceMessage.Data", Field, 0},
+ {"InterfaceMessage.Header", Field, 0},
+ {"InterfaceMulticastAddrMessage", Type, 0},
+ {"InterfaceMulticastAddrMessage.Data", Field, 0},
+ {"InterfaceMulticastAddrMessage.Header", Field, 0},
+ {"InvalidHandle", Const, 0},
+ {"Ioperm", Func, 0},
+ {"Iopl", Func, 0},
+ {"Iovec", Type, 0},
+ {"Iovec.Base", Field, 0},
+ {"Iovec.Len", Field, 0},
+ {"IpAdapterInfo", Type, 0},
+ {"IpAdapterInfo.AdapterName", Field, 0},
+ {"IpAdapterInfo.Address", Field, 0},
+ {"IpAdapterInfo.AddressLength", Field, 0},
+ {"IpAdapterInfo.ComboIndex", Field, 0},
+ {"IpAdapterInfo.CurrentIpAddress", Field, 0},
+ {"IpAdapterInfo.Description", Field, 0},
+ {"IpAdapterInfo.DhcpEnabled", Field, 0},
+ {"IpAdapterInfo.DhcpServer", Field, 0},
+ {"IpAdapterInfo.GatewayList", Field, 0},
+ {"IpAdapterInfo.HaveWins", Field, 0},
+ {"IpAdapterInfo.Index", Field, 0},
+ {"IpAdapterInfo.IpAddressList", Field, 0},
+ {"IpAdapterInfo.LeaseExpires", Field, 0},
+ {"IpAdapterInfo.LeaseObtained", Field, 0},
+ {"IpAdapterInfo.Next", Field, 0},
+ {"IpAdapterInfo.PrimaryWinsServer", Field, 0},
+ {"IpAdapterInfo.SecondaryWinsServer", Field, 0},
+ {"IpAdapterInfo.Type", Field, 0},
+ {"IpAddrString", Type, 0},
+ {"IpAddrString.Context", Field, 0},
+ {"IpAddrString.IpAddress", Field, 0},
+ {"IpAddrString.IpMask", Field, 0},
+ {"IpAddrString.Next", Field, 0},
+ {"IpAddressString", Type, 0},
+ {"IpAddressString.String", Field, 0},
+ {"IpMaskString", Type, 0},
+ {"IpMaskString.String", Field, 2},
+ {"Issetugid", Func, 0},
+ {"KEY_ALL_ACCESS", Const, 0},
+ {"KEY_CREATE_LINK", Const, 0},
+ {"KEY_CREATE_SUB_KEY", Const, 0},
+ {"KEY_ENUMERATE_SUB_KEYS", Const, 0},
+ {"KEY_EXECUTE", Const, 0},
+ {"KEY_NOTIFY", Const, 0},
+ {"KEY_QUERY_VALUE", Const, 0},
+ {"KEY_READ", Const, 0},
+ {"KEY_SET_VALUE", Const, 0},
+ {"KEY_WOW64_32KEY", Const, 0},
+ {"KEY_WOW64_64KEY", Const, 0},
+ {"KEY_WRITE", Const, 0},
+ {"Kevent", Func, 0},
+ {"Kevent_t", Type, 0},
+ {"Kevent_t.Data", Field, 0},
+ {"Kevent_t.Fflags", Field, 0},
+ {"Kevent_t.Filter", Field, 0},
+ {"Kevent_t.Flags", Field, 0},
+ {"Kevent_t.Ident", Field, 0},
+ {"Kevent_t.Pad_cgo_0", Field, 2},
+ {"Kevent_t.Udata", Field, 0},
+ {"Kill", Func, 0},
+ {"Klogctl", Func, 0},
+ {"Kqueue", Func, 0},
+ {"LANG_ENGLISH", Const, 0},
+ {"LAYERED_PROTOCOL", Const, 2},
+ {"LCNT_OVERLOAD_FLUSH", Const, 1},
+ {"LINUX_REBOOT_CMD_CAD_OFF", Const, 0},
+ {"LINUX_REBOOT_CMD_CAD_ON", Const, 0},
+ {"LINUX_REBOOT_CMD_HALT", Const, 0},
+ {"LINUX_REBOOT_CMD_KEXEC", Const, 0},
+ {"LINUX_REBOOT_CMD_POWER_OFF", Const, 0},
+ {"LINUX_REBOOT_CMD_RESTART", Const, 0},
+ {"LINUX_REBOOT_CMD_RESTART2", Const, 0},
+ {"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0},
+ {"LINUX_REBOOT_MAGIC1", Const, 0},
+ {"LINUX_REBOOT_MAGIC2", Const, 0},
+ {"LOCK_EX", Const, 0},
+ {"LOCK_NB", Const, 0},
+ {"LOCK_SH", Const, 0},
+ {"LOCK_UN", Const, 0},
+ {"LazyDLL", Type, 0},
+ {"LazyDLL.Name", Field, 0},
+ {"LazyProc", Type, 0},
+ {"LazyProc.Name", Field, 0},
+ {"Lchown", Func, 0},
+ {"Linger", Type, 0},
+ {"Linger.Linger", Field, 0},
+ {"Linger.Onoff", Field, 0},
+ {"Link", Func, 0},
+ {"Listen", Func, 0},
+ {"Listxattr", Func, 1},
+ {"LoadCancelIoEx", Func, 1},
+ {"LoadConnectEx", Func, 1},
+ {"LoadCreateSymbolicLink", Func, 4},
+ {"LoadDLL", Func, 0},
+ {"LoadGetAddrInfo", Func, 1},
+ {"LoadLibrary", Func, 0},
+ {"LoadSetFileCompletionNotificationModes", Func, 2},
+ {"LocalFree", Func, 0},
+ {"Log2phys_t", Type, 0},
+ {"Log2phys_t.Contigbytes", Field, 0},
+ {"Log2phys_t.Devoffset", Field, 0},
+ {"Log2phys_t.Flags", Field, 0},
+ {"LookupAccountName", Func, 0},
+ {"LookupAccountSid", Func, 0},
+ {"LookupSID", Func, 0},
+ {"LsfJump", Func, 0},
+ {"LsfSocket", Func, 0},
+ {"LsfStmt", Func, 0},
+ {"Lstat", Func, 0},
+ {"MADV_AUTOSYNC", Const, 1},
+ {"MADV_CAN_REUSE", Const, 0},
+ {"MADV_CORE", Const, 1},
+ {"MADV_DOFORK", Const, 0},
+ {"MADV_DONTFORK", Const, 0},
+ {"MADV_DONTNEED", Const, 0},
+ {"MADV_FREE", Const, 0},
+ {"MADV_FREE_REUSABLE", Const, 0},
+ {"MADV_FREE_REUSE", Const, 0},
+ {"MADV_HUGEPAGE", Const, 0},
+ {"MADV_HWPOISON", Const, 0},
+ {"MADV_MERGEABLE", Const, 0},
+ {"MADV_NOCORE", Const, 1},
+ {"MADV_NOHUGEPAGE", Const, 0},
+ {"MADV_NORMAL", Const, 0},
+ {"MADV_NOSYNC", Const, 1},
+ {"MADV_PROTECT", Const, 1},
+ {"MADV_RANDOM", Const, 0},
+ {"MADV_REMOVE", Const, 0},
+ {"MADV_SEQUENTIAL", Const, 0},
+ {"MADV_SPACEAVAIL", Const, 3},
+ {"MADV_UNMERGEABLE", Const, 0},
+ {"MADV_WILLNEED", Const, 0},
+ {"MADV_ZERO_WIRED_PAGES", Const, 0},
+ {"MAP_32BIT", Const, 0},
+ {"MAP_ALIGNED_SUPER", Const, 3},
+ {"MAP_ALIGNMENT_16MB", Const, 3},
+ {"MAP_ALIGNMENT_1TB", Const, 3},
+ {"MAP_ALIGNMENT_256TB", Const, 3},
+ {"MAP_ALIGNMENT_4GB", Const, 3},
+ {"MAP_ALIGNMENT_64KB", Const, 3},
+ {"MAP_ALIGNMENT_64PB", Const, 3},
+ {"MAP_ALIGNMENT_MASK", Const, 3},
+ {"MAP_ALIGNMENT_SHIFT", Const, 3},
+ {"MAP_ANON", Const, 0},
+ {"MAP_ANONYMOUS", Const, 0},
+ {"MAP_COPY", Const, 0},
+ {"MAP_DENYWRITE", Const, 0},
+ {"MAP_EXECUTABLE", Const, 0},
+ {"MAP_FILE", Const, 0},
+ {"MAP_FIXED", Const, 0},
+ {"MAP_FLAGMASK", Const, 3},
+ {"MAP_GROWSDOWN", Const, 0},
+ {"MAP_HASSEMAPHORE", Const, 0},
+ {"MAP_HUGETLB", Const, 0},
+ {"MAP_INHERIT", Const, 3},
+ {"MAP_INHERIT_COPY", Const, 3},
+ {"MAP_INHERIT_DEFAULT", Const, 3},
+ {"MAP_INHERIT_DONATE_COPY", Const, 3},
+ {"MAP_INHERIT_NONE", Const, 3},
+ {"MAP_INHERIT_SHARE", Const, 3},
+ {"MAP_JIT", Const, 0},
+ {"MAP_LOCKED", Const, 0},
+ {"MAP_NOCACHE", Const, 0},
+ {"MAP_NOCORE", Const, 1},
+ {"MAP_NOEXTEND", Const, 0},
+ {"MAP_NONBLOCK", Const, 0},
+ {"MAP_NORESERVE", Const, 0},
+ {"MAP_NOSYNC", Const, 1},
+ {"MAP_POPULATE", Const, 0},
+ {"MAP_PREFAULT_READ", Const, 1},
+ {"MAP_PRIVATE", Const, 0},
+ {"MAP_RENAME", Const, 0},
+ {"MAP_RESERVED0080", Const, 0},
+ {"MAP_RESERVED0100", Const, 1},
+ {"MAP_SHARED", Const, 0},
+ {"MAP_STACK", Const, 0},
+ {"MAP_TRYFIXED", Const, 3},
+ {"MAP_TYPE", Const, 0},
+ {"MAP_WIRED", Const, 3},
+ {"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4},
+ {"MAXLEN_IFDESCR", Const, 0},
+ {"MAXLEN_PHYSADDR", Const, 0},
+ {"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0},
+ {"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0},
+ {"MAX_ADAPTER_NAME_LENGTH", Const, 0},
+ {"MAX_COMPUTERNAME_LENGTH", Const, 0},
+ {"MAX_INTERFACE_NAME_LEN", Const, 0},
+ {"MAX_LONG_PATH", Const, 0},
+ {"MAX_PATH", Const, 0},
+ {"MAX_PROTOCOL_CHAIN", Const, 2},
+ {"MCL_CURRENT", Const, 0},
+ {"MCL_FUTURE", Const, 0},
+ {"MNT_DETACH", Const, 0},
+ {"MNT_EXPIRE", Const, 0},
+ {"MNT_FORCE", Const, 0},
+ {"MSG_BCAST", Const, 1},
+ {"MSG_CMSG_CLOEXEC", Const, 0},
+ {"MSG_COMPAT", Const, 0},
+ {"MSG_CONFIRM", Const, 0},
+ {"MSG_CONTROLMBUF", Const, 1},
+ {"MSG_CTRUNC", Const, 0},
+ {"MSG_DONTROUTE", Const, 0},
+ {"MSG_DONTWAIT", Const, 0},
+ {"MSG_EOF", Const, 0},
+ {"MSG_EOR", Const, 0},
+ {"MSG_ERRQUEUE", Const, 0},
+ {"MSG_FASTOPEN", Const, 1},
+ {"MSG_FIN", Const, 0},
+ {"MSG_FLUSH", Const, 0},
+ {"MSG_HAVEMORE", Const, 0},
+ {"MSG_HOLD", Const, 0},
+ {"MSG_IOVUSRSPACE", Const, 1},
+ {"MSG_LENUSRSPACE", Const, 1},
+ {"MSG_MCAST", Const, 1},
+ {"MSG_MORE", Const, 0},
+ {"MSG_NAMEMBUF", Const, 1},
+ {"MSG_NBIO", Const, 0},
+ {"MSG_NEEDSA", Const, 0},
+ {"MSG_NOSIGNAL", Const, 0},
+ {"MSG_NOTIFICATION", Const, 0},
+ {"MSG_OOB", Const, 0},
+ {"MSG_PEEK", Const, 0},
+ {"MSG_PROXY", Const, 0},
+ {"MSG_RCVMORE", Const, 0},
+ {"MSG_RST", Const, 0},
+ {"MSG_SEND", Const, 0},
+ {"MSG_SYN", Const, 0},
+ {"MSG_TRUNC", Const, 0},
+ {"MSG_TRYHARD", Const, 0},
+ {"MSG_USERFLAGS", Const, 1},
+ {"MSG_WAITALL", Const, 0},
+ {"MSG_WAITFORONE", Const, 0},
+ {"MSG_WAITSTREAM", Const, 0},
+ {"MS_ACTIVE", Const, 0},
+ {"MS_ASYNC", Const, 0},
+ {"MS_BIND", Const, 0},
+ {"MS_DEACTIVATE", Const, 0},
+ {"MS_DIRSYNC", Const, 0},
+ {"MS_INVALIDATE", Const, 0},
+ {"MS_I_VERSION", Const, 0},
+ {"MS_KERNMOUNT", Const, 0},
+ {"MS_KILLPAGES", Const, 0},
+ {"MS_MANDLOCK", Const, 0},
+ {"MS_MGC_MSK", Const, 0},
+ {"MS_MGC_VAL", Const, 0},
+ {"MS_MOVE", Const, 0},
+ {"MS_NOATIME", Const, 0},
+ {"MS_NODEV", Const, 0},
+ {"MS_NODIRATIME", Const, 0},
+ {"MS_NOEXEC", Const, 0},
+ {"MS_NOSUID", Const, 0},
+ {"MS_NOUSER", Const, 0},
+ {"MS_POSIXACL", Const, 0},
+ {"MS_PRIVATE", Const, 0},
+ {"MS_RDONLY", Const, 0},
+ {"MS_REC", Const, 0},
+ {"MS_RELATIME", Const, 0},
+ {"MS_REMOUNT", Const, 0},
+ {"MS_RMT_MASK", Const, 0},
+ {"MS_SHARED", Const, 0},
+ {"MS_SILENT", Const, 0},
+ {"MS_SLAVE", Const, 0},
+ {"MS_STRICTATIME", Const, 0},
+ {"MS_SYNC", Const, 0},
+ {"MS_SYNCHRONOUS", Const, 0},
+ {"MS_UNBINDABLE", Const, 0},
+ {"Madvise", Func, 0},
+ {"MapViewOfFile", Func, 0},
+ {"MaxTokenInfoClass", Const, 0},
+ {"Mclpool", Type, 2},
+ {"Mclpool.Alive", Field, 2},
+ {"Mclpool.Cwm", Field, 2},
+ {"Mclpool.Grown", Field, 2},
+ {"Mclpool.Hwm", Field, 2},
+ {"Mclpool.Lwm", Field, 2},
+ {"MibIfRow", Type, 0},
+ {"MibIfRow.AdminStatus", Field, 0},
+ {"MibIfRow.Descr", Field, 0},
+ {"MibIfRow.DescrLen", Field, 0},
+ {"MibIfRow.InDiscards", Field, 0},
+ {"MibIfRow.InErrors", Field, 0},
+ {"MibIfRow.InNUcastPkts", Field, 0},
+ {"MibIfRow.InOctets", Field, 0},
+ {"MibIfRow.InUcastPkts", Field, 0},
+ {"MibIfRow.InUnknownProtos", Field, 0},
+ {"MibIfRow.Index", Field, 0},
+ {"MibIfRow.LastChange", Field, 0},
+ {"MibIfRow.Mtu", Field, 0},
+ {"MibIfRow.Name", Field, 0},
+ {"MibIfRow.OperStatus", Field, 0},
+ {"MibIfRow.OutDiscards", Field, 0},
+ {"MibIfRow.OutErrors", Field, 0},
+ {"MibIfRow.OutNUcastPkts", Field, 0},
+ {"MibIfRow.OutOctets", Field, 0},
+ {"MibIfRow.OutQLen", Field, 0},
+ {"MibIfRow.OutUcastPkts", Field, 0},
+ {"MibIfRow.PhysAddr", Field, 0},
+ {"MibIfRow.PhysAddrLen", Field, 0},
+ {"MibIfRow.Speed", Field, 0},
+ {"MibIfRow.Type", Field, 0},
+ {"Mkdir", Func, 0},
+ {"Mkdirat", Func, 0},
+ {"Mkfifo", Func, 0},
+ {"Mknod", Func, 0},
+ {"Mknodat", Func, 0},
+ {"Mlock", Func, 0},
+ {"Mlockall", Func, 0},
+ {"Mmap", Func, 0},
+ {"Mount", Func, 0},
+ {"MoveFile", Func, 0},
+ {"Mprotect", Func, 0},
+ {"Msghdr", Type, 0},
+ {"Msghdr.Control", Field, 0},
+ {"Msghdr.Controllen", Field, 0},
+ {"Msghdr.Flags", Field, 0},
+ {"Msghdr.Iov", Field, 0},
+ {"Msghdr.Iovlen", Field, 0},
+ {"Msghdr.Name", Field, 0},
+ {"Msghdr.Namelen", Field, 0},
+ {"Msghdr.Pad_cgo_0", Field, 0},
+ {"Msghdr.Pad_cgo_1", Field, 0},
+ {"Munlock", Func, 0},
+ {"Munlockall", Func, 0},
+ {"Munmap", Func, 0},
+ {"MustLoadDLL", Func, 0},
+ {"NAME_MAX", Const, 0},
+ {"NETLINK_ADD_MEMBERSHIP", Const, 0},
+ {"NETLINK_AUDIT", Const, 0},
+ {"NETLINK_BROADCAST_ERROR", Const, 0},
+ {"NETLINK_CONNECTOR", Const, 0},
+ {"NETLINK_DNRTMSG", Const, 0},
+ {"NETLINK_DROP_MEMBERSHIP", Const, 0},
+ {"NETLINK_ECRYPTFS", Const, 0},
+ {"NETLINK_FIB_LOOKUP", Const, 0},
+ {"NETLINK_FIREWALL", Const, 0},
+ {"NETLINK_GENERIC", Const, 0},
+ {"NETLINK_INET_DIAG", Const, 0},
+ {"NETLINK_IP6_FW", Const, 0},
+ {"NETLINK_ISCSI", Const, 0},
+ {"NETLINK_KOBJECT_UEVENT", Const, 0},
+ {"NETLINK_NETFILTER", Const, 0},
+ {"NETLINK_NFLOG", Const, 0},
+ {"NETLINK_NO_ENOBUFS", Const, 0},
+ {"NETLINK_PKTINFO", Const, 0},
+ {"NETLINK_RDMA", Const, 0},
+ {"NETLINK_ROUTE", Const, 0},
+ {"NETLINK_SCSITRANSPORT", Const, 0},
+ {"NETLINK_SELINUX", Const, 0},
+ {"NETLINK_UNUSED", Const, 0},
+ {"NETLINK_USERSOCK", Const, 0},
+ {"NETLINK_XFRM", Const, 0},
+ {"NET_RT_DUMP", Const, 0},
+ {"NET_RT_DUMP2", Const, 0},
+ {"NET_RT_FLAGS", Const, 0},
+ {"NET_RT_IFLIST", Const, 0},
+ {"NET_RT_IFLIST2", Const, 0},
+ {"NET_RT_IFLISTL", Const, 1},
+ {"NET_RT_IFMALIST", Const, 0},
+ {"NET_RT_MAXID", Const, 0},
+ {"NET_RT_OIFLIST", Const, 1},
+ {"NET_RT_OOIFLIST", Const, 1},
+ {"NET_RT_STAT", Const, 0},
+ {"NET_RT_STATS", Const, 1},
+ {"NET_RT_TABLE", Const, 1},
+ {"NET_RT_TRASH", Const, 0},
+ {"NLA_ALIGNTO", Const, 0},
+ {"NLA_F_NESTED", Const, 0},
+ {"NLA_F_NET_BYTEORDER", Const, 0},
+ {"NLA_HDRLEN", Const, 0},
+ {"NLMSG_ALIGNTO", Const, 0},
+ {"NLMSG_DONE", Const, 0},
+ {"NLMSG_ERROR", Const, 0},
+ {"NLMSG_HDRLEN", Const, 0},
+ {"NLMSG_MIN_TYPE", Const, 0},
+ {"NLMSG_NOOP", Const, 0},
+ {"NLMSG_OVERRUN", Const, 0},
+ {"NLM_F_ACK", Const, 0},
+ {"NLM_F_APPEND", Const, 0},
+ {"NLM_F_ATOMIC", Const, 0},
+ {"NLM_F_CREATE", Const, 0},
+ {"NLM_F_DUMP", Const, 0},
+ {"NLM_F_ECHO", Const, 0},
+ {"NLM_F_EXCL", Const, 0},
+ {"NLM_F_MATCH", Const, 0},
+ {"NLM_F_MULTI", Const, 0},
+ {"NLM_F_REPLACE", Const, 0},
+ {"NLM_F_REQUEST", Const, 0},
+ {"NLM_F_ROOT", Const, 0},
+ {"NOFLSH", Const, 0},
+ {"NOTE_ABSOLUTE", Const, 0},
+ {"NOTE_ATTRIB", Const, 0},
+ {"NOTE_BACKGROUND", Const, 16},
+ {"NOTE_CHILD", Const, 0},
+ {"NOTE_CRITICAL", Const, 16},
+ {"NOTE_DELETE", Const, 0},
+ {"NOTE_EOF", Const, 1},
+ {"NOTE_EXEC", Const, 0},
+ {"NOTE_EXIT", Const, 0},
+ {"NOTE_EXITSTATUS", Const, 0},
+ {"NOTE_EXIT_CSERROR", Const, 16},
+ {"NOTE_EXIT_DECRYPTFAIL", Const, 16},
+ {"NOTE_EXIT_DETAIL", Const, 16},
+ {"NOTE_EXIT_DETAIL_MASK", Const, 16},
+ {"NOTE_EXIT_MEMORY", Const, 16},
+ {"NOTE_EXIT_REPARENTED", Const, 16},
+ {"NOTE_EXTEND", Const, 0},
+ {"NOTE_FFAND", Const, 0},
+ {"NOTE_FFCOPY", Const, 0},
+ {"NOTE_FFCTRLMASK", Const, 0},
+ {"NOTE_FFLAGSMASK", Const, 0},
+ {"NOTE_FFNOP", Const, 0},
+ {"NOTE_FFOR", Const, 0},
+ {"NOTE_FORK", Const, 0},
+ {"NOTE_LEEWAY", Const, 16},
+ {"NOTE_LINK", Const, 0},
+ {"NOTE_LOWAT", Const, 0},
+ {"NOTE_NONE", Const, 0},
+ {"NOTE_NSECONDS", Const, 0},
+ {"NOTE_PCTRLMASK", Const, 0},
+ {"NOTE_PDATAMASK", Const, 0},
+ {"NOTE_REAP", Const, 0},
+ {"NOTE_RENAME", Const, 0},
+ {"NOTE_RESOURCEEND", Const, 0},
+ {"NOTE_REVOKE", Const, 0},
+ {"NOTE_SECONDS", Const, 0},
+ {"NOTE_SIGNAL", Const, 0},
+ {"NOTE_TRACK", Const, 0},
+ {"NOTE_TRACKERR", Const, 0},
+ {"NOTE_TRIGGER", Const, 0},
+ {"NOTE_TRUNCATE", Const, 1},
+ {"NOTE_USECONDS", Const, 0},
+ {"NOTE_VM_ERROR", Const, 0},
+ {"NOTE_VM_PRESSURE", Const, 0},
+ {"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0},
+ {"NOTE_VM_PRESSURE_TERMINATE", Const, 0},
+ {"NOTE_WRITE", Const, 0},
+ {"NameCanonical", Const, 0},
+ {"NameCanonicalEx", Const, 0},
+ {"NameDisplay", Const, 0},
+ {"NameDnsDomain", Const, 0},
+ {"NameFullyQualifiedDN", Const, 0},
+ {"NameSamCompatible", Const, 0},
+ {"NameServicePrincipal", Const, 0},
+ {"NameUniqueId", Const, 0},
+ {"NameUnknown", Const, 0},
+ {"NameUserPrincipal", Const, 0},
+ {"Nanosleep", Func, 0},
+ {"NetApiBufferFree", Func, 0},
+ {"NetGetJoinInformation", Func, 2},
+ {"NetSetupDomainName", Const, 2},
+ {"NetSetupUnjoined", Const, 2},
+ {"NetSetupUnknownStatus", Const, 2},
+ {"NetSetupWorkgroupName", Const, 2},
+ {"NetUserGetInfo", Func, 0},
+ {"NetlinkMessage", Type, 0},
+ {"NetlinkMessage.Data", Field, 0},
+ {"NetlinkMessage.Header", Field, 0},
+ {"NetlinkRIB", Func, 0},
+ {"NetlinkRouteAttr", Type, 0},
+ {"NetlinkRouteAttr.Attr", Field, 0},
+ {"NetlinkRouteAttr.Value", Field, 0},
+ {"NetlinkRouteRequest", Type, 0},
+ {"NetlinkRouteRequest.Data", Field, 0},
+ {"NetlinkRouteRequest.Header", Field, 0},
+ {"NewCallback", Func, 0},
+ {"NewCallbackCDecl", Func, 3},
+ {"NewLazyDLL", Func, 0},
+ {"NlAttr", Type, 0},
+ {"NlAttr.Len", Field, 0},
+ {"NlAttr.Type", Field, 0},
+ {"NlMsgerr", Type, 0},
+ {"NlMsgerr.Error", Field, 0},
+ {"NlMsgerr.Msg", Field, 0},
+ {"NlMsghdr", Type, 0},
+ {"NlMsghdr.Flags", Field, 0},
+ {"NlMsghdr.Len", Field, 0},
+ {"NlMsghdr.Pid", Field, 0},
+ {"NlMsghdr.Seq", Field, 0},
+ {"NlMsghdr.Type", Field, 0},
+ {"NsecToFiletime", Func, 0},
+ {"NsecToTimespec", Func, 0},
+ {"NsecToTimeval", Func, 0},
+ {"Ntohs", Func, 0},
+ {"OCRNL", Const, 0},
+ {"OFDEL", Const, 0},
+ {"OFILL", Const, 0},
+ {"OFIOGETBMAP", Const, 1},
+ {"OID_PKIX_KP_SERVER_AUTH", Var, 0},
+ {"OID_SERVER_GATED_CRYPTO", Var, 0},
+ {"OID_SGC_NETSCAPE", Var, 0},
+ {"OLCUC", Const, 0},
+ {"ONLCR", Const, 0},
+ {"ONLRET", Const, 0},
+ {"ONOCR", Const, 0},
+ {"ONOEOT", Const, 1},
+ {"OPEN_ALWAYS", Const, 0},
+ {"OPEN_EXISTING", Const, 0},
+ {"OPOST", Const, 0},
+ {"O_ACCMODE", Const, 0},
+ {"O_ALERT", Const, 0},
+ {"O_ALT_IO", Const, 1},
+ {"O_APPEND", Const, 0},
+ {"O_ASYNC", Const, 0},
+ {"O_CLOEXEC", Const, 0},
+ {"O_CREAT", Const, 0},
+ {"O_DIRECT", Const, 0},
+ {"O_DIRECTORY", Const, 0},
+ {"O_DP_GETRAWENCRYPTED", Const, 16},
+ {"O_DSYNC", Const, 0},
+ {"O_EVTONLY", Const, 0},
+ {"O_EXCL", Const, 0},
+ {"O_EXEC", Const, 0},
+ {"O_EXLOCK", Const, 0},
+ {"O_FSYNC", Const, 0},
+ {"O_LARGEFILE", Const, 0},
+ {"O_NDELAY", Const, 0},
+ {"O_NOATIME", Const, 0},
+ {"O_NOCTTY", Const, 0},
+ {"O_NOFOLLOW", Const, 0},
+ {"O_NONBLOCK", Const, 0},
+ {"O_NOSIGPIPE", Const, 1},
+ {"O_POPUP", Const, 0},
+ {"O_RDONLY", Const, 0},
+ {"O_RDWR", Const, 0},
+ {"O_RSYNC", Const, 0},
+ {"O_SHLOCK", Const, 0},
+ {"O_SYMLINK", Const, 0},
+ {"O_SYNC", Const, 0},
+ {"O_TRUNC", Const, 0},
+ {"O_TTY_INIT", Const, 0},
+ {"O_WRONLY", Const, 0},
+ {"Open", Func, 0},
+ {"OpenCurrentProcessToken", Func, 0},
+ {"OpenProcess", Func, 0},
+ {"OpenProcessToken", Func, 0},
+ {"Openat", Func, 0},
+ {"Overlapped", Type, 0},
+ {"Overlapped.HEvent", Field, 0},
+ {"Overlapped.Internal", Field, 0},
+ {"Overlapped.InternalHigh", Field, 0},
+ {"Overlapped.Offset", Field, 0},
+ {"Overlapped.OffsetHigh", Field, 0},
+ {"PACKET_ADD_MEMBERSHIP", Const, 0},
+ {"PACKET_BROADCAST", Const, 0},
+ {"PACKET_DROP_MEMBERSHIP", Const, 0},
+ {"PACKET_FASTROUTE", Const, 0},
+ {"PACKET_HOST", Const, 0},
+ {"PACKET_LOOPBACK", Const, 0},
+ {"PACKET_MR_ALLMULTI", Const, 0},
+ {"PACKET_MR_MULTICAST", Const, 0},
+ {"PACKET_MR_PROMISC", Const, 0},
+ {"PACKET_MULTICAST", Const, 0},
+ {"PACKET_OTHERHOST", Const, 0},
+ {"PACKET_OUTGOING", Const, 0},
+ {"PACKET_RECV_OUTPUT", Const, 0},
+ {"PACKET_RX_RING", Const, 0},
+ {"PACKET_STATISTICS", Const, 0},
+ {"PAGE_EXECUTE_READ", Const, 0},
+ {"PAGE_EXECUTE_READWRITE", Const, 0},
+ {"PAGE_EXECUTE_WRITECOPY", Const, 0},
+ {"PAGE_READONLY", Const, 0},
+ {"PAGE_READWRITE", Const, 0},
+ {"PAGE_WRITECOPY", Const, 0},
+ {"PARENB", Const, 0},
+ {"PARMRK", Const, 0},
+ {"PARODD", Const, 0},
+ {"PENDIN", Const, 0},
+ {"PFL_HIDDEN", Const, 2},
+ {"PFL_MATCHES_PROTOCOL_ZERO", Const, 2},
+ {"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2},
+ {"PFL_NETWORKDIRECT_PROVIDER", Const, 2},
+ {"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2},
+ {"PF_FLUSH", Const, 1},
+ {"PKCS_7_ASN_ENCODING", Const, 0},
+ {"PMC5_PIPELINE_FLUSH", Const, 1},
+ {"PRIO_PGRP", Const, 2},
+ {"PRIO_PROCESS", Const, 2},
+ {"PRIO_USER", Const, 2},
+ {"PRI_IOFLUSH", Const, 1},
+ {"PROCESS_QUERY_INFORMATION", Const, 0},
+ {"PROCESS_TERMINATE", Const, 2},
+ {"PROT_EXEC", Const, 0},
+ {"PROT_GROWSDOWN", Const, 0},
+ {"PROT_GROWSUP", Const, 0},
+ {"PROT_NONE", Const, 0},
+ {"PROT_READ", Const, 0},
+ {"PROT_WRITE", Const, 0},
+ {"PROV_DH_SCHANNEL", Const, 0},
+ {"PROV_DSS", Const, 0},
+ {"PROV_DSS_DH", Const, 0},
+ {"PROV_EC_ECDSA_FULL", Const, 0},
+ {"PROV_EC_ECDSA_SIG", Const, 0},
+ {"PROV_EC_ECNRA_FULL", Const, 0},
+ {"PROV_EC_ECNRA_SIG", Const, 0},
+ {"PROV_FORTEZZA", Const, 0},
+ {"PROV_INTEL_SEC", Const, 0},
+ {"PROV_MS_EXCHANGE", Const, 0},
+ {"PROV_REPLACE_OWF", Const, 0},
+ {"PROV_RNG", Const, 0},
+ {"PROV_RSA_AES", Const, 0},
+ {"PROV_RSA_FULL", Const, 0},
+ {"PROV_RSA_SCHANNEL", Const, 0},
+ {"PROV_RSA_SIG", Const, 0},
+ {"PROV_SPYRUS_LYNKS", Const, 0},
+ {"PROV_SSL", Const, 0},
+ {"PR_CAPBSET_DROP", Const, 0},
+ {"PR_CAPBSET_READ", Const, 0},
+ {"PR_CLEAR_SECCOMP_FILTER", Const, 0},
+ {"PR_ENDIAN_BIG", Const, 0},
+ {"PR_ENDIAN_LITTLE", Const, 0},
+ {"PR_ENDIAN_PPC_LITTLE", Const, 0},
+ {"PR_FPEMU_NOPRINT", Const, 0},
+ {"PR_FPEMU_SIGFPE", Const, 0},
+ {"PR_FP_EXC_ASYNC", Const, 0},
+ {"PR_FP_EXC_DISABLED", Const, 0},
+ {"PR_FP_EXC_DIV", Const, 0},
+ {"PR_FP_EXC_INV", Const, 0},
+ {"PR_FP_EXC_NONRECOV", Const, 0},
+ {"PR_FP_EXC_OVF", Const, 0},
+ {"PR_FP_EXC_PRECISE", Const, 0},
+ {"PR_FP_EXC_RES", Const, 0},
+ {"PR_FP_EXC_SW_ENABLE", Const, 0},
+ {"PR_FP_EXC_UND", Const, 0},
+ {"PR_GET_DUMPABLE", Const, 0},
+ {"PR_GET_ENDIAN", Const, 0},
+ {"PR_GET_FPEMU", Const, 0},
+ {"PR_GET_FPEXC", Const, 0},
+ {"PR_GET_KEEPCAPS", Const, 0},
+ {"PR_GET_NAME", Const, 0},
+ {"PR_GET_PDEATHSIG", Const, 0},
+ {"PR_GET_SECCOMP", Const, 0},
+ {"PR_GET_SECCOMP_FILTER", Const, 0},
+ {"PR_GET_SECUREBITS", Const, 0},
+ {"PR_GET_TIMERSLACK", Const, 0},
+ {"PR_GET_TIMING", Const, 0},
+ {"PR_GET_TSC", Const, 0},
+ {"PR_GET_UNALIGN", Const, 0},
+ {"PR_MCE_KILL", Const, 0},
+ {"PR_MCE_KILL_CLEAR", Const, 0},
+ {"PR_MCE_KILL_DEFAULT", Const, 0},
+ {"PR_MCE_KILL_EARLY", Const, 0},
+ {"PR_MCE_KILL_GET", Const, 0},
+ {"PR_MCE_KILL_LATE", Const, 0},
+ {"PR_MCE_KILL_SET", Const, 0},
+ {"PR_SECCOMP_FILTER_EVENT", Const, 0},
+ {"PR_SECCOMP_FILTER_SYSCALL", Const, 0},
+ {"PR_SET_DUMPABLE", Const, 0},
+ {"PR_SET_ENDIAN", Const, 0},
+ {"PR_SET_FPEMU", Const, 0},
+ {"PR_SET_FPEXC", Const, 0},
+ {"PR_SET_KEEPCAPS", Const, 0},
+ {"PR_SET_NAME", Const, 0},
+ {"PR_SET_PDEATHSIG", Const, 0},
+ {"PR_SET_PTRACER", Const, 0},
+ {"PR_SET_SECCOMP", Const, 0},
+ {"PR_SET_SECCOMP_FILTER", Const, 0},
+ {"PR_SET_SECUREBITS", Const, 0},
+ {"PR_SET_TIMERSLACK", Const, 0},
+ {"PR_SET_TIMING", Const, 0},
+ {"PR_SET_TSC", Const, 0},
+ {"PR_SET_UNALIGN", Const, 0},
+ {"PR_TASK_PERF_EVENTS_DISABLE", Const, 0},
+ {"PR_TASK_PERF_EVENTS_ENABLE", Const, 0},
+ {"PR_TIMING_STATISTICAL", Const, 0},
+ {"PR_TIMING_TIMESTAMP", Const, 0},
+ {"PR_TSC_ENABLE", Const, 0},
+ {"PR_TSC_SIGSEGV", Const, 0},
+ {"PR_UNALIGN_NOPRINT", Const, 0},
+ {"PR_UNALIGN_SIGBUS", Const, 0},
+ {"PTRACE_ARCH_PRCTL", Const, 0},
+ {"PTRACE_ATTACH", Const, 0},
+ {"PTRACE_CONT", Const, 0},
+ {"PTRACE_DETACH", Const, 0},
+ {"PTRACE_EVENT_CLONE", Const, 0},
+ {"PTRACE_EVENT_EXEC", Const, 0},
+ {"PTRACE_EVENT_EXIT", Const, 0},
+ {"PTRACE_EVENT_FORK", Const, 0},
+ {"PTRACE_EVENT_VFORK", Const, 0},
+ {"PTRACE_EVENT_VFORK_DONE", Const, 0},
+ {"PTRACE_GETCRUNCHREGS", Const, 0},
+ {"PTRACE_GETEVENTMSG", Const, 0},
+ {"PTRACE_GETFPREGS", Const, 0},
+ {"PTRACE_GETFPXREGS", Const, 0},
+ {"PTRACE_GETHBPREGS", Const, 0},
+ {"PTRACE_GETREGS", Const, 0},
+ {"PTRACE_GETREGSET", Const, 0},
+ {"PTRACE_GETSIGINFO", Const, 0},
+ {"PTRACE_GETVFPREGS", Const, 0},
+ {"PTRACE_GETWMMXREGS", Const, 0},
+ {"PTRACE_GET_THREAD_AREA", Const, 0},
+ {"PTRACE_KILL", Const, 0},
+ {"PTRACE_OLDSETOPTIONS", Const, 0},
+ {"PTRACE_O_MASK", Const, 0},
+ {"PTRACE_O_TRACECLONE", Const, 0},
+ {"PTRACE_O_TRACEEXEC", Const, 0},
+ {"PTRACE_O_TRACEEXIT", Const, 0},
+ {"PTRACE_O_TRACEFORK", Const, 0},
+ {"PTRACE_O_TRACESYSGOOD", Const, 0},
+ {"PTRACE_O_TRACEVFORK", Const, 0},
+ {"PTRACE_O_TRACEVFORKDONE", Const, 0},
+ {"PTRACE_PEEKDATA", Const, 0},
+ {"PTRACE_PEEKTEXT", Const, 0},
+ {"PTRACE_PEEKUSR", Const, 0},
+ {"PTRACE_POKEDATA", Const, 0},
+ {"PTRACE_POKETEXT", Const, 0},
+ {"PTRACE_POKEUSR", Const, 0},
+ {"PTRACE_SETCRUNCHREGS", Const, 0},
+ {"PTRACE_SETFPREGS", Const, 0},
+ {"PTRACE_SETFPXREGS", Const, 0},
+ {"PTRACE_SETHBPREGS", Const, 0},
+ {"PTRACE_SETOPTIONS", Const, 0},
+ {"PTRACE_SETREGS", Const, 0},
+ {"PTRACE_SETREGSET", Const, 0},
+ {"PTRACE_SETSIGINFO", Const, 0},
+ {"PTRACE_SETVFPREGS", Const, 0},
+ {"PTRACE_SETWMMXREGS", Const, 0},
+ {"PTRACE_SET_SYSCALL", Const, 0},
+ {"PTRACE_SET_THREAD_AREA", Const, 0},
+ {"PTRACE_SINGLEBLOCK", Const, 0},
+ {"PTRACE_SINGLESTEP", Const, 0},
+ {"PTRACE_SYSCALL", Const, 0},
+ {"PTRACE_SYSEMU", Const, 0},
+ {"PTRACE_SYSEMU_SINGLESTEP", Const, 0},
+ {"PTRACE_TRACEME", Const, 0},
+ {"PT_ATTACH", Const, 0},
+ {"PT_ATTACHEXC", Const, 0},
+ {"PT_CONTINUE", Const, 0},
+ {"PT_DATA_ADDR", Const, 0},
+ {"PT_DENY_ATTACH", Const, 0},
+ {"PT_DETACH", Const, 0},
+ {"PT_FIRSTMACH", Const, 0},
+ {"PT_FORCEQUOTA", Const, 0},
+ {"PT_KILL", Const, 0},
+ {"PT_MASK", Const, 1},
+ {"PT_READ_D", Const, 0},
+ {"PT_READ_I", Const, 0},
+ {"PT_READ_U", Const, 0},
+ {"PT_SIGEXC", Const, 0},
+ {"PT_STEP", Const, 0},
+ {"PT_TEXT_ADDR", Const, 0},
+ {"PT_TEXT_END_ADDR", Const, 0},
+ {"PT_THUPDATE", Const, 0},
+ {"PT_TRACE_ME", Const, 0},
+ {"PT_WRITE_D", Const, 0},
+ {"PT_WRITE_I", Const, 0},
+ {"PT_WRITE_U", Const, 0},
+ {"ParseDirent", Func, 0},
+ {"ParseNetlinkMessage", Func, 0},
+ {"ParseNetlinkRouteAttr", Func, 0},
+ {"ParseRoutingMessage", Func, 0},
+ {"ParseRoutingSockaddr", Func, 0},
+ {"ParseSocketControlMessage", Func, 0},
+ {"ParseUnixCredentials", Func, 0},
+ {"ParseUnixRights", Func, 0},
+ {"PathMax", Const, 0},
+ {"Pathconf", Func, 0},
+ {"Pause", Func, 0},
+ {"Pipe", Func, 0},
+ {"Pipe2", Func, 1},
+ {"PivotRoot", Func, 0},
+ {"Pointer", Type, 11},
+ {"PostQueuedCompletionStatus", Func, 0},
+ {"Pread", Func, 0},
+ {"Proc", Type, 0},
+ {"Proc.Dll", Field, 0},
+ {"Proc.Name", Field, 0},
+ {"ProcAttr", Type, 0},
+ {"ProcAttr.Dir", Field, 0},
+ {"ProcAttr.Env", Field, 0},
+ {"ProcAttr.Files", Field, 0},
+ {"ProcAttr.Sys", Field, 0},
+ {"Process32First", Func, 4},
+ {"Process32Next", Func, 4},
+ {"ProcessEntry32", Type, 4},
+ {"ProcessEntry32.DefaultHeapID", Field, 4},
+ {"ProcessEntry32.ExeFile", Field, 4},
+ {"ProcessEntry32.Flags", Field, 4},
+ {"ProcessEntry32.ModuleID", Field, 4},
+ {"ProcessEntry32.ParentProcessID", Field, 4},
+ {"ProcessEntry32.PriClassBase", Field, 4},
+ {"ProcessEntry32.ProcessID", Field, 4},
+ {"ProcessEntry32.Size", Field, 4},
+ {"ProcessEntry32.Threads", Field, 4},
+ {"ProcessEntry32.Usage", Field, 4},
+ {"ProcessInformation", Type, 0},
+ {"ProcessInformation.Process", Field, 0},
+ {"ProcessInformation.ProcessId", Field, 0},
+ {"ProcessInformation.Thread", Field, 0},
+ {"ProcessInformation.ThreadId", Field, 0},
+ {"Protoent", Type, 0},
+ {"Protoent.Aliases", Field, 0},
+ {"Protoent.Name", Field, 0},
+ {"Protoent.Proto", Field, 0},
+ {"PtraceAttach", Func, 0},
+ {"PtraceCont", Func, 0},
+ {"PtraceDetach", Func, 0},
+ {"PtraceGetEventMsg", Func, 0},
+ {"PtraceGetRegs", Func, 0},
+ {"PtracePeekData", Func, 0},
+ {"PtracePeekText", Func, 0},
+ {"PtracePokeData", Func, 0},
+ {"PtracePokeText", Func, 0},
+ {"PtraceRegs", Type, 0},
+ {"PtraceRegs.Cs", Field, 0},
+ {"PtraceRegs.Ds", Field, 0},
+ {"PtraceRegs.Eax", Field, 0},
+ {"PtraceRegs.Ebp", Field, 0},
+ {"PtraceRegs.Ebx", Field, 0},
+ {"PtraceRegs.Ecx", Field, 0},
+ {"PtraceRegs.Edi", Field, 0},
+ {"PtraceRegs.Edx", Field, 0},
+ {"PtraceRegs.Eflags", Field, 0},
+ {"PtraceRegs.Eip", Field, 0},
+ {"PtraceRegs.Es", Field, 0},
+ {"PtraceRegs.Esi", Field, 0},
+ {"PtraceRegs.Esp", Field, 0},
+ {"PtraceRegs.Fs", Field, 0},
+ {"PtraceRegs.Fs_base", Field, 0},
+ {"PtraceRegs.Gs", Field, 0},
+ {"PtraceRegs.Gs_base", Field, 0},
+ {"PtraceRegs.Orig_eax", Field, 0},
+ {"PtraceRegs.Orig_rax", Field, 0},
+ {"PtraceRegs.R10", Field, 0},
+ {"PtraceRegs.R11", Field, 0},
+ {"PtraceRegs.R12", Field, 0},
+ {"PtraceRegs.R13", Field, 0},
+ {"PtraceRegs.R14", Field, 0},
+ {"PtraceRegs.R15", Field, 0},
+ {"PtraceRegs.R8", Field, 0},
+ {"PtraceRegs.R9", Field, 0},
+ {"PtraceRegs.Rax", Field, 0},
+ {"PtraceRegs.Rbp", Field, 0},
+ {"PtraceRegs.Rbx", Field, 0},
+ {"PtraceRegs.Rcx", Field, 0},
+ {"PtraceRegs.Rdi", Field, 0},
+ {"PtraceRegs.Rdx", Field, 0},
+ {"PtraceRegs.Rip", Field, 0},
+ {"PtraceRegs.Rsi", Field, 0},
+ {"PtraceRegs.Rsp", Field, 0},
+ {"PtraceRegs.Ss", Field, 0},
+ {"PtraceRegs.Uregs", Field, 0},
+ {"PtraceRegs.Xcs", Field, 0},
+ {"PtraceRegs.Xds", Field, 0},
+ {"PtraceRegs.Xes", Field, 0},
+ {"PtraceRegs.Xfs", Field, 0},
+ {"PtraceRegs.Xgs", Field, 0},
+ {"PtraceRegs.Xss", Field, 0},
+ {"PtraceSetOptions", Func, 0},
+ {"PtraceSetRegs", Func, 0},
+ {"PtraceSingleStep", Func, 0},
+ {"PtraceSyscall", Func, 1},
+ {"Pwrite", Func, 0},
+ {"REG_BINARY", Const, 0},
+ {"REG_DWORD", Const, 0},
+ {"REG_DWORD_BIG_ENDIAN", Const, 0},
+ {"REG_DWORD_LITTLE_ENDIAN", Const, 0},
+ {"REG_EXPAND_SZ", Const, 0},
+ {"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0},
+ {"REG_LINK", Const, 0},
+ {"REG_MULTI_SZ", Const, 0},
+ {"REG_NONE", Const, 0},
+ {"REG_QWORD", Const, 0},
+ {"REG_QWORD_LITTLE_ENDIAN", Const, 0},
+ {"REG_RESOURCE_LIST", Const, 0},
+ {"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0},
+ {"REG_SZ", Const, 0},
+ {"RLIMIT_AS", Const, 0},
+ {"RLIMIT_CORE", Const, 0},
+ {"RLIMIT_CPU", Const, 0},
+ {"RLIMIT_CPU_USAGE_MONITOR", Const, 16},
+ {"RLIMIT_DATA", Const, 0},
+ {"RLIMIT_FSIZE", Const, 0},
+ {"RLIMIT_NOFILE", Const, 0},
+ {"RLIMIT_STACK", Const, 0},
+ {"RLIM_INFINITY", Const, 0},
+ {"RTAX_ADVMSS", Const, 0},
+ {"RTAX_AUTHOR", Const, 0},
+ {"RTAX_BRD", Const, 0},
+ {"RTAX_CWND", Const, 0},
+ {"RTAX_DST", Const, 0},
+ {"RTAX_FEATURES", Const, 0},
+ {"RTAX_FEATURE_ALLFRAG", Const, 0},
+ {"RTAX_FEATURE_ECN", Const, 0},
+ {"RTAX_FEATURE_SACK", Const, 0},
+ {"RTAX_FEATURE_TIMESTAMP", Const, 0},
+ {"RTAX_GATEWAY", Const, 0},
+ {"RTAX_GENMASK", Const, 0},
+ {"RTAX_HOPLIMIT", Const, 0},
+ {"RTAX_IFA", Const, 0},
+ {"RTAX_IFP", Const, 0},
+ {"RTAX_INITCWND", Const, 0},
+ {"RTAX_INITRWND", Const, 0},
+ {"RTAX_LABEL", Const, 1},
+ {"RTAX_LOCK", Const, 0},
+ {"RTAX_MAX", Const, 0},
+ {"RTAX_MTU", Const, 0},
+ {"RTAX_NETMASK", Const, 0},
+ {"RTAX_REORDERING", Const, 0},
+ {"RTAX_RTO_MIN", Const, 0},
+ {"RTAX_RTT", Const, 0},
+ {"RTAX_RTTVAR", Const, 0},
+ {"RTAX_SRC", Const, 1},
+ {"RTAX_SRCMASK", Const, 1},
+ {"RTAX_SSTHRESH", Const, 0},
+ {"RTAX_TAG", Const, 1},
+ {"RTAX_UNSPEC", Const, 0},
+ {"RTAX_WINDOW", Const, 0},
+ {"RTA_ALIGNTO", Const, 0},
+ {"RTA_AUTHOR", Const, 0},
+ {"RTA_BRD", Const, 0},
+ {"RTA_CACHEINFO", Const, 0},
+ {"RTA_DST", Const, 0},
+ {"RTA_FLOW", Const, 0},
+ {"RTA_GATEWAY", Const, 0},
+ {"RTA_GENMASK", Const, 0},
+ {"RTA_IFA", Const, 0},
+ {"RTA_IFP", Const, 0},
+ {"RTA_IIF", Const, 0},
+ {"RTA_LABEL", Const, 1},
+ {"RTA_MAX", Const, 0},
+ {"RTA_METRICS", Const, 0},
+ {"RTA_MULTIPATH", Const, 0},
+ {"RTA_NETMASK", Const, 0},
+ {"RTA_OIF", Const, 0},
+ {"RTA_PREFSRC", Const, 0},
+ {"RTA_PRIORITY", Const, 0},
+ {"RTA_SRC", Const, 0},
+ {"RTA_SRCMASK", Const, 1},
+ {"RTA_TABLE", Const, 0},
+ {"RTA_TAG", Const, 1},
+ {"RTA_UNSPEC", Const, 0},
+ {"RTCF_DIRECTSRC", Const, 0},
+ {"RTCF_DOREDIRECT", Const, 0},
+ {"RTCF_LOG", Const, 0},
+ {"RTCF_MASQ", Const, 0},
+ {"RTCF_NAT", Const, 0},
+ {"RTCF_VALVE", Const, 0},
+ {"RTF_ADDRCLASSMASK", Const, 0},
+ {"RTF_ADDRCONF", Const, 0},
+ {"RTF_ALLONLINK", Const, 0},
+ {"RTF_ANNOUNCE", Const, 1},
+ {"RTF_BLACKHOLE", Const, 0},
+ {"RTF_BROADCAST", Const, 0},
+ {"RTF_CACHE", Const, 0},
+ {"RTF_CLONED", Const, 1},
+ {"RTF_CLONING", Const, 0},
+ {"RTF_CONDEMNED", Const, 0},
+ {"RTF_DEFAULT", Const, 0},
+ {"RTF_DELCLONE", Const, 0},
+ {"RTF_DONE", Const, 0},
+ {"RTF_DYNAMIC", Const, 0},
+ {"RTF_FLOW", Const, 0},
+ {"RTF_FMASK", Const, 0},
+ {"RTF_GATEWAY", Const, 0},
+ {"RTF_GWFLAG_COMPAT", Const, 3},
+ {"RTF_HOST", Const, 0},
+ {"RTF_IFREF", Const, 0},
+ {"RTF_IFSCOPE", Const, 0},
+ {"RTF_INTERFACE", Const, 0},
+ {"RTF_IRTT", Const, 0},
+ {"RTF_LINKRT", Const, 0},
+ {"RTF_LLDATA", Const, 0},
+ {"RTF_LLINFO", Const, 0},
+ {"RTF_LOCAL", Const, 0},
+ {"RTF_MASK", Const, 1},
+ {"RTF_MODIFIED", Const, 0},
+ {"RTF_MPATH", Const, 1},
+ {"RTF_MPLS", Const, 1},
+ {"RTF_MSS", Const, 0},
+ {"RTF_MTU", Const, 0},
+ {"RTF_MULTICAST", Const, 0},
+ {"RTF_NAT", Const, 0},
+ {"RTF_NOFORWARD", Const, 0},
+ {"RTF_NONEXTHOP", Const, 0},
+ {"RTF_NOPMTUDISC", Const, 0},
+ {"RTF_PERMANENT_ARP", Const, 1},
+ {"RTF_PINNED", Const, 0},
+ {"RTF_POLICY", Const, 0},
+ {"RTF_PRCLONING", Const, 0},
+ {"RTF_PROTO1", Const, 0},
+ {"RTF_PROTO2", Const, 0},
+ {"RTF_PROTO3", Const, 0},
+ {"RTF_PROXY", Const, 16},
+ {"RTF_REINSTATE", Const, 0},
+ {"RTF_REJECT", Const, 0},
+ {"RTF_RNH_LOCKED", Const, 0},
+ {"RTF_ROUTER", Const, 16},
+ {"RTF_SOURCE", Const, 1},
+ {"RTF_SRC", Const, 1},
+ {"RTF_STATIC", Const, 0},
+ {"RTF_STICKY", Const, 0},
+ {"RTF_THROW", Const, 0},
+ {"RTF_TUNNEL", Const, 1},
+ {"RTF_UP", Const, 0},
+ {"RTF_USETRAILERS", Const, 1},
+ {"RTF_WASCLONED", Const, 0},
+ {"RTF_WINDOW", Const, 0},
+ {"RTF_XRESOLVE", Const, 0},
+ {"RTM_ADD", Const, 0},
+ {"RTM_BASE", Const, 0},
+ {"RTM_CHANGE", Const, 0},
+ {"RTM_CHGADDR", Const, 1},
+ {"RTM_DELACTION", Const, 0},
+ {"RTM_DELADDR", Const, 0},
+ {"RTM_DELADDRLABEL", Const, 0},
+ {"RTM_DELETE", Const, 0},
+ {"RTM_DELLINK", Const, 0},
+ {"RTM_DELMADDR", Const, 0},
+ {"RTM_DELNEIGH", Const, 0},
+ {"RTM_DELQDISC", Const, 0},
+ {"RTM_DELROUTE", Const, 0},
+ {"RTM_DELRULE", Const, 0},
+ {"RTM_DELTCLASS", Const, 0},
+ {"RTM_DELTFILTER", Const, 0},
+ {"RTM_DESYNC", Const, 1},
+ {"RTM_F_CLONED", Const, 0},
+ {"RTM_F_EQUALIZE", Const, 0},
+ {"RTM_F_NOTIFY", Const, 0},
+ {"RTM_F_PREFIX", Const, 0},
+ {"RTM_GET", Const, 0},
+ {"RTM_GET2", Const, 0},
+ {"RTM_GETACTION", Const, 0},
+ {"RTM_GETADDR", Const, 0},
+ {"RTM_GETADDRLABEL", Const, 0},
+ {"RTM_GETANYCAST", Const, 0},
+ {"RTM_GETDCB", Const, 0},
+ {"RTM_GETLINK", Const, 0},
+ {"RTM_GETMULTICAST", Const, 0},
+ {"RTM_GETNEIGH", Const, 0},
+ {"RTM_GETNEIGHTBL", Const, 0},
+ {"RTM_GETQDISC", Const, 0},
+ {"RTM_GETROUTE", Const, 0},
+ {"RTM_GETRULE", Const, 0},
+ {"RTM_GETTCLASS", Const, 0},
+ {"RTM_GETTFILTER", Const, 0},
+ {"RTM_IEEE80211", Const, 0},
+ {"RTM_IFANNOUNCE", Const, 0},
+ {"RTM_IFINFO", Const, 0},
+ {"RTM_IFINFO2", Const, 0},
+ {"RTM_LLINFO_UPD", Const, 1},
+ {"RTM_LOCK", Const, 0},
+ {"RTM_LOSING", Const, 0},
+ {"RTM_MAX", Const, 0},
+ {"RTM_MAXSIZE", Const, 1},
+ {"RTM_MISS", Const, 0},
+ {"RTM_NEWACTION", Const, 0},
+ {"RTM_NEWADDR", Const, 0},
+ {"RTM_NEWADDRLABEL", Const, 0},
+ {"RTM_NEWLINK", Const, 0},
+ {"RTM_NEWMADDR", Const, 0},
+ {"RTM_NEWMADDR2", Const, 0},
+ {"RTM_NEWNDUSEROPT", Const, 0},
+ {"RTM_NEWNEIGH", Const, 0},
+ {"RTM_NEWNEIGHTBL", Const, 0},
+ {"RTM_NEWPREFIX", Const, 0},
+ {"RTM_NEWQDISC", Const, 0},
+ {"RTM_NEWROUTE", Const, 0},
+ {"RTM_NEWRULE", Const, 0},
+ {"RTM_NEWTCLASS", Const, 0},
+ {"RTM_NEWTFILTER", Const, 0},
+ {"RTM_NR_FAMILIES", Const, 0},
+ {"RTM_NR_MSGTYPES", Const, 0},
+ {"RTM_OIFINFO", Const, 1},
+ {"RTM_OLDADD", Const, 0},
+ {"RTM_OLDDEL", Const, 0},
+ {"RTM_OOIFINFO", Const, 1},
+ {"RTM_REDIRECT", Const, 0},
+ {"RTM_RESOLVE", Const, 0},
+ {"RTM_RTTUNIT", Const, 0},
+ {"RTM_SETDCB", Const, 0},
+ {"RTM_SETGATE", Const, 1},
+ {"RTM_SETLINK", Const, 0},
+ {"RTM_SETNEIGHTBL", Const, 0},
+ {"RTM_VERSION", Const, 0},
+ {"RTNH_ALIGNTO", Const, 0},
+ {"RTNH_F_DEAD", Const, 0},
+ {"RTNH_F_ONLINK", Const, 0},
+ {"RTNH_F_PERVASIVE", Const, 0},
+ {"RTNLGRP_IPV4_IFADDR", Const, 1},
+ {"RTNLGRP_IPV4_MROUTE", Const, 1},
+ {"RTNLGRP_IPV4_ROUTE", Const, 1},
+ {"RTNLGRP_IPV4_RULE", Const, 1},
+ {"RTNLGRP_IPV6_IFADDR", Const, 1},
+ {"RTNLGRP_IPV6_IFINFO", Const, 1},
+ {"RTNLGRP_IPV6_MROUTE", Const, 1},
+ {"RTNLGRP_IPV6_PREFIX", Const, 1},
+ {"RTNLGRP_IPV6_ROUTE", Const, 1},
+ {"RTNLGRP_IPV6_RULE", Const, 1},
+ {"RTNLGRP_LINK", Const, 1},
+ {"RTNLGRP_ND_USEROPT", Const, 1},
+ {"RTNLGRP_NEIGH", Const, 1},
+ {"RTNLGRP_NONE", Const, 1},
+ {"RTNLGRP_NOTIFY", Const, 1},
+ {"RTNLGRP_TC", Const, 1},
+ {"RTN_ANYCAST", Const, 0},
+ {"RTN_BLACKHOLE", Const, 0},
+ {"RTN_BROADCAST", Const, 0},
+ {"RTN_LOCAL", Const, 0},
+ {"RTN_MAX", Const, 0},
+ {"RTN_MULTICAST", Const, 0},
+ {"RTN_NAT", Const, 0},
+ {"RTN_PROHIBIT", Const, 0},
+ {"RTN_THROW", Const, 0},
+ {"RTN_UNICAST", Const, 0},
+ {"RTN_UNREACHABLE", Const, 0},
+ {"RTN_UNSPEC", Const, 0},
+ {"RTN_XRESOLVE", Const, 0},
+ {"RTPROT_BIRD", Const, 0},
+ {"RTPROT_BOOT", Const, 0},
+ {"RTPROT_DHCP", Const, 0},
+ {"RTPROT_DNROUTED", Const, 0},
+ {"RTPROT_GATED", Const, 0},
+ {"RTPROT_KERNEL", Const, 0},
+ {"RTPROT_MRT", Const, 0},
+ {"RTPROT_NTK", Const, 0},
+ {"RTPROT_RA", Const, 0},
+ {"RTPROT_REDIRECT", Const, 0},
+ {"RTPROT_STATIC", Const, 0},
+ {"RTPROT_UNSPEC", Const, 0},
+ {"RTPROT_XORP", Const, 0},
+ {"RTPROT_ZEBRA", Const, 0},
+ {"RTV_EXPIRE", Const, 0},
+ {"RTV_HOPCOUNT", Const, 0},
+ {"RTV_MTU", Const, 0},
+ {"RTV_RPIPE", Const, 0},
+ {"RTV_RTT", Const, 0},
+ {"RTV_RTTVAR", Const, 0},
+ {"RTV_SPIPE", Const, 0},
+ {"RTV_SSTHRESH", Const, 0},
+ {"RTV_WEIGHT", Const, 0},
+ {"RT_CACHING_CONTEXT", Const, 1},
+ {"RT_CLASS_DEFAULT", Const, 0},
+ {"RT_CLASS_LOCAL", Const, 0},
+ {"RT_CLASS_MAIN", Const, 0},
+ {"RT_CLASS_MAX", Const, 0},
+ {"RT_CLASS_UNSPEC", Const, 0},
+ {"RT_DEFAULT_FIB", Const, 1},
+ {"RT_NORTREF", Const, 1},
+ {"RT_SCOPE_HOST", Const, 0},
+ {"RT_SCOPE_LINK", Const, 0},
+ {"RT_SCOPE_NOWHERE", Const, 0},
+ {"RT_SCOPE_SITE", Const, 0},
+ {"RT_SCOPE_UNIVERSE", Const, 0},
+ {"RT_TABLEID_MAX", Const, 1},
+ {"RT_TABLE_COMPAT", Const, 0},
+ {"RT_TABLE_DEFAULT", Const, 0},
+ {"RT_TABLE_LOCAL", Const, 0},
+ {"RT_TABLE_MAIN", Const, 0},
+ {"RT_TABLE_MAX", Const, 0},
+ {"RT_TABLE_UNSPEC", Const, 0},
+ {"RUSAGE_CHILDREN", Const, 0},
+ {"RUSAGE_SELF", Const, 0},
+ {"RUSAGE_THREAD", Const, 0},
+ {"Radvisory_t", Type, 0},
+ {"Radvisory_t.Count", Field, 0},
+ {"Radvisory_t.Offset", Field, 0},
+ {"Radvisory_t.Pad_cgo_0", Field, 0},
+ {"RawConn", Type, 9},
+ {"RawSockaddr", Type, 0},
+ {"RawSockaddr.Data", Field, 0},
+ {"RawSockaddr.Family", Field, 0},
+ {"RawSockaddr.Len", Field, 0},
+ {"RawSockaddrAny", Type, 0},
+ {"RawSockaddrAny.Addr", Field, 0},
+ {"RawSockaddrAny.Pad", Field, 0},
+ {"RawSockaddrDatalink", Type, 0},
+ {"RawSockaddrDatalink.Alen", Field, 0},
+ {"RawSockaddrDatalink.Data", Field, 0},
+ {"RawSockaddrDatalink.Family", Field, 0},
+ {"RawSockaddrDatalink.Index", Field, 0},
+ {"RawSockaddrDatalink.Len", Field, 0},
+ {"RawSockaddrDatalink.Nlen", Field, 0},
+ {"RawSockaddrDatalink.Pad_cgo_0", Field, 2},
+ {"RawSockaddrDatalink.Slen", Field, 0},
+ {"RawSockaddrDatalink.Type", Field, 0},
+ {"RawSockaddrInet4", Type, 0},
+ {"RawSockaddrInet4.Addr", Field, 0},
+ {"RawSockaddrInet4.Family", Field, 0},
+ {"RawSockaddrInet4.Len", Field, 0},
+ {"RawSockaddrInet4.Port", Field, 0},
+ {"RawSockaddrInet4.Zero", Field, 0},
+ {"RawSockaddrInet6", Type, 0},
+ {"RawSockaddrInet6.Addr", Field, 0},
+ {"RawSockaddrInet6.Family", Field, 0},
+ {"RawSockaddrInet6.Flowinfo", Field, 0},
+ {"RawSockaddrInet6.Len", Field, 0},
+ {"RawSockaddrInet6.Port", Field, 0},
+ {"RawSockaddrInet6.Scope_id", Field, 0},
+ {"RawSockaddrLinklayer", Type, 0},
+ {"RawSockaddrLinklayer.Addr", Field, 0},
+ {"RawSockaddrLinklayer.Family", Field, 0},
+ {"RawSockaddrLinklayer.Halen", Field, 0},
+ {"RawSockaddrLinklayer.Hatype", Field, 0},
+ {"RawSockaddrLinklayer.Ifindex", Field, 0},
+ {"RawSockaddrLinklayer.Pkttype", Field, 0},
+ {"RawSockaddrLinklayer.Protocol", Field, 0},
+ {"RawSockaddrNetlink", Type, 0},
+ {"RawSockaddrNetlink.Family", Field, 0},
+ {"RawSockaddrNetlink.Groups", Field, 0},
+ {"RawSockaddrNetlink.Pad", Field, 0},
+ {"RawSockaddrNetlink.Pid", Field, 0},
+ {"RawSockaddrUnix", Type, 0},
+ {"RawSockaddrUnix.Family", Field, 0},
+ {"RawSockaddrUnix.Len", Field, 0},
+ {"RawSockaddrUnix.Pad_cgo_0", Field, 2},
+ {"RawSockaddrUnix.Path", Field, 0},
+ {"RawSyscall", Func, 0},
+ {"RawSyscall6", Func, 0},
+ {"Read", Func, 0},
+ {"ReadConsole", Func, 1},
+ {"ReadDirectoryChanges", Func, 0},
+ {"ReadDirent", Func, 0},
+ {"ReadFile", Func, 0},
+ {"Readlink", Func, 0},
+ {"Reboot", Func, 0},
+ {"Recvfrom", Func, 0},
+ {"Recvmsg", Func, 0},
+ {"RegCloseKey", Func, 0},
+ {"RegEnumKeyEx", Func, 0},
+ {"RegOpenKeyEx", Func, 0},
+ {"RegQueryInfoKey", Func, 0},
+ {"RegQueryValueEx", Func, 0},
+ {"RemoveDirectory", Func, 0},
+ {"Removexattr", Func, 1},
+ {"Rename", Func, 0},
+ {"Renameat", Func, 0},
+ {"Revoke", Func, 0},
+ {"Rlimit", Type, 0},
+ {"Rlimit.Cur", Field, 0},
+ {"Rlimit.Max", Field, 0},
+ {"Rmdir", Func, 0},
+ {"RouteMessage", Type, 0},
+ {"RouteMessage.Data", Field, 0},
+ {"RouteMessage.Header", Field, 0},
+ {"RouteRIB", Func, 0},
+ {"RoutingMessage", Type, 0},
+ {"RtAttr", Type, 0},
+ {"RtAttr.Len", Field, 0},
+ {"RtAttr.Type", Field, 0},
+ {"RtGenmsg", Type, 0},
+ {"RtGenmsg.Family", Field, 0},
+ {"RtMetrics", Type, 0},
+ {"RtMetrics.Expire", Field, 0},
+ {"RtMetrics.Filler", Field, 0},
+ {"RtMetrics.Hopcount", Field, 0},
+ {"RtMetrics.Locks", Field, 0},
+ {"RtMetrics.Mtu", Field, 0},
+ {"RtMetrics.Pad", Field, 3},
+ {"RtMetrics.Pksent", Field, 0},
+ {"RtMetrics.Recvpipe", Field, 0},
+ {"RtMetrics.Refcnt", Field, 2},
+ {"RtMetrics.Rtt", Field, 0},
+ {"RtMetrics.Rttvar", Field, 0},
+ {"RtMetrics.Sendpipe", Field, 0},
+ {"RtMetrics.Ssthresh", Field, 0},
+ {"RtMetrics.Weight", Field, 0},
+ {"RtMsg", Type, 0},
+ {"RtMsg.Dst_len", Field, 0},
+ {"RtMsg.Family", Field, 0},
+ {"RtMsg.Flags", Field, 0},
+ {"RtMsg.Protocol", Field, 0},
+ {"RtMsg.Scope", Field, 0},
+ {"RtMsg.Src_len", Field, 0},
+ {"RtMsg.Table", Field, 0},
+ {"RtMsg.Tos", Field, 0},
+ {"RtMsg.Type", Field, 0},
+ {"RtMsghdr", Type, 0},
+ {"RtMsghdr.Addrs", Field, 0},
+ {"RtMsghdr.Errno", Field, 0},
+ {"RtMsghdr.Flags", Field, 0},
+ {"RtMsghdr.Fmask", Field, 0},
+ {"RtMsghdr.Hdrlen", Field, 2},
+ {"RtMsghdr.Index", Field, 0},
+ {"RtMsghdr.Inits", Field, 0},
+ {"RtMsghdr.Mpls", Field, 2},
+ {"RtMsghdr.Msglen", Field, 0},
+ {"RtMsghdr.Pad_cgo_0", Field, 0},
+ {"RtMsghdr.Pad_cgo_1", Field, 2},
+ {"RtMsghdr.Pid", Field, 0},
+ {"RtMsghdr.Priority", Field, 2},
+ {"RtMsghdr.Rmx", Field, 0},
+ {"RtMsghdr.Seq", Field, 0},
+ {"RtMsghdr.Tableid", Field, 2},
+ {"RtMsghdr.Type", Field, 0},
+ {"RtMsghdr.Use", Field, 0},
+ {"RtMsghdr.Version", Field, 0},
+ {"RtNexthop", Type, 0},
+ {"RtNexthop.Flags", Field, 0},
+ {"RtNexthop.Hops", Field, 0},
+ {"RtNexthop.Ifindex", Field, 0},
+ {"RtNexthop.Len", Field, 0},
+ {"Rusage", Type, 0},
+ {"Rusage.CreationTime", Field, 0},
+ {"Rusage.ExitTime", Field, 0},
+ {"Rusage.Idrss", Field, 0},
+ {"Rusage.Inblock", Field, 0},
+ {"Rusage.Isrss", Field, 0},
+ {"Rusage.Ixrss", Field, 0},
+ {"Rusage.KernelTime", Field, 0},
+ {"Rusage.Majflt", Field, 0},
+ {"Rusage.Maxrss", Field, 0},
+ {"Rusage.Minflt", Field, 0},
+ {"Rusage.Msgrcv", Field, 0},
+ {"Rusage.Msgsnd", Field, 0},
+ {"Rusage.Nivcsw", Field, 0},
+ {"Rusage.Nsignals", Field, 0},
+ {"Rusage.Nswap", Field, 0},
+ {"Rusage.Nvcsw", Field, 0},
+ {"Rusage.Oublock", Field, 0},
+ {"Rusage.Stime", Field, 0},
+ {"Rusage.UserTime", Field, 0},
+ {"Rusage.Utime", Field, 0},
+ {"SCM_BINTIME", Const, 0},
+ {"SCM_CREDENTIALS", Const, 0},
+ {"SCM_CREDS", Const, 0},
+ {"SCM_RIGHTS", Const, 0},
+ {"SCM_TIMESTAMP", Const, 0},
+ {"SCM_TIMESTAMPING", Const, 0},
+ {"SCM_TIMESTAMPNS", Const, 0},
+ {"SCM_TIMESTAMP_MONOTONIC", Const, 0},
+ {"SHUT_RD", Const, 0},
+ {"SHUT_RDWR", Const, 0},
+ {"SHUT_WR", Const, 0},
+ {"SID", Type, 0},
+ {"SIDAndAttributes", Type, 0},
+ {"SIDAndAttributes.Attributes", Field, 0},
+ {"SIDAndAttributes.Sid", Field, 0},
+ {"SIGABRT", Const, 0},
+ {"SIGALRM", Const, 0},
+ {"SIGBUS", Const, 0},
+ {"SIGCHLD", Const, 0},
+ {"SIGCLD", Const, 0},
+ {"SIGCONT", Const, 0},
+ {"SIGEMT", Const, 0},
+ {"SIGFPE", Const, 0},
+ {"SIGHUP", Const, 0},
+ {"SIGILL", Const, 0},
+ {"SIGINFO", Const, 0},
+ {"SIGINT", Const, 0},
+ {"SIGIO", Const, 0},
+ {"SIGIOT", Const, 0},
+ {"SIGKILL", Const, 0},
+ {"SIGLIBRT", Const, 1},
+ {"SIGLWP", Const, 0},
+ {"SIGPIPE", Const, 0},
+ {"SIGPOLL", Const, 0},
+ {"SIGPROF", Const, 0},
+ {"SIGPWR", Const, 0},
+ {"SIGQUIT", Const, 0},
+ {"SIGSEGV", Const, 0},
+ {"SIGSTKFLT", Const, 0},
+ {"SIGSTOP", Const, 0},
+ {"SIGSYS", Const, 0},
+ {"SIGTERM", Const, 0},
+ {"SIGTHR", Const, 0},
+ {"SIGTRAP", Const, 0},
+ {"SIGTSTP", Const, 0},
+ {"SIGTTIN", Const, 0},
+ {"SIGTTOU", Const, 0},
+ {"SIGUNUSED", Const, 0},
+ {"SIGURG", Const, 0},
+ {"SIGUSR1", Const, 0},
+ {"SIGUSR2", Const, 0},
+ {"SIGVTALRM", Const, 0},
+ {"SIGWINCH", Const, 0},
+ {"SIGXCPU", Const, 0},
+ {"SIGXFSZ", Const, 0},
+ {"SIOCADDDLCI", Const, 0},
+ {"SIOCADDMULTI", Const, 0},
+ {"SIOCADDRT", Const, 0},
+ {"SIOCAIFADDR", Const, 0},
+ {"SIOCAIFGROUP", Const, 0},
+ {"SIOCALIFADDR", Const, 0},
+ {"SIOCARPIPLL", Const, 0},
+ {"SIOCATMARK", Const, 0},
+ {"SIOCAUTOADDR", Const, 0},
+ {"SIOCAUTONETMASK", Const, 0},
+ {"SIOCBRDGADD", Const, 1},
+ {"SIOCBRDGADDS", Const, 1},
+ {"SIOCBRDGARL", Const, 1},
+ {"SIOCBRDGDADDR", Const, 1},
+ {"SIOCBRDGDEL", Const, 1},
+ {"SIOCBRDGDELS", Const, 1},
+ {"SIOCBRDGFLUSH", Const, 1},
+ {"SIOCBRDGFRL", Const, 1},
+ {"SIOCBRDGGCACHE", Const, 1},
+ {"SIOCBRDGGFD", Const, 1},
+ {"SIOCBRDGGHT", Const, 1},
+ {"SIOCBRDGGIFFLGS", Const, 1},
+ {"SIOCBRDGGMA", Const, 1},
+ {"SIOCBRDGGPARAM", Const, 1},
+ {"SIOCBRDGGPRI", Const, 1},
+ {"SIOCBRDGGRL", Const, 1},
+ {"SIOCBRDGGSIFS", Const, 1},
+ {"SIOCBRDGGTO", Const, 1},
+ {"SIOCBRDGIFS", Const, 1},
+ {"SIOCBRDGRTS", Const, 1},
+ {"SIOCBRDGSADDR", Const, 1},
+ {"SIOCBRDGSCACHE", Const, 1},
+ {"SIOCBRDGSFD", Const, 1},
+ {"SIOCBRDGSHT", Const, 1},
+ {"SIOCBRDGSIFCOST", Const, 1},
+ {"SIOCBRDGSIFFLGS", Const, 1},
+ {"SIOCBRDGSIFPRIO", Const, 1},
+ {"SIOCBRDGSMA", Const, 1},
+ {"SIOCBRDGSPRI", Const, 1},
+ {"SIOCBRDGSPROTO", Const, 1},
+ {"SIOCBRDGSTO", Const, 1},
+ {"SIOCBRDGSTXHC", Const, 1},
+ {"SIOCDARP", Const, 0},
+ {"SIOCDELDLCI", Const, 0},
+ {"SIOCDELMULTI", Const, 0},
+ {"SIOCDELRT", Const, 0},
+ {"SIOCDEVPRIVATE", Const, 0},
+ {"SIOCDIFADDR", Const, 0},
+ {"SIOCDIFGROUP", Const, 0},
+ {"SIOCDIFPHYADDR", Const, 0},
+ {"SIOCDLIFADDR", Const, 0},
+ {"SIOCDRARP", Const, 0},
+ {"SIOCGARP", Const, 0},
+ {"SIOCGDRVSPEC", Const, 0},
+ {"SIOCGETKALIVE", Const, 1},
+ {"SIOCGETLABEL", Const, 1},
+ {"SIOCGETPFLOW", Const, 1},
+ {"SIOCGETPFSYNC", Const, 1},
+ {"SIOCGETSGCNT", Const, 0},
+ {"SIOCGETVIFCNT", Const, 0},
+ {"SIOCGETVLAN", Const, 0},
+ {"SIOCGHIWAT", Const, 0},
+ {"SIOCGIFADDR", Const, 0},
+ {"SIOCGIFADDRPREF", Const, 1},
+ {"SIOCGIFALIAS", Const, 1},
+ {"SIOCGIFALTMTU", Const, 0},
+ {"SIOCGIFASYNCMAP", Const, 0},
+ {"SIOCGIFBOND", Const, 0},
+ {"SIOCGIFBR", Const, 0},
+ {"SIOCGIFBRDADDR", Const, 0},
+ {"SIOCGIFCAP", Const, 0},
+ {"SIOCGIFCONF", Const, 0},
+ {"SIOCGIFCOUNT", Const, 0},
+ {"SIOCGIFDATA", Const, 1},
+ {"SIOCGIFDESCR", Const, 0},
+ {"SIOCGIFDEVMTU", Const, 0},
+ {"SIOCGIFDLT", Const, 1},
+ {"SIOCGIFDSTADDR", Const, 0},
+ {"SIOCGIFENCAP", Const, 0},
+ {"SIOCGIFFIB", Const, 1},
+ {"SIOCGIFFLAGS", Const, 0},
+ {"SIOCGIFGATTR", Const, 1},
+ {"SIOCGIFGENERIC", Const, 0},
+ {"SIOCGIFGMEMB", Const, 0},
+ {"SIOCGIFGROUP", Const, 0},
+ {"SIOCGIFHARDMTU", Const, 3},
+ {"SIOCGIFHWADDR", Const, 0},
+ {"SIOCGIFINDEX", Const, 0},
+ {"SIOCGIFKPI", Const, 0},
+ {"SIOCGIFMAC", Const, 0},
+ {"SIOCGIFMAP", Const, 0},
+ {"SIOCGIFMEDIA", Const, 0},
+ {"SIOCGIFMEM", Const, 0},
+ {"SIOCGIFMETRIC", Const, 0},
+ {"SIOCGIFMTU", Const, 0},
+ {"SIOCGIFNAME", Const, 0},
+ {"SIOCGIFNETMASK", Const, 0},
+ {"SIOCGIFPDSTADDR", Const, 0},
+ {"SIOCGIFPFLAGS", Const, 0},
+ {"SIOCGIFPHYS", Const, 0},
+ {"SIOCGIFPRIORITY", Const, 1},
+ {"SIOCGIFPSRCADDR", Const, 0},
+ {"SIOCGIFRDOMAIN", Const, 1},
+ {"SIOCGIFRTLABEL", Const, 1},
+ {"SIOCGIFSLAVE", Const, 0},
+ {"SIOCGIFSTATUS", Const, 0},
+ {"SIOCGIFTIMESLOT", Const, 1},
+ {"SIOCGIFTXQLEN", Const, 0},
+ {"SIOCGIFVLAN", Const, 0},
+ {"SIOCGIFWAKEFLAGS", Const, 0},
+ {"SIOCGIFXFLAGS", Const, 1},
+ {"SIOCGLIFADDR", Const, 0},
+ {"SIOCGLIFPHYADDR", Const, 0},
+ {"SIOCGLIFPHYRTABLE", Const, 1},
+ {"SIOCGLIFPHYTTL", Const, 3},
+ {"SIOCGLINKSTR", Const, 1},
+ {"SIOCGLOWAT", Const, 0},
+ {"SIOCGPGRP", Const, 0},
+ {"SIOCGPRIVATE_0", Const, 0},
+ {"SIOCGPRIVATE_1", Const, 0},
+ {"SIOCGRARP", Const, 0},
+ {"SIOCGSPPPPARAMS", Const, 3},
+ {"SIOCGSTAMP", Const, 0},
+ {"SIOCGSTAMPNS", Const, 0},
+ {"SIOCGVH", Const, 1},
+ {"SIOCGVNETID", Const, 3},
+ {"SIOCIFCREATE", Const, 0},
+ {"SIOCIFCREATE2", Const, 0},
+ {"SIOCIFDESTROY", Const, 0},
+ {"SIOCIFGCLONERS", Const, 0},
+ {"SIOCINITIFADDR", Const, 1},
+ {"SIOCPROTOPRIVATE", Const, 0},
+ {"SIOCRSLVMULTI", Const, 0},
+ {"SIOCRTMSG", Const, 0},
+ {"SIOCSARP", Const, 0},
+ {"SIOCSDRVSPEC", Const, 0},
+ {"SIOCSETKALIVE", Const, 1},
+ {"SIOCSETLABEL", Const, 1},
+ {"SIOCSETPFLOW", Const, 1},
+ {"SIOCSETPFSYNC", Const, 1},
+ {"SIOCSETVLAN", Const, 0},
+ {"SIOCSHIWAT", Const, 0},
+ {"SIOCSIFADDR", Const, 0},
+ {"SIOCSIFADDRPREF", Const, 1},
+ {"SIOCSIFALTMTU", Const, 0},
+ {"SIOCSIFASYNCMAP", Const, 0},
+ {"SIOCSIFBOND", Const, 0},
+ {"SIOCSIFBR", Const, 0},
+ {"SIOCSIFBRDADDR", Const, 0},
+ {"SIOCSIFCAP", Const, 0},
+ {"SIOCSIFDESCR", Const, 0},
+ {"SIOCSIFDSTADDR", Const, 0},
+ {"SIOCSIFENCAP", Const, 0},
+ {"SIOCSIFFIB", Const, 1},
+ {"SIOCSIFFLAGS", Const, 0},
+ {"SIOCSIFGATTR", Const, 1},
+ {"SIOCSIFGENERIC", Const, 0},
+ {"SIOCSIFHWADDR", Const, 0},
+ {"SIOCSIFHWBROADCAST", Const, 0},
+ {"SIOCSIFKPI", Const, 0},
+ {"SIOCSIFLINK", Const, 0},
+ {"SIOCSIFLLADDR", Const, 0},
+ {"SIOCSIFMAC", Const, 0},
+ {"SIOCSIFMAP", Const, 0},
+ {"SIOCSIFMEDIA", Const, 0},
+ {"SIOCSIFMEM", Const, 0},
+ {"SIOCSIFMETRIC", Const, 0},
+ {"SIOCSIFMTU", Const, 0},
+ {"SIOCSIFNAME", Const, 0},
+ {"SIOCSIFNETMASK", Const, 0},
+ {"SIOCSIFPFLAGS", Const, 0},
+ {"SIOCSIFPHYADDR", Const, 0},
+ {"SIOCSIFPHYS", Const, 0},
+ {"SIOCSIFPRIORITY", Const, 1},
+ {"SIOCSIFRDOMAIN", Const, 1},
+ {"SIOCSIFRTLABEL", Const, 1},
+ {"SIOCSIFRVNET", Const, 0},
+ {"SIOCSIFSLAVE", Const, 0},
+ {"SIOCSIFTIMESLOT", Const, 1},
+ {"SIOCSIFTXQLEN", Const, 0},
+ {"SIOCSIFVLAN", Const, 0},
+ {"SIOCSIFVNET", Const, 0},
+ {"SIOCSIFXFLAGS", Const, 1},
+ {"SIOCSLIFPHYADDR", Const, 0},
+ {"SIOCSLIFPHYRTABLE", Const, 1},
+ {"SIOCSLIFPHYTTL", Const, 3},
+ {"SIOCSLINKSTR", Const, 1},
+ {"SIOCSLOWAT", Const, 0},
+ {"SIOCSPGRP", Const, 0},
+ {"SIOCSRARP", Const, 0},
+ {"SIOCSSPPPPARAMS", Const, 3},
+ {"SIOCSVH", Const, 1},
+ {"SIOCSVNETID", Const, 3},
+ {"SIOCZIFDATA", Const, 1},
+ {"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1},
+ {"SIO_GET_INTERFACE_LIST", Const, 0},
+ {"SIO_KEEPALIVE_VALS", Const, 3},
+ {"SIO_UDP_CONNRESET", Const, 4},
+ {"SOCK_CLOEXEC", Const, 0},
+ {"SOCK_DCCP", Const, 0},
+ {"SOCK_DGRAM", Const, 0},
+ {"SOCK_FLAGS_MASK", Const, 1},
+ {"SOCK_MAXADDRLEN", Const, 0},
+ {"SOCK_NONBLOCK", Const, 0},
+ {"SOCK_NOSIGPIPE", Const, 1},
+ {"SOCK_PACKET", Const, 0},
+ {"SOCK_RAW", Const, 0},
+ {"SOCK_RDM", Const, 0},
+ {"SOCK_SEQPACKET", Const, 0},
+ {"SOCK_STREAM", Const, 0},
+ {"SOL_AAL", Const, 0},
+ {"SOL_ATM", Const, 0},
+ {"SOL_DECNET", Const, 0},
+ {"SOL_ICMPV6", Const, 0},
+ {"SOL_IP", Const, 0},
+ {"SOL_IPV6", Const, 0},
+ {"SOL_IRDA", Const, 0},
+ {"SOL_PACKET", Const, 0},
+ {"SOL_RAW", Const, 0},
+ {"SOL_SOCKET", Const, 0},
+ {"SOL_TCP", Const, 0},
+ {"SOL_X25", Const, 0},
+ {"SOMAXCONN", Const, 0},
+ {"SO_ACCEPTCONN", Const, 0},
+ {"SO_ACCEPTFILTER", Const, 0},
+ {"SO_ATTACH_FILTER", Const, 0},
+ {"SO_BINDANY", Const, 1},
+ {"SO_BINDTODEVICE", Const, 0},
+ {"SO_BINTIME", Const, 0},
+ {"SO_BROADCAST", Const, 0},
+ {"SO_BSDCOMPAT", Const, 0},
+ {"SO_DEBUG", Const, 0},
+ {"SO_DETACH_FILTER", Const, 0},
+ {"SO_DOMAIN", Const, 0},
+ {"SO_DONTROUTE", Const, 0},
+ {"SO_DONTTRUNC", Const, 0},
+ {"SO_ERROR", Const, 0},
+ {"SO_KEEPALIVE", Const, 0},
+ {"SO_LABEL", Const, 0},
+ {"SO_LINGER", Const, 0},
+ {"SO_LINGER_SEC", Const, 0},
+ {"SO_LISTENINCQLEN", Const, 0},
+ {"SO_LISTENQLEN", Const, 0},
+ {"SO_LISTENQLIMIT", Const, 0},
+ {"SO_MARK", Const, 0},
+ {"SO_NETPROC", Const, 1},
+ {"SO_NKE", Const, 0},
+ {"SO_NOADDRERR", Const, 0},
+ {"SO_NOHEADER", Const, 1},
+ {"SO_NOSIGPIPE", Const, 0},
+ {"SO_NOTIFYCONFLICT", Const, 0},
+ {"SO_NO_CHECK", Const, 0},
+ {"SO_NO_DDP", Const, 0},
+ {"SO_NO_OFFLOAD", Const, 0},
+ {"SO_NP_EXTENSIONS", Const, 0},
+ {"SO_NREAD", Const, 0},
+ {"SO_NUMRCVPKT", Const, 16},
+ {"SO_NWRITE", Const, 0},
+ {"SO_OOBINLINE", Const, 0},
+ {"SO_OVERFLOWED", Const, 1},
+ {"SO_PASSCRED", Const, 0},
+ {"SO_PASSSEC", Const, 0},
+ {"SO_PEERCRED", Const, 0},
+ {"SO_PEERLABEL", Const, 0},
+ {"SO_PEERNAME", Const, 0},
+ {"SO_PEERSEC", Const, 0},
+ {"SO_PRIORITY", Const, 0},
+ {"SO_PROTOCOL", Const, 0},
+ {"SO_PROTOTYPE", Const, 1},
+ {"SO_RANDOMPORT", Const, 0},
+ {"SO_RCVBUF", Const, 0},
+ {"SO_RCVBUFFORCE", Const, 0},
+ {"SO_RCVLOWAT", Const, 0},
+ {"SO_RCVTIMEO", Const, 0},
+ {"SO_RESTRICTIONS", Const, 0},
+ {"SO_RESTRICT_DENYIN", Const, 0},
+ {"SO_RESTRICT_DENYOUT", Const, 0},
+ {"SO_RESTRICT_DENYSET", Const, 0},
+ {"SO_REUSEADDR", Const, 0},
+ {"SO_REUSEPORT", Const, 0},
+ {"SO_REUSESHAREUID", Const, 0},
+ {"SO_RTABLE", Const, 1},
+ {"SO_RXQ_OVFL", Const, 0},
+ {"SO_SECURITY_AUTHENTICATION", Const, 0},
+ {"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0},
+ {"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0},
+ {"SO_SETFIB", Const, 0},
+ {"SO_SNDBUF", Const, 0},
+ {"SO_SNDBUFFORCE", Const, 0},
+ {"SO_SNDLOWAT", Const, 0},
+ {"SO_SNDTIMEO", Const, 0},
+ {"SO_SPLICE", Const, 1},
+ {"SO_TIMESTAMP", Const, 0},
+ {"SO_TIMESTAMPING", Const, 0},
+ {"SO_TIMESTAMPNS", Const, 0},
+ {"SO_TIMESTAMP_MONOTONIC", Const, 0},
+ {"SO_TYPE", Const, 0},
+ {"SO_UPCALLCLOSEWAIT", Const, 0},
+ {"SO_UPDATE_ACCEPT_CONTEXT", Const, 0},
+ {"SO_UPDATE_CONNECT_CONTEXT", Const, 1},
+ {"SO_USELOOPBACK", Const, 0},
+ {"SO_USER_COOKIE", Const, 1},
+ {"SO_VENDOR", Const, 3},
+ {"SO_WANTMORE", Const, 0},
+ {"SO_WANTOOBFLAG", Const, 0},
+ {"SSLExtraCertChainPolicyPara", Type, 0},
+ {"SSLExtraCertChainPolicyPara.AuthType", Field, 0},
+ {"SSLExtraCertChainPolicyPara.Checks", Field, 0},
+ {"SSLExtraCertChainPolicyPara.ServerName", Field, 0},
+ {"SSLExtraCertChainPolicyPara.Size", Field, 0},
+ {"STANDARD_RIGHTS_ALL", Const, 0},
+ {"STANDARD_RIGHTS_EXECUTE", Const, 0},
+ {"STANDARD_RIGHTS_READ", Const, 0},
+ {"STANDARD_RIGHTS_REQUIRED", Const, 0},
+ {"STANDARD_RIGHTS_WRITE", Const, 0},
+ {"STARTF_USESHOWWINDOW", Const, 0},
+ {"STARTF_USESTDHANDLES", Const, 0},
+ {"STD_ERROR_HANDLE", Const, 0},
+ {"STD_INPUT_HANDLE", Const, 0},
+ {"STD_OUTPUT_HANDLE", Const, 0},
+ {"SUBLANG_ENGLISH_US", Const, 0},
+ {"SW_FORCEMINIMIZE", Const, 0},
+ {"SW_HIDE", Const, 0},
+ {"SW_MAXIMIZE", Const, 0},
+ {"SW_MINIMIZE", Const, 0},
+ {"SW_NORMAL", Const, 0},
+ {"SW_RESTORE", Const, 0},
+ {"SW_SHOW", Const, 0},
+ {"SW_SHOWDEFAULT", Const, 0},
+ {"SW_SHOWMAXIMIZED", Const, 0},
+ {"SW_SHOWMINIMIZED", Const, 0},
+ {"SW_SHOWMINNOACTIVE", Const, 0},
+ {"SW_SHOWNA", Const, 0},
+ {"SW_SHOWNOACTIVATE", Const, 0},
+ {"SW_SHOWNORMAL", Const, 0},
+ {"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4},
+ {"SYNCHRONIZE", Const, 0},
+ {"SYSCTL_VERSION", Const, 1},
+ {"SYSCTL_VERS_0", Const, 1},
+ {"SYSCTL_VERS_1", Const, 1},
+ {"SYSCTL_VERS_MASK", Const, 1},
+ {"SYS_ABORT2", Const, 0},
+ {"SYS_ACCEPT", Const, 0},
+ {"SYS_ACCEPT4", Const, 0},
+ {"SYS_ACCEPT_NOCANCEL", Const, 0},
+ {"SYS_ACCESS", Const, 0},
+ {"SYS_ACCESS_EXTENDED", Const, 0},
+ {"SYS_ACCT", Const, 0},
+ {"SYS_ADD_KEY", Const, 0},
+ {"SYS_ADD_PROFIL", Const, 0},
+ {"SYS_ADJFREQ", Const, 1},
+ {"SYS_ADJTIME", Const, 0},
+ {"SYS_ADJTIMEX", Const, 0},
+ {"SYS_AFS_SYSCALL", Const, 0},
+ {"SYS_AIO_CANCEL", Const, 0},
+ {"SYS_AIO_ERROR", Const, 0},
+ {"SYS_AIO_FSYNC", Const, 0},
+ {"SYS_AIO_MLOCK", Const, 14},
+ {"SYS_AIO_READ", Const, 0},
+ {"SYS_AIO_RETURN", Const, 0},
+ {"SYS_AIO_SUSPEND", Const, 0},
+ {"SYS_AIO_SUSPEND_NOCANCEL", Const, 0},
+ {"SYS_AIO_WAITCOMPLETE", Const, 14},
+ {"SYS_AIO_WRITE", Const, 0},
+ {"SYS_ALARM", Const, 0},
+ {"SYS_ARCH_PRCTL", Const, 0},
+ {"SYS_ARM_FADVISE64_64", Const, 0},
+ {"SYS_ARM_SYNC_FILE_RANGE", Const, 0},
+ {"SYS_ATGETMSG", Const, 0},
+ {"SYS_ATPGETREQ", Const, 0},
+ {"SYS_ATPGETRSP", Const, 0},
+ {"SYS_ATPSNDREQ", Const, 0},
+ {"SYS_ATPSNDRSP", Const, 0},
+ {"SYS_ATPUTMSG", Const, 0},
+ {"SYS_ATSOCKET", Const, 0},
+ {"SYS_AUDIT", Const, 0},
+ {"SYS_AUDITCTL", Const, 0},
+ {"SYS_AUDITON", Const, 0},
+ {"SYS_AUDIT_SESSION_JOIN", Const, 0},
+ {"SYS_AUDIT_SESSION_PORT", Const, 0},
+ {"SYS_AUDIT_SESSION_SELF", Const, 0},
+ {"SYS_BDFLUSH", Const, 0},
+ {"SYS_BIND", Const, 0},
+ {"SYS_BINDAT", Const, 3},
+ {"SYS_BREAK", Const, 0},
+ {"SYS_BRK", Const, 0},
+ {"SYS_BSDTHREAD_CREATE", Const, 0},
+ {"SYS_BSDTHREAD_REGISTER", Const, 0},
+ {"SYS_BSDTHREAD_TERMINATE", Const, 0},
+ {"SYS_CAPGET", Const, 0},
+ {"SYS_CAPSET", Const, 0},
+ {"SYS_CAP_ENTER", Const, 0},
+ {"SYS_CAP_FCNTLS_GET", Const, 1},
+ {"SYS_CAP_FCNTLS_LIMIT", Const, 1},
+ {"SYS_CAP_GETMODE", Const, 0},
+ {"SYS_CAP_GETRIGHTS", Const, 0},
+ {"SYS_CAP_IOCTLS_GET", Const, 1},
+ {"SYS_CAP_IOCTLS_LIMIT", Const, 1},
+ {"SYS_CAP_NEW", Const, 0},
+ {"SYS_CAP_RIGHTS_GET", Const, 1},
+ {"SYS_CAP_RIGHTS_LIMIT", Const, 1},
+ {"SYS_CHDIR", Const, 0},
+ {"SYS_CHFLAGS", Const, 0},
+ {"SYS_CHFLAGSAT", Const, 3},
+ {"SYS_CHMOD", Const, 0},
+ {"SYS_CHMOD_EXTENDED", Const, 0},
+ {"SYS_CHOWN", Const, 0},
+ {"SYS_CHOWN32", Const, 0},
+ {"SYS_CHROOT", Const, 0},
+ {"SYS_CHUD", Const, 0},
+ {"SYS_CLOCK_ADJTIME", Const, 0},
+ {"SYS_CLOCK_GETCPUCLOCKID2", Const, 1},
+ {"SYS_CLOCK_GETRES", Const, 0},
+ {"SYS_CLOCK_GETTIME", Const, 0},
+ {"SYS_CLOCK_NANOSLEEP", Const, 0},
+ {"SYS_CLOCK_SETTIME", Const, 0},
+ {"SYS_CLONE", Const, 0},
+ {"SYS_CLOSE", Const, 0},
+ {"SYS_CLOSEFROM", Const, 0},
+ {"SYS_CLOSE_NOCANCEL", Const, 0},
+ {"SYS_CONNECT", Const, 0},
+ {"SYS_CONNECTAT", Const, 3},
+ {"SYS_CONNECT_NOCANCEL", Const, 0},
+ {"SYS_COPYFILE", Const, 0},
+ {"SYS_CPUSET", Const, 0},
+ {"SYS_CPUSET_GETAFFINITY", Const, 0},
+ {"SYS_CPUSET_GETID", Const, 0},
+ {"SYS_CPUSET_SETAFFINITY", Const, 0},
+ {"SYS_CPUSET_SETID", Const, 0},
+ {"SYS_CREAT", Const, 0},
+ {"SYS_CREATE_MODULE", Const, 0},
+ {"SYS_CSOPS", Const, 0},
+ {"SYS_CSOPS_AUDITTOKEN", Const, 16},
+ {"SYS_DELETE", Const, 0},
+ {"SYS_DELETE_MODULE", Const, 0},
+ {"SYS_DUP", Const, 0},
+ {"SYS_DUP2", Const, 0},
+ {"SYS_DUP3", Const, 0},
+ {"SYS_EACCESS", Const, 0},
+ {"SYS_EPOLL_CREATE", Const, 0},
+ {"SYS_EPOLL_CREATE1", Const, 0},
+ {"SYS_EPOLL_CTL", Const, 0},
+ {"SYS_EPOLL_CTL_OLD", Const, 0},
+ {"SYS_EPOLL_PWAIT", Const, 0},
+ {"SYS_EPOLL_WAIT", Const, 0},
+ {"SYS_EPOLL_WAIT_OLD", Const, 0},
+ {"SYS_EVENTFD", Const, 0},
+ {"SYS_EVENTFD2", Const, 0},
+ {"SYS_EXCHANGEDATA", Const, 0},
+ {"SYS_EXECVE", Const, 0},
+ {"SYS_EXIT", Const, 0},
+ {"SYS_EXIT_GROUP", Const, 0},
+ {"SYS_EXTATTRCTL", Const, 0},
+ {"SYS_EXTATTR_DELETE_FD", Const, 0},
+ {"SYS_EXTATTR_DELETE_FILE", Const, 0},
+ {"SYS_EXTATTR_DELETE_LINK", Const, 0},
+ {"SYS_EXTATTR_GET_FD", Const, 0},
+ {"SYS_EXTATTR_GET_FILE", Const, 0},
+ {"SYS_EXTATTR_GET_LINK", Const, 0},
+ {"SYS_EXTATTR_LIST_FD", Const, 0},
+ {"SYS_EXTATTR_LIST_FILE", Const, 0},
+ {"SYS_EXTATTR_LIST_LINK", Const, 0},
+ {"SYS_EXTATTR_SET_FD", Const, 0},
+ {"SYS_EXTATTR_SET_FILE", Const, 0},
+ {"SYS_EXTATTR_SET_LINK", Const, 0},
+ {"SYS_FACCESSAT", Const, 0},
+ {"SYS_FADVISE64", Const, 0},
+ {"SYS_FADVISE64_64", Const, 0},
+ {"SYS_FALLOCATE", Const, 0},
+ {"SYS_FANOTIFY_INIT", Const, 0},
+ {"SYS_FANOTIFY_MARK", Const, 0},
+ {"SYS_FCHDIR", Const, 0},
+ {"SYS_FCHFLAGS", Const, 0},
+ {"SYS_FCHMOD", Const, 0},
+ {"SYS_FCHMODAT", Const, 0},
+ {"SYS_FCHMOD_EXTENDED", Const, 0},
+ {"SYS_FCHOWN", Const, 0},
+ {"SYS_FCHOWN32", Const, 0},
+ {"SYS_FCHOWNAT", Const, 0},
+ {"SYS_FCHROOT", Const, 1},
+ {"SYS_FCNTL", Const, 0},
+ {"SYS_FCNTL64", Const, 0},
+ {"SYS_FCNTL_NOCANCEL", Const, 0},
+ {"SYS_FDATASYNC", Const, 0},
+ {"SYS_FEXECVE", Const, 0},
+ {"SYS_FFCLOCK_GETCOUNTER", Const, 0},
+ {"SYS_FFCLOCK_GETESTIMATE", Const, 0},
+ {"SYS_FFCLOCK_SETESTIMATE", Const, 0},
+ {"SYS_FFSCTL", Const, 0},
+ {"SYS_FGETATTRLIST", Const, 0},
+ {"SYS_FGETXATTR", Const, 0},
+ {"SYS_FHOPEN", Const, 0},
+ {"SYS_FHSTAT", Const, 0},
+ {"SYS_FHSTATFS", Const, 0},
+ {"SYS_FILEPORT_MAKEFD", Const, 0},
+ {"SYS_FILEPORT_MAKEPORT", Const, 0},
+ {"SYS_FKTRACE", Const, 1},
+ {"SYS_FLISTXATTR", Const, 0},
+ {"SYS_FLOCK", Const, 0},
+ {"SYS_FORK", Const, 0},
+ {"SYS_FPATHCONF", Const, 0},
+ {"SYS_FREEBSD6_FTRUNCATE", Const, 0},
+ {"SYS_FREEBSD6_LSEEK", Const, 0},
+ {"SYS_FREEBSD6_MMAP", Const, 0},
+ {"SYS_FREEBSD6_PREAD", Const, 0},
+ {"SYS_FREEBSD6_PWRITE", Const, 0},
+ {"SYS_FREEBSD6_TRUNCATE", Const, 0},
+ {"SYS_FREMOVEXATTR", Const, 0},
+ {"SYS_FSCTL", Const, 0},
+ {"SYS_FSETATTRLIST", Const, 0},
+ {"SYS_FSETXATTR", Const, 0},
+ {"SYS_FSGETPATH", Const, 0},
+ {"SYS_FSTAT", Const, 0},
+ {"SYS_FSTAT64", Const, 0},
+ {"SYS_FSTAT64_EXTENDED", Const, 0},
+ {"SYS_FSTATAT", Const, 0},
+ {"SYS_FSTATAT64", Const, 0},
+ {"SYS_FSTATFS", Const, 0},
+ {"SYS_FSTATFS64", Const, 0},
+ {"SYS_FSTATV", Const, 0},
+ {"SYS_FSTATVFS1", Const, 1},
+ {"SYS_FSTAT_EXTENDED", Const, 0},
+ {"SYS_FSYNC", Const, 0},
+ {"SYS_FSYNC_NOCANCEL", Const, 0},
+ {"SYS_FSYNC_RANGE", Const, 1},
+ {"SYS_FTIME", Const, 0},
+ {"SYS_FTRUNCATE", Const, 0},
+ {"SYS_FTRUNCATE64", Const, 0},
+ {"SYS_FUTEX", Const, 0},
+ {"SYS_FUTIMENS", Const, 1},
+ {"SYS_FUTIMES", Const, 0},
+ {"SYS_FUTIMESAT", Const, 0},
+ {"SYS_GETATTRLIST", Const, 0},
+ {"SYS_GETAUDIT", Const, 0},
+ {"SYS_GETAUDIT_ADDR", Const, 0},
+ {"SYS_GETAUID", Const, 0},
+ {"SYS_GETCONTEXT", Const, 0},
+ {"SYS_GETCPU", Const, 0},
+ {"SYS_GETCWD", Const, 0},
+ {"SYS_GETDENTS", Const, 0},
+ {"SYS_GETDENTS64", Const, 0},
+ {"SYS_GETDIRENTRIES", Const, 0},
+ {"SYS_GETDIRENTRIES64", Const, 0},
+ {"SYS_GETDIRENTRIESATTR", Const, 0},
+ {"SYS_GETDTABLECOUNT", Const, 1},
+ {"SYS_GETDTABLESIZE", Const, 0},
+ {"SYS_GETEGID", Const, 0},
+ {"SYS_GETEGID32", Const, 0},
+ {"SYS_GETEUID", Const, 0},
+ {"SYS_GETEUID32", Const, 0},
+ {"SYS_GETFH", Const, 0},
+ {"SYS_GETFSSTAT", Const, 0},
+ {"SYS_GETFSSTAT64", Const, 0},
+ {"SYS_GETGID", Const, 0},
+ {"SYS_GETGID32", Const, 0},
+ {"SYS_GETGROUPS", Const, 0},
+ {"SYS_GETGROUPS32", Const, 0},
+ {"SYS_GETHOSTUUID", Const, 0},
+ {"SYS_GETITIMER", Const, 0},
+ {"SYS_GETLCID", Const, 0},
+ {"SYS_GETLOGIN", Const, 0},
+ {"SYS_GETLOGINCLASS", Const, 0},
+ {"SYS_GETPEERNAME", Const, 0},
+ {"SYS_GETPGID", Const, 0},
+ {"SYS_GETPGRP", Const, 0},
+ {"SYS_GETPID", Const, 0},
+ {"SYS_GETPMSG", Const, 0},
+ {"SYS_GETPPID", Const, 0},
+ {"SYS_GETPRIORITY", Const, 0},
+ {"SYS_GETRESGID", Const, 0},
+ {"SYS_GETRESGID32", Const, 0},
+ {"SYS_GETRESUID", Const, 0},
+ {"SYS_GETRESUID32", Const, 0},
+ {"SYS_GETRLIMIT", Const, 0},
+ {"SYS_GETRTABLE", Const, 1},
+ {"SYS_GETRUSAGE", Const, 0},
+ {"SYS_GETSGROUPS", Const, 0},
+ {"SYS_GETSID", Const, 0},
+ {"SYS_GETSOCKNAME", Const, 0},
+ {"SYS_GETSOCKOPT", Const, 0},
+ {"SYS_GETTHRID", Const, 1},
+ {"SYS_GETTID", Const, 0},
+ {"SYS_GETTIMEOFDAY", Const, 0},
+ {"SYS_GETUID", Const, 0},
+ {"SYS_GETUID32", Const, 0},
+ {"SYS_GETVFSSTAT", Const, 1},
+ {"SYS_GETWGROUPS", Const, 0},
+ {"SYS_GETXATTR", Const, 0},
+ {"SYS_GET_KERNEL_SYMS", Const, 0},
+ {"SYS_GET_MEMPOLICY", Const, 0},
+ {"SYS_GET_ROBUST_LIST", Const, 0},
+ {"SYS_GET_THREAD_AREA", Const, 0},
+ {"SYS_GSSD_SYSCALL", Const, 14},
+ {"SYS_GTTY", Const, 0},
+ {"SYS_IDENTITYSVC", Const, 0},
+ {"SYS_IDLE", Const, 0},
+ {"SYS_INITGROUPS", Const, 0},
+ {"SYS_INIT_MODULE", Const, 0},
+ {"SYS_INOTIFY_ADD_WATCH", Const, 0},
+ {"SYS_INOTIFY_INIT", Const, 0},
+ {"SYS_INOTIFY_INIT1", Const, 0},
+ {"SYS_INOTIFY_RM_WATCH", Const, 0},
+ {"SYS_IOCTL", Const, 0},
+ {"SYS_IOPERM", Const, 0},
+ {"SYS_IOPL", Const, 0},
+ {"SYS_IOPOLICYSYS", Const, 0},
+ {"SYS_IOPRIO_GET", Const, 0},
+ {"SYS_IOPRIO_SET", Const, 0},
+ {"SYS_IO_CANCEL", Const, 0},
+ {"SYS_IO_DESTROY", Const, 0},
+ {"SYS_IO_GETEVENTS", Const, 0},
+ {"SYS_IO_SETUP", Const, 0},
+ {"SYS_IO_SUBMIT", Const, 0},
+ {"SYS_IPC", Const, 0},
+ {"SYS_ISSETUGID", Const, 0},
+ {"SYS_JAIL", Const, 0},
+ {"SYS_JAIL_ATTACH", Const, 0},
+ {"SYS_JAIL_GET", Const, 0},
+ {"SYS_JAIL_REMOVE", Const, 0},
+ {"SYS_JAIL_SET", Const, 0},
+ {"SYS_KAS_INFO", Const, 16},
+ {"SYS_KDEBUG_TRACE", Const, 0},
+ {"SYS_KENV", Const, 0},
+ {"SYS_KEVENT", Const, 0},
+ {"SYS_KEVENT64", Const, 0},
+ {"SYS_KEXEC_LOAD", Const, 0},
+ {"SYS_KEYCTL", Const, 0},
+ {"SYS_KILL", Const, 0},
+ {"SYS_KLDFIND", Const, 0},
+ {"SYS_KLDFIRSTMOD", Const, 0},
+ {"SYS_KLDLOAD", Const, 0},
+ {"SYS_KLDNEXT", Const, 0},
+ {"SYS_KLDSTAT", Const, 0},
+ {"SYS_KLDSYM", Const, 0},
+ {"SYS_KLDUNLOAD", Const, 0},
+ {"SYS_KLDUNLOADF", Const, 0},
+ {"SYS_KMQ_NOTIFY", Const, 14},
+ {"SYS_KMQ_OPEN", Const, 14},
+ {"SYS_KMQ_SETATTR", Const, 14},
+ {"SYS_KMQ_TIMEDRECEIVE", Const, 14},
+ {"SYS_KMQ_TIMEDSEND", Const, 14},
+ {"SYS_KMQ_UNLINK", Const, 14},
+ {"SYS_KQUEUE", Const, 0},
+ {"SYS_KQUEUE1", Const, 1},
+ {"SYS_KSEM_CLOSE", Const, 14},
+ {"SYS_KSEM_DESTROY", Const, 14},
+ {"SYS_KSEM_GETVALUE", Const, 14},
+ {"SYS_KSEM_INIT", Const, 14},
+ {"SYS_KSEM_OPEN", Const, 14},
+ {"SYS_KSEM_POST", Const, 14},
+ {"SYS_KSEM_TIMEDWAIT", Const, 14},
+ {"SYS_KSEM_TRYWAIT", Const, 14},
+ {"SYS_KSEM_UNLINK", Const, 14},
+ {"SYS_KSEM_WAIT", Const, 14},
+ {"SYS_KTIMER_CREATE", Const, 0},
+ {"SYS_KTIMER_DELETE", Const, 0},
+ {"SYS_KTIMER_GETOVERRUN", Const, 0},
+ {"SYS_KTIMER_GETTIME", Const, 0},
+ {"SYS_KTIMER_SETTIME", Const, 0},
+ {"SYS_KTRACE", Const, 0},
+ {"SYS_LCHFLAGS", Const, 0},
+ {"SYS_LCHMOD", Const, 0},
+ {"SYS_LCHOWN", Const, 0},
+ {"SYS_LCHOWN32", Const, 0},
+ {"SYS_LEDGER", Const, 16},
+ {"SYS_LGETFH", Const, 0},
+ {"SYS_LGETXATTR", Const, 0},
+ {"SYS_LINK", Const, 0},
+ {"SYS_LINKAT", Const, 0},
+ {"SYS_LIO_LISTIO", Const, 0},
+ {"SYS_LISTEN", Const, 0},
+ {"SYS_LISTXATTR", Const, 0},
+ {"SYS_LLISTXATTR", Const, 0},
+ {"SYS_LOCK", Const, 0},
+ {"SYS_LOOKUP_DCOOKIE", Const, 0},
+ {"SYS_LPATHCONF", Const, 0},
+ {"SYS_LREMOVEXATTR", Const, 0},
+ {"SYS_LSEEK", Const, 0},
+ {"SYS_LSETXATTR", Const, 0},
+ {"SYS_LSTAT", Const, 0},
+ {"SYS_LSTAT64", Const, 0},
+ {"SYS_LSTAT64_EXTENDED", Const, 0},
+ {"SYS_LSTATV", Const, 0},
+ {"SYS_LSTAT_EXTENDED", Const, 0},
+ {"SYS_LUTIMES", Const, 0},
+ {"SYS_MAC_SYSCALL", Const, 0},
+ {"SYS_MADVISE", Const, 0},
+ {"SYS_MADVISE1", Const, 0},
+ {"SYS_MAXSYSCALL", Const, 0},
+ {"SYS_MBIND", Const, 0},
+ {"SYS_MIGRATE_PAGES", Const, 0},
+ {"SYS_MINCORE", Const, 0},
+ {"SYS_MINHERIT", Const, 0},
+ {"SYS_MKCOMPLEX", Const, 0},
+ {"SYS_MKDIR", Const, 0},
+ {"SYS_MKDIRAT", Const, 0},
+ {"SYS_MKDIR_EXTENDED", Const, 0},
+ {"SYS_MKFIFO", Const, 0},
+ {"SYS_MKFIFOAT", Const, 0},
+ {"SYS_MKFIFO_EXTENDED", Const, 0},
+ {"SYS_MKNOD", Const, 0},
+ {"SYS_MKNODAT", Const, 0},
+ {"SYS_MLOCK", Const, 0},
+ {"SYS_MLOCKALL", Const, 0},
+ {"SYS_MMAP", Const, 0},
+ {"SYS_MMAP2", Const, 0},
+ {"SYS_MODCTL", Const, 1},
+ {"SYS_MODFIND", Const, 0},
+ {"SYS_MODFNEXT", Const, 0},
+ {"SYS_MODIFY_LDT", Const, 0},
+ {"SYS_MODNEXT", Const, 0},
+ {"SYS_MODSTAT", Const, 0},
+ {"SYS_MODWATCH", Const, 0},
+ {"SYS_MOUNT", Const, 0},
+ {"SYS_MOVE_PAGES", Const, 0},
+ {"SYS_MPROTECT", Const, 0},
+ {"SYS_MPX", Const, 0},
+ {"SYS_MQUERY", Const, 1},
+ {"SYS_MQ_GETSETATTR", Const, 0},
+ {"SYS_MQ_NOTIFY", Const, 0},
+ {"SYS_MQ_OPEN", Const, 0},
+ {"SYS_MQ_TIMEDRECEIVE", Const, 0},
+ {"SYS_MQ_TIMEDSEND", Const, 0},
+ {"SYS_MQ_UNLINK", Const, 0},
+ {"SYS_MREMAP", Const, 0},
+ {"SYS_MSGCTL", Const, 0},
+ {"SYS_MSGGET", Const, 0},
+ {"SYS_MSGRCV", Const, 0},
+ {"SYS_MSGRCV_NOCANCEL", Const, 0},
+ {"SYS_MSGSND", Const, 0},
+ {"SYS_MSGSND_NOCANCEL", Const, 0},
+ {"SYS_MSGSYS", Const, 0},
+ {"SYS_MSYNC", Const, 0},
+ {"SYS_MSYNC_NOCANCEL", Const, 0},
+ {"SYS_MUNLOCK", Const, 0},
+ {"SYS_MUNLOCKALL", Const, 0},
+ {"SYS_MUNMAP", Const, 0},
+ {"SYS_NAME_TO_HANDLE_AT", Const, 0},
+ {"SYS_NANOSLEEP", Const, 0},
+ {"SYS_NEWFSTATAT", Const, 0},
+ {"SYS_NFSCLNT", Const, 0},
+ {"SYS_NFSSERVCTL", Const, 0},
+ {"SYS_NFSSVC", Const, 0},
+ {"SYS_NFSTAT", Const, 0},
+ {"SYS_NICE", Const, 0},
+ {"SYS_NLM_SYSCALL", Const, 14},
+ {"SYS_NLSTAT", Const, 0},
+ {"SYS_NMOUNT", Const, 0},
+ {"SYS_NSTAT", Const, 0},
+ {"SYS_NTP_ADJTIME", Const, 0},
+ {"SYS_NTP_GETTIME", Const, 0},
+ {"SYS_NUMA_GETAFFINITY", Const, 14},
+ {"SYS_NUMA_SETAFFINITY", Const, 14},
+ {"SYS_OABI_SYSCALL_BASE", Const, 0},
+ {"SYS_OBREAK", Const, 0},
+ {"SYS_OLDFSTAT", Const, 0},
+ {"SYS_OLDLSTAT", Const, 0},
+ {"SYS_OLDOLDUNAME", Const, 0},
+ {"SYS_OLDSTAT", Const, 0},
+ {"SYS_OLDUNAME", Const, 0},
+ {"SYS_OPEN", Const, 0},
+ {"SYS_OPENAT", Const, 0},
+ {"SYS_OPENBSD_POLL", Const, 0},
+ {"SYS_OPEN_BY_HANDLE_AT", Const, 0},
+ {"SYS_OPEN_DPROTECTED_NP", Const, 16},
+ {"SYS_OPEN_EXTENDED", Const, 0},
+ {"SYS_OPEN_NOCANCEL", Const, 0},
+ {"SYS_OVADVISE", Const, 0},
+ {"SYS_PACCEPT", Const, 1},
+ {"SYS_PATHCONF", Const, 0},
+ {"SYS_PAUSE", Const, 0},
+ {"SYS_PCICONFIG_IOBASE", Const, 0},
+ {"SYS_PCICONFIG_READ", Const, 0},
+ {"SYS_PCICONFIG_WRITE", Const, 0},
+ {"SYS_PDFORK", Const, 0},
+ {"SYS_PDGETPID", Const, 0},
+ {"SYS_PDKILL", Const, 0},
+ {"SYS_PERF_EVENT_OPEN", Const, 0},
+ {"SYS_PERSONALITY", Const, 0},
+ {"SYS_PID_HIBERNATE", Const, 0},
+ {"SYS_PID_RESUME", Const, 0},
+ {"SYS_PID_SHUTDOWN_SOCKETS", Const, 0},
+ {"SYS_PID_SUSPEND", Const, 0},
+ {"SYS_PIPE", Const, 0},
+ {"SYS_PIPE2", Const, 0},
+ {"SYS_PIVOT_ROOT", Const, 0},
+ {"SYS_PMC_CONTROL", Const, 1},
+ {"SYS_PMC_GET_INFO", Const, 1},
+ {"SYS_POLL", Const, 0},
+ {"SYS_POLLTS", Const, 1},
+ {"SYS_POLL_NOCANCEL", Const, 0},
+ {"SYS_POSIX_FADVISE", Const, 0},
+ {"SYS_POSIX_FALLOCATE", Const, 0},
+ {"SYS_POSIX_OPENPT", Const, 0},
+ {"SYS_POSIX_SPAWN", Const, 0},
+ {"SYS_PPOLL", Const, 0},
+ {"SYS_PRCTL", Const, 0},
+ {"SYS_PREAD", Const, 0},
+ {"SYS_PREAD64", Const, 0},
+ {"SYS_PREADV", Const, 0},
+ {"SYS_PREAD_NOCANCEL", Const, 0},
+ {"SYS_PRLIMIT64", Const, 0},
+ {"SYS_PROCCTL", Const, 3},
+ {"SYS_PROCESS_POLICY", Const, 0},
+ {"SYS_PROCESS_VM_READV", Const, 0},
+ {"SYS_PROCESS_VM_WRITEV", Const, 0},
+ {"SYS_PROC_INFO", Const, 0},
+ {"SYS_PROF", Const, 0},
+ {"SYS_PROFIL", Const, 0},
+ {"SYS_PSELECT", Const, 0},
+ {"SYS_PSELECT6", Const, 0},
+ {"SYS_PSET_ASSIGN", Const, 1},
+ {"SYS_PSET_CREATE", Const, 1},
+ {"SYS_PSET_DESTROY", Const, 1},
+ {"SYS_PSYNCH_CVBROAD", Const, 0},
+ {"SYS_PSYNCH_CVCLRPREPOST", Const, 0},
+ {"SYS_PSYNCH_CVSIGNAL", Const, 0},
+ {"SYS_PSYNCH_CVWAIT", Const, 0},
+ {"SYS_PSYNCH_MUTEXDROP", Const, 0},
+ {"SYS_PSYNCH_MUTEXWAIT", Const, 0},
+ {"SYS_PSYNCH_RW_DOWNGRADE", Const, 0},
+ {"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0},
+ {"SYS_PSYNCH_RW_RDLOCK", Const, 0},
+ {"SYS_PSYNCH_RW_UNLOCK", Const, 0},
+ {"SYS_PSYNCH_RW_UNLOCK2", Const, 0},
+ {"SYS_PSYNCH_RW_UPGRADE", Const, 0},
+ {"SYS_PSYNCH_RW_WRLOCK", Const, 0},
+ {"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0},
+ {"SYS_PTRACE", Const, 0},
+ {"SYS_PUTPMSG", Const, 0},
+ {"SYS_PWRITE", Const, 0},
+ {"SYS_PWRITE64", Const, 0},
+ {"SYS_PWRITEV", Const, 0},
+ {"SYS_PWRITE_NOCANCEL", Const, 0},
+ {"SYS_QUERY_MODULE", Const, 0},
+ {"SYS_QUOTACTL", Const, 0},
+ {"SYS_RASCTL", Const, 1},
+ {"SYS_RCTL_ADD_RULE", Const, 0},
+ {"SYS_RCTL_GET_LIMITS", Const, 0},
+ {"SYS_RCTL_GET_RACCT", Const, 0},
+ {"SYS_RCTL_GET_RULES", Const, 0},
+ {"SYS_RCTL_REMOVE_RULE", Const, 0},
+ {"SYS_READ", Const, 0},
+ {"SYS_READAHEAD", Const, 0},
+ {"SYS_READDIR", Const, 0},
+ {"SYS_READLINK", Const, 0},
+ {"SYS_READLINKAT", Const, 0},
+ {"SYS_READV", Const, 0},
+ {"SYS_READV_NOCANCEL", Const, 0},
+ {"SYS_READ_NOCANCEL", Const, 0},
+ {"SYS_REBOOT", Const, 0},
+ {"SYS_RECV", Const, 0},
+ {"SYS_RECVFROM", Const, 0},
+ {"SYS_RECVFROM_NOCANCEL", Const, 0},
+ {"SYS_RECVMMSG", Const, 0},
+ {"SYS_RECVMSG", Const, 0},
+ {"SYS_RECVMSG_NOCANCEL", Const, 0},
+ {"SYS_REMAP_FILE_PAGES", Const, 0},
+ {"SYS_REMOVEXATTR", Const, 0},
+ {"SYS_RENAME", Const, 0},
+ {"SYS_RENAMEAT", Const, 0},
+ {"SYS_REQUEST_KEY", Const, 0},
+ {"SYS_RESTART_SYSCALL", Const, 0},
+ {"SYS_REVOKE", Const, 0},
+ {"SYS_RFORK", Const, 0},
+ {"SYS_RMDIR", Const, 0},
+ {"SYS_RTPRIO", Const, 0},
+ {"SYS_RTPRIO_THREAD", Const, 0},
+ {"SYS_RT_SIGACTION", Const, 0},
+ {"SYS_RT_SIGPENDING", Const, 0},
+ {"SYS_RT_SIGPROCMASK", Const, 0},
+ {"SYS_RT_SIGQUEUEINFO", Const, 0},
+ {"SYS_RT_SIGRETURN", Const, 0},
+ {"SYS_RT_SIGSUSPEND", Const, 0},
+ {"SYS_RT_SIGTIMEDWAIT", Const, 0},
+ {"SYS_RT_TGSIGQUEUEINFO", Const, 0},
+ {"SYS_SBRK", Const, 0},
+ {"SYS_SCHED_GETAFFINITY", Const, 0},
+ {"SYS_SCHED_GETPARAM", Const, 0},
+ {"SYS_SCHED_GETSCHEDULER", Const, 0},
+ {"SYS_SCHED_GET_PRIORITY_MAX", Const, 0},
+ {"SYS_SCHED_GET_PRIORITY_MIN", Const, 0},
+ {"SYS_SCHED_RR_GET_INTERVAL", Const, 0},
+ {"SYS_SCHED_SETAFFINITY", Const, 0},
+ {"SYS_SCHED_SETPARAM", Const, 0},
+ {"SYS_SCHED_SETSCHEDULER", Const, 0},
+ {"SYS_SCHED_YIELD", Const, 0},
+ {"SYS_SCTP_GENERIC_RECVMSG", Const, 0},
+ {"SYS_SCTP_GENERIC_SENDMSG", Const, 0},
+ {"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0},
+ {"SYS_SCTP_PEELOFF", Const, 0},
+ {"SYS_SEARCHFS", Const, 0},
+ {"SYS_SECURITY", Const, 0},
+ {"SYS_SELECT", Const, 0},
+ {"SYS_SELECT_NOCANCEL", Const, 0},
+ {"SYS_SEMCONFIG", Const, 1},
+ {"SYS_SEMCTL", Const, 0},
+ {"SYS_SEMGET", Const, 0},
+ {"SYS_SEMOP", Const, 0},
+ {"SYS_SEMSYS", Const, 0},
+ {"SYS_SEMTIMEDOP", Const, 0},
+ {"SYS_SEM_CLOSE", Const, 0},
+ {"SYS_SEM_DESTROY", Const, 0},
+ {"SYS_SEM_GETVALUE", Const, 0},
+ {"SYS_SEM_INIT", Const, 0},
+ {"SYS_SEM_OPEN", Const, 0},
+ {"SYS_SEM_POST", Const, 0},
+ {"SYS_SEM_TRYWAIT", Const, 0},
+ {"SYS_SEM_UNLINK", Const, 0},
+ {"SYS_SEM_WAIT", Const, 0},
+ {"SYS_SEM_WAIT_NOCANCEL", Const, 0},
+ {"SYS_SEND", Const, 0},
+ {"SYS_SENDFILE", Const, 0},
+ {"SYS_SENDFILE64", Const, 0},
+ {"SYS_SENDMMSG", Const, 0},
+ {"SYS_SENDMSG", Const, 0},
+ {"SYS_SENDMSG_NOCANCEL", Const, 0},
+ {"SYS_SENDTO", Const, 0},
+ {"SYS_SENDTO_NOCANCEL", Const, 0},
+ {"SYS_SETATTRLIST", Const, 0},
+ {"SYS_SETAUDIT", Const, 0},
+ {"SYS_SETAUDIT_ADDR", Const, 0},
+ {"SYS_SETAUID", Const, 0},
+ {"SYS_SETCONTEXT", Const, 0},
+ {"SYS_SETDOMAINNAME", Const, 0},
+ {"SYS_SETEGID", Const, 0},
+ {"SYS_SETEUID", Const, 0},
+ {"SYS_SETFIB", Const, 0},
+ {"SYS_SETFSGID", Const, 0},
+ {"SYS_SETFSGID32", Const, 0},
+ {"SYS_SETFSUID", Const, 0},
+ {"SYS_SETFSUID32", Const, 0},
+ {"SYS_SETGID", Const, 0},
+ {"SYS_SETGID32", Const, 0},
+ {"SYS_SETGROUPS", Const, 0},
+ {"SYS_SETGROUPS32", Const, 0},
+ {"SYS_SETHOSTNAME", Const, 0},
+ {"SYS_SETITIMER", Const, 0},
+ {"SYS_SETLCID", Const, 0},
+ {"SYS_SETLOGIN", Const, 0},
+ {"SYS_SETLOGINCLASS", Const, 0},
+ {"SYS_SETNS", Const, 0},
+ {"SYS_SETPGID", Const, 0},
+ {"SYS_SETPRIORITY", Const, 0},
+ {"SYS_SETPRIVEXEC", Const, 0},
+ {"SYS_SETREGID", Const, 0},
+ {"SYS_SETREGID32", Const, 0},
+ {"SYS_SETRESGID", Const, 0},
+ {"SYS_SETRESGID32", Const, 0},
+ {"SYS_SETRESUID", Const, 0},
+ {"SYS_SETRESUID32", Const, 0},
+ {"SYS_SETREUID", Const, 0},
+ {"SYS_SETREUID32", Const, 0},
+ {"SYS_SETRLIMIT", Const, 0},
+ {"SYS_SETRTABLE", Const, 1},
+ {"SYS_SETSGROUPS", Const, 0},
+ {"SYS_SETSID", Const, 0},
+ {"SYS_SETSOCKOPT", Const, 0},
+ {"SYS_SETTID", Const, 0},
+ {"SYS_SETTID_WITH_PID", Const, 0},
+ {"SYS_SETTIMEOFDAY", Const, 0},
+ {"SYS_SETUID", Const, 0},
+ {"SYS_SETUID32", Const, 0},
+ {"SYS_SETWGROUPS", Const, 0},
+ {"SYS_SETXATTR", Const, 0},
+ {"SYS_SET_MEMPOLICY", Const, 0},
+ {"SYS_SET_ROBUST_LIST", Const, 0},
+ {"SYS_SET_THREAD_AREA", Const, 0},
+ {"SYS_SET_TID_ADDRESS", Const, 0},
+ {"SYS_SGETMASK", Const, 0},
+ {"SYS_SHARED_REGION_CHECK_NP", Const, 0},
+ {"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0},
+ {"SYS_SHMAT", Const, 0},
+ {"SYS_SHMCTL", Const, 0},
+ {"SYS_SHMDT", Const, 0},
+ {"SYS_SHMGET", Const, 0},
+ {"SYS_SHMSYS", Const, 0},
+ {"SYS_SHM_OPEN", Const, 0},
+ {"SYS_SHM_UNLINK", Const, 0},
+ {"SYS_SHUTDOWN", Const, 0},
+ {"SYS_SIGACTION", Const, 0},
+ {"SYS_SIGALTSTACK", Const, 0},
+ {"SYS_SIGNAL", Const, 0},
+ {"SYS_SIGNALFD", Const, 0},
+ {"SYS_SIGNALFD4", Const, 0},
+ {"SYS_SIGPENDING", Const, 0},
+ {"SYS_SIGPROCMASK", Const, 0},
+ {"SYS_SIGQUEUE", Const, 0},
+ {"SYS_SIGQUEUEINFO", Const, 1},
+ {"SYS_SIGRETURN", Const, 0},
+ {"SYS_SIGSUSPEND", Const, 0},
+ {"SYS_SIGSUSPEND_NOCANCEL", Const, 0},
+ {"SYS_SIGTIMEDWAIT", Const, 0},
+ {"SYS_SIGWAIT", Const, 0},
+ {"SYS_SIGWAITINFO", Const, 0},
+ {"SYS_SOCKET", Const, 0},
+ {"SYS_SOCKETCALL", Const, 0},
+ {"SYS_SOCKETPAIR", Const, 0},
+ {"SYS_SPLICE", Const, 0},
+ {"SYS_SSETMASK", Const, 0},
+ {"SYS_SSTK", Const, 0},
+ {"SYS_STACK_SNAPSHOT", Const, 0},
+ {"SYS_STAT", Const, 0},
+ {"SYS_STAT64", Const, 0},
+ {"SYS_STAT64_EXTENDED", Const, 0},
+ {"SYS_STATFS", Const, 0},
+ {"SYS_STATFS64", Const, 0},
+ {"SYS_STATV", Const, 0},
+ {"SYS_STATVFS1", Const, 1},
+ {"SYS_STAT_EXTENDED", Const, 0},
+ {"SYS_STIME", Const, 0},
+ {"SYS_STTY", Const, 0},
+ {"SYS_SWAPCONTEXT", Const, 0},
+ {"SYS_SWAPCTL", Const, 1},
+ {"SYS_SWAPOFF", Const, 0},
+ {"SYS_SWAPON", Const, 0},
+ {"SYS_SYMLINK", Const, 0},
+ {"SYS_SYMLINKAT", Const, 0},
+ {"SYS_SYNC", Const, 0},
+ {"SYS_SYNCFS", Const, 0},
+ {"SYS_SYNC_FILE_RANGE", Const, 0},
+ {"SYS_SYSARCH", Const, 0},
+ {"SYS_SYSCALL", Const, 0},
+ {"SYS_SYSCALL_BASE", Const, 0},
+ {"SYS_SYSFS", Const, 0},
+ {"SYS_SYSINFO", Const, 0},
+ {"SYS_SYSLOG", Const, 0},
+ {"SYS_TEE", Const, 0},
+ {"SYS_TGKILL", Const, 0},
+ {"SYS_THREAD_SELFID", Const, 0},
+ {"SYS_THR_CREATE", Const, 0},
+ {"SYS_THR_EXIT", Const, 0},
+ {"SYS_THR_KILL", Const, 0},
+ {"SYS_THR_KILL2", Const, 0},
+ {"SYS_THR_NEW", Const, 0},
+ {"SYS_THR_SELF", Const, 0},
+ {"SYS_THR_SET_NAME", Const, 0},
+ {"SYS_THR_SUSPEND", Const, 0},
+ {"SYS_THR_WAKE", Const, 0},
+ {"SYS_TIME", Const, 0},
+ {"SYS_TIMERFD_CREATE", Const, 0},
+ {"SYS_TIMERFD_GETTIME", Const, 0},
+ {"SYS_TIMERFD_SETTIME", Const, 0},
+ {"SYS_TIMER_CREATE", Const, 0},
+ {"SYS_TIMER_DELETE", Const, 0},
+ {"SYS_TIMER_GETOVERRUN", Const, 0},
+ {"SYS_TIMER_GETTIME", Const, 0},
+ {"SYS_TIMER_SETTIME", Const, 0},
+ {"SYS_TIMES", Const, 0},
+ {"SYS_TKILL", Const, 0},
+ {"SYS_TRUNCATE", Const, 0},
+ {"SYS_TRUNCATE64", Const, 0},
+ {"SYS_TUXCALL", Const, 0},
+ {"SYS_UGETRLIMIT", Const, 0},
+ {"SYS_ULIMIT", Const, 0},
+ {"SYS_UMASK", Const, 0},
+ {"SYS_UMASK_EXTENDED", Const, 0},
+ {"SYS_UMOUNT", Const, 0},
+ {"SYS_UMOUNT2", Const, 0},
+ {"SYS_UNAME", Const, 0},
+ {"SYS_UNDELETE", Const, 0},
+ {"SYS_UNLINK", Const, 0},
+ {"SYS_UNLINKAT", Const, 0},
+ {"SYS_UNMOUNT", Const, 0},
+ {"SYS_UNSHARE", Const, 0},
+ {"SYS_USELIB", Const, 0},
+ {"SYS_USTAT", Const, 0},
+ {"SYS_UTIME", Const, 0},
+ {"SYS_UTIMENSAT", Const, 0},
+ {"SYS_UTIMES", Const, 0},
+ {"SYS_UTRACE", Const, 0},
+ {"SYS_UUIDGEN", Const, 0},
+ {"SYS_VADVISE", Const, 1},
+ {"SYS_VFORK", Const, 0},
+ {"SYS_VHANGUP", Const, 0},
+ {"SYS_VM86", Const, 0},
+ {"SYS_VM86OLD", Const, 0},
+ {"SYS_VMSPLICE", Const, 0},
+ {"SYS_VM_PRESSURE_MONITOR", Const, 0},
+ {"SYS_VSERVER", Const, 0},
+ {"SYS_WAIT4", Const, 0},
+ {"SYS_WAIT4_NOCANCEL", Const, 0},
+ {"SYS_WAIT6", Const, 1},
+ {"SYS_WAITEVENT", Const, 0},
+ {"SYS_WAITID", Const, 0},
+ {"SYS_WAITID_NOCANCEL", Const, 0},
+ {"SYS_WAITPID", Const, 0},
+ {"SYS_WATCHEVENT", Const, 0},
+ {"SYS_WORKQ_KERNRETURN", Const, 0},
+ {"SYS_WORKQ_OPEN", Const, 0},
+ {"SYS_WRITE", Const, 0},
+ {"SYS_WRITEV", Const, 0},
+ {"SYS_WRITEV_NOCANCEL", Const, 0},
+ {"SYS_WRITE_NOCANCEL", Const, 0},
+ {"SYS_YIELD", Const, 0},
+ {"SYS__LLSEEK", Const, 0},
+ {"SYS__LWP_CONTINUE", Const, 1},
+ {"SYS__LWP_CREATE", Const, 1},
+ {"SYS__LWP_CTL", Const, 1},
+ {"SYS__LWP_DETACH", Const, 1},
+ {"SYS__LWP_EXIT", Const, 1},
+ {"SYS__LWP_GETNAME", Const, 1},
+ {"SYS__LWP_GETPRIVATE", Const, 1},
+ {"SYS__LWP_KILL", Const, 1},
+ {"SYS__LWP_PARK", Const, 1},
+ {"SYS__LWP_SELF", Const, 1},
+ {"SYS__LWP_SETNAME", Const, 1},
+ {"SYS__LWP_SETPRIVATE", Const, 1},
+ {"SYS__LWP_SUSPEND", Const, 1},
+ {"SYS__LWP_UNPARK", Const, 1},
+ {"SYS__LWP_UNPARK_ALL", Const, 1},
+ {"SYS__LWP_WAIT", Const, 1},
+ {"SYS__LWP_WAKEUP", Const, 1},
+ {"SYS__NEWSELECT", Const, 0},
+ {"SYS__PSET_BIND", Const, 1},
+ {"SYS__SCHED_GETAFFINITY", Const, 1},
+ {"SYS__SCHED_GETPARAM", Const, 1},
+ {"SYS__SCHED_SETAFFINITY", Const, 1},
+ {"SYS__SCHED_SETPARAM", Const, 1},
+ {"SYS__SYSCTL", Const, 0},
+ {"SYS__UMTX_LOCK", Const, 0},
+ {"SYS__UMTX_OP", Const, 0},
+ {"SYS__UMTX_UNLOCK", Const, 0},
+ {"SYS___ACL_ACLCHECK_FD", Const, 0},
+ {"SYS___ACL_ACLCHECK_FILE", Const, 0},
+ {"SYS___ACL_ACLCHECK_LINK", Const, 0},
+ {"SYS___ACL_DELETE_FD", Const, 0},
+ {"SYS___ACL_DELETE_FILE", Const, 0},
+ {"SYS___ACL_DELETE_LINK", Const, 0},
+ {"SYS___ACL_GET_FD", Const, 0},
+ {"SYS___ACL_GET_FILE", Const, 0},
+ {"SYS___ACL_GET_LINK", Const, 0},
+ {"SYS___ACL_SET_FD", Const, 0},
+ {"SYS___ACL_SET_FILE", Const, 0},
+ {"SYS___ACL_SET_LINK", Const, 0},
+ {"SYS___CAP_RIGHTS_GET", Const, 14},
+ {"SYS___CLONE", Const, 1},
+ {"SYS___DISABLE_THREADSIGNAL", Const, 0},
+ {"SYS___GETCWD", Const, 0},
+ {"SYS___GETLOGIN", Const, 1},
+ {"SYS___GET_TCB", Const, 1},
+ {"SYS___MAC_EXECVE", Const, 0},
+ {"SYS___MAC_GETFSSTAT", Const, 0},
+ {"SYS___MAC_GET_FD", Const, 0},
+ {"SYS___MAC_GET_FILE", Const, 0},
+ {"SYS___MAC_GET_LCID", Const, 0},
+ {"SYS___MAC_GET_LCTX", Const, 0},
+ {"SYS___MAC_GET_LINK", Const, 0},
+ {"SYS___MAC_GET_MOUNT", Const, 0},
+ {"SYS___MAC_GET_PID", Const, 0},
+ {"SYS___MAC_GET_PROC", Const, 0},
+ {"SYS___MAC_MOUNT", Const, 0},
+ {"SYS___MAC_SET_FD", Const, 0},
+ {"SYS___MAC_SET_FILE", Const, 0},
+ {"SYS___MAC_SET_LCTX", Const, 0},
+ {"SYS___MAC_SET_LINK", Const, 0},
+ {"SYS___MAC_SET_PROC", Const, 0},
+ {"SYS___MAC_SYSCALL", Const, 0},
+ {"SYS___OLD_SEMWAIT_SIGNAL", Const, 0},
+ {"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0},
+ {"SYS___POSIX_CHOWN", Const, 1},
+ {"SYS___POSIX_FCHOWN", Const, 1},
+ {"SYS___POSIX_LCHOWN", Const, 1},
+ {"SYS___POSIX_RENAME", Const, 1},
+ {"SYS___PTHREAD_CANCELED", Const, 0},
+ {"SYS___PTHREAD_CHDIR", Const, 0},
+ {"SYS___PTHREAD_FCHDIR", Const, 0},
+ {"SYS___PTHREAD_KILL", Const, 0},
+ {"SYS___PTHREAD_MARKCANCEL", Const, 0},
+ {"SYS___PTHREAD_SIGMASK", Const, 0},
+ {"SYS___QUOTACTL", Const, 1},
+ {"SYS___SEMCTL", Const, 1},
+ {"SYS___SEMWAIT_SIGNAL", Const, 0},
+ {"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0},
+ {"SYS___SETLOGIN", Const, 1},
+ {"SYS___SETUGID", Const, 0},
+ {"SYS___SET_TCB", Const, 1},
+ {"SYS___SIGACTION_SIGTRAMP", Const, 1},
+ {"SYS___SIGTIMEDWAIT", Const, 1},
+ {"SYS___SIGWAIT", Const, 0},
+ {"SYS___SIGWAIT_NOCANCEL", Const, 0},
+ {"SYS___SYSCTL", Const, 0},
+ {"SYS___TFORK", Const, 1},
+ {"SYS___THREXIT", Const, 1},
+ {"SYS___THRSIGDIVERT", Const, 1},
+ {"SYS___THRSLEEP", Const, 1},
+ {"SYS___THRWAKEUP", Const, 1},
+ {"S_ARCH1", Const, 1},
+ {"S_ARCH2", Const, 1},
+ {"S_BLKSIZE", Const, 0},
+ {"S_IEXEC", Const, 0},
+ {"S_IFBLK", Const, 0},
+ {"S_IFCHR", Const, 0},
+ {"S_IFDIR", Const, 0},
+ {"S_IFIFO", Const, 0},
+ {"S_IFLNK", Const, 0},
+ {"S_IFMT", Const, 0},
+ {"S_IFREG", Const, 0},
+ {"S_IFSOCK", Const, 0},
+ {"S_IFWHT", Const, 0},
+ {"S_IREAD", Const, 0},
+ {"S_IRGRP", Const, 0},
+ {"S_IROTH", Const, 0},
+ {"S_IRUSR", Const, 0},
+ {"S_IRWXG", Const, 0},
+ {"S_IRWXO", Const, 0},
+ {"S_IRWXU", Const, 0},
+ {"S_ISGID", Const, 0},
+ {"S_ISTXT", Const, 0},
+ {"S_ISUID", Const, 0},
+ {"S_ISVTX", Const, 0},
+ {"S_IWGRP", Const, 0},
+ {"S_IWOTH", Const, 0},
+ {"S_IWRITE", Const, 0},
+ {"S_IWUSR", Const, 0},
+ {"S_IXGRP", Const, 0},
+ {"S_IXOTH", Const, 0},
+ {"S_IXUSR", Const, 0},
+ {"S_LOGIN_SET", Const, 1},
+ {"SecurityAttributes", Type, 0},
+ {"SecurityAttributes.InheritHandle", Field, 0},
+ {"SecurityAttributes.Length", Field, 0},
+ {"SecurityAttributes.SecurityDescriptor", Field, 0},
+ {"Seek", Func, 0},
+ {"Select", Func, 0},
+ {"Sendfile", Func, 0},
+ {"Sendmsg", Func, 0},
+ {"SendmsgN", Func, 3},
+ {"Sendto", Func, 0},
+ {"Servent", Type, 0},
+ {"Servent.Aliases", Field, 0},
+ {"Servent.Name", Field, 0},
+ {"Servent.Port", Field, 0},
+ {"Servent.Proto", Field, 0},
+ {"SetBpf", Func, 0},
+ {"SetBpfBuflen", Func, 0},
+ {"SetBpfDatalink", Func, 0},
+ {"SetBpfHeadercmpl", Func, 0},
+ {"SetBpfImmediate", Func, 0},
+ {"SetBpfInterface", Func, 0},
+ {"SetBpfPromisc", Func, 0},
+ {"SetBpfTimeout", Func, 0},
+ {"SetCurrentDirectory", Func, 0},
+ {"SetEndOfFile", Func, 0},
+ {"SetEnvironmentVariable", Func, 0},
+ {"SetFileAttributes", Func, 0},
+ {"SetFileCompletionNotificationModes", Func, 2},
+ {"SetFilePointer", Func, 0},
+ {"SetFileTime", Func, 0},
+ {"SetHandleInformation", Func, 0},
+ {"SetKevent", Func, 0},
+ {"SetLsfPromisc", Func, 0},
+ {"SetNonblock", Func, 0},
+ {"Setdomainname", Func, 0},
+ {"Setegid", Func, 0},
+ {"Setenv", Func, 0},
+ {"Seteuid", Func, 0},
+ {"Setfsgid", Func, 0},
+ {"Setfsuid", Func, 0},
+ {"Setgid", Func, 0},
+ {"Setgroups", Func, 0},
+ {"Sethostname", Func, 0},
+ {"Setlogin", Func, 0},
+ {"Setpgid", Func, 0},
+ {"Setpriority", Func, 0},
+ {"Setprivexec", Func, 0},
+ {"Setregid", Func, 0},
+ {"Setresgid", Func, 0},
+ {"Setresuid", Func, 0},
+ {"Setreuid", Func, 0},
+ {"Setrlimit", Func, 0},
+ {"Setsid", Func, 0},
+ {"Setsockopt", Func, 0},
+ {"SetsockoptByte", Func, 0},
+ {"SetsockoptICMPv6Filter", Func, 2},
+ {"SetsockoptIPMreq", Func, 0},
+ {"SetsockoptIPMreqn", Func, 0},
+ {"SetsockoptIPv6Mreq", Func, 0},
+ {"SetsockoptInet4Addr", Func, 0},
+ {"SetsockoptInt", Func, 0},
+ {"SetsockoptLinger", Func, 0},
+ {"SetsockoptString", Func, 0},
+ {"SetsockoptTimeval", Func, 0},
+ {"Settimeofday", Func, 0},
+ {"Setuid", Func, 0},
+ {"Setxattr", Func, 1},
+ {"Shutdown", Func, 0},
+ {"SidTypeAlias", Const, 0},
+ {"SidTypeComputer", Const, 0},
+ {"SidTypeDeletedAccount", Const, 0},
+ {"SidTypeDomain", Const, 0},
+ {"SidTypeGroup", Const, 0},
+ {"SidTypeInvalid", Const, 0},
+ {"SidTypeLabel", Const, 0},
+ {"SidTypeUnknown", Const, 0},
+ {"SidTypeUser", Const, 0},
+ {"SidTypeWellKnownGroup", Const, 0},
+ {"Signal", Type, 0},
+ {"SizeofBpfHdr", Const, 0},
+ {"SizeofBpfInsn", Const, 0},
+ {"SizeofBpfProgram", Const, 0},
+ {"SizeofBpfStat", Const, 0},
+ {"SizeofBpfVersion", Const, 0},
+ {"SizeofBpfZbuf", Const, 0},
+ {"SizeofBpfZbufHeader", Const, 0},
+ {"SizeofCmsghdr", Const, 0},
+ {"SizeofICMPv6Filter", Const, 2},
+ {"SizeofIPMreq", Const, 0},
+ {"SizeofIPMreqn", Const, 0},
+ {"SizeofIPv6MTUInfo", Const, 2},
+ {"SizeofIPv6Mreq", Const, 0},
+ {"SizeofIfAddrmsg", Const, 0},
+ {"SizeofIfAnnounceMsghdr", Const, 1},
+ {"SizeofIfData", Const, 0},
+ {"SizeofIfInfomsg", Const, 0},
+ {"SizeofIfMsghdr", Const, 0},
+ {"SizeofIfaMsghdr", Const, 0},
+ {"SizeofIfmaMsghdr", Const, 0},
+ {"SizeofIfmaMsghdr2", Const, 0},
+ {"SizeofInet4Pktinfo", Const, 0},
+ {"SizeofInet6Pktinfo", Const, 0},
+ {"SizeofInotifyEvent", Const, 0},
+ {"SizeofLinger", Const, 0},
+ {"SizeofMsghdr", Const, 0},
+ {"SizeofNlAttr", Const, 0},
+ {"SizeofNlMsgerr", Const, 0},
+ {"SizeofNlMsghdr", Const, 0},
+ {"SizeofRtAttr", Const, 0},
+ {"SizeofRtGenmsg", Const, 0},
+ {"SizeofRtMetrics", Const, 0},
+ {"SizeofRtMsg", Const, 0},
+ {"SizeofRtMsghdr", Const, 0},
+ {"SizeofRtNexthop", Const, 0},
+ {"SizeofSockFilter", Const, 0},
+ {"SizeofSockFprog", Const, 0},
+ {"SizeofSockaddrAny", Const, 0},
+ {"SizeofSockaddrDatalink", Const, 0},
+ {"SizeofSockaddrInet4", Const, 0},
+ {"SizeofSockaddrInet6", Const, 0},
+ {"SizeofSockaddrLinklayer", Const, 0},
+ {"SizeofSockaddrNetlink", Const, 0},
+ {"SizeofSockaddrUnix", Const, 0},
+ {"SizeofTCPInfo", Const, 1},
+ {"SizeofUcred", Const, 0},
+ {"SlicePtrFromStrings", Func, 1},
+ {"SockFilter", Type, 0},
+ {"SockFilter.Code", Field, 0},
+ {"SockFilter.Jf", Field, 0},
+ {"SockFilter.Jt", Field, 0},
+ {"SockFilter.K", Field, 0},
+ {"SockFprog", Type, 0},
+ {"SockFprog.Filter", Field, 0},
+ {"SockFprog.Len", Field, 0},
+ {"SockFprog.Pad_cgo_0", Field, 0},
+ {"Sockaddr", Type, 0},
+ {"SockaddrDatalink", Type, 0},
+ {"SockaddrDatalink.Alen", Field, 0},
+ {"SockaddrDatalink.Data", Field, 0},
+ {"SockaddrDatalink.Family", Field, 0},
+ {"SockaddrDatalink.Index", Field, 0},
+ {"SockaddrDatalink.Len", Field, 0},
+ {"SockaddrDatalink.Nlen", Field, 0},
+ {"SockaddrDatalink.Slen", Field, 0},
+ {"SockaddrDatalink.Type", Field, 0},
+ {"SockaddrGen", Type, 0},
+ {"SockaddrInet4", Type, 0},
+ {"SockaddrInet4.Addr", Field, 0},
+ {"SockaddrInet4.Port", Field, 0},
+ {"SockaddrInet6", Type, 0},
+ {"SockaddrInet6.Addr", Field, 0},
+ {"SockaddrInet6.Port", Field, 0},
+ {"SockaddrInet6.ZoneId", Field, 0},
+ {"SockaddrLinklayer", Type, 0},
+ {"SockaddrLinklayer.Addr", Field, 0},
+ {"SockaddrLinklayer.Halen", Field, 0},
+ {"SockaddrLinklayer.Hatype", Field, 0},
+ {"SockaddrLinklayer.Ifindex", Field, 0},
+ {"SockaddrLinklayer.Pkttype", Field, 0},
+ {"SockaddrLinklayer.Protocol", Field, 0},
+ {"SockaddrNetlink", Type, 0},
+ {"SockaddrNetlink.Family", Field, 0},
+ {"SockaddrNetlink.Groups", Field, 0},
+ {"SockaddrNetlink.Pad", Field, 0},
+ {"SockaddrNetlink.Pid", Field, 0},
+ {"SockaddrUnix", Type, 0},
+ {"SockaddrUnix.Name", Field, 0},
+ {"Socket", Func, 0},
+ {"SocketControlMessage", Type, 0},
+ {"SocketControlMessage.Data", Field, 0},
+ {"SocketControlMessage.Header", Field, 0},
+ {"SocketDisableIPv6", Var, 0},
+ {"Socketpair", Func, 0},
+ {"Splice", Func, 0},
+ {"StartProcess", Func, 0},
+ {"StartupInfo", Type, 0},
+ {"StartupInfo.Cb", Field, 0},
+ {"StartupInfo.Desktop", Field, 0},
+ {"StartupInfo.FillAttribute", Field, 0},
+ {"StartupInfo.Flags", Field, 0},
+ {"StartupInfo.ShowWindow", Field, 0},
+ {"StartupInfo.StdErr", Field, 0},
+ {"StartupInfo.StdInput", Field, 0},
+ {"StartupInfo.StdOutput", Field, 0},
+ {"StartupInfo.Title", Field, 0},
+ {"StartupInfo.X", Field, 0},
+ {"StartupInfo.XCountChars", Field, 0},
+ {"StartupInfo.XSize", Field, 0},
+ {"StartupInfo.Y", Field, 0},
+ {"StartupInfo.YCountChars", Field, 0},
+ {"StartupInfo.YSize", Field, 0},
+ {"Stat", Func, 0},
+ {"Stat_t", Type, 0},
+ {"Stat_t.Atim", Field, 0},
+ {"Stat_t.Atim_ext", Field, 12},
+ {"Stat_t.Atimespec", Field, 0},
+ {"Stat_t.Birthtimespec", Field, 0},
+ {"Stat_t.Blksize", Field, 0},
+ {"Stat_t.Blocks", Field, 0},
+ {"Stat_t.Btim_ext", Field, 12},
+ {"Stat_t.Ctim", Field, 0},
+ {"Stat_t.Ctim_ext", Field, 12},
+ {"Stat_t.Ctimespec", Field, 0},
+ {"Stat_t.Dev", Field, 0},
+ {"Stat_t.Flags", Field, 0},
+ {"Stat_t.Gen", Field, 0},
+ {"Stat_t.Gid", Field, 0},
+ {"Stat_t.Ino", Field, 0},
+ {"Stat_t.Lspare", Field, 0},
+ {"Stat_t.Lspare0", Field, 2},
+ {"Stat_t.Lspare1", Field, 2},
+ {"Stat_t.Mode", Field, 0},
+ {"Stat_t.Mtim", Field, 0},
+ {"Stat_t.Mtim_ext", Field, 12},
+ {"Stat_t.Mtimespec", Field, 0},
+ {"Stat_t.Nlink", Field, 0},
+ {"Stat_t.Pad_cgo_0", Field, 0},
+ {"Stat_t.Pad_cgo_1", Field, 0},
+ {"Stat_t.Pad_cgo_2", Field, 0},
+ {"Stat_t.Padding0", Field, 12},
+ {"Stat_t.Padding1", Field, 12},
+ {"Stat_t.Qspare", Field, 0},
+ {"Stat_t.Rdev", Field, 0},
+ {"Stat_t.Size", Field, 0},
+ {"Stat_t.Spare", Field, 2},
+ {"Stat_t.Uid", Field, 0},
+ {"Stat_t.X__pad0", Field, 0},
+ {"Stat_t.X__pad1", Field, 0},
+ {"Stat_t.X__pad2", Field, 0},
+ {"Stat_t.X__st_birthtim", Field, 2},
+ {"Stat_t.X__st_ino", Field, 0},
+ {"Stat_t.X__unused", Field, 0},
+ {"Statfs", Func, 0},
+ {"Statfs_t", Type, 0},
+ {"Statfs_t.Asyncreads", Field, 0},
+ {"Statfs_t.Asyncwrites", Field, 0},
+ {"Statfs_t.Bavail", Field, 0},
+ {"Statfs_t.Bfree", Field, 0},
+ {"Statfs_t.Blocks", Field, 0},
+ {"Statfs_t.Bsize", Field, 0},
+ {"Statfs_t.Charspare", Field, 0},
+ {"Statfs_t.F_asyncreads", Field, 2},
+ {"Statfs_t.F_asyncwrites", Field, 2},
+ {"Statfs_t.F_bavail", Field, 2},
+ {"Statfs_t.F_bfree", Field, 2},
+ {"Statfs_t.F_blocks", Field, 2},
+ {"Statfs_t.F_bsize", Field, 2},
+ {"Statfs_t.F_ctime", Field, 2},
+ {"Statfs_t.F_favail", Field, 2},
+ {"Statfs_t.F_ffree", Field, 2},
+ {"Statfs_t.F_files", Field, 2},
+ {"Statfs_t.F_flags", Field, 2},
+ {"Statfs_t.F_fsid", Field, 2},
+ {"Statfs_t.F_fstypename", Field, 2},
+ {"Statfs_t.F_iosize", Field, 2},
+ {"Statfs_t.F_mntfromname", Field, 2},
+ {"Statfs_t.F_mntfromspec", Field, 3},
+ {"Statfs_t.F_mntonname", Field, 2},
+ {"Statfs_t.F_namemax", Field, 2},
+ {"Statfs_t.F_owner", Field, 2},
+ {"Statfs_t.F_spare", Field, 2},
+ {"Statfs_t.F_syncreads", Field, 2},
+ {"Statfs_t.F_syncwrites", Field, 2},
+ {"Statfs_t.Ffree", Field, 0},
+ {"Statfs_t.Files", Field, 0},
+ {"Statfs_t.Flags", Field, 0},
+ {"Statfs_t.Frsize", Field, 0},
+ {"Statfs_t.Fsid", Field, 0},
+ {"Statfs_t.Fssubtype", Field, 0},
+ {"Statfs_t.Fstypename", Field, 0},
+ {"Statfs_t.Iosize", Field, 0},
+ {"Statfs_t.Mntfromname", Field, 0},
+ {"Statfs_t.Mntonname", Field, 0},
+ {"Statfs_t.Mount_info", Field, 2},
+ {"Statfs_t.Namelen", Field, 0},
+ {"Statfs_t.Namemax", Field, 0},
+ {"Statfs_t.Owner", Field, 0},
+ {"Statfs_t.Pad_cgo_0", Field, 0},
+ {"Statfs_t.Pad_cgo_1", Field, 2},
+ {"Statfs_t.Reserved", Field, 0},
+ {"Statfs_t.Spare", Field, 0},
+ {"Statfs_t.Syncreads", Field, 0},
+ {"Statfs_t.Syncwrites", Field, 0},
+ {"Statfs_t.Type", Field, 0},
+ {"Statfs_t.Version", Field, 0},
+ {"Stderr", Var, 0},
+ {"Stdin", Var, 0},
+ {"Stdout", Var, 0},
+ {"StringBytePtr", Func, 0},
+ {"StringByteSlice", Func, 0},
+ {"StringSlicePtr", Func, 0},
+ {"StringToSid", Func, 0},
+ {"StringToUTF16", Func, 0},
+ {"StringToUTF16Ptr", Func, 0},
+ {"Symlink", Func, 0},
+ {"Sync", Func, 0},
+ {"SyncFileRange", Func, 0},
+ {"SysProcAttr", Type, 0},
+ {"SysProcAttr.AdditionalInheritedHandles", Field, 17},
+ {"SysProcAttr.AmbientCaps", Field, 9},
+ {"SysProcAttr.CgroupFD", Field, 20},
+ {"SysProcAttr.Chroot", Field, 0},
+ {"SysProcAttr.Cloneflags", Field, 2},
+ {"SysProcAttr.CmdLine", Field, 0},
+ {"SysProcAttr.CreationFlags", Field, 1},
+ {"SysProcAttr.Credential", Field, 0},
+ {"SysProcAttr.Ctty", Field, 1},
+ {"SysProcAttr.Foreground", Field, 5},
+ {"SysProcAttr.GidMappings", Field, 4},
+ {"SysProcAttr.GidMappingsEnableSetgroups", Field, 5},
+ {"SysProcAttr.HideWindow", Field, 0},
+ {"SysProcAttr.Jail", Field, 21},
+ {"SysProcAttr.NoInheritHandles", Field, 16},
+ {"SysProcAttr.Noctty", Field, 0},
+ {"SysProcAttr.ParentProcess", Field, 17},
+ {"SysProcAttr.Pdeathsig", Field, 0},
+ {"SysProcAttr.Pgid", Field, 5},
+ {"SysProcAttr.PidFD", Field, 22},
+ {"SysProcAttr.ProcessAttributes", Field, 13},
+ {"SysProcAttr.Ptrace", Field, 0},
+ {"SysProcAttr.Setctty", Field, 0},
+ {"SysProcAttr.Setpgid", Field, 0},
+ {"SysProcAttr.Setsid", Field, 0},
+ {"SysProcAttr.ThreadAttributes", Field, 13},
+ {"SysProcAttr.Token", Field, 10},
+ {"SysProcAttr.UidMappings", Field, 4},
+ {"SysProcAttr.Unshareflags", Field, 7},
+ {"SysProcAttr.UseCgroupFD", Field, 20},
+ {"SysProcIDMap", Type, 4},
+ {"SysProcIDMap.ContainerID", Field, 4},
+ {"SysProcIDMap.HostID", Field, 4},
+ {"SysProcIDMap.Size", Field, 4},
+ {"Syscall", Func, 0},
+ {"Syscall12", Func, 0},
+ {"Syscall15", Func, 0},
+ {"Syscall18", Func, 12},
+ {"Syscall6", Func, 0},
+ {"Syscall9", Func, 0},
+ {"SyscallN", Func, 18},
+ {"Sysctl", Func, 0},
+ {"SysctlUint32", Func, 0},
+ {"Sysctlnode", Type, 2},
+ {"Sysctlnode.Flags", Field, 2},
+ {"Sysctlnode.Name", Field, 2},
+ {"Sysctlnode.Num", Field, 2},
+ {"Sysctlnode.Un", Field, 2},
+ {"Sysctlnode.Ver", Field, 2},
+ {"Sysctlnode.X__rsvd", Field, 2},
+ {"Sysctlnode.X_sysctl_desc", Field, 2},
+ {"Sysctlnode.X_sysctl_func", Field, 2},
+ {"Sysctlnode.X_sysctl_parent", Field, 2},
+ {"Sysctlnode.X_sysctl_size", Field, 2},
+ {"Sysinfo", Func, 0},
+ {"Sysinfo_t", Type, 0},
+ {"Sysinfo_t.Bufferram", Field, 0},
+ {"Sysinfo_t.Freehigh", Field, 0},
+ {"Sysinfo_t.Freeram", Field, 0},
+ {"Sysinfo_t.Freeswap", Field, 0},
+ {"Sysinfo_t.Loads", Field, 0},
+ {"Sysinfo_t.Pad", Field, 0},
+ {"Sysinfo_t.Pad_cgo_0", Field, 0},
+ {"Sysinfo_t.Pad_cgo_1", Field, 0},
+ {"Sysinfo_t.Procs", Field, 0},
+ {"Sysinfo_t.Sharedram", Field, 0},
+ {"Sysinfo_t.Totalhigh", Field, 0},
+ {"Sysinfo_t.Totalram", Field, 0},
+ {"Sysinfo_t.Totalswap", Field, 0},
+ {"Sysinfo_t.Unit", Field, 0},
+ {"Sysinfo_t.Uptime", Field, 0},
+ {"Sysinfo_t.X_f", Field, 0},
+ {"Systemtime", Type, 0},
+ {"Systemtime.Day", Field, 0},
+ {"Systemtime.DayOfWeek", Field, 0},
+ {"Systemtime.Hour", Field, 0},
+ {"Systemtime.Milliseconds", Field, 0},
+ {"Systemtime.Minute", Field, 0},
+ {"Systemtime.Month", Field, 0},
+ {"Systemtime.Second", Field, 0},
+ {"Systemtime.Year", Field, 0},
+ {"TCGETS", Const, 0},
+ {"TCIFLUSH", Const, 1},
+ {"TCIOFLUSH", Const, 1},
+ {"TCOFLUSH", Const, 1},
+ {"TCPInfo", Type, 1},
+ {"TCPInfo.Advmss", Field, 1},
+ {"TCPInfo.Ato", Field, 1},
+ {"TCPInfo.Backoff", Field, 1},
+ {"TCPInfo.Ca_state", Field, 1},
+ {"TCPInfo.Fackets", Field, 1},
+ {"TCPInfo.Last_ack_recv", Field, 1},
+ {"TCPInfo.Last_ack_sent", Field, 1},
+ {"TCPInfo.Last_data_recv", Field, 1},
+ {"TCPInfo.Last_data_sent", Field, 1},
+ {"TCPInfo.Lost", Field, 1},
+ {"TCPInfo.Options", Field, 1},
+ {"TCPInfo.Pad_cgo_0", Field, 1},
+ {"TCPInfo.Pmtu", Field, 1},
+ {"TCPInfo.Probes", Field, 1},
+ {"TCPInfo.Rcv_mss", Field, 1},
+ {"TCPInfo.Rcv_rtt", Field, 1},
+ {"TCPInfo.Rcv_space", Field, 1},
+ {"TCPInfo.Rcv_ssthresh", Field, 1},
+ {"TCPInfo.Reordering", Field, 1},
+ {"TCPInfo.Retrans", Field, 1},
+ {"TCPInfo.Retransmits", Field, 1},
+ {"TCPInfo.Rto", Field, 1},
+ {"TCPInfo.Rtt", Field, 1},
+ {"TCPInfo.Rttvar", Field, 1},
+ {"TCPInfo.Sacked", Field, 1},
+ {"TCPInfo.Snd_cwnd", Field, 1},
+ {"TCPInfo.Snd_mss", Field, 1},
+ {"TCPInfo.Snd_ssthresh", Field, 1},
+ {"TCPInfo.State", Field, 1},
+ {"TCPInfo.Total_retrans", Field, 1},
+ {"TCPInfo.Unacked", Field, 1},
+ {"TCPKeepalive", Type, 3},
+ {"TCPKeepalive.Interval", Field, 3},
+ {"TCPKeepalive.OnOff", Field, 3},
+ {"TCPKeepalive.Time", Field, 3},
+ {"TCP_CA_NAME_MAX", Const, 0},
+ {"TCP_CONGCTL", Const, 1},
+ {"TCP_CONGESTION", Const, 0},
+ {"TCP_CONNECTIONTIMEOUT", Const, 0},
+ {"TCP_CORK", Const, 0},
+ {"TCP_DEFER_ACCEPT", Const, 0},
+ {"TCP_ENABLE_ECN", Const, 16},
+ {"TCP_INFO", Const, 0},
+ {"TCP_KEEPALIVE", Const, 0},
+ {"TCP_KEEPCNT", Const, 0},
+ {"TCP_KEEPIDLE", Const, 0},
+ {"TCP_KEEPINIT", Const, 1},
+ {"TCP_KEEPINTVL", Const, 0},
+ {"TCP_LINGER2", Const, 0},
+ {"TCP_MAXBURST", Const, 0},
+ {"TCP_MAXHLEN", Const, 0},
+ {"TCP_MAXOLEN", Const, 0},
+ {"TCP_MAXSEG", Const, 0},
+ {"TCP_MAXWIN", Const, 0},
+ {"TCP_MAX_SACK", Const, 0},
+ {"TCP_MAX_WINSHIFT", Const, 0},
+ {"TCP_MD5SIG", Const, 0},
+ {"TCP_MD5SIG_MAXKEYLEN", Const, 0},
+ {"TCP_MINMSS", Const, 0},
+ {"TCP_MINMSSOVERLOAD", Const, 0},
+ {"TCP_MSS", Const, 0},
+ {"TCP_NODELAY", Const, 0},
+ {"TCP_NOOPT", Const, 0},
+ {"TCP_NOPUSH", Const, 0},
+ {"TCP_NOTSENT_LOWAT", Const, 16},
+ {"TCP_NSTATES", Const, 1},
+ {"TCP_QUICKACK", Const, 0},
+ {"TCP_RXT_CONNDROPTIME", Const, 0},
+ {"TCP_RXT_FINDROP", Const, 0},
+ {"TCP_SACK_ENABLE", Const, 1},
+ {"TCP_SENDMOREACKS", Const, 16},
+ {"TCP_SYNCNT", Const, 0},
+ {"TCP_VENDOR", Const, 3},
+ {"TCP_WINDOW_CLAMP", Const, 0},
+ {"TCSAFLUSH", Const, 1},
+ {"TCSETS", Const, 0},
+ {"TF_DISCONNECT", Const, 0},
+ {"TF_REUSE_SOCKET", Const, 0},
+ {"TF_USE_DEFAULT_WORKER", Const, 0},
+ {"TF_USE_KERNEL_APC", Const, 0},
+ {"TF_USE_SYSTEM_THREAD", Const, 0},
+ {"TF_WRITE_BEHIND", Const, 0},
+ {"TH32CS_INHERIT", Const, 4},
+ {"TH32CS_SNAPALL", Const, 4},
+ {"TH32CS_SNAPHEAPLIST", Const, 4},
+ {"TH32CS_SNAPMODULE", Const, 4},
+ {"TH32CS_SNAPMODULE32", Const, 4},
+ {"TH32CS_SNAPPROCESS", Const, 4},
+ {"TH32CS_SNAPTHREAD", Const, 4},
+ {"TIME_ZONE_ID_DAYLIGHT", Const, 0},
+ {"TIME_ZONE_ID_STANDARD", Const, 0},
+ {"TIME_ZONE_ID_UNKNOWN", Const, 0},
+ {"TIOCCBRK", Const, 0},
+ {"TIOCCDTR", Const, 0},
+ {"TIOCCONS", Const, 0},
+ {"TIOCDCDTIMESTAMP", Const, 0},
+ {"TIOCDRAIN", Const, 0},
+ {"TIOCDSIMICROCODE", Const, 0},
+ {"TIOCEXCL", Const, 0},
+ {"TIOCEXT", Const, 0},
+ {"TIOCFLAG_CDTRCTS", Const, 1},
+ {"TIOCFLAG_CLOCAL", Const, 1},
+ {"TIOCFLAG_CRTSCTS", Const, 1},
+ {"TIOCFLAG_MDMBUF", Const, 1},
+ {"TIOCFLAG_PPS", Const, 1},
+ {"TIOCFLAG_SOFTCAR", Const, 1},
+ {"TIOCFLUSH", Const, 0},
+ {"TIOCGDEV", Const, 0},
+ {"TIOCGDRAINWAIT", Const, 0},
+ {"TIOCGETA", Const, 0},
+ {"TIOCGETD", Const, 0},
+ {"TIOCGFLAGS", Const, 1},
+ {"TIOCGICOUNT", Const, 0},
+ {"TIOCGLCKTRMIOS", Const, 0},
+ {"TIOCGLINED", Const, 1},
+ {"TIOCGPGRP", Const, 0},
+ {"TIOCGPTN", Const, 0},
+ {"TIOCGQSIZE", Const, 1},
+ {"TIOCGRANTPT", Const, 1},
+ {"TIOCGRS485", Const, 0},
+ {"TIOCGSERIAL", Const, 0},
+ {"TIOCGSID", Const, 0},
+ {"TIOCGSIZE", Const, 1},
+ {"TIOCGSOFTCAR", Const, 0},
+ {"TIOCGTSTAMP", Const, 1},
+ {"TIOCGWINSZ", Const, 0},
+ {"TIOCINQ", Const, 0},
+ {"TIOCIXOFF", Const, 0},
+ {"TIOCIXON", Const, 0},
+ {"TIOCLINUX", Const, 0},
+ {"TIOCMBIC", Const, 0},
+ {"TIOCMBIS", Const, 0},
+ {"TIOCMGDTRWAIT", Const, 0},
+ {"TIOCMGET", Const, 0},
+ {"TIOCMIWAIT", Const, 0},
+ {"TIOCMODG", Const, 0},
+ {"TIOCMODS", Const, 0},
+ {"TIOCMSDTRWAIT", Const, 0},
+ {"TIOCMSET", Const, 0},
+ {"TIOCM_CAR", Const, 0},
+ {"TIOCM_CD", Const, 0},
+ {"TIOCM_CTS", Const, 0},
+ {"TIOCM_DCD", Const, 0},
+ {"TIOCM_DSR", Const, 0},
+ {"TIOCM_DTR", Const, 0},
+ {"TIOCM_LE", Const, 0},
+ {"TIOCM_RI", Const, 0},
+ {"TIOCM_RNG", Const, 0},
+ {"TIOCM_RTS", Const, 0},
+ {"TIOCM_SR", Const, 0},
+ {"TIOCM_ST", Const, 0},
+ {"TIOCNOTTY", Const, 0},
+ {"TIOCNXCL", Const, 0},
+ {"TIOCOUTQ", Const, 0},
+ {"TIOCPKT", Const, 0},
+ {"TIOCPKT_DATA", Const, 0},
+ {"TIOCPKT_DOSTOP", Const, 0},
+ {"TIOCPKT_FLUSHREAD", Const, 0},
+ {"TIOCPKT_FLUSHWRITE", Const, 0},
+ {"TIOCPKT_IOCTL", Const, 0},
+ {"TIOCPKT_NOSTOP", Const, 0},
+ {"TIOCPKT_START", Const, 0},
+ {"TIOCPKT_STOP", Const, 0},
+ {"TIOCPTMASTER", Const, 0},
+ {"TIOCPTMGET", Const, 1},
+ {"TIOCPTSNAME", Const, 1},
+ {"TIOCPTYGNAME", Const, 0},
+ {"TIOCPTYGRANT", Const, 0},
+ {"TIOCPTYUNLK", Const, 0},
+ {"TIOCRCVFRAME", Const, 1},
+ {"TIOCREMOTE", Const, 0},
+ {"TIOCSBRK", Const, 0},
+ {"TIOCSCONS", Const, 0},
+ {"TIOCSCTTY", Const, 0},
+ {"TIOCSDRAINWAIT", Const, 0},
+ {"TIOCSDTR", Const, 0},
+ {"TIOCSERCONFIG", Const, 0},
+ {"TIOCSERGETLSR", Const, 0},
+ {"TIOCSERGETMULTI", Const, 0},
+ {"TIOCSERGSTRUCT", Const, 0},
+ {"TIOCSERGWILD", Const, 0},
+ {"TIOCSERSETMULTI", Const, 0},
+ {"TIOCSERSWILD", Const, 0},
+ {"TIOCSER_TEMT", Const, 0},
+ {"TIOCSETA", Const, 0},
+ {"TIOCSETAF", Const, 0},
+ {"TIOCSETAW", Const, 0},
+ {"TIOCSETD", Const, 0},
+ {"TIOCSFLAGS", Const, 1},
+ {"TIOCSIG", Const, 0},
+ {"TIOCSLCKTRMIOS", Const, 0},
+ {"TIOCSLINED", Const, 1},
+ {"TIOCSPGRP", Const, 0},
+ {"TIOCSPTLCK", Const, 0},
+ {"TIOCSQSIZE", Const, 1},
+ {"TIOCSRS485", Const, 0},
+ {"TIOCSSERIAL", Const, 0},
+ {"TIOCSSIZE", Const, 1},
+ {"TIOCSSOFTCAR", Const, 0},
+ {"TIOCSTART", Const, 0},
+ {"TIOCSTAT", Const, 0},
+ {"TIOCSTI", Const, 0},
+ {"TIOCSTOP", Const, 0},
+ {"TIOCSTSTAMP", Const, 1},
+ {"TIOCSWINSZ", Const, 0},
+ {"TIOCTIMESTAMP", Const, 0},
+ {"TIOCUCNTL", Const, 0},
+ {"TIOCVHANGUP", Const, 0},
+ {"TIOCXMTFRAME", Const, 1},
+ {"TOKEN_ADJUST_DEFAULT", Const, 0},
+ {"TOKEN_ADJUST_GROUPS", Const, 0},
+ {"TOKEN_ADJUST_PRIVILEGES", Const, 0},
+ {"TOKEN_ADJUST_SESSIONID", Const, 11},
+ {"TOKEN_ALL_ACCESS", Const, 0},
+ {"TOKEN_ASSIGN_PRIMARY", Const, 0},
+ {"TOKEN_DUPLICATE", Const, 0},
+ {"TOKEN_EXECUTE", Const, 0},
+ {"TOKEN_IMPERSONATE", Const, 0},
+ {"TOKEN_QUERY", Const, 0},
+ {"TOKEN_QUERY_SOURCE", Const, 0},
+ {"TOKEN_READ", Const, 0},
+ {"TOKEN_WRITE", Const, 0},
+ {"TOSTOP", Const, 0},
+ {"TRUNCATE_EXISTING", Const, 0},
+ {"TUNATTACHFILTER", Const, 0},
+ {"TUNDETACHFILTER", Const, 0},
+ {"TUNGETFEATURES", Const, 0},
+ {"TUNGETIFF", Const, 0},
+ {"TUNGETSNDBUF", Const, 0},
+ {"TUNGETVNETHDRSZ", Const, 0},
+ {"TUNSETDEBUG", Const, 0},
+ {"TUNSETGROUP", Const, 0},
+ {"TUNSETIFF", Const, 0},
+ {"TUNSETLINK", Const, 0},
+ {"TUNSETNOCSUM", Const, 0},
+ {"TUNSETOFFLOAD", Const, 0},
+ {"TUNSETOWNER", Const, 0},
+ {"TUNSETPERSIST", Const, 0},
+ {"TUNSETSNDBUF", Const, 0},
+ {"TUNSETTXFILTER", Const, 0},
+ {"TUNSETVNETHDRSZ", Const, 0},
+ {"Tee", Func, 0},
+ {"TerminateProcess", Func, 0},
+ {"Termios", Type, 0},
+ {"Termios.Cc", Field, 0},
+ {"Termios.Cflag", Field, 0},
+ {"Termios.Iflag", Field, 0},
+ {"Termios.Ispeed", Field, 0},
+ {"Termios.Lflag", Field, 0},
+ {"Termios.Line", Field, 0},
+ {"Termios.Oflag", Field, 0},
+ {"Termios.Ospeed", Field, 0},
+ {"Termios.Pad_cgo_0", Field, 0},
+ {"Tgkill", Func, 0},
+ {"Time", Func, 0},
+ {"Time_t", Type, 0},
+ {"Times", Func, 0},
+ {"Timespec", Type, 0},
+ {"Timespec.Nsec", Field, 0},
+ {"Timespec.Pad_cgo_0", Field, 2},
+ {"Timespec.Sec", Field, 0},
+ {"TimespecToNsec", Func, 0},
+ {"Timeval", Type, 0},
+ {"Timeval.Pad_cgo_0", Field, 0},
+ {"Timeval.Sec", Field, 0},
+ {"Timeval.Usec", Field, 0},
+ {"Timeval32", Type, 0},
+ {"Timeval32.Sec", Field, 0},
+ {"Timeval32.Usec", Field, 0},
+ {"TimevalToNsec", Func, 0},
+ {"Timex", Type, 0},
+ {"Timex.Calcnt", Field, 0},
+ {"Timex.Constant", Field, 0},
+ {"Timex.Errcnt", Field, 0},
+ {"Timex.Esterror", Field, 0},
+ {"Timex.Freq", Field, 0},
+ {"Timex.Jitcnt", Field, 0},
+ {"Timex.Jitter", Field, 0},
+ {"Timex.Maxerror", Field, 0},
+ {"Timex.Modes", Field, 0},
+ {"Timex.Offset", Field, 0},
+ {"Timex.Pad_cgo_0", Field, 0},
+ {"Timex.Pad_cgo_1", Field, 0},
+ {"Timex.Pad_cgo_2", Field, 0},
+ {"Timex.Pad_cgo_3", Field, 0},
+ {"Timex.Ppsfreq", Field, 0},
+ {"Timex.Precision", Field, 0},
+ {"Timex.Shift", Field, 0},
+ {"Timex.Stabil", Field, 0},
+ {"Timex.Status", Field, 0},
+ {"Timex.Stbcnt", Field, 0},
+ {"Timex.Tai", Field, 0},
+ {"Timex.Tick", Field, 0},
+ {"Timex.Time", Field, 0},
+ {"Timex.Tolerance", Field, 0},
+ {"Timezoneinformation", Type, 0},
+ {"Timezoneinformation.Bias", Field, 0},
+ {"Timezoneinformation.DaylightBias", Field, 0},
+ {"Timezoneinformation.DaylightDate", Field, 0},
+ {"Timezoneinformation.DaylightName", Field, 0},
+ {"Timezoneinformation.StandardBias", Field, 0},
+ {"Timezoneinformation.StandardDate", Field, 0},
+ {"Timezoneinformation.StandardName", Field, 0},
+ {"Tms", Type, 0},
+ {"Tms.Cstime", Field, 0},
+ {"Tms.Cutime", Field, 0},
+ {"Tms.Stime", Field, 0},
+ {"Tms.Utime", Field, 0},
+ {"Token", Type, 0},
+ {"TokenAccessInformation", Const, 0},
+ {"TokenAuditPolicy", Const, 0},
+ {"TokenDefaultDacl", Const, 0},
+ {"TokenElevation", Const, 0},
+ {"TokenElevationType", Const, 0},
+ {"TokenGroups", Const, 0},
+ {"TokenGroupsAndPrivileges", Const, 0},
+ {"TokenHasRestrictions", Const, 0},
+ {"TokenImpersonationLevel", Const, 0},
+ {"TokenIntegrityLevel", Const, 0},
+ {"TokenLinkedToken", Const, 0},
+ {"TokenLogonSid", Const, 0},
+ {"TokenMandatoryPolicy", Const, 0},
+ {"TokenOrigin", Const, 0},
+ {"TokenOwner", Const, 0},
+ {"TokenPrimaryGroup", Const, 0},
+ {"TokenPrivileges", Const, 0},
+ {"TokenRestrictedSids", Const, 0},
+ {"TokenSandBoxInert", Const, 0},
+ {"TokenSessionId", Const, 0},
+ {"TokenSessionReference", Const, 0},
+ {"TokenSource", Const, 0},
+ {"TokenStatistics", Const, 0},
+ {"TokenType", Const, 0},
+ {"TokenUIAccess", Const, 0},
+ {"TokenUser", Const, 0},
+ {"TokenVirtualizationAllowed", Const, 0},
+ {"TokenVirtualizationEnabled", Const, 0},
+ {"Tokenprimarygroup", Type, 0},
+ {"Tokenprimarygroup.PrimaryGroup", Field, 0},
+ {"Tokenuser", Type, 0},
+ {"Tokenuser.User", Field, 0},
+ {"TranslateAccountName", Func, 0},
+ {"TranslateName", Func, 0},
+ {"TransmitFile", Func, 0},
+ {"TransmitFileBuffers", Type, 0},
+ {"TransmitFileBuffers.Head", Field, 0},
+ {"TransmitFileBuffers.HeadLength", Field, 0},
+ {"TransmitFileBuffers.Tail", Field, 0},
+ {"TransmitFileBuffers.TailLength", Field, 0},
+ {"Truncate", Func, 0},
+ {"UNIX_PATH_MAX", Const, 12},
+ {"USAGE_MATCH_TYPE_AND", Const, 0},
+ {"USAGE_MATCH_TYPE_OR", Const, 0},
+ {"UTF16FromString", Func, 1},
+ {"UTF16PtrFromString", Func, 1},
+ {"UTF16ToString", Func, 0},
+ {"Ucred", Type, 0},
+ {"Ucred.Gid", Field, 0},
+ {"Ucred.Pid", Field, 0},
+ {"Ucred.Uid", Field, 0},
+ {"Umask", Func, 0},
+ {"Uname", Func, 0},
+ {"Undelete", Func, 0},
+ {"UnixCredentials", Func, 0},
+ {"UnixRights", Func, 0},
+ {"Unlink", Func, 0},
+ {"Unlinkat", Func, 0},
+ {"UnmapViewOfFile", Func, 0},
+ {"Unmount", Func, 0},
+ {"Unsetenv", Func, 4},
+ {"Unshare", Func, 0},
+ {"UserInfo10", Type, 0},
+ {"UserInfo10.Comment", Field, 0},
+ {"UserInfo10.FullName", Field, 0},
+ {"UserInfo10.Name", Field, 0},
+ {"UserInfo10.UsrComment", Field, 0},
+ {"Ustat", Func, 0},
+ {"Ustat_t", Type, 0},
+ {"Ustat_t.Fname", Field, 0},
+ {"Ustat_t.Fpack", Field, 0},
+ {"Ustat_t.Pad_cgo_0", Field, 0},
+ {"Ustat_t.Pad_cgo_1", Field, 0},
+ {"Ustat_t.Tfree", Field, 0},
+ {"Ustat_t.Tinode", Field, 0},
+ {"Utimbuf", Type, 0},
+ {"Utimbuf.Actime", Field, 0},
+ {"Utimbuf.Modtime", Field, 0},
+ {"Utime", Func, 0},
+ {"Utimes", Func, 0},
+ {"UtimesNano", Func, 1},
+ {"Utsname", Type, 0},
+ {"Utsname.Domainname", Field, 0},
+ {"Utsname.Machine", Field, 0},
+ {"Utsname.Nodename", Field, 0},
+ {"Utsname.Release", Field, 0},
+ {"Utsname.Sysname", Field, 0},
+ {"Utsname.Version", Field, 0},
+ {"VDISCARD", Const, 0},
+ {"VDSUSP", Const, 1},
+ {"VEOF", Const, 0},
+ {"VEOL", Const, 0},
+ {"VEOL2", Const, 0},
+ {"VERASE", Const, 0},
+ {"VERASE2", Const, 1},
+ {"VINTR", Const, 0},
+ {"VKILL", Const, 0},
+ {"VLNEXT", Const, 0},
+ {"VMIN", Const, 0},
+ {"VQUIT", Const, 0},
+ {"VREPRINT", Const, 0},
+ {"VSTART", Const, 0},
+ {"VSTATUS", Const, 1},
+ {"VSTOP", Const, 0},
+ {"VSUSP", Const, 0},
+ {"VSWTC", Const, 0},
+ {"VT0", Const, 1},
+ {"VT1", Const, 1},
+ {"VTDLY", Const, 1},
+ {"VTIME", Const, 0},
+ {"VWERASE", Const, 0},
+ {"VirtualLock", Func, 0},
+ {"VirtualUnlock", Func, 0},
+ {"WAIT_ABANDONED", Const, 0},
+ {"WAIT_FAILED", Const, 0},
+ {"WAIT_OBJECT_0", Const, 0},
+ {"WAIT_TIMEOUT", Const, 0},
+ {"WALL", Const, 0},
+ {"WALLSIG", Const, 1},
+ {"WALTSIG", Const, 1},
+ {"WCLONE", Const, 0},
+ {"WCONTINUED", Const, 0},
+ {"WCOREFLAG", Const, 0},
+ {"WEXITED", Const, 0},
+ {"WLINUXCLONE", Const, 0},
+ {"WNOHANG", Const, 0},
+ {"WNOTHREAD", Const, 0},
+ {"WNOWAIT", Const, 0},
+ {"WNOZOMBIE", Const, 1},
+ {"WOPTSCHECKED", Const, 1},
+ {"WORDSIZE", Const, 0},
+ {"WSABuf", Type, 0},
+ {"WSABuf.Buf", Field, 0},
+ {"WSABuf.Len", Field, 0},
+ {"WSACleanup", Func, 0},
+ {"WSADESCRIPTION_LEN", Const, 0},
+ {"WSAData", Type, 0},
+ {"WSAData.Description", Field, 0},
+ {"WSAData.HighVersion", Field, 0},
+ {"WSAData.MaxSockets", Field, 0},
+ {"WSAData.MaxUdpDg", Field, 0},
+ {"WSAData.SystemStatus", Field, 0},
+ {"WSAData.VendorInfo", Field, 0},
+ {"WSAData.Version", Field, 0},
+ {"WSAEACCES", Const, 2},
+ {"WSAECONNABORTED", Const, 9},
+ {"WSAECONNRESET", Const, 3},
+ {"WSAEnumProtocols", Func, 2},
+ {"WSAID_CONNECTEX", Var, 1},
+ {"WSAIoctl", Func, 0},
+ {"WSAPROTOCOL_LEN", Const, 2},
+ {"WSAProtocolChain", Type, 2},
+ {"WSAProtocolChain.ChainEntries", Field, 2},
+ {"WSAProtocolChain.ChainLen", Field, 2},
+ {"WSAProtocolInfo", Type, 2},
+ {"WSAProtocolInfo.AddressFamily", Field, 2},
+ {"WSAProtocolInfo.CatalogEntryId", Field, 2},
+ {"WSAProtocolInfo.MaxSockAddr", Field, 2},
+ {"WSAProtocolInfo.MessageSize", Field, 2},
+ {"WSAProtocolInfo.MinSockAddr", Field, 2},
+ {"WSAProtocolInfo.NetworkByteOrder", Field, 2},
+ {"WSAProtocolInfo.Protocol", Field, 2},
+ {"WSAProtocolInfo.ProtocolChain", Field, 2},
+ {"WSAProtocolInfo.ProtocolMaxOffset", Field, 2},
+ {"WSAProtocolInfo.ProtocolName", Field, 2},
+ {"WSAProtocolInfo.ProviderFlags", Field, 2},
+ {"WSAProtocolInfo.ProviderId", Field, 2},
+ {"WSAProtocolInfo.ProviderReserved", Field, 2},
+ {"WSAProtocolInfo.SecurityScheme", Field, 2},
+ {"WSAProtocolInfo.ServiceFlags1", Field, 2},
+ {"WSAProtocolInfo.ServiceFlags2", Field, 2},
+ {"WSAProtocolInfo.ServiceFlags3", Field, 2},
+ {"WSAProtocolInfo.ServiceFlags4", Field, 2},
+ {"WSAProtocolInfo.SocketType", Field, 2},
+ {"WSAProtocolInfo.Version", Field, 2},
+ {"WSARecv", Func, 0},
+ {"WSARecvFrom", Func, 0},
+ {"WSASYS_STATUS_LEN", Const, 0},
+ {"WSASend", Func, 0},
+ {"WSASendTo", Func, 0},
+ {"WSASendto", Func, 0},
+ {"WSAStartup", Func, 0},
+ {"WSTOPPED", Const, 0},
+ {"WTRAPPED", Const, 1},
+ {"WUNTRACED", Const, 0},
+ {"Wait4", Func, 0},
+ {"WaitForSingleObject", Func, 0},
+ {"WaitStatus", Type, 0},
+ {"WaitStatus.ExitCode", Field, 0},
+ {"Win32FileAttributeData", Type, 0},
+ {"Win32FileAttributeData.CreationTime", Field, 0},
+ {"Win32FileAttributeData.FileAttributes", Field, 0},
+ {"Win32FileAttributeData.FileSizeHigh", Field, 0},
+ {"Win32FileAttributeData.FileSizeLow", Field, 0},
+ {"Win32FileAttributeData.LastAccessTime", Field, 0},
+ {"Win32FileAttributeData.LastWriteTime", Field, 0},
+ {"Win32finddata", Type, 0},
+ {"Win32finddata.AlternateFileName", Field, 0},
+ {"Win32finddata.CreationTime", Field, 0},
+ {"Win32finddata.FileAttributes", Field, 0},
+ {"Win32finddata.FileName", Field, 0},
+ {"Win32finddata.FileSizeHigh", Field, 0},
+ {"Win32finddata.FileSizeLow", Field, 0},
+ {"Win32finddata.LastAccessTime", Field, 0},
+ {"Win32finddata.LastWriteTime", Field, 0},
+ {"Win32finddata.Reserved0", Field, 0},
+ {"Win32finddata.Reserved1", Field, 0},
+ {"Write", Func, 0},
+ {"WriteConsole", Func, 1},
+ {"WriteFile", Func, 0},
+ {"X509_ASN_ENCODING", Const, 0},
+ {"XCASE", Const, 0},
+ {"XP1_CONNECTIONLESS", Const, 2},
+ {"XP1_CONNECT_DATA", Const, 2},
+ {"XP1_DISCONNECT_DATA", Const, 2},
+ {"XP1_EXPEDITED_DATA", Const, 2},
+ {"XP1_GRACEFUL_CLOSE", Const, 2},
+ {"XP1_GUARANTEED_DELIVERY", Const, 2},
+ {"XP1_GUARANTEED_ORDER", Const, 2},
+ {"XP1_IFS_HANDLES", Const, 2},
+ {"XP1_MESSAGE_ORIENTED", Const, 2},
+ {"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2},
+ {"XP1_MULTIPOINT_DATA_PLANE", Const, 2},
+ {"XP1_PARTIAL_MESSAGE", Const, 2},
+ {"XP1_PSEUDO_STREAM", Const, 2},
+ {"XP1_QOS_SUPPORTED", Const, 2},
+ {"XP1_SAN_SUPPORT_SDP", Const, 2},
+ {"XP1_SUPPORT_BROADCAST", Const, 2},
+ {"XP1_SUPPORT_MULTIPOINT", Const, 2},
+ {"XP1_UNI_RECV", Const, 2},
+ {"XP1_UNI_SEND", Const, 2},
+ },
+ "syscall/js": {
+ {"CopyBytesToGo", Func, 0},
+ {"CopyBytesToJS", Func, 0},
+ {"Error", Type, 0},
+ {"Func", Type, 0},
+ {"FuncOf", Func, 0},
+ {"Global", Func, 0},
+ {"Null", Func, 0},
+ {"Type", Type, 0},
+ {"TypeBoolean", Const, 0},
+ {"TypeFunction", Const, 0},
+ {"TypeNull", Const, 0},
+ {"TypeNumber", Const, 0},
+ {"TypeObject", Const, 0},
+ {"TypeString", Const, 0},
+ {"TypeSymbol", Const, 0},
+ {"TypeUndefined", Const, 0},
+ {"Undefined", Func, 0},
+ {"Value", Type, 0},
+ {"ValueError", Type, 0},
+ {"ValueOf", Func, 0},
+ },
+ "testing": {
+ {"(*B).Cleanup", Method, 14},
+ {"(*B).Elapsed", Method, 20},
+ {"(*B).Error", Method, 0},
+ {"(*B).Errorf", Method, 0},
+ {"(*B).Fail", Method, 0},
+ {"(*B).FailNow", Method, 0},
+ {"(*B).Failed", Method, 0},
+ {"(*B).Fatal", Method, 0},
+ {"(*B).Fatalf", Method, 0},
+ {"(*B).Helper", Method, 9},
+ {"(*B).Log", Method, 0},
+ {"(*B).Logf", Method, 0},
+ {"(*B).Name", Method, 8},
+ {"(*B).ReportAllocs", Method, 1},
+ {"(*B).ReportMetric", Method, 13},
+ {"(*B).ResetTimer", Method, 0},
+ {"(*B).Run", Method, 7},
+ {"(*B).RunParallel", Method, 3},
+ {"(*B).SetBytes", Method, 0},
+ {"(*B).SetParallelism", Method, 3},
+ {"(*B).Setenv", Method, 17},
+ {"(*B).Skip", Method, 1},
+ {"(*B).SkipNow", Method, 1},
+ {"(*B).Skipf", Method, 1},
+ {"(*B).Skipped", Method, 1},
+ {"(*B).StartTimer", Method, 0},
+ {"(*B).StopTimer", Method, 0},
+ {"(*B).TempDir", Method, 15},
+ {"(*F).Add", Method, 18},
+ {"(*F).Cleanup", Method, 18},
+ {"(*F).Error", Method, 18},
+ {"(*F).Errorf", Method, 18},
+ {"(*F).Fail", Method, 18},
+ {"(*F).FailNow", Method, 18},
+ {"(*F).Failed", Method, 18},
+ {"(*F).Fatal", Method, 18},
+ {"(*F).Fatalf", Method, 18},
+ {"(*F).Fuzz", Method, 18},
+ {"(*F).Helper", Method, 18},
+ {"(*F).Log", Method, 18},
+ {"(*F).Logf", Method, 18},
+ {"(*F).Name", Method, 18},
+ {"(*F).Setenv", Method, 18},
+ {"(*F).Skip", Method, 18},
+ {"(*F).SkipNow", Method, 18},
+ {"(*F).Skipf", Method, 18},
+ {"(*F).Skipped", Method, 18},
+ {"(*F).TempDir", Method, 18},
+ {"(*M).Run", Method, 4},
+ {"(*PB).Next", Method, 3},
+ {"(*T).Cleanup", Method, 14},
+ {"(*T).Deadline", Method, 15},
+ {"(*T).Error", Method, 0},
+ {"(*T).Errorf", Method, 0},
+ {"(*T).Fail", Method, 0},
+ {"(*T).FailNow", Method, 0},
+ {"(*T).Failed", Method, 0},
+ {"(*T).Fatal", Method, 0},
+ {"(*T).Fatalf", Method, 0},
+ {"(*T).Helper", Method, 9},
+ {"(*T).Log", Method, 0},
+ {"(*T).Logf", Method, 0},
+ {"(*T).Name", Method, 8},
+ {"(*T).Parallel", Method, 0},
+ {"(*T).Run", Method, 7},
+ {"(*T).Setenv", Method, 17},
+ {"(*T).Skip", Method, 1},
+ {"(*T).SkipNow", Method, 1},
+ {"(*T).Skipf", Method, 1},
+ {"(*T).Skipped", Method, 1},
+ {"(*T).TempDir", Method, 15},
+ {"(BenchmarkResult).AllocedBytesPerOp", Method, 1},
+ {"(BenchmarkResult).AllocsPerOp", Method, 1},
+ {"(BenchmarkResult).MemString", Method, 1},
+ {"(BenchmarkResult).NsPerOp", Method, 0},
+ {"(BenchmarkResult).String", Method, 0},
+ {"AllocsPerRun", Func, 1},
+ {"B", Type, 0},
+ {"B.N", Field, 0},
+ {"Benchmark", Func, 0},
+ {"BenchmarkResult", Type, 0},
+ {"BenchmarkResult.Bytes", Field, 0},
+ {"BenchmarkResult.Extra", Field, 13},
+ {"BenchmarkResult.MemAllocs", Field, 1},
+ {"BenchmarkResult.MemBytes", Field, 1},
+ {"BenchmarkResult.N", Field, 0},
+ {"BenchmarkResult.T", Field, 0},
+ {"Cover", Type, 2},
+ {"Cover.Blocks", Field, 2},
+ {"Cover.Counters", Field, 2},
+ {"Cover.CoveredPackages", Field, 2},
+ {"Cover.Mode", Field, 2},
+ {"CoverBlock", Type, 2},
+ {"CoverBlock.Col0", Field, 2},
+ {"CoverBlock.Col1", Field, 2},
+ {"CoverBlock.Line0", Field, 2},
+ {"CoverBlock.Line1", Field, 2},
+ {"CoverBlock.Stmts", Field, 2},
+ {"CoverMode", Func, 8},
+ {"Coverage", Func, 4},
+ {"F", Type, 18},
+ {"Init", Func, 13},
+ {"InternalBenchmark", Type, 0},
+ {"InternalBenchmark.F", Field, 0},
+ {"InternalBenchmark.Name", Field, 0},
+ {"InternalExample", Type, 0},
+ {"InternalExample.F", Field, 0},
+ {"InternalExample.Name", Field, 0},
+ {"InternalExample.Output", Field, 0},
+ {"InternalExample.Unordered", Field, 7},
+ {"InternalFuzzTarget", Type, 18},
+ {"InternalFuzzTarget.Fn", Field, 18},
+ {"InternalFuzzTarget.Name", Field, 18},
+ {"InternalTest", Type, 0},
+ {"InternalTest.F", Field, 0},
+ {"InternalTest.Name", Field, 0},
+ {"M", Type, 4},
+ {"Main", Func, 0},
+ {"MainStart", Func, 4},
+ {"PB", Type, 3},
+ {"RegisterCover", Func, 2},
+ {"RunBenchmarks", Func, 0},
+ {"RunExamples", Func, 0},
+ {"RunTests", Func, 0},
+ {"Short", Func, 0},
+ {"T", Type, 0},
+ {"TB", Type, 2},
+ {"Testing", Func, 21},
+ {"Verbose", Func, 1},
+ },
+ "testing/fstest": {
+ {"(MapFS).Glob", Method, 16},
+ {"(MapFS).Open", Method, 16},
+ {"(MapFS).ReadDir", Method, 16},
+ {"(MapFS).ReadFile", Method, 16},
+ {"(MapFS).Stat", Method, 16},
+ {"(MapFS).Sub", Method, 16},
+ {"MapFS", Type, 16},
+ {"MapFile", Type, 16},
+ {"MapFile.Data", Field, 16},
+ {"MapFile.ModTime", Field, 16},
+ {"MapFile.Mode", Field, 16},
+ {"MapFile.Sys", Field, 16},
+ {"TestFS", Func, 16},
+ },
+ "testing/iotest": {
+ {"DataErrReader", Func, 0},
+ {"ErrReader", Func, 16},
+ {"ErrTimeout", Var, 0},
+ {"HalfReader", Func, 0},
+ {"NewReadLogger", Func, 0},
+ {"NewWriteLogger", Func, 0},
+ {"OneByteReader", Func, 0},
+ {"TestReader", Func, 16},
+ {"TimeoutReader", Func, 0},
+ {"TruncateWriter", Func, 0},
+ },
+ "testing/quick": {
+ {"(*CheckEqualError).Error", Method, 0},
+ {"(*CheckError).Error", Method, 0},
+ {"(SetupError).Error", Method, 0},
+ {"Check", Func, 0},
+ {"CheckEqual", Func, 0},
+ {"CheckEqualError", Type, 0},
+ {"CheckEqualError.CheckError", Field, 0},
+ {"CheckEqualError.Out1", Field, 0},
+ {"CheckEqualError.Out2", Field, 0},
+ {"CheckError", Type, 0},
+ {"CheckError.Count", Field, 0},
+ {"CheckError.In", Field, 0},
+ {"Config", Type, 0},
+ {"Config.MaxCount", Field, 0},
+ {"Config.MaxCountScale", Field, 0},
+ {"Config.Rand", Field, 0},
+ {"Config.Values", Field, 0},
+ {"Generator", Type, 0},
+ {"SetupError", Type, 0},
+ {"Value", Func, 0},
+ },
+ "testing/slogtest": {
+ {"Run", Func, 22},
+ {"TestHandler", Func, 21},
+ },
+ "text/scanner": {
+ {"(*Position).IsValid", Method, 0},
+ {"(*Scanner).Init", Method, 0},
+ {"(*Scanner).IsValid", Method, 0},
+ {"(*Scanner).Next", Method, 0},
+ {"(*Scanner).Peek", Method, 0},
+ {"(*Scanner).Pos", Method, 0},
+ {"(*Scanner).Scan", Method, 0},
+ {"(*Scanner).TokenText", Method, 0},
+ {"(Position).String", Method, 0},
+ {"(Scanner).String", Method, 0},
+ {"Char", Const, 0},
+ {"Comment", Const, 0},
+ {"EOF", Const, 0},
+ {"Float", Const, 0},
+ {"GoTokens", Const, 0},
+ {"GoWhitespace", Const, 0},
+ {"Ident", Const, 0},
+ {"Int", Const, 0},
+ {"Position", Type, 0},
+ {"Position.Column", Field, 0},
+ {"Position.Filename", Field, 0},
+ {"Position.Line", Field, 0},
+ {"Position.Offset", Field, 0},
+ {"RawString", Const, 0},
+ {"ScanChars", Const, 0},
+ {"ScanComments", Const, 0},
+ {"ScanFloats", Const, 0},
+ {"ScanIdents", Const, 0},
+ {"ScanInts", Const, 0},
+ {"ScanRawStrings", Const, 0},
+ {"ScanStrings", Const, 0},
+ {"Scanner", Type, 0},
+ {"Scanner.Error", Field, 0},
+ {"Scanner.ErrorCount", Field, 0},
+ {"Scanner.IsIdentRune", Field, 4},
+ {"Scanner.Mode", Field, 0},
+ {"Scanner.Position", Field, 0},
+ {"Scanner.Whitespace", Field, 0},
+ {"SkipComments", Const, 0},
+ {"String", Const, 0},
+ {"TokenString", Func, 0},
+ },
+ "text/tabwriter": {
+ {"(*Writer).Flush", Method, 0},
+ {"(*Writer).Init", Method, 0},
+ {"(*Writer).Write", Method, 0},
+ {"AlignRight", Const, 0},
+ {"Debug", Const, 0},
+ {"DiscardEmptyColumns", Const, 0},
+ {"Escape", Const, 0},
+ {"FilterHTML", Const, 0},
+ {"NewWriter", Func, 0},
+ {"StripEscape", Const, 0},
+ {"TabIndent", Const, 0},
+ {"Writer", Type, 0},
+ },
+ "text/template": {
+ {"(*Template).AddParseTree", Method, 0},
+ {"(*Template).Clone", Method, 0},
+ {"(*Template).DefinedTemplates", Method, 5},
+ {"(*Template).Delims", Method, 0},
+ {"(*Template).Execute", Method, 0},
+ {"(*Template).ExecuteTemplate", Method, 0},
+ {"(*Template).Funcs", Method, 0},
+ {"(*Template).Lookup", Method, 0},
+ {"(*Template).Name", Method, 0},
+ {"(*Template).New", Method, 0},
+ {"(*Template).Option", Method, 5},
+ {"(*Template).Parse", Method, 0},
+ {"(*Template).ParseFS", Method, 16},
+ {"(*Template).ParseFiles", Method, 0},
+ {"(*Template).ParseGlob", Method, 0},
+ {"(*Template).Templates", Method, 0},
+ {"(ExecError).Error", Method, 6},
+ {"(ExecError).Unwrap", Method, 13},
+ {"(Template).Copy", Method, 2},
+ {"(Template).ErrorContext", Method, 1},
+ {"ExecError", Type, 6},
+ {"ExecError.Err", Field, 6},
+ {"ExecError.Name", Field, 6},
+ {"FuncMap", Type, 0},
+ {"HTMLEscape", Func, 0},
+ {"HTMLEscapeString", Func, 0},
+ {"HTMLEscaper", Func, 0},
+ {"IsTrue", Func, 6},
+ {"JSEscape", Func, 0},
+ {"JSEscapeString", Func, 0},
+ {"JSEscaper", Func, 0},
+ {"Must", Func, 0},
+ {"New", Func, 0},
+ {"ParseFS", Func, 16},
+ {"ParseFiles", Func, 0},
+ {"ParseGlob", Func, 0},
+ {"Template", Type, 0},
+ {"Template.Tree", Field, 0},
+ {"URLQueryEscaper", Func, 0},
+ },
+ "text/template/parse": {
+ {"(*ActionNode).Copy", Method, 0},
+ {"(*ActionNode).String", Method, 0},
+ {"(*BoolNode).Copy", Method, 0},
+ {"(*BoolNode).String", Method, 0},
+ {"(*BranchNode).Copy", Method, 4},
+ {"(*BranchNode).String", Method, 0},
+ {"(*BreakNode).Copy", Method, 18},
+ {"(*BreakNode).String", Method, 18},
+ {"(*ChainNode).Add", Method, 1},
+ {"(*ChainNode).Copy", Method, 1},
+ {"(*ChainNode).String", Method, 1},
+ {"(*CommandNode).Copy", Method, 0},
+ {"(*CommandNode).String", Method, 0},
+ {"(*CommentNode).Copy", Method, 16},
+ {"(*CommentNode).String", Method, 16},
+ {"(*ContinueNode).Copy", Method, 18},
+ {"(*ContinueNode).String", Method, 18},
+ {"(*DotNode).Copy", Method, 0},
+ {"(*DotNode).String", Method, 0},
+ {"(*DotNode).Type", Method, 0},
+ {"(*FieldNode).Copy", Method, 0},
+ {"(*FieldNode).String", Method, 0},
+ {"(*IdentifierNode).Copy", Method, 0},
+ {"(*IdentifierNode).SetPos", Method, 1},
+ {"(*IdentifierNode).SetTree", Method, 4},
+ {"(*IdentifierNode).String", Method, 0},
+ {"(*IfNode).Copy", Method, 0},
+ {"(*IfNode).String", Method, 0},
+ {"(*ListNode).Copy", Method, 0},
+ {"(*ListNode).CopyList", Method, 0},
+ {"(*ListNode).String", Method, 0},
+ {"(*NilNode).Copy", Method, 1},
+ {"(*NilNode).String", Method, 1},
+ {"(*NilNode).Type", Method, 1},
+ {"(*NumberNode).Copy", Method, 0},
+ {"(*NumberNode).String", Method, 0},
+ {"(*PipeNode).Copy", Method, 0},
+ {"(*PipeNode).CopyPipe", Method, 0},
+ {"(*PipeNode).String", Method, 0},
+ {"(*RangeNode).Copy", Method, 0},
+ {"(*RangeNode).String", Method, 0},
+ {"(*StringNode).Copy", Method, 0},
+ {"(*StringNode).String", Method, 0},
+ {"(*TemplateNode).Copy", Method, 0},
+ {"(*TemplateNode).String", Method, 0},
+ {"(*TextNode).Copy", Method, 0},
+ {"(*TextNode).String", Method, 0},
+ {"(*Tree).Copy", Method, 2},
+ {"(*Tree).ErrorContext", Method, 1},
+ {"(*Tree).Parse", Method, 0},
+ {"(*VariableNode).Copy", Method, 0},
+ {"(*VariableNode).String", Method, 0},
+ {"(*WithNode).Copy", Method, 0},
+ {"(*WithNode).String", Method, 0},
+ {"(ActionNode).Position", Method, 1},
+ {"(ActionNode).Type", Method, 0},
+ {"(BoolNode).Position", Method, 1},
+ {"(BoolNode).Type", Method, 0},
+ {"(BranchNode).Position", Method, 1},
+ {"(BranchNode).Type", Method, 0},
+ {"(BreakNode).Position", Method, 18},
+ {"(BreakNode).Type", Method, 18},
+ {"(ChainNode).Position", Method, 1},
+ {"(ChainNode).Type", Method, 1},
+ {"(CommandNode).Position", Method, 1},
+ {"(CommandNode).Type", Method, 0},
+ {"(CommentNode).Position", Method, 16},
+ {"(CommentNode).Type", Method, 16},
+ {"(ContinueNode).Position", Method, 18},
+ {"(ContinueNode).Type", Method, 18},
+ {"(DotNode).Position", Method, 1},
+ {"(FieldNode).Position", Method, 1},
+ {"(FieldNode).Type", Method, 0},
+ {"(IdentifierNode).Position", Method, 1},
+ {"(IdentifierNode).Type", Method, 0},
+ {"(IfNode).Position", Method, 1},
+ {"(IfNode).Type", Method, 0},
+ {"(ListNode).Position", Method, 1},
+ {"(ListNode).Type", Method, 0},
+ {"(NilNode).Position", Method, 1},
+ {"(NodeType).Type", Method, 0},
+ {"(NumberNode).Position", Method, 1},
+ {"(NumberNode).Type", Method, 0},
+ {"(PipeNode).Position", Method, 1},
+ {"(PipeNode).Type", Method, 0},
+ {"(Pos).Position", Method, 1},
+ {"(RangeNode).Position", Method, 1},
+ {"(RangeNode).Type", Method, 0},
+ {"(StringNode).Position", Method, 1},
+ {"(StringNode).Type", Method, 0},
+ {"(TemplateNode).Position", Method, 1},
+ {"(TemplateNode).Type", Method, 0},
+ {"(TextNode).Position", Method, 1},
+ {"(TextNode).Type", Method, 0},
+ {"(VariableNode).Position", Method, 1},
+ {"(VariableNode).Type", Method, 0},
+ {"(WithNode).Position", Method, 1},
+ {"(WithNode).Type", Method, 0},
+ {"ActionNode", Type, 0},
+ {"ActionNode.Line", Field, 0},
+ {"ActionNode.NodeType", Field, 0},
+ {"ActionNode.Pipe", Field, 0},
+ {"ActionNode.Pos", Field, 1},
+ {"BoolNode", Type, 0},
+ {"BoolNode.NodeType", Field, 0},
+ {"BoolNode.Pos", Field, 1},
+ {"BoolNode.True", Field, 0},
+ {"BranchNode", Type, 0},
+ {"BranchNode.ElseList", Field, 0},
+ {"BranchNode.Line", Field, 0},
+ {"BranchNode.List", Field, 0},
+ {"BranchNode.NodeType", Field, 0},
+ {"BranchNode.Pipe", Field, 0},
+ {"BranchNode.Pos", Field, 1},
+ {"BreakNode", Type, 18},
+ {"BreakNode.Line", Field, 18},
+ {"BreakNode.NodeType", Field, 18},
+ {"BreakNode.Pos", Field, 18},
+ {"ChainNode", Type, 1},
+ {"ChainNode.Field", Field, 1},
+ {"ChainNode.Node", Field, 1},
+ {"ChainNode.NodeType", Field, 1},
+ {"ChainNode.Pos", Field, 1},
+ {"CommandNode", Type, 0},
+ {"CommandNode.Args", Field, 0},
+ {"CommandNode.NodeType", Field, 0},
+ {"CommandNode.Pos", Field, 1},
+ {"CommentNode", Type, 16},
+ {"CommentNode.NodeType", Field, 16},
+ {"CommentNode.Pos", Field, 16},
+ {"CommentNode.Text", Field, 16},
+ {"ContinueNode", Type, 18},
+ {"ContinueNode.Line", Field, 18},
+ {"ContinueNode.NodeType", Field, 18},
+ {"ContinueNode.Pos", Field, 18},
+ {"DotNode", Type, 0},
+ {"DotNode.NodeType", Field, 4},
+ {"DotNode.Pos", Field, 1},
+ {"FieldNode", Type, 0},
+ {"FieldNode.Ident", Field, 0},
+ {"FieldNode.NodeType", Field, 0},
+ {"FieldNode.Pos", Field, 1},
+ {"IdentifierNode", Type, 0},
+ {"IdentifierNode.Ident", Field, 0},
+ {"IdentifierNode.NodeType", Field, 0},
+ {"IdentifierNode.Pos", Field, 1},
+ {"IfNode", Type, 0},
+ {"IfNode.BranchNode", Field, 0},
+ {"IsEmptyTree", Func, 0},
+ {"ListNode", Type, 0},
+ {"ListNode.NodeType", Field, 0},
+ {"ListNode.Nodes", Field, 0},
+ {"ListNode.Pos", Field, 1},
+ {"Mode", Type, 16},
+ {"New", Func, 0},
+ {"NewIdentifier", Func, 0},
+ {"NilNode", Type, 1},
+ {"NilNode.NodeType", Field, 4},
+ {"NilNode.Pos", Field, 1},
+ {"Node", Type, 0},
+ {"NodeAction", Const, 0},
+ {"NodeBool", Const, 0},
+ {"NodeBreak", Const, 18},
+ {"NodeChain", Const, 1},
+ {"NodeCommand", Const, 0},
+ {"NodeComment", Const, 16},
+ {"NodeContinue", Const, 18},
+ {"NodeDot", Const, 0},
+ {"NodeField", Const, 0},
+ {"NodeIdentifier", Const, 0},
+ {"NodeIf", Const, 0},
+ {"NodeList", Const, 0},
+ {"NodeNil", Const, 1},
+ {"NodeNumber", Const, 0},
+ {"NodePipe", Const, 0},
+ {"NodeRange", Const, 0},
+ {"NodeString", Const, 0},
+ {"NodeTemplate", Const, 0},
+ {"NodeText", Const, 0},
+ {"NodeType", Type, 0},
+ {"NodeVariable", Const, 0},
+ {"NodeWith", Const, 0},
+ {"NumberNode", Type, 0},
+ {"NumberNode.Complex128", Field, 0},
+ {"NumberNode.Float64", Field, 0},
+ {"NumberNode.Int64", Field, 0},
+ {"NumberNode.IsComplex", Field, 0},
+ {"NumberNode.IsFloat", Field, 0},
+ {"NumberNode.IsInt", Field, 0},
+ {"NumberNode.IsUint", Field, 0},
+ {"NumberNode.NodeType", Field, 0},
+ {"NumberNode.Pos", Field, 1},
+ {"NumberNode.Text", Field, 0},
+ {"NumberNode.Uint64", Field, 0},
+ {"Parse", Func, 0},
+ {"ParseComments", Const, 16},
+ {"PipeNode", Type, 0},
+ {"PipeNode.Cmds", Field, 0},
+ {"PipeNode.Decl", Field, 0},
+ {"PipeNode.IsAssign", Field, 11},
+ {"PipeNode.Line", Field, 0},
+ {"PipeNode.NodeType", Field, 0},
+ {"PipeNode.Pos", Field, 1},
+ {"Pos", Type, 1},
+ {"RangeNode", Type, 0},
+ {"RangeNode.BranchNode", Field, 0},
+ {"SkipFuncCheck", Const, 17},
+ {"StringNode", Type, 0},
+ {"StringNode.NodeType", Field, 0},
+ {"StringNode.Pos", Field, 1},
+ {"StringNode.Quoted", Field, 0},
+ {"StringNode.Text", Field, 0},
+ {"TemplateNode", Type, 0},
+ {"TemplateNode.Line", Field, 0},
+ {"TemplateNode.Name", Field, 0},
+ {"TemplateNode.NodeType", Field, 0},
+ {"TemplateNode.Pipe", Field, 0},
+ {"TemplateNode.Pos", Field, 1},
+ {"TextNode", Type, 0},
+ {"TextNode.NodeType", Field, 0},
+ {"TextNode.Pos", Field, 1},
+ {"TextNode.Text", Field, 0},
+ {"Tree", Type, 0},
+ {"Tree.Mode", Field, 16},
+ {"Tree.Name", Field, 0},
+ {"Tree.ParseName", Field, 1},
+ {"Tree.Root", Field, 0},
+ {"VariableNode", Type, 0},
+ {"VariableNode.Ident", Field, 0},
+ {"VariableNode.NodeType", Field, 0},
+ {"VariableNode.Pos", Field, 1},
+ {"WithNode", Type, 0},
+ {"WithNode.BranchNode", Field, 0},
+ },
+ "time": {
+ {"(*Location).String", Method, 0},
+ {"(*ParseError).Error", Method, 0},
+ {"(*Ticker).Reset", Method, 15},
+ {"(*Ticker).Stop", Method, 0},
+ {"(*Time).GobDecode", Method, 0},
+ {"(*Time).UnmarshalBinary", Method, 2},
+ {"(*Time).UnmarshalJSON", Method, 0},
+ {"(*Time).UnmarshalText", Method, 2},
+ {"(*Timer).Reset", Method, 1},
+ {"(*Timer).Stop", Method, 0},
+ {"(Duration).Abs", Method, 19},
+ {"(Duration).Hours", Method, 0},
+ {"(Duration).Microseconds", Method, 13},
+ {"(Duration).Milliseconds", Method, 13},
+ {"(Duration).Minutes", Method, 0},
+ {"(Duration).Nanoseconds", Method, 0},
+ {"(Duration).Round", Method, 9},
+ {"(Duration).Seconds", Method, 0},
+ {"(Duration).String", Method, 0},
+ {"(Duration).Truncate", Method, 9},
+ {"(Month).String", Method, 0},
+ {"(Time).Add", Method, 0},
+ {"(Time).AddDate", Method, 0},
+ {"(Time).After", Method, 0},
+ {"(Time).AppendFormat", Method, 5},
+ {"(Time).Before", Method, 0},
+ {"(Time).Clock", Method, 0},
+ {"(Time).Compare", Method, 20},
+ {"(Time).Date", Method, 0},
+ {"(Time).Day", Method, 0},
+ {"(Time).Equal", Method, 0},
+ {"(Time).Format", Method, 0},
+ {"(Time).GoString", Method, 17},
+ {"(Time).GobEncode", Method, 0},
+ {"(Time).Hour", Method, 0},
+ {"(Time).ISOWeek", Method, 0},
+ {"(Time).In", Method, 0},
+ {"(Time).IsDST", Method, 17},
+ {"(Time).IsZero", Method, 0},
+ {"(Time).Local", Method, 0},
+ {"(Time).Location", Method, 0},
+ {"(Time).MarshalBinary", Method, 2},
+ {"(Time).MarshalJSON", Method, 0},
+ {"(Time).MarshalText", Method, 2},
+ {"(Time).Minute", Method, 0},
+ {"(Time).Month", Method, 0},
+ {"(Time).Nanosecond", Method, 0},
+ {"(Time).Round", Method, 1},
+ {"(Time).Second", Method, 0},
+ {"(Time).String", Method, 0},
+ {"(Time).Sub", Method, 0},
+ {"(Time).Truncate", Method, 1},
+ {"(Time).UTC", Method, 0},
+ {"(Time).Unix", Method, 0},
+ {"(Time).UnixMicro", Method, 17},
+ {"(Time).UnixMilli", Method, 17},
+ {"(Time).UnixNano", Method, 0},
+ {"(Time).Weekday", Method, 0},
+ {"(Time).Year", Method, 0},
+ {"(Time).YearDay", Method, 1},
+ {"(Time).Zone", Method, 0},
+ {"(Time).ZoneBounds", Method, 19},
+ {"(Weekday).String", Method, 0},
+ {"ANSIC", Const, 0},
+ {"After", Func, 0},
+ {"AfterFunc", Func, 0},
+ {"April", Const, 0},
+ {"August", Const, 0},
+ {"Date", Func, 0},
+ {"DateOnly", Const, 20},
+ {"DateTime", Const, 20},
+ {"December", Const, 0},
+ {"Duration", Type, 0},
+ {"February", Const, 0},
+ {"FixedZone", Func, 0},
+ {"Friday", Const, 0},
+ {"Hour", Const, 0},
+ {"January", Const, 0},
+ {"July", Const, 0},
+ {"June", Const, 0},
+ {"Kitchen", Const, 0},
+ {"Layout", Const, 17},
+ {"LoadLocation", Func, 0},
+ {"LoadLocationFromTZData", Func, 10},
+ {"Local", Var, 0},
+ {"Location", Type, 0},
+ {"March", Const, 0},
+ {"May", Const, 0},
+ {"Microsecond", Const, 0},
+ {"Millisecond", Const, 0},
+ {"Minute", Const, 0},
+ {"Monday", Const, 0},
+ {"Month", Type, 0},
+ {"Nanosecond", Const, 0},
+ {"NewTicker", Func, 0},
+ {"NewTimer", Func, 0},
+ {"November", Const, 0},
+ {"Now", Func, 0},
+ {"October", Const, 0},
+ {"Parse", Func, 0},
+ {"ParseDuration", Func, 0},
+ {"ParseError", Type, 0},
+ {"ParseError.Layout", Field, 0},
+ {"ParseError.LayoutElem", Field, 0},
+ {"ParseError.Message", Field, 0},
+ {"ParseError.Value", Field, 0},
+ {"ParseError.ValueElem", Field, 0},
+ {"ParseInLocation", Func, 1},
+ {"RFC1123", Const, 0},
+ {"RFC1123Z", Const, 0},
+ {"RFC3339", Const, 0},
+ {"RFC3339Nano", Const, 0},
+ {"RFC822", Const, 0},
+ {"RFC822Z", Const, 0},
+ {"RFC850", Const, 0},
+ {"RubyDate", Const, 0},
+ {"Saturday", Const, 0},
+ {"Second", Const, 0},
+ {"September", Const, 0},
+ {"Since", Func, 0},
+ {"Sleep", Func, 0},
+ {"Stamp", Const, 0},
+ {"StampMicro", Const, 0},
+ {"StampMilli", Const, 0},
+ {"StampNano", Const, 0},
+ {"Sunday", Const, 0},
+ {"Thursday", Const, 0},
+ {"Tick", Func, 0},
+ {"Ticker", Type, 0},
+ {"Ticker.C", Field, 0},
+ {"Time", Type, 0},
+ {"TimeOnly", Const, 20},
+ {"Timer", Type, 0},
+ {"Timer.C", Field, 0},
+ {"Tuesday", Const, 0},
+ {"UTC", Var, 0},
+ {"Unix", Func, 0},
+ {"UnixDate", Const, 0},
+ {"UnixMicro", Func, 17},
+ {"UnixMilli", Func, 17},
+ {"Until", Func, 8},
+ {"Wednesday", Const, 0},
+ {"Weekday", Type, 0},
+ },
+ "unicode": {
+ {"(SpecialCase).ToLower", Method, 0},
+ {"(SpecialCase).ToTitle", Method, 0},
+ {"(SpecialCase).ToUpper", Method, 0},
+ {"ASCII_Hex_Digit", Var, 0},
+ {"Adlam", Var, 7},
+ {"Ahom", Var, 5},
+ {"Anatolian_Hieroglyphs", Var, 5},
+ {"Arabic", Var, 0},
+ {"Armenian", Var, 0},
+ {"Avestan", Var, 0},
+ {"AzeriCase", Var, 0},
+ {"Balinese", Var, 0},
+ {"Bamum", Var, 0},
+ {"Bassa_Vah", Var, 4},
+ {"Batak", Var, 0},
+ {"Bengali", Var, 0},
+ {"Bhaiksuki", Var, 7},
+ {"Bidi_Control", Var, 0},
+ {"Bopomofo", Var, 0},
+ {"Brahmi", Var, 0},
+ {"Braille", Var, 0},
+ {"Buginese", Var, 0},
+ {"Buhid", Var, 0},
+ {"C", Var, 0},
+ {"Canadian_Aboriginal", Var, 0},
+ {"Carian", Var, 0},
+ {"CaseRange", Type, 0},
+ {"CaseRange.Delta", Field, 0},
+ {"CaseRange.Hi", Field, 0},
+ {"CaseRange.Lo", Field, 0},
+ {"CaseRanges", Var, 0},
+ {"Categories", Var, 0},
+ {"Caucasian_Albanian", Var, 4},
+ {"Cc", Var, 0},
+ {"Cf", Var, 0},
+ {"Chakma", Var, 1},
+ {"Cham", Var, 0},
+ {"Cherokee", Var, 0},
+ {"Chorasmian", Var, 16},
+ {"Co", Var, 0},
+ {"Common", Var, 0},
+ {"Coptic", Var, 0},
+ {"Cs", Var, 0},
+ {"Cuneiform", Var, 0},
+ {"Cypriot", Var, 0},
+ {"Cypro_Minoan", Var, 21},
+ {"Cyrillic", Var, 0},
+ {"Dash", Var, 0},
+ {"Deprecated", Var, 0},
+ {"Deseret", Var, 0},
+ {"Devanagari", Var, 0},
+ {"Diacritic", Var, 0},
+ {"Digit", Var, 0},
+ {"Dives_Akuru", Var, 16},
+ {"Dogra", Var, 13},
+ {"Duployan", Var, 4},
+ {"Egyptian_Hieroglyphs", Var, 0},
+ {"Elbasan", Var, 4},
+ {"Elymaic", Var, 14},
+ {"Ethiopic", Var, 0},
+ {"Extender", Var, 0},
+ {"FoldCategory", Var, 0},
+ {"FoldScript", Var, 0},
+ {"Georgian", Var, 0},
+ {"Glagolitic", Var, 0},
+ {"Gothic", Var, 0},
+ {"Grantha", Var, 4},
+ {"GraphicRanges", Var, 0},
+ {"Greek", Var, 0},
+ {"Gujarati", Var, 0},
+ {"Gunjala_Gondi", Var, 13},
+ {"Gurmukhi", Var, 0},
+ {"Han", Var, 0},
+ {"Hangul", Var, 0},
+ {"Hanifi_Rohingya", Var, 13},
+ {"Hanunoo", Var, 0},
+ {"Hatran", Var, 5},
+ {"Hebrew", Var, 0},
+ {"Hex_Digit", Var, 0},
+ {"Hiragana", Var, 0},
+ {"Hyphen", Var, 0},
+ {"IDS_Binary_Operator", Var, 0},
+ {"IDS_Trinary_Operator", Var, 0},
+ {"Ideographic", Var, 0},
+ {"Imperial_Aramaic", Var, 0},
+ {"In", Func, 2},
+ {"Inherited", Var, 0},
+ {"Inscriptional_Pahlavi", Var, 0},
+ {"Inscriptional_Parthian", Var, 0},
+ {"Is", Func, 0},
+ {"IsControl", Func, 0},
+ {"IsDigit", Func, 0},
+ {"IsGraphic", Func, 0},
+ {"IsLetter", Func, 0},
+ {"IsLower", Func, 0},
+ {"IsMark", Func, 0},
+ {"IsNumber", Func, 0},
+ {"IsOneOf", Func, 0},
+ {"IsPrint", Func, 0},
+ {"IsPunct", Func, 0},
+ {"IsSpace", Func, 0},
+ {"IsSymbol", Func, 0},
+ {"IsTitle", Func, 0},
+ {"IsUpper", Func, 0},
+ {"Javanese", Var, 0},
+ {"Join_Control", Var, 0},
+ {"Kaithi", Var, 0},
+ {"Kannada", Var, 0},
+ {"Katakana", Var, 0},
+ {"Kawi", Var, 21},
+ {"Kayah_Li", Var, 0},
+ {"Kharoshthi", Var, 0},
+ {"Khitan_Small_Script", Var, 16},
+ {"Khmer", Var, 0},
+ {"Khojki", Var, 4},
+ {"Khudawadi", Var, 4},
+ {"L", Var, 0},
+ {"Lao", Var, 0},
+ {"Latin", Var, 0},
+ {"Lepcha", Var, 0},
+ {"Letter", Var, 0},
+ {"Limbu", Var, 0},
+ {"Linear_A", Var, 4},
+ {"Linear_B", Var, 0},
+ {"Lisu", Var, 0},
+ {"Ll", Var, 0},
+ {"Lm", Var, 0},
+ {"Lo", Var, 0},
+ {"Logical_Order_Exception", Var, 0},
+ {"Lower", Var, 0},
+ {"LowerCase", Const, 0},
+ {"Lt", Var, 0},
+ {"Lu", Var, 0},
+ {"Lycian", Var, 0},
+ {"Lydian", Var, 0},
+ {"M", Var, 0},
+ {"Mahajani", Var, 4},
+ {"Makasar", Var, 13},
+ {"Malayalam", Var, 0},
+ {"Mandaic", Var, 0},
+ {"Manichaean", Var, 4},
+ {"Marchen", Var, 7},
+ {"Mark", Var, 0},
+ {"Masaram_Gondi", Var, 10},
+ {"MaxASCII", Const, 0},
+ {"MaxCase", Const, 0},
+ {"MaxLatin1", Const, 0},
+ {"MaxRune", Const, 0},
+ {"Mc", Var, 0},
+ {"Me", Var, 0},
+ {"Medefaidrin", Var, 13},
+ {"Meetei_Mayek", Var, 0},
+ {"Mende_Kikakui", Var, 4},
+ {"Meroitic_Cursive", Var, 1},
+ {"Meroitic_Hieroglyphs", Var, 1},
+ {"Miao", Var, 1},
+ {"Mn", Var, 0},
+ {"Modi", Var, 4},
+ {"Mongolian", Var, 0},
+ {"Mro", Var, 4},
+ {"Multani", Var, 5},
+ {"Myanmar", Var, 0},
+ {"N", Var, 0},
+ {"Nabataean", Var, 4},
+ {"Nag_Mundari", Var, 21},
+ {"Nandinagari", Var, 14},
+ {"Nd", Var, 0},
+ {"New_Tai_Lue", Var, 0},
+ {"Newa", Var, 7},
+ {"Nko", Var, 0},
+ {"Nl", Var, 0},
+ {"No", Var, 0},
+ {"Noncharacter_Code_Point", Var, 0},
+ {"Number", Var, 0},
+ {"Nushu", Var, 10},
+ {"Nyiakeng_Puachue_Hmong", Var, 14},
+ {"Ogham", Var, 0},
+ {"Ol_Chiki", Var, 0},
+ {"Old_Hungarian", Var, 5},
+ {"Old_Italic", Var, 0},
+ {"Old_North_Arabian", Var, 4},
+ {"Old_Permic", Var, 4},
+ {"Old_Persian", Var, 0},
+ {"Old_Sogdian", Var, 13},
+ {"Old_South_Arabian", Var, 0},
+ {"Old_Turkic", Var, 0},
+ {"Old_Uyghur", Var, 21},
+ {"Oriya", Var, 0},
+ {"Osage", Var, 7},
+ {"Osmanya", Var, 0},
+ {"Other", Var, 0},
+ {"Other_Alphabetic", Var, 0},
+ {"Other_Default_Ignorable_Code_Point", Var, 0},
+ {"Other_Grapheme_Extend", Var, 0},
+ {"Other_ID_Continue", Var, 0},
+ {"Other_ID_Start", Var, 0},
+ {"Other_Lowercase", Var, 0},
+ {"Other_Math", Var, 0},
+ {"Other_Uppercase", Var, 0},
+ {"P", Var, 0},
+ {"Pahawh_Hmong", Var, 4},
+ {"Palmyrene", Var, 4},
+ {"Pattern_Syntax", Var, 0},
+ {"Pattern_White_Space", Var, 0},
+ {"Pau_Cin_Hau", Var, 4},
+ {"Pc", Var, 0},
+ {"Pd", Var, 0},
+ {"Pe", Var, 0},
+ {"Pf", Var, 0},
+ {"Phags_Pa", Var, 0},
+ {"Phoenician", Var, 0},
+ {"Pi", Var, 0},
+ {"Po", Var, 0},
+ {"Prepended_Concatenation_Mark", Var, 7},
+ {"PrintRanges", Var, 0},
+ {"Properties", Var, 0},
+ {"Ps", Var, 0},
+ {"Psalter_Pahlavi", Var, 4},
+ {"Punct", Var, 0},
+ {"Quotation_Mark", Var, 0},
+ {"Radical", Var, 0},
+ {"Range16", Type, 0},
+ {"Range16.Hi", Field, 0},
+ {"Range16.Lo", Field, 0},
+ {"Range16.Stride", Field, 0},
+ {"Range32", Type, 0},
+ {"Range32.Hi", Field, 0},
+ {"Range32.Lo", Field, 0},
+ {"Range32.Stride", Field, 0},
+ {"RangeTable", Type, 0},
+ {"RangeTable.LatinOffset", Field, 1},
+ {"RangeTable.R16", Field, 0},
+ {"RangeTable.R32", Field, 0},
+ {"Regional_Indicator", Var, 10},
+ {"Rejang", Var, 0},
+ {"ReplacementChar", Const, 0},
+ {"Runic", Var, 0},
+ {"S", Var, 0},
+ {"STerm", Var, 0},
+ {"Samaritan", Var, 0},
+ {"Saurashtra", Var, 0},
+ {"Sc", Var, 0},
+ {"Scripts", Var, 0},
+ {"Sentence_Terminal", Var, 7},
+ {"Sharada", Var, 1},
+ {"Shavian", Var, 0},
+ {"Siddham", Var, 4},
+ {"SignWriting", Var, 5},
+ {"SimpleFold", Func, 0},
+ {"Sinhala", Var, 0},
+ {"Sk", Var, 0},
+ {"Sm", Var, 0},
+ {"So", Var, 0},
+ {"Soft_Dotted", Var, 0},
+ {"Sogdian", Var, 13},
+ {"Sora_Sompeng", Var, 1},
+ {"Soyombo", Var, 10},
+ {"Space", Var, 0},
+ {"SpecialCase", Type, 0},
+ {"Sundanese", Var, 0},
+ {"Syloti_Nagri", Var, 0},
+ {"Symbol", Var, 0},
+ {"Syriac", Var, 0},
+ {"Tagalog", Var, 0},
+ {"Tagbanwa", Var, 0},
+ {"Tai_Le", Var, 0},
+ {"Tai_Tham", Var, 0},
+ {"Tai_Viet", Var, 0},
+ {"Takri", Var, 1},
+ {"Tamil", Var, 0},
+ {"Tangsa", Var, 21},
+ {"Tangut", Var, 7},
+ {"Telugu", Var, 0},
+ {"Terminal_Punctuation", Var, 0},
+ {"Thaana", Var, 0},
+ {"Thai", Var, 0},
+ {"Tibetan", Var, 0},
+ {"Tifinagh", Var, 0},
+ {"Tirhuta", Var, 4},
+ {"Title", Var, 0},
+ {"TitleCase", Const, 0},
+ {"To", Func, 0},
+ {"ToLower", Func, 0},
+ {"ToTitle", Func, 0},
+ {"ToUpper", Func, 0},
+ {"Toto", Var, 21},
+ {"TurkishCase", Var, 0},
+ {"Ugaritic", Var, 0},
+ {"Unified_Ideograph", Var, 0},
+ {"Upper", Var, 0},
+ {"UpperCase", Const, 0},
+ {"UpperLower", Const, 0},
+ {"Vai", Var, 0},
+ {"Variation_Selector", Var, 0},
+ {"Version", Const, 0},
+ {"Vithkuqi", Var, 21},
+ {"Wancho", Var, 14},
+ {"Warang_Citi", Var, 4},
+ {"White_Space", Var, 0},
+ {"Yezidi", Var, 16},
+ {"Yi", Var, 0},
+ {"Z", Var, 0},
+ {"Zanabazar_Square", Var, 10},
+ {"Zl", Var, 0},
+ {"Zp", Var, 0},
+ {"Zs", Var, 0},
+ },
+ "unicode/utf16": {
+ {"AppendRune", Func, 20},
+ {"Decode", Func, 0},
+ {"DecodeRune", Func, 0},
+ {"Encode", Func, 0},
+ {"EncodeRune", Func, 0},
+ {"IsSurrogate", Func, 0},
+ },
+ "unicode/utf8": {
+ {"AppendRune", Func, 18},
+ {"DecodeLastRune", Func, 0},
+ {"DecodeLastRuneInString", Func, 0},
+ {"DecodeRune", Func, 0},
+ {"DecodeRuneInString", Func, 0},
+ {"EncodeRune", Func, 0},
+ {"FullRune", Func, 0},
+ {"FullRuneInString", Func, 0},
+ {"MaxRune", Const, 0},
+ {"RuneCount", Func, 0},
+ {"RuneCountInString", Func, 0},
+ {"RuneError", Const, 0},
+ {"RuneLen", Func, 0},
+ {"RuneSelf", Const, 0},
+ {"RuneStart", Func, 0},
+ {"UTFMax", Const, 0},
+ {"Valid", Func, 0},
+ {"ValidRune", Func, 1},
+ {"ValidString", Func, 0},
+ },
+ "unsafe": {
+ {"Add", Func, 0},
+ {"Alignof", Func, 0},
+ {"Offsetof", Func, 0},
+ {"Pointer", Type, 0},
+ {"Sizeof", Func, 0},
+ {"Slice", Func, 0},
+ {"SliceData", Func, 0},
+ {"String", Func, 0},
+ {"StringData", Func, 0},
+ },
+}
diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
new file mode 100644
index 0000000000..98904017f2
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
@@ -0,0 +1,97 @@
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:generate go run generate.go
+
+// Package stdlib provides a table of all exported symbols in the
+// standard library, along with the version at which they first
+// appeared.
+package stdlib
+
+import (
+ "fmt"
+ "strings"
+)
+
+type Symbol struct {
+ Name string
+ Kind Kind
+ Version Version // Go version that first included the symbol
+}
+
+// A Kind indicates the kind of a symbol:
+// function, variable, constant, type, and so on.
+type Kind int8
+
+const (
+ Invalid Kind = iota // Example name:
+ Type // "Buffer"
+ Func // "Println"
+ Var // "EOF"
+ Const // "Pi"
+ Field // "Point.X"
+ Method // "(*Buffer).Grow"
+)
+
+func (kind Kind) String() string {
+ return [...]string{
+ Invalid: "invalid",
+ Type: "type",
+ Func: "func",
+ Var: "var",
+ Const: "const",
+ Field: "field",
+ Method: "method",
+ }[kind]
+}
+
+// A Version represents a version of Go of the form "go1.%d".
+type Version int8
+
+// String returns a version string of the form "go1.23", without allocating.
+func (v Version) String() string { return versions[v] }
+
+var versions [30]string // (increase constant as needed)
+
+func init() {
+ for i := range versions {
+ versions[i] = fmt.Sprintf("go1.%d", i)
+ }
+}
+
+// HasPackage reports whether the specified package path is part of
+// the standard library's public API.
+func HasPackage(path string) bool {
+ _, ok := PackageSymbols[path]
+ return ok
+}
+
+// SplitField splits the field symbol name into type and field
+// components. It must be called only on Field symbols.
+//
+// Example: "File.Package" -> ("File", "Package")
+func (sym *Symbol) SplitField() (typename, name string) {
+ if sym.Kind != Field {
+ panic("not a field")
+ }
+ typename, name, _ = strings.Cut(sym.Name, ".")
+ return
+}
+
+// SplitMethod splits the method symbol name into pointer, receiver,
+// and method components. It must be called only on Method symbols.
+//
+// Example: "(*Buffer).Grow" -> (true, "Buffer", "Grow")
+func (sym *Symbol) SplitMethod() (ptr bool, recv, name string) {
+ if sym.Kind != Method {
+ panic("not a method")
+ }
+ recv, name, _ = strings.Cut(sym.Name, ".")
+ recv = recv[len("(") : len(recv)-len(")")]
+ ptr = recv[0] == '*'
+ if ptr {
+ recv = recv[len("*"):]
+ }
+ return
+}
diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go
index 8c3a42dc31..9771b8c3d6 100644
--- a/vendor/golang.org/x/tools/internal/typeparams/common.go
+++ b/vendor/golang.org/x/tools/internal/typeparams/common.go
@@ -13,13 +13,11 @@
package typeparams
import (
- "fmt"
"go/ast"
"go/token"
"go/types"
"golang.org/x/tools/internal/aliases"
- "golang.org/x/tools/internal/typesinternal"
)
// UnpackIndexExpr extracts data from AST nodes that represent index
@@ -71,57 +69,6 @@ func IsTypeParam(t types.Type) bool {
return ok
}
-// OriginMethod returns the origin method associated with the method fn.
-// For methods on a non-generic receiver base type, this is just
-// fn. However, for methods with a generic receiver, OriginMethod returns the
-// corresponding method in the method set of the origin type.
-//
-// As a special case, if fn is not a method (has no receiver), OriginMethod
-// returns fn.
-func OriginMethod(fn *types.Func) *types.Func {
- recv := fn.Type().(*types.Signature).Recv()
- if recv == nil {
- return fn
- }
- _, named := typesinternal.ReceiverNamed(recv)
- if named == nil {
- // Receiver is a *types.Interface.
- return fn
- }
- if named.TypeParams().Len() == 0 {
- // Receiver base has no type parameters, so we can avoid the lookup below.
- return fn
- }
- orig := named.Origin()
- gfn, _, _ := types.LookupFieldOrMethod(orig, true, fn.Pkg(), fn.Name())
-
- // This is a fix for a gopls crash (#60628) due to a go/types bug (#60634). In:
- // package p
- // type T *int
- // func (*T) f() {}
- // LookupFieldOrMethod(T, true, p, f)=nil, but NewMethodSet(*T)={(*T).f}.
- // Here we make them consistent by force.
- // (The go/types bug is general, but this workaround is reached only
- // for generic T thanks to the early return above.)
- if gfn == nil {
- mset := types.NewMethodSet(types.NewPointer(orig))
- for i := 0; i < mset.Len(); i++ {
- m := mset.At(i)
- if m.Obj().Id() == fn.Id() {
- gfn = m.Obj()
- break
- }
- }
- }
-
- // In golang/go#61196, we observe another crash, this time inexplicable.
- if gfn == nil {
- panic(fmt.Sprintf("missing origin method for %s.%s; named == origin: %t, named.NumMethods(): %d, origin.NumMethods(): %d", named, fn, named == orig, named.NumMethods(), orig.NumMethods()))
- }
-
- return gfn.(*types.Func)
-}
-
// GenericAssignableTo is a generalization of types.AssignableTo that
// implements the following rule for uninstantiated generic types:
//
diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go
index e66e9d0f48..24933e43da 100644
--- a/vendor/golang.org/x/tools/internal/typeparams/coretype.go
+++ b/vendor/golang.org/x/tools/internal/typeparams/coretype.go
@@ -124,6 +124,21 @@ func _NormalTerms(typ types.Type) ([]*types.Term, error) {
}
}
+// Deref returns the type of the variable pointed to by t,
+// if t's core type is a pointer; otherwise it returns t.
+//
+// Do not assume that Deref(T)==T implies T is not a pointer:
+// consider "type T *T", for example.
+//
+// TODO(adonovan): ideally this would live in typesinternal, but that
+// creates an import cycle. Move there when we melt this package down.
+func Deref(t types.Type) types.Type {
+ if ptr, ok := CoreType(t).(*types.Pointer); ok {
+ return ptr.Elem()
+ }
+ return t
+}
+
// MustDeref returns the type of the variable pointed to by t.
// It panics if t's core type is not a pointer.
//
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/parameterized.go b/vendor/golang.org/x/tools/internal/typeparams/free.go
similarity index 54%
rename from vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/parameterized.go
rename to vendor/golang.org/x/tools/internal/typeparams/free.go
index a077d44024..de3496d10b 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/ifaceassert/parameterized.go
+++ b/vendor/golang.org/x/tools/internal/typeparams/free.go
@@ -1,35 +1,34 @@
-// Copyright 2022 The Go Authors. All rights reserved.
+// Copyright 2024 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package ifaceassert
+package typeparams
import (
"go/types"
"golang.org/x/tools/internal/aliases"
- "golang.org/x/tools/internal/typeparams"
)
-// isParameterized reports whether typ contains any of the type parameters of tparams.
+// Free is a memoization of the set of free type parameters within a
+// type. It makes a sequence of calls to [Free.Has] for overlapping
+// types more efficient. The zero value is ready for use.
//
-// NOTE: Adapted from go/types/infer.go. If that is exported in a future release remove this copy.
-func isParameterized(typ types.Type) bool {
- w := tpWalker{
- seen: make(map[types.Type]bool),
- }
- return w.isParameterized(typ)
-}
-
-type tpWalker struct {
+// NOTE: Adapted from go/types/infer.go. If it is later exported, factor.
+type Free struct {
seen map[types.Type]bool
}
-func (w *tpWalker) isParameterized(typ types.Type) (res bool) {
+// Has reports whether the specified type has a free type parameter.
+func (w *Free) Has(typ types.Type) (res bool) {
+
// detect cycles
if x, ok := w.seen[typ]; ok {
return x
}
+ if w.seen == nil {
+ w.seen = make(map[types.Type]bool)
+ }
w.seen[typ] = false
defer func() {
w.seen[typ] = res
@@ -39,26 +38,29 @@ func (w *tpWalker) isParameterized(typ types.Type) (res bool) {
case nil, *types.Basic: // TODO(gri) should nil be handled here?
break
+ case *aliases.Alias:
+ return w.Has(aliases.Unalias(t))
+
case *types.Array:
- return w.isParameterized(t.Elem())
+ return w.Has(t.Elem())
case *types.Slice:
- return w.isParameterized(t.Elem())
+ return w.Has(t.Elem())
case *types.Struct:
for i, n := 0, t.NumFields(); i < n; i++ {
- if w.isParameterized(t.Field(i).Type()) {
+ if w.Has(t.Field(i).Type()) {
return true
}
}
case *types.Pointer:
- return w.isParameterized(t.Elem())
+ return w.Has(t.Elem())
case *types.Tuple:
n := t.Len()
for i := 0; i < n; i++ {
- if w.isParameterized(t.At(i).Type()) {
+ if w.Has(t.At(i).Type()) {
return true
}
}
@@ -71,41 +73,42 @@ func (w *tpWalker) isParameterized(typ types.Type) (res bool) {
// Similarly, the receiver of a method may declare (rather than
// use) type parameters, we don't care about those either.
// Thus, we only need to look at the input and result parameters.
- return w.isParameterized(t.Params()) || w.isParameterized(t.Results())
+ return w.Has(t.Params()) || w.Has(t.Results())
case *types.Interface:
for i, n := 0, t.NumMethods(); i < n; i++ {
- if w.isParameterized(t.Method(i).Type()) {
+ if w.Has(t.Method(i).Type()) {
return true
}
}
- terms, err := typeparams.InterfaceTermSet(t)
+ terms, err := InterfaceTermSet(t)
if err != nil {
panic(err)
}
for _, term := range terms {
- if w.isParameterized(term.Type()) {
+ if w.Has(term.Type()) {
return true
}
}
case *types.Map:
- return w.isParameterized(t.Key()) || w.isParameterized(t.Elem())
+ return w.Has(t.Key()) || w.Has(t.Elem())
case *types.Chan:
- return w.isParameterized(t.Elem())
-
- case *aliases.Alias:
- // TODO(adonovan): think about generic aliases.
- return w.isParameterized(aliases.Unalias(t))
+ return w.Has(t.Elem())
case *types.Named:
- list := t.TypeArgs()
- for i, n := 0, list.Len(); i < n; i++ {
- if w.isParameterized(list.At(i)) {
+ args := t.TypeArgs()
+ // TODO(taking): this does not match go/types/infer.go. Check with rfindley.
+ if params := t.TypeParams(); params.Len() > args.Len() {
+ return true
+ }
+ for i, n := 0, args.Len(); i < n; i++ {
+ if w.Has(args.At(i)) {
return true
}
}
+ return w.Has(t.Underlying()) // recurse for types local to parameterized functions
case *types.TypeParam:
return true
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
index 07484073a5..e0c27ed251 100644
--- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
+++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
@@ -167,7 +167,7 @@ const (
UntypedNilUse
// WrongAssignCount occurs when the number of values on the right-hand side
- // of an assignment or or initialization expression does not match the number
+ // of an assignment or initialization expression does not match the number
// of variables on the left-hand side.
//
// Example:
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go
new file mode 100644
index 0000000000..cc86487eaa
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go
@@ -0,0 +1,89 @@
+// Copyright 2024 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package typesinternal
+
+import (
+ "go/types"
+
+ "golang.org/x/tools/internal/stdlib"
+ "golang.org/x/tools/internal/versions"
+)
+
+// TooNewStdSymbols computes the set of package-level symbols
+// exported by pkg that are not available at the specified version.
+// The result maps each symbol to its minimum version.
+//
+// The pkg is allowed to contain type errors.
+func TooNewStdSymbols(pkg *types.Package, version string) map[types.Object]string {
+ disallowed := make(map[types.Object]string)
+
+ // Pass 1: package-level symbols.
+ symbols := stdlib.PackageSymbols[pkg.Path()]
+ for _, sym := range symbols {
+ symver := sym.Version.String()
+ if versions.Before(version, symver) {
+ switch sym.Kind {
+ case stdlib.Func, stdlib.Var, stdlib.Const, stdlib.Type:
+ disallowed[pkg.Scope().Lookup(sym.Name)] = symver
+ }
+ }
+ }
+
+ // Pass 2: fields and methods.
+ //
+ // We allow fields and methods if their associated type is
+ // disallowed, as otherwise we would report false positives
+ // for compatibility shims. Consider:
+ //
+ // //go:build go1.22
+ // type T struct { F std.Real } // correct new API
+ //
+ // //go:build !go1.22
+ // type T struct { F fake } // shim
+ // type fake struct { ... }
+ // func (fake) M () {}
+ //
+ // These alternative declarations of T use either the std.Real
+ // type, introduced in go1.22, or a fake type, for the field
+ // F. (The fakery could be arbitrarily deep, involving more
+ // nested fields and methods than are shown here.) Clients
+ // that use the compatibility shim T will compile with any
+ // version of go, whether older or newer than go1.22, but only
+ // the newer version will use the std.Real implementation.
+ //
+ // Now consider a reference to method M in new(T).F.M() in a
+ // module that requires a minimum of go1.21. The analysis may
+ // occur using a version of Go higher than 1.21, selecting the
+ // first version of T, so the method M is Real.M. This would
+ // spuriously cause the analyzer to report a reference to a
+ // too-new symbol even though this expression compiles just
+ // fine (with the fake implementation) using go1.21.
+ for _, sym := range symbols {
+ symVersion := sym.Version.String()
+ if !versions.Before(version, symVersion) {
+ continue // allowed
+ }
+
+ var obj types.Object
+ switch sym.Kind {
+ case stdlib.Field:
+ typename, name := sym.SplitField()
+ if t := pkg.Scope().Lookup(typename); t != nil && disallowed[t] == "" {
+ obj, _, _ = types.LookupFieldOrMethod(t.Type(), false, pkg, name)
+ }
+
+ case stdlib.Method:
+ ptr, recvname, name := sym.SplitMethod()
+ if t := pkg.Scope().Lookup(recvname); t != nil && disallowed[t] == "" {
+ obj, _, _ = types.LookupFieldOrMethod(t.Type(), ptr, pkg, name)
+ }
+ }
+ if obj != nil {
+ disallowed[obj] = symVersion
+ }
+ }
+
+ return disallowed
+}
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go
index ce7d4351b2..7c77c2fbc0 100644
--- a/vendor/golang.org/x/tools/internal/typesinternal/types.go
+++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go
@@ -48,5 +48,3 @@ func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos,
}
return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true
}
-
-var SetGoVersion = func(conf *types.Config, version string) bool { return false }
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types_118.go b/vendor/golang.org/x/tools/internal/typesinternal/types_118.go
deleted file mode 100644
index ef7ea290c0..0000000000
--- a/vendor/golang.org/x/tools/internal/typesinternal/types_118.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package typesinternal
-
-import (
- "go/types"
-)
-
-func init() {
- SetGoVersion = func(conf *types.Config, version string) bool {
- conf.GoVersion = version
- return true
- }
-}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index bddaa6e277..3d2664cbe1 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -10,10 +10,10 @@ github.com/4meepo/tagalign
# github.com/Abirdcfly/dupword v0.0.14
## explicit; go 1.20
github.com/Abirdcfly/dupword
-# github.com/Antonboom/errname v0.1.12
+# github.com/Antonboom/errname v0.1.13
## explicit; go 1.20
github.com/Antonboom/errname/pkg/analyzer
-# github.com/Antonboom/nilnil v0.1.7
+# github.com/Antonboom/nilnil v0.1.8
## explicit; go 1.20
github.com/Antonboom/nilnil/pkg/analyzer
# github.com/Antonboom/testifylint v1.2.0
@@ -27,6 +27,9 @@ github.com/Antonboom/testifylint/internal/testify
## explicit; go 1.16
github.com/BurntSushi/toml
github.com/BurntSushi/toml/internal
+# github.com/Crocmagnon/fatcontext v0.2.2
+## explicit; go 1.21
+github.com/Crocmagnon/fatcontext/pkg/analyzer
# github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24
## explicit; go 1.13
github.com/Djarvur/go-err113
@@ -36,9 +39,9 @@ github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer
github.com/GaijinEntertainment/go-exhaustruct/v3/internal/comment
github.com/GaijinEntertainment/go-exhaustruct/v3/internal/pattern
github.com/GaijinEntertainment/go-exhaustruct/v3/internal/structure
-# github.com/Masterminds/semver v1.5.0
-## explicit
-github.com/Masterminds/semver
+# github.com/Masterminds/semver/v3 v3.2.1
+## explicit; go 1.18
+github.com/Masterminds/semver/v3
# github.com/OpenPeeDeeP/depguard/v2 v2.2.0
## explicit; go 1.20
github.com/OpenPeeDeeP/depguard/v2
@@ -114,7 +117,7 @@ github.com/breml/errchkjson
github.com/butuzov/ireturn/analyzer
github.com/butuzov/ireturn/analyzer/internal/config
github.com/butuzov/ireturn/analyzer/internal/types
-# github.com/butuzov/mirror v1.1.0
+# github.com/butuzov/mirror v1.2.0
## explicit; go 1.19
github.com/butuzov/mirror
github.com/butuzov/mirror/internal/checker
@@ -141,7 +144,7 @@ github.com/charithe/durationcheck
# github.com/chavacava/garif v0.1.0
## explicit; go 1.16
github.com/chavacava/garif
-# github.com/ckaznocha/intrange v0.1.1
+# github.com/ckaznocha/intrange v0.1.2
## explicit; go 1.21
github.com/ckaznocha/intrange
# github.com/client9/misspell v0.3.4
@@ -166,8 +169,8 @@ github.com/cloudflare/circl/sign/ed448
## explicit; go 1.18
github.com/curioswitch/go-reassign
github.com/curioswitch/go-reassign/internal/analyzer
-# github.com/daixiang0/gci v0.12.3
-## explicit; go 1.18
+# github.com/daixiang0/gci v0.13.4
+## explicit; go 1.21
github.com/daixiang0/gci/pkg/config
github.com/daixiang0/gci/pkg/format
github.com/daixiang0/gci/pkg/gci
@@ -192,7 +195,7 @@ github.com/fatih/color
# github.com/fatih/structtag v1.2.0
## explicit; go 1.12
github.com/fatih/structtag
-# github.com/firefart/nonamedreturns v1.0.4
+# github.com/firefart/nonamedreturns v1.0.5
## explicit; go 1.18
github.com/firefart/nonamedreturns/analyzer
# github.com/fsnotify/fsnotify v1.5.4
@@ -204,7 +207,7 @@ github.com/fzipp/gocyclo
# github.com/ghostiam/protogetter v0.3.5
## explicit; go 1.19
github.com/ghostiam/protogetter
-# github.com/go-critic/go-critic v0.11.2
+# github.com/go-critic/go-critic v0.11.3
## explicit; go 1.18
github.com/go-critic/go-critic/checkers
github.com/go-critic/go-critic/checkers/internal/astwalk
@@ -273,7 +276,7 @@ github.com/golangci/dupl/syntax/golang
github.com/golangci/gofmt/gofmt
github.com/golangci/gofmt/gofmt/internal/diff
github.com/golangci/gofmt/goimports
-# github.com/golangci/golangci-lint v1.57.2
+# github.com/golangci/golangci-lint v1.58.0
## explicit; go 1.21
github.com/golangci/golangci-lint/cmd/golangci-lint
github.com/golangci/golangci-lint/internal/cache
@@ -288,28 +291,138 @@ github.com/golangci/golangci-lint/pkg/exitcodes
github.com/golangci/golangci-lint/pkg/fsutils
github.com/golangci/golangci-lint/pkg/goanalysis
github.com/golangci/golangci-lint/pkg/goanalysis/load
+github.com/golangci/golangci-lint/pkg/goanalysis/pkgerrors
github.com/golangci/golangci-lint/pkg/golinters
+github.com/golangci/golangci-lint/pkg/golinters/asasalint
+github.com/golangci/golangci-lint/pkg/golinters/asciicheck
+github.com/golangci/golangci-lint/pkg/golinters/bidichk
+github.com/golangci/golangci-lint/pkg/golinters/bodyclose
+github.com/golangci/golangci-lint/pkg/golinters/canonicalheader
+github.com/golangci/golangci-lint/pkg/golinters/containedctx
+github.com/golangci/golangci-lint/pkg/golinters/contextcheck
+github.com/golangci/golangci-lint/pkg/golinters/copyloopvar
+github.com/golangci/golangci-lint/pkg/golinters/cyclop
+github.com/golangci/golangci-lint/pkg/golinters/decorder
+github.com/golangci/golangci-lint/pkg/golinters/depguard
+github.com/golangci/golangci-lint/pkg/golinters/dogsled
+github.com/golangci/golangci-lint/pkg/golinters/dupl
+github.com/golangci/golangci-lint/pkg/golinters/dupword
+github.com/golangci/golangci-lint/pkg/golinters/durationcheck
+github.com/golangci/golangci-lint/pkg/golinters/err113
+github.com/golangci/golangci-lint/pkg/golinters/errcheck
+github.com/golangci/golangci-lint/pkg/golinters/errchkjson
+github.com/golangci/golangci-lint/pkg/golinters/errname
+github.com/golangci/golangci-lint/pkg/golinters/errorlint
+github.com/golangci/golangci-lint/pkg/golinters/execinquery
+github.com/golangci/golangci-lint/pkg/golinters/exhaustive
+github.com/golangci/golangci-lint/pkg/golinters/exhaustruct
+github.com/golangci/golangci-lint/pkg/golinters/exportloopref
+github.com/golangci/golangci-lint/pkg/golinters/fatcontext
+github.com/golangci/golangci-lint/pkg/golinters/forbidigo
+github.com/golangci/golangci-lint/pkg/golinters/forcetypeassert
+github.com/golangci/golangci-lint/pkg/golinters/funlen
+github.com/golangci/golangci-lint/pkg/golinters/gci
+github.com/golangci/golangci-lint/pkg/golinters/ginkgolinter
+github.com/golangci/golangci-lint/pkg/golinters/gocheckcompilerdirectives
+github.com/golangci/golangci-lint/pkg/golinters/gochecknoglobals
+github.com/golangci/golangci-lint/pkg/golinters/gochecknoinits
+github.com/golangci/golangci-lint/pkg/golinters/gochecksumtype
+github.com/golangci/golangci-lint/pkg/golinters/gocognit
+github.com/golangci/golangci-lint/pkg/golinters/goconst
+github.com/golangci/golangci-lint/pkg/golinters/gocritic
+github.com/golangci/golangci-lint/pkg/golinters/gocyclo
+github.com/golangci/golangci-lint/pkg/golinters/godot
+github.com/golangci/golangci-lint/pkg/golinters/godox
+github.com/golangci/golangci-lint/pkg/golinters/gofmt
+github.com/golangci/golangci-lint/pkg/golinters/gofumpt
+github.com/golangci/golangci-lint/pkg/golinters/goheader
+github.com/golangci/golangci-lint/pkg/golinters/goimports
+github.com/golangci/golangci-lint/pkg/golinters/gomoddirectives
+github.com/golangci/golangci-lint/pkg/golinters/gomodguard
+github.com/golangci/golangci-lint/pkg/golinters/goprintffuncname
+github.com/golangci/golangci-lint/pkg/golinters/gosec
+github.com/golangci/golangci-lint/pkg/golinters/gosimple
+github.com/golangci/golangci-lint/pkg/golinters/gosmopolitan
+github.com/golangci/golangci-lint/pkg/golinters/govet
+github.com/golangci/golangci-lint/pkg/golinters/grouper
+github.com/golangci/golangci-lint/pkg/golinters/importas
+github.com/golangci/golangci-lint/pkg/golinters/inamedparam
+github.com/golangci/golangci-lint/pkg/golinters/ineffassign
+github.com/golangci/golangci-lint/pkg/golinters/interfacebloat
github.com/golangci/golangci-lint/pkg/golinters/internal
+github.com/golangci/golangci-lint/pkg/golinters/intrange
+github.com/golangci/golangci-lint/pkg/golinters/ireturn
+github.com/golangci/golangci-lint/pkg/golinters/lll
+github.com/golangci/golangci-lint/pkg/golinters/loggercheck
+github.com/golangci/golangci-lint/pkg/golinters/maintidx
+github.com/golangci/golangci-lint/pkg/golinters/makezero
+github.com/golangci/golangci-lint/pkg/golinters/mirror
+github.com/golangci/golangci-lint/pkg/golinters/misspell
+github.com/golangci/golangci-lint/pkg/golinters/mnd
+github.com/golangci/golangci-lint/pkg/golinters/musttag
+github.com/golangci/golangci-lint/pkg/golinters/nakedret
+github.com/golangci/golangci-lint/pkg/golinters/nestif
+github.com/golangci/golangci-lint/pkg/golinters/nilerr
+github.com/golangci/golangci-lint/pkg/golinters/nilnil
+github.com/golangci/golangci-lint/pkg/golinters/nlreturn
+github.com/golangci/golangci-lint/pkg/golinters/noctx
github.com/golangci/golangci-lint/pkg/golinters/nolintlint
+github.com/golangci/golangci-lint/pkg/golinters/nolintlint/internal
+github.com/golangci/golangci-lint/pkg/golinters/nonamedreturns
+github.com/golangci/golangci-lint/pkg/golinters/nosprintfhostport
+github.com/golangci/golangci-lint/pkg/golinters/paralleltest
+github.com/golangci/golangci-lint/pkg/golinters/perfsprint
+github.com/golangci/golangci-lint/pkg/golinters/prealloc
+github.com/golangci/golangci-lint/pkg/golinters/predeclared
+github.com/golangci/golangci-lint/pkg/golinters/promlinter
+github.com/golangci/golangci-lint/pkg/golinters/protogetter
+github.com/golangci/golangci-lint/pkg/golinters/reassign
+github.com/golangci/golangci-lint/pkg/golinters/revive
+github.com/golangci/golangci-lint/pkg/golinters/rowserrcheck
+github.com/golangci/golangci-lint/pkg/golinters/sloglint
+github.com/golangci/golangci-lint/pkg/golinters/spancheck
+github.com/golangci/golangci-lint/pkg/golinters/sqlclosecheck
+github.com/golangci/golangci-lint/pkg/golinters/staticcheck
+github.com/golangci/golangci-lint/pkg/golinters/stylecheck
+github.com/golangci/golangci-lint/pkg/golinters/tagalign
+github.com/golangci/golangci-lint/pkg/golinters/tagliatelle
+github.com/golangci/golangci-lint/pkg/golinters/tenv
+github.com/golangci/golangci-lint/pkg/golinters/testableexamples
+github.com/golangci/golangci-lint/pkg/golinters/testifylint
+github.com/golangci/golangci-lint/pkg/golinters/testpackage
+github.com/golangci/golangci-lint/pkg/golinters/thelper
+github.com/golangci/golangci-lint/pkg/golinters/tparallel
+github.com/golangci/golangci-lint/pkg/golinters/unconvert
+github.com/golangci/golangci-lint/pkg/golinters/unparam
+github.com/golangci/golangci-lint/pkg/golinters/unused
+github.com/golangci/golangci-lint/pkg/golinters/usestdlibvars
+github.com/golangci/golangci-lint/pkg/golinters/varnamelen
+github.com/golangci/golangci-lint/pkg/golinters/wastedassign
+github.com/golangci/golangci-lint/pkg/golinters/whitespace
+github.com/golangci/golangci-lint/pkg/golinters/wrapcheck
+github.com/golangci/golangci-lint/pkg/golinters/wsl
+github.com/golangci/golangci-lint/pkg/golinters/zerologlint
github.com/golangci/golangci-lint/pkg/goutil
github.com/golangci/golangci-lint/pkg/lint
github.com/golangci/golangci-lint/pkg/lint/linter
github.com/golangci/golangci-lint/pkg/lint/lintersdb
github.com/golangci/golangci-lint/pkg/logutils
-github.com/golangci/golangci-lint/pkg/packages
github.com/golangci/golangci-lint/pkg/printers
github.com/golangci/golangci-lint/pkg/report
github.com/golangci/golangci-lint/pkg/result
github.com/golangci/golangci-lint/pkg/result/processors
github.com/golangci/golangci-lint/pkg/timeutils
-# github.com/golangci/misspell v0.4.1
-## explicit; go 1.19
+# github.com/golangci/misspell v0.5.1
+## explicit; go 1.21
github.com/golangci/misspell
+# github.com/golangci/modinfo v0.3.4
+## explicit; go 1.21
+github.com/golangci/modinfo
# github.com/golangci/plugin-module-register v0.1.1
## explicit; go 1.21
github.com/golangci/plugin-module-register/register
-# github.com/golangci/revgrep v0.5.2
-## explicit; go 1.19
+# github.com/golangci/revgrep v0.5.3
+## explicit; go 1.21
github.com/golangci/revgrep
# github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed
## explicit; go 1.20
@@ -502,13 +615,13 @@ github.com/jingyugao/rowserrcheck/passes/rowserr
# github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af
## explicit; go 1.13
github.com/jirfag/go-printf-func-name/pkg/analyzer
-# github.com/jjti/go-spancheck v0.5.3
+# github.com/jjti/go-spancheck v0.6.1
## explicit; go 1.20
github.com/jjti/go-spancheck
# github.com/julz/importas v0.1.0
## explicit; go 1.15
github.com/julz/importas
-# github.com/karamaru-alpha/copyloopvar v1.0.10
+# github.com/karamaru-alpha/copyloopvar v1.1.0
## explicit; go 1.21
github.com/karamaru-alpha/copyloopvar
# github.com/kisielk/errcheck v1.7.0
@@ -526,14 +639,17 @@ github.com/kunwardeep/paralleltest/pkg/paralleltest
# github.com/kyoh86/exportloopref v0.1.11
## explicit; go 1.18
github.com/kyoh86/exportloopref
+# github.com/lasiar/canonicalheader v1.0.6
+## explicit; go 1.21
+github.com/lasiar/canonicalheader
# github.com/ldez/gomoddirectives v0.2.4
## explicit; go 1.21
github.com/ldez/gomoddirectives
# github.com/ldez/tagliatelle v0.5.0
## explicit; go 1.19
github.com/ldez/tagliatelle
-# github.com/leonklingele/grouper v1.1.1
-## explicit; go 1.17
+# github.com/leonklingele/grouper v1.1.2
+## explicit; go 1.18
github.com/leonklingele/grouper/pkg/analyzer
github.com/leonklingele/grouper/pkg/analyzer/consts
github.com/leonklingele/grouper/pkg/analyzer/globals
@@ -633,7 +749,7 @@ github.com/olekukonko/tablewriter
# github.com/pelletier/go-toml v1.9.5
## explicit; go 1.12
github.com/pelletier/go-toml
-# github.com/pelletier/go-toml/v2 v2.2.0
+# github.com/pelletier/go-toml/v2 v2.2.2
## explicit; go 1.16
github.com/pelletier/go-toml/v2
github.com/pelletier/go-toml/v2/internal/characters
@@ -643,7 +759,7 @@ github.com/pelletier/go-toml/v2/unstable
# github.com/pmezard/go-difflib v1.0.0
## explicit
github.com/pmezard/go-difflib/difflib
-# github.com/polyfloyd/go-errorlint v1.4.8
+# github.com/polyfloyd/go-errorlint v1.5.1
## explicit; go 1.20
github.com/polyfloyd/go-errorlint/errorlint
# github.com/prometheus/client_golang v1.12.1
@@ -681,6 +797,10 @@ github.com/quasilyte/go-ruleguard/ruleguard/quasigo/stdlib/qstrconv
github.com/quasilyte/go-ruleguard/ruleguard/quasigo/stdlib/qstrings
github.com/quasilyte/go-ruleguard/ruleguard/textmatch
github.com/quasilyte/go-ruleguard/ruleguard/typematch
+# github.com/quasilyte/go-ruleguard/dsl v0.3.22
+## explicit; go 1.15
+github.com/quasilyte/go-ruleguard/dsl
+github.com/quasilyte/go-ruleguard/dsl/types
# github.com/quasilyte/gogrep v0.5.0
## explicit; go 1.16
github.com/quasilyte/gogrep
@@ -692,7 +812,7 @@ github.com/quasilyte/regex/syntax
# github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567
## explicit; go 1.17
github.com/quasilyte/stdinfo
-# github.com/ryancurrah/gomodguard v1.3.1
+# github.com/ryancurrah/gomodguard v1.3.2
## explicit; go 1.21
github.com/ryancurrah/gomodguard
# github.com/ryanrolds/sqlclosecheck v0.5.1
@@ -823,7 +943,7 @@ github.com/tommy-muehle/go-mnd/v2/config
# github.com/ultraware/funlen v0.1.0
## explicit; go 1.20
github.com/ultraware/funlen
-# github.com/ultraware/whitespace v0.1.0
+# github.com/ultraware/whitespace v0.1.1
## explicit; go 1.20
github.com/ultraware/whitespace
# github.com/uudashr/gocognit v1.1.2
@@ -850,8 +970,8 @@ github.com/xen0n/gosmopolitan
github.com/yagipy/maintidx
github.com/yagipy/maintidx/pkg/cyc
github.com/yagipy/maintidx/pkg/halstvol
-# github.com/yeya24/promlinter v0.2.0
-## explicit; go 1.16
+# github.com/yeya24/promlinter v0.3.0
+## explicit; go 1.20
github.com/yeya24/promlinter
# github.com/ykadowak/zerologlint v0.1.5
## explicit; go 1.19
@@ -866,13 +986,13 @@ github.com/zclconf/go-cty/cty/function/stdlib
github.com/zclconf/go-cty/cty/gocty
github.com/zclconf/go-cty/cty/json
github.com/zclconf/go-cty/cty/set
-# gitlab.com/bosi/decorder v0.4.1
+# gitlab.com/bosi/decorder v0.4.2
## explicit; go 1.20
gitlab.com/bosi/decorder
-# go-simpler.org/musttag v0.9.0
+# go-simpler.org/musttag v0.12.1
## explicit; go 1.20
go-simpler.org/musttag
-# go-simpler.org/sloglint v0.5.0
+# go-simpler.org/sloglint v0.6.0
## explicit; go 1.20
go-simpler.org/sloglint
# go.uber.org/atomic v1.7.0
@@ -923,13 +1043,13 @@ golang.org/x/exp/slices
# golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f
## explicit; go 1.18
golang.org/x/exp/typeparams
-# golang.org/x/mod v0.16.0
+# golang.org/x/mod v0.17.0
## explicit; go 1.18
golang.org/x/mod/internal/lazyregexp
golang.org/x/mod/modfile
golang.org/x/mod/module
golang.org/x/mod/semver
-# golang.org/x/net v0.23.0
+# golang.org/x/net v0.24.0
## explicit; go 1.18
golang.org/x/net/context/ctxhttp
golang.org/x/net/http/httpguts
@@ -938,11 +1058,11 @@ golang.org/x/net/http2/hpack
golang.org/x/net/idna
golang.org/x/net/internal/timeseries
golang.org/x/net/trace
-# golang.org/x/oauth2 v0.19.0
+# golang.org/x/oauth2 v0.20.0
## explicit; go 1.18
golang.org/x/oauth2
golang.org/x/oauth2/internal
-# golang.org/x/sync v0.6.0
+# golang.org/x/sync v0.7.0
## explicit; go 1.18
golang.org/x/sync/errgroup
golang.org/x/sync/semaphore
@@ -959,7 +1079,7 @@ golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
golang.org/x/text/width
-# golang.org/x/tools v0.19.0
+# golang.org/x/tools v0.20.0
## explicit; go 1.19
golang.org/x/tools/go/analysis
golang.org/x/tools/go/analysis/passes/appends
@@ -1035,6 +1155,7 @@ golang.org/x/tools/internal/gopathwalk
golang.org/x/tools/internal/imports
golang.org/x/tools/internal/packagesinternal
golang.org/x/tools/internal/pkgbits
+golang.org/x/tools/internal/stdlib
golang.org/x/tools/internal/tokeninternal
golang.org/x/tools/internal/typeparams
golang.org/x/tools/internal/typesinternal
@@ -1204,6 +1325,6 @@ mvdan.cc/gofumpt/internal/govendor/go/doc/comment
mvdan.cc/gofumpt/internal/govendor/go/format
mvdan.cc/gofumpt/internal/govendor/go/printer
mvdan.cc/gofumpt/internal/version
-# mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14
+# mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1
## explicit; go 1.20
mvdan.cc/unparam/check
diff --git a/vendor/mvdan.cc/unparam/check/check.go b/vendor/mvdan.cc/unparam/check/check.go
index 39de800d95..b1704e454c 100644
--- a/vendor/mvdan.cc/unparam/check/check.go
+++ b/vendor/mvdan.cc/unparam/check/check.go
@@ -913,6 +913,8 @@ func recvPrefix(recv *ast.FieldList) string {
return expr.Name + "."
case *ast.IndexExpr:
return expr.X.(*ast.Ident).Name + "."
+ case *ast.ParenExpr:
+ return expr.X.(*ast.Ident).Name + "."
case *ast.IndexListExpr:
return expr.X.(*ast.Ident).Name + "."
default: