Bump golang.org/x/tools version for staticcheck compat
This commit is contained in:
parent
7e5a64e011
commit
9a02ef7fe5
2
go.mod
2
go.mod
@ -420,7 +420,7 @@ replace (
|
|||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/time => golang.org/x/time v0.0.0-20161028155119-f51c12702a4d
|
golang.org/x/time => golang.org/x/time v0.0.0-20161028155119-f51c12702a4d
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
golang.org/x/tools => golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac
|
||||||
gonum.org/v1/gonum => gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
|
gonum.org/v1/gonum => gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
|
||||||
gonum.org/v1/netlib => gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e
|
gonum.org/v1/netlib => gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e
|
||||||
google.golang.org/api => google.golang.org/api v0.0.0-20181220000619-583d854617af
|
google.golang.org/api => google.golang.org/api v0.0.0-20181220000619-583d854617af
|
||||||
|
4
go.sum
4
go.sum
@ -450,8 +450,8 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
|
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
|
||||||
|
@ -14,7 +14,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
)
|
)
|
||||||
|
4
staging/src/k8s.io/api/go.sum
generated
4
staging/src/k8s.io/api/go.sum
generated
@ -76,7 +76,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -38,7 +38,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apiextensions-apiserver => ../apiextensions-apiserver
|
k8s.io/apiextensions-apiserver => ../apiextensions-apiserver
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
|
11
staging/src/k8s.io/apiextensions-apiserver/go.sum
generated
11
staging/src/k8s.io/apiextensions-apiserver/go.sum
generated
@ -270,6 +270,7 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
@ -284,8 +285,14 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
@ -26,7 +26,7 @@ require (
|
|||||||
github.com/spf13/pflag v1.0.3
|
github.com/spf13/pflag v1.0.3
|
||||||
github.com/stretchr/testify v1.3.0
|
github.com/stretchr/testify v1.3.0
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 // indirect
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58 // indirect
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f // indirect
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f // indirect
|
||||||
golang.org/x/text v0.3.2 // indirect
|
golang.org/x/text v0.3.2 // indirect
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
|
||||||
@ -41,6 +41,5 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
)
|
)
|
||||||
|
4
staging/src/k8s.io/apimachinery/go.sum
generated
4
staging/src/k8s.io/apimachinery/go.sum
generated
@ -90,7 +90,9 @@ golang.org/x/sys v0.0.0-20190209173611-3b5209105503 h1:5SvYFrOM3W8Mexn9/oA44Ji7v
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -68,7 +68,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/apiserver => ../apiserver
|
k8s.io/apiserver => ../apiserver
|
||||||
|
6
staging/src/k8s.io/apiserver/go.sum
generated
6
staging/src/k8s.io/apiserver/go.sum
generated
@ -198,6 +198,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -211,7 +212,10 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -27,7 +27,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/cli-runtime => ../cli-runtime
|
k8s.io/cli-runtime => ../cli-runtime
|
||||||
|
6
staging/src/k8s.io/cli-runtime/go.sum
generated
6
staging/src/k8s.io/cli-runtime/go.sum
generated
@ -145,6 +145,7 @@ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -158,7 +159,10 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -38,7 +38,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/client-go => ../client-go
|
k8s.io/client-go => ../client-go
|
||||||
|
4
staging/src/k8s.io/client-go/go.sum
generated
4
staging/src/k8s.io/client-go/go.sum
generated
@ -124,7 +124,9 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -17,7 +17,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/client-go => ../client-go
|
k8s.io/client-go => ../client-go
|
||||||
|
4
staging/src/k8s.io/cloud-provider/go.sum
generated
4
staging/src/k8s.io/cloud-provider/go.sum
generated
@ -108,7 +108,9 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -18,7 +18,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/cluster-bootstrap => ../cluster-bootstrap
|
k8s.io/cluster-bootstrap => ../cluster-bootstrap
|
||||||
|
4
staging/src/k8s.io/cluster-bootstrap/go.sum
generated
4
staging/src/k8s.io/cluster-bootstrap/go.sum
generated
@ -76,7 +76,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -22,8 +22,8 @@ require (
|
|||||||
|
|
||||||
replace (
|
replace (
|
||||||
golang.org/x/crypto => golang.org/x/crypto v0.0.0-20181025213731-e84da0312774
|
golang.org/x/crypto => golang.org/x/crypto v0.0.0-20181025213731-e84da0312774
|
||||||
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/code-generator => ../code-generator
|
k8s.io/code-generator => ../code-generator
|
||||||
)
|
)
|
||||||
|
12
staging/src/k8s.io/code-generator/go.sum
generated
12
staging/src/k8s.io/code-generator/go.sum
generated
@ -76,14 +76,22 @@ golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxT
|
|||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
@ -21,7 +21,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/component-base => ../component-base
|
k8s.io/component-base => ../component-base
|
||||||
)
|
)
|
||||||
|
4
staging/src/k8s.io/component-base/go.sum
generated
4
staging/src/k8s.io/component-base/go.sum
generated
@ -92,7 +92,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -11,7 +11,7 @@ require (
|
|||||||
github.com/golang/protobuf v1.2.0 // indirect
|
github.com/golang/protobuf v1.2.0 // indirect
|
||||||
github.com/stretchr/testify v1.3.0
|
github.com/stretchr/testify v1.3.0
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc // indirect
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc // indirect
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 // indirect
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58 // indirect
|
||||||
golang.org/x/text v0.3.2 // indirect
|
golang.org/x/text v0.3.2 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6 // indirect
|
google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6 // indirect
|
||||||
google.golang.org/grpc v1.13.0
|
google.golang.org/grpc v1.13.0
|
||||||
@ -20,6 +20,5 @@ require (
|
|||||||
replace (
|
replace (
|
||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/cri-api => ../cri-api
|
k8s.io/cri-api => ../cri-api
|
||||||
)
|
)
|
||||||
|
3
staging/src/k8s.io/cri-api/go.sum
generated
3
staging/src/k8s.io/cri-api/go.sum
generated
@ -20,7 +20,8 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTm
|
|||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6 h1:72GtwBPfq6av9X0Ru2HtAopsPW+d+vh1K1zaxanTdE8=
|
google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6 h1:72GtwBPfq6av9X0Ru2HtAopsPW+d+vh1K1zaxanTdE8=
|
||||||
google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
google.golang.org/grpc v1.13.0 h1:bHIbVsCwmvbArgCJmLdgOdHFXlKqTOVjbibbS19cXHc=
|
google.golang.org/grpc v1.13.0 h1:bHIbVsCwmvbArgCJmLdgOdHFXlKqTOVjbibbS19cXHc=
|
||||||
|
@ -15,7 +15,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/client-go => ../client-go
|
k8s.io/client-go => ../client-go
|
||||||
|
4
staging/src/k8s.io/csi-translation-lib/go.sum
generated
4
staging/src/k8s.io/csi-translation-lib/go.sum
generated
@ -94,7 +94,9 @@ golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
|
@ -30,7 +30,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/apiserver => ../apiserver
|
k8s.io/apiserver => ../apiserver
|
||||||
|
11
staging/src/k8s.io/kube-aggregator/go.sum
generated
11
staging/src/k8s.io/kube-aggregator/go.sum
generated
@ -225,6 +225,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -238,8 +239,14 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
@ -13,7 +13,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/component-base => ../component-base
|
k8s.io/component-base => ../component-base
|
||||||
k8s.io/kube-controller-manager => ../kube-controller-manager
|
k8s.io/kube-controller-manager => ../kube-controller-manager
|
||||||
|
@ -83,7 +83,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -13,7 +13,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/component-base => ../component-base
|
k8s.io/component-base => ../component-base
|
||||||
k8s.io/kube-proxy => ../kube-proxy
|
k8s.io/kube-proxy => ../kube-proxy
|
||||||
|
4
staging/src/k8s.io/kube-proxy/go.sum
generated
4
staging/src/k8s.io/kube-proxy/go.sum
generated
@ -83,7 +83,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -13,7 +13,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/component-base => ../component-base
|
k8s.io/component-base => ../component-base
|
||||||
k8s.io/kube-scheduler => ../kube-scheduler
|
k8s.io/kube-scheduler => ../kube-scheduler
|
||||||
|
4
staging/src/k8s.io/kube-scheduler/go.sum
generated
4
staging/src/k8s.io/kube-scheduler/go.sum
generated
@ -83,7 +83,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -53,7 +53,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/cli-runtime => ../cli-runtime
|
k8s.io/cli-runtime => ../cli-runtime
|
||||||
|
9
staging/src/k8s.io/kubectl/go.sum
generated
9
staging/src/k8s.io/kubectl/go.sum
generated
@ -200,6 +200,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -213,7 +214,13 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
|
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
|
||||||
|
@ -13,7 +13,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/kubelet => ../kubelet
|
k8s.io/kubelet => ../kubelet
|
||||||
|
4
staging/src/k8s.io/kubelet/go.sum
generated
4
staging/src/k8s.io/kubelet/go.sum
generated
@ -74,7 +74,9 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
|
@ -41,7 +41,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/apiserver => ../apiserver
|
k8s.io/apiserver => ../apiserver
|
||||||
|
6
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
6
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
@ -183,6 +183,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -196,7 +197,10 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
google.golang.org/api v0.0.0-20181220000619-583d854617af h1:iQMS7JKv/0w/iiWf1M49Cg3dmOkBoBZT5KheqPDpaac=
|
google.golang.org/api v0.0.0-20181220000619-583d854617af h1:iQMS7JKv/0w/iiWf1M49Cg3dmOkBoBZT5KheqPDpaac=
|
||||||
google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -18,7 +18,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/client-go => ../client-go
|
k8s.io/client-go => ../client-go
|
||||||
|
11
staging/src/k8s.io/metrics/go.sum
generated
11
staging/src/k8s.io/metrics/go.sum
generated
@ -120,6 +120,7 @@ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -133,8 +134,14 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
@ -15,7 +15,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/client-go => ../client-go
|
k8s.io/client-go => ../client-go
|
||||||
|
11
staging/src/k8s.io/node-api/go.sum
generated
11
staging/src/k8s.io/node-api/go.sum
generated
@ -122,6 +122,7 @@ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -135,8 +136,14 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
@ -22,7 +22,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/apiserver => ../apiserver
|
k8s.io/apiserver => ../apiserver
|
||||||
|
11
staging/src/k8s.io/sample-apiserver/go.sum
generated
11
staging/src/k8s.io/sample-apiserver/go.sum
generated
@ -222,6 +222,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -235,8 +236,14 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
@ -16,7 +16,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/cli-runtime => ../cli-runtime
|
k8s.io/cli-runtime => ../cli-runtime
|
||||||
|
6
staging/src/k8s.io/sample-cli-plugin/go.sum
generated
6
staging/src/k8s.io/sample-cli-plugin/go.sum
generated
@ -145,6 +145,7 @@ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -158,7 +159,10 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -17,7 +17,6 @@ replace (
|
|||||||
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
golang.org/x/sync => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
golang.org/x/sys => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
golang.org/x/text => golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
|
||||||
golang.org/x/tools => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
|
||||||
k8s.io/api => ../api
|
k8s.io/api => ../api
|
||||||
k8s.io/apimachinery => ../apimachinery
|
k8s.io/apimachinery => ../apimachinery
|
||||||
k8s.io/client-go => ../client-go
|
k8s.io/client-go => ../client-go
|
||||||
|
11
staging/src/k8s.io/sample-controller/go.sum
generated
11
staging/src/k8s.io/sample-controller/go.sum
generated
@ -123,6 +123,7 @@ golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc h1:gkKoSkUmnU6bpS/VhkuO27bzQeSA51uaEfbOW5dNb68=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -136,8 +137,14 @@ golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+s
|
|||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d h1:TnM+PKb3ylGmZvyPXmo9m/wktg7Jn/a/fNmr33HSj8g=
|
||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9 h1:7Pf/N3ln54fsGsAPsSwSfFhxXGKWHMIRUI/T5x1GP90=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190313210603-aa82965741a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac h1:MQEvx39qSf8vyrx3XRaOe+j1UDIzKwkYOVObRgGPVqI=
|
||||||
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
2
vendor/BUILD
vendored
2
vendor/BUILD
vendored
@ -405,7 +405,6 @@ filegroup(
|
|||||||
"//vendor/golang.org/x/tools/go/ast/inspector:all-srcs",
|
"//vendor/golang.org/x/tools/go/ast/inspector:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/go/buildutil:all-srcs",
|
"//vendor/golang.org/x/tools/go/buildutil:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/go/gcexportdata:all-srcs",
|
"//vendor/golang.org/x/tools/go/gcexportdata:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/go/internal/cgo:all-srcs",
|
|
||||||
"//vendor/golang.org/x/tools/go/internal/gcimporter:all-srcs",
|
"//vendor/golang.org/x/tools/go/internal/gcimporter:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/go/internal/packagesdriver:all-srcs",
|
"//vendor/golang.org/x/tools/go/internal/packagesdriver:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/go/packages:all-srcs",
|
"//vendor/golang.org/x/tools/go/packages:all-srcs",
|
||||||
@ -415,6 +414,7 @@ filegroup(
|
|||||||
"//vendor/golang.org/x/tools/imports:all-srcs",
|
"//vendor/golang.org/x/tools/imports:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/internal/fastwalk:all-srcs",
|
"//vendor/golang.org/x/tools/internal/fastwalk:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/internal/gopathwalk:all-srcs",
|
"//vendor/golang.org/x/tools/internal/gopathwalk:all-srcs",
|
||||||
|
"//vendor/golang.org/x/tools/internal/imports:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/internal/module:all-srcs",
|
"//vendor/golang.org/x/tools/internal/module:all-srcs",
|
||||||
"//vendor/golang.org/x/tools/internal/semver:all-srcs",
|
"//vendor/golang.org/x/tools/internal/semver:all-srcs",
|
||||||
"//vendor/gonum.org/v1/gonum/blas:all-srcs",
|
"//vendor/gonum.org/v1/gonum/blas:all-srcs",
|
||||||
|
1
vendor/golang.org/x/tools/go/analysis/BUILD
generated
vendored
1
vendor/golang.org/x/tools/go/analysis/BUILD
generated
vendored
@ -4,6 +4,7 @@ go_library(
|
|||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = [
|
srcs = [
|
||||||
"analysis.go",
|
"analysis.go",
|
||||||
|
"diagnostic.go",
|
||||||
"doc.go",
|
"doc.go",
|
||||||
"validate.go",
|
"validate.go",
|
||||||
],
|
],
|
||||||
|
42
vendor/golang.org/x/tools/go/analysis/analysis.go
generated
vendored
42
vendor/golang.org/x/tools/go/analysis/analysis.go
generated
vendored
@ -128,10 +128,32 @@ type Pass struct {
|
|||||||
// See comments for ExportObjectFact.
|
// See comments for ExportObjectFact.
|
||||||
ExportPackageFact func(fact Fact)
|
ExportPackageFact func(fact Fact)
|
||||||
|
|
||||||
|
// AllPackageFacts returns a new slice containing all package facts in unspecified order.
|
||||||
|
// WARNING: This is an experimental API and may change in the future.
|
||||||
|
AllPackageFacts func() []PackageFact
|
||||||
|
|
||||||
|
// AllObjectFacts returns a new slice containing all object facts in unspecified order.
|
||||||
|
// WARNING: This is an experimental API and may change in the future.
|
||||||
|
AllObjectFacts func() []ObjectFact
|
||||||
|
|
||||||
/* Further fields may be added in future. */
|
/* Further fields may be added in future. */
|
||||||
// For example, suggested or applied refactorings.
|
// For example, suggested or applied refactorings.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PackageFact is a package together with an associated fact.
|
||||||
|
// WARNING: This is an experimental API and may change in the future.
|
||||||
|
type PackageFact struct {
|
||||||
|
Package *types.Package
|
||||||
|
Fact Fact
|
||||||
|
}
|
||||||
|
|
||||||
|
// ObjectFact is an object together with an associated fact.
|
||||||
|
// WARNING: This is an experimental API and may change in the future.
|
||||||
|
type ObjectFact struct {
|
||||||
|
Object types.Object
|
||||||
|
Fact Fact
|
||||||
|
}
|
||||||
|
|
||||||
// Reportf is a helper function that reports a Diagnostic using the
|
// Reportf is a helper function that reports a Diagnostic using the
|
||||||
// specified position and formatted error message.
|
// specified position and formatted error message.
|
||||||
func (pass *Pass) Reportf(pos token.Pos, format string, args ...interface{}) {
|
func (pass *Pass) Reportf(pos token.Pos, format string, args ...interface{}) {
|
||||||
@ -139,6 +161,15 @@ func (pass *Pass) Reportf(pos token.Pos, format string, args ...interface{}) {
|
|||||||
pass.Report(Diagnostic{Pos: pos, Message: msg})
|
pass.Report(Diagnostic{Pos: pos, Message: msg})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reportNodef is a helper function that reports a Diagnostic using the
|
||||||
|
// range denoted by the AST node.
|
||||||
|
//
|
||||||
|
// WARNING: This is an experimental API and may change in the future.
|
||||||
|
func (pass *Pass) reportNodef(node ast.Node, format string, args ...interface{}) {
|
||||||
|
msg := fmt.Sprintf(format, args...)
|
||||||
|
pass.Report(Diagnostic{Pos: node.Pos(), End: node.End(), Message: msg})
|
||||||
|
}
|
||||||
|
|
||||||
func (pass *Pass) String() string {
|
func (pass *Pass) String() string {
|
||||||
return fmt.Sprintf("%s@%s", pass.Analyzer.Name, pass.Pkg.Path())
|
return fmt.Sprintf("%s@%s", pass.Analyzer.Name, pass.Pkg.Path())
|
||||||
}
|
}
|
||||||
@ -180,14 +211,3 @@ func (pass *Pass) String() string {
|
|||||||
type Fact interface {
|
type Fact interface {
|
||||||
AFact() // dummy method to avoid type errors
|
AFact() // dummy method to avoid type errors
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Diagnostic is a message associated with a source location.
|
|
||||||
//
|
|
||||||
// An Analyzer may return a variety of diagnostics; the optional Category,
|
|
||||||
// which should be a constant, may be used to classify them.
|
|
||||||
// It is primarily intended to make it easy to look up documentation.
|
|
||||||
type Diagnostic struct {
|
|
||||||
Pos token.Pos
|
|
||||||
Category string // optional
|
|
||||||
Message string
|
|
||||||
}
|
|
||||||
|
20
vendor/golang.org/x/tools/go/analysis/diagnostic.go
generated
vendored
Normal file
20
vendor/golang.org/x/tools/go/analysis/diagnostic.go
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// +build !experimental
|
||||||
|
|
||||||
|
package analysis
|
||||||
|
|
||||||
|
import "go/token"
|
||||||
|
|
||||||
|
// A Diagnostic is a message associated with a source location or range.
|
||||||
|
//
|
||||||
|
// An Analyzer may return a variety of diagnostics; the optional Category,
|
||||||
|
// which should be a constant, may be used to classify them.
|
||||||
|
// It is primarily intended to make it easy to look up documentation.
|
||||||
|
//
|
||||||
|
// If End is provided, the diagnostic is specified to apply to the range between
|
||||||
|
// Pos and End.
|
||||||
|
type Diagnostic struct {
|
||||||
|
Pos token.Pos
|
||||||
|
End token.Pos // optional
|
||||||
|
Category string // optional
|
||||||
|
Message string
|
||||||
|
}
|
41
vendor/golang.org/x/tools/go/analysis/diagnostic_experimental.go
generated
vendored
Normal file
41
vendor/golang.org/x/tools/go/analysis/diagnostic_experimental.go
generated
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// +build experimental
|
||||||
|
|
||||||
|
package analysis
|
||||||
|
|
||||||
|
import "go/token"
|
||||||
|
|
||||||
|
// A Diagnostic is a message associated with a source location or range.
|
||||||
|
//
|
||||||
|
// An Analyzer may return a variety of diagnostics; the optional Category,
|
||||||
|
// which should be a constant, may be used to classify them.
|
||||||
|
// It is primarily intended to make it easy to look up documentation.
|
||||||
|
//
|
||||||
|
// If End is provided, the diagnostic is specified to apply to the range between
|
||||||
|
// Pos and End.
|
||||||
|
type Diagnostic struct {
|
||||||
|
Pos token.Pos
|
||||||
|
End token.Pos // optional
|
||||||
|
Category string // optional
|
||||||
|
Message string
|
||||||
|
|
||||||
|
// TODO(matloob): Should multiple SuggestedFixes be allowed for a diagnostic?
|
||||||
|
SuggestedFixes []SuggestedFix // optional
|
||||||
|
}
|
||||||
|
|
||||||
|
// A SuggestedFix is a code change associated with a Diagnostic that a user can choose
|
||||||
|
// to apply to their code. Usually the SuggestedFix is meant to fix the issue flagged
|
||||||
|
// by the diagnostic.
|
||||||
|
type SuggestedFix struct {
|
||||||
|
// A description for this suggested fix to be shown to a user deciding
|
||||||
|
// whether to accept it.
|
||||||
|
Message string
|
||||||
|
TextEdits []TextEdit
|
||||||
|
}
|
||||||
|
|
||||||
|
// A TextEdit represents the replacement of the code between Pos and End with the new text.
|
||||||
|
type TextEdit struct {
|
||||||
|
// For a pure insertion, End can either be set to Pos or token.NoPos.
|
||||||
|
Pos token.Pos
|
||||||
|
End token.Pos
|
||||||
|
NewText []byte
|
||||||
|
}
|
26
vendor/golang.org/x/tools/go/internal/cgo/BUILD
generated
vendored
26
vendor/golang.org/x/tools/go/internal/cgo/BUILD
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
|
||||||
|
|
||||||
go_library(
|
|
||||||
name = "go_default_library",
|
|
||||||
srcs = [
|
|
||||||
"cgo.go",
|
|
||||||
"cgo_pkgconfig.go",
|
|
||||||
],
|
|
||||||
importmap = "k8s.io/kubernetes/vendor/golang.org/x/tools/go/internal/cgo",
|
|
||||||
importpath = "golang.org/x/tools/go/internal/cgo",
|
|
||||||
visibility = ["//vendor/golang.org/x/tools/go:__subpackages__"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "package-srcs",
|
|
||||||
srcs = glob(["**"]),
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:private"],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "all-srcs",
|
|
||||||
srcs = [":package-srcs"],
|
|
||||||
tags = ["automanaged"],
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
|
220
vendor/golang.org/x/tools/go/internal/cgo/cgo.go
generated
vendored
220
vendor/golang.org/x/tools/go/internal/cgo/cgo.go
generated
vendored
@ -1,220 +0,0 @@
|
|||||||
// Copyright 2013 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 cgo
|
|
||||||
|
|
||||||
// This file handles cgo preprocessing of files containing `import "C"`.
|
|
||||||
//
|
|
||||||
// DESIGN
|
|
||||||
//
|
|
||||||
// The approach taken is to run the cgo processor on the package's
|
|
||||||
// CgoFiles and parse the output, faking the filenames of the
|
|
||||||
// resulting ASTs so that the synthetic file containing the C types is
|
|
||||||
// called "C" (e.g. "~/go/src/net/C") and the preprocessed files
|
|
||||||
// have their original names (e.g. "~/go/src/net/cgo_unix.go"),
|
|
||||||
// not the names of the actual temporary files.
|
|
||||||
//
|
|
||||||
// The advantage of this approach is its fidelity to 'go build'. The
|
|
||||||
// downside is that the token.Position.Offset for each AST node is
|
|
||||||
// incorrect, being an offset within the temporary file. Line numbers
|
|
||||||
// should still be correct because of the //line comments.
|
|
||||||
//
|
|
||||||
// The logic of this file is mostly plundered from the 'go build'
|
|
||||||
// tool, which also invokes the cgo preprocessor.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// REJECTED ALTERNATIVE
|
|
||||||
//
|
|
||||||
// An alternative approach that we explored is to extend go/types'
|
|
||||||
// Importer mechanism to provide the identity of the importing package
|
|
||||||
// so that each time `import "C"` appears it resolves to a different
|
|
||||||
// synthetic package containing just the objects needed in that case.
|
|
||||||
// The loader would invoke cgo but parse only the cgo_types.go file
|
|
||||||
// defining the package-level objects, discarding the other files
|
|
||||||
// resulting from preprocessing.
|
|
||||||
//
|
|
||||||
// The benefit of this approach would have been that source-level
|
|
||||||
// syntax information would correspond exactly to the original cgo
|
|
||||||
// file, with no preprocessing involved, making source tools like
|
|
||||||
// godoc, guru, and eg happy. However, the approach was rejected
|
|
||||||
// due to the additional complexity it would impose on go/types. (It
|
|
||||||
// made for a beautiful demo, though.)
|
|
||||||
//
|
|
||||||
// cgo files, despite their *.go extension, are not legal Go source
|
|
||||||
// files per the specification since they may refer to unexported
|
|
||||||
// members of package "C" such as C.int. Also, a function such as
|
|
||||||
// C.getpwent has in effect two types, one matching its C type and one
|
|
||||||
// which additionally returns (errno C.int). The cgo preprocessor
|
|
||||||
// uses name mangling to distinguish these two functions in the
|
|
||||||
// processed code, but go/types would need to duplicate this logic in
|
|
||||||
// its handling of function calls, analogous to the treatment of map
|
|
||||||
// lookups in which y=m[k] and y,ok=m[k] are both legal.
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"go/ast"
|
|
||||||
"go/build"
|
|
||||||
"go/parser"
|
|
||||||
"go/token"
|
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
|
||||||
"regexp"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ProcessFiles invokes the cgo preprocessor on bp.CgoFiles, parses
|
|
||||||
// the output and returns the resulting ASTs.
|
|
||||||
//
|
|
||||||
func ProcessFiles(bp *build.Package, fset *token.FileSet, DisplayPath func(path string) string, mode parser.Mode) ([]*ast.File, error) {
|
|
||||||
tmpdir, err := ioutil.TempDir("", strings.Replace(bp.ImportPath, "/", "_", -1)+"_C")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpdir)
|
|
||||||
|
|
||||||
pkgdir := bp.Dir
|
|
||||||
if DisplayPath != nil {
|
|
||||||
pkgdir = DisplayPath(pkgdir)
|
|
||||||
}
|
|
||||||
|
|
||||||
cgoFiles, cgoDisplayFiles, err := Run(bp, pkgdir, tmpdir, false)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var files []*ast.File
|
|
||||||
for i := range cgoFiles {
|
|
||||||
rd, err := os.Open(cgoFiles[i])
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
display := filepath.Join(bp.Dir, cgoDisplayFiles[i])
|
|
||||||
f, err := parser.ParseFile(fset, display, rd, mode)
|
|
||||||
rd.Close()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
files = append(files, f)
|
|
||||||
}
|
|
||||||
return files, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var cgoRe = regexp.MustCompile(`[/\\:]`)
|
|
||||||
|
|
||||||
// Run invokes the cgo preprocessor on bp.CgoFiles and returns two
|
|
||||||
// lists of files: the resulting processed files (in temporary
|
|
||||||
// directory tmpdir) and the corresponding names of the unprocessed files.
|
|
||||||
//
|
|
||||||
// Run is adapted from (*builder).cgo in
|
|
||||||
// $GOROOT/src/cmd/go/build.go, but these features are unsupported:
|
|
||||||
// Objective C, CGOPKGPATH, CGO_FLAGS.
|
|
||||||
//
|
|
||||||
// If useabs is set to true, absolute paths of the bp.CgoFiles will be passed in
|
|
||||||
// to the cgo preprocessor. This in turn will set the // line comments
|
|
||||||
// referring to those files to use absolute paths. This is needed for
|
|
||||||
// go/packages using the legacy go list support so it is able to find
|
|
||||||
// the original files.
|
|
||||||
func Run(bp *build.Package, pkgdir, tmpdir string, useabs bool) (files, displayFiles []string, err error) {
|
|
||||||
cgoCPPFLAGS, _, _, _ := cflags(bp, true)
|
|
||||||
_, cgoexeCFLAGS, _, _ := cflags(bp, false)
|
|
||||||
|
|
||||||
if len(bp.CgoPkgConfig) > 0 {
|
|
||||||
pcCFLAGS, err := pkgConfigFlags(bp)
|
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
cgoCPPFLAGS = append(cgoCPPFLAGS, pcCFLAGS...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allows including _cgo_export.h from .[ch] files in the package.
|
|
||||||
cgoCPPFLAGS = append(cgoCPPFLAGS, "-I", tmpdir)
|
|
||||||
|
|
||||||
// _cgo_gotypes.go (displayed "C") contains the type definitions.
|
|
||||||
files = append(files, filepath.Join(tmpdir, "_cgo_gotypes.go"))
|
|
||||||
displayFiles = append(displayFiles, "C")
|
|
||||||
for _, fn := range bp.CgoFiles {
|
|
||||||
// "foo.cgo1.go" (displayed "foo.go") is the processed Go source.
|
|
||||||
f := cgoRe.ReplaceAllString(fn[:len(fn)-len("go")], "_")
|
|
||||||
files = append(files, filepath.Join(tmpdir, f+"cgo1.go"))
|
|
||||||
displayFiles = append(displayFiles, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
var cgoflags []string
|
|
||||||
if bp.Goroot && bp.ImportPath == "runtime/cgo" {
|
|
||||||
cgoflags = append(cgoflags, "-import_runtime_cgo=false")
|
|
||||||
}
|
|
||||||
if bp.Goroot && bp.ImportPath == "runtime/race" || bp.ImportPath == "runtime/cgo" {
|
|
||||||
cgoflags = append(cgoflags, "-import_syscall=false")
|
|
||||||
}
|
|
||||||
|
|
||||||
var cgoFiles []string = bp.CgoFiles
|
|
||||||
if useabs {
|
|
||||||
cgoFiles = make([]string, len(bp.CgoFiles))
|
|
||||||
for i := range cgoFiles {
|
|
||||||
cgoFiles[i] = filepath.Join(pkgdir, bp.CgoFiles[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
args := stringList(
|
|
||||||
"go", "tool", "cgo", "-objdir", tmpdir, cgoflags, "--",
|
|
||||||
cgoCPPFLAGS, cgoexeCFLAGS, cgoFiles,
|
|
||||||
)
|
|
||||||
if false {
|
|
||||||
log.Printf("Running cgo for package %q: %s (dir=%s)", bp.ImportPath, args, pkgdir)
|
|
||||||
}
|
|
||||||
cmd := exec.Command(args[0], args[1:]...)
|
|
||||||
cmd.Dir = pkgdir
|
|
||||||
cmd.Stdout = os.Stderr
|
|
||||||
cmd.Stderr = os.Stderr
|
|
||||||
if err := cmd.Run(); err != nil {
|
|
||||||
return nil, nil, fmt.Errorf("cgo failed: %s: %s", args, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return files, displayFiles, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// -- unmodified from 'go build' ---------------------------------------
|
|
||||||
|
|
||||||
// Return the flags to use when invoking the C or C++ compilers, or cgo.
|
|
||||||
func cflags(p *build.Package, def bool) (cppflags, cflags, cxxflags, ldflags []string) {
|
|
||||||
var defaults string
|
|
||||||
if def {
|
|
||||||
defaults = "-g -O2"
|
|
||||||
}
|
|
||||||
|
|
||||||
cppflags = stringList(envList("CGO_CPPFLAGS", ""), p.CgoCPPFLAGS)
|
|
||||||
cflags = stringList(envList("CGO_CFLAGS", defaults), p.CgoCFLAGS)
|
|
||||||
cxxflags = stringList(envList("CGO_CXXFLAGS", defaults), p.CgoCXXFLAGS)
|
|
||||||
ldflags = stringList(envList("CGO_LDFLAGS", defaults), p.CgoLDFLAGS)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// envList returns the value of the given environment variable broken
|
|
||||||
// into fields, using the default value when the variable is empty.
|
|
||||||
func envList(key, def string) []string {
|
|
||||||
v := os.Getenv(key)
|
|
||||||
if v == "" {
|
|
||||||
v = def
|
|
||||||
}
|
|
||||||
return strings.Fields(v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// stringList's arguments should be a sequence of string or []string values.
|
|
||||||
// stringList flattens them into a single []string.
|
|
||||||
func stringList(args ...interface{}) []string {
|
|
||||||
var x []string
|
|
||||||
for _, arg := range args {
|
|
||||||
switch arg := arg.(type) {
|
|
||||||
case []string:
|
|
||||||
x = append(x, arg...)
|
|
||||||
case string:
|
|
||||||
x = append(x, arg)
|
|
||||||
default:
|
|
||||||
panic("stringList: invalid argument")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return x
|
|
||||||
}
|
|
39
vendor/golang.org/x/tools/go/internal/cgo/cgo_pkgconfig.go
generated
vendored
39
vendor/golang.org/x/tools/go/internal/cgo/cgo_pkgconfig.go
generated
vendored
@ -1,39 +0,0 @@
|
|||||||
// Copyright 2013 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 cgo
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"go/build"
|
|
||||||
"os/exec"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// pkgConfig runs pkg-config with the specified arguments and returns the flags it prints.
|
|
||||||
func pkgConfig(mode string, pkgs []string) (flags []string, err error) {
|
|
||||||
cmd := exec.Command("pkg-config", append([]string{mode}, pkgs...)...)
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
s := fmt.Sprintf("%s failed: %v", strings.Join(cmd.Args, " "), err)
|
|
||||||
if len(out) > 0 {
|
|
||||||
s = fmt.Sprintf("%s: %s", s, out)
|
|
||||||
}
|
|
||||||
return nil, errors.New(s)
|
|
||||||
}
|
|
||||||
if len(out) > 0 {
|
|
||||||
flags = strings.Fields(string(out))
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// pkgConfigFlags calls pkg-config if needed and returns the cflags
|
|
||||||
// needed to build the package.
|
|
||||||
func pkgConfigFlags(p *build.Package) (cflags []string, err error) {
|
|
||||||
if len(p.CgoPkgConfig) == 0 {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
return pkgConfig("--cflags", p.CgoPkgConfig)
|
|
||||||
}
|
|
3
vendor/golang.org/x/tools/go/packages/BUILD
generated
vendored
3
vendor/golang.org/x/tools/go/packages/BUILD
generated
vendored
@ -6,8 +6,6 @@ go_library(
|
|||||||
"doc.go",
|
"doc.go",
|
||||||
"external.go",
|
"external.go",
|
||||||
"golist.go",
|
"golist.go",
|
||||||
"golist_fallback.go",
|
|
||||||
"golist_fallback_testmain.go",
|
|
||||||
"golist_overlay.go",
|
"golist_overlay.go",
|
||||||
"packages.go",
|
"packages.go",
|
||||||
"visit.go",
|
"visit.go",
|
||||||
@ -17,7 +15,6 @@ go_library(
|
|||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//vendor/golang.org/x/tools/go/gcexportdata:go_default_library",
|
"//vendor/golang.org/x/tools/go/gcexportdata:go_default_library",
|
||||||
"//vendor/golang.org/x/tools/go/internal/cgo:go_default_library",
|
|
||||||
"//vendor/golang.org/x/tools/go/internal/packagesdriver:go_default_library",
|
"//vendor/golang.org/x/tools/go/internal/packagesdriver:go_default_library",
|
||||||
"//vendor/golang.org/x/tools/internal/gopathwalk:go_default_library",
|
"//vendor/golang.org/x/tools/internal/gopathwalk:go_default_library",
|
||||||
"//vendor/golang.org/x/tools/internal/semver:go_default_library",
|
"//vendor/golang.org/x/tools/internal/semver:go_default_library",
|
||||||
|
2
vendor/golang.org/x/tools/go/packages/external.go
generated
vendored
2
vendor/golang.org/x/tools/go/packages/external.go
generated
vendored
@ -18,7 +18,7 @@ import (
|
|||||||
|
|
||||||
// Driver
|
// Driver
|
||||||
type driverRequest struct {
|
type driverRequest struct {
|
||||||
Command string `json "command"`
|
Command string `json:"command"`
|
||||||
Mode LoadMode `json:"mode"`
|
Mode LoadMode `json:"mode"`
|
||||||
Env []string `json:"env"`
|
Env []string `json:"env"`
|
||||||
BuildFlags []string `json:"build_flags"`
|
BuildFlags []string `json:"build_flags"`
|
||||||
|
175
vendor/golang.org/x/tools/go/packages/golist.go
generated
vendored
175
vendor/golang.org/x/tools/go/packages/golist.go
generated
vendored
@ -78,7 +78,7 @@ func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) {
|
|||||||
var sizes types.Sizes
|
var sizes types.Sizes
|
||||||
var sizeserr error
|
var sizeserr error
|
||||||
var sizeswg sync.WaitGroup
|
var sizeswg sync.WaitGroup
|
||||||
if cfg.Mode >= LoadTypes {
|
if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 {
|
||||||
sizeswg.Add(1)
|
sizeswg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
sizes, sizeserr = getSizes(cfg)
|
sizes, sizeserr = getSizes(cfg)
|
||||||
@ -121,20 +121,6 @@ extractQueries:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(matloob): Remove the definition of listfunc and just use golistPackages once go1.12 is released.
|
|
||||||
var listfunc driver
|
|
||||||
var isFallback bool
|
|
||||||
listfunc = func(cfg *Config, words ...string) (*driverResponse, error) {
|
|
||||||
response, err := golistDriverCurrent(cfg, words...)
|
|
||||||
if _, ok := err.(goTooOldError); ok {
|
|
||||||
isFallback = true
|
|
||||||
listfunc = golistDriverFallback
|
|
||||||
return listfunc(cfg, words...)
|
|
||||||
}
|
|
||||||
listfunc = golistDriverCurrent
|
|
||||||
return response, err
|
|
||||||
}
|
|
||||||
|
|
||||||
response := &responseDeduper{}
|
response := &responseDeduper{}
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@ -142,7 +128,7 @@ extractQueries:
|
|||||||
// patterns also requires a go list call, since it's the equivalent of
|
// patterns also requires a go list call, since it's the equivalent of
|
||||||
// ".".
|
// ".".
|
||||||
if len(restPatterns) > 0 || len(patterns) == 0 {
|
if len(restPatterns) > 0 || len(patterns) == 0 {
|
||||||
dr, err := listfunc(cfg, restPatterns...)
|
dr, err := golistDriver(cfg, restPatterns...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -161,18 +147,18 @@ extractQueries:
|
|||||||
var containsCandidates []string
|
var containsCandidates []string
|
||||||
|
|
||||||
if len(containFiles) != 0 {
|
if len(containFiles) != 0 {
|
||||||
if err := runContainsQueries(cfg, listfunc, isFallback, response, containFiles); err != nil {
|
if err := runContainsQueries(cfg, golistDriver, response, containFiles); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(packagesNamed) != 0 {
|
if len(packagesNamed) != 0 {
|
||||||
if err := runNamedQueries(cfg, listfunc, response, packagesNamed); err != nil {
|
if err := runNamedQueries(cfg, golistDriver, response, packagesNamed); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
modifiedPkgs, needPkgs, err := processGolistOverlay(cfg, response.dr)
|
modifiedPkgs, needPkgs, err := processGolistOverlay(cfg, response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -180,17 +166,25 @@ extractQueries:
|
|||||||
containsCandidates = append(containsCandidates, modifiedPkgs...)
|
containsCandidates = append(containsCandidates, modifiedPkgs...)
|
||||||
containsCandidates = append(containsCandidates, needPkgs...)
|
containsCandidates = append(containsCandidates, needPkgs...)
|
||||||
}
|
}
|
||||||
|
if err := addNeededOverlayPackages(cfg, golistDriver, response, needPkgs); err != nil {
|
||||||
if len(needPkgs) > 0 {
|
return nil, err
|
||||||
addNeededOverlayPackages(cfg, listfunc, response, needPkgs)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Check candidate packages for containFiles.
|
// Check candidate packages for containFiles.
|
||||||
if len(containFiles) > 0 {
|
if len(containFiles) > 0 {
|
||||||
for _, id := range containsCandidates {
|
for _, id := range containsCandidates {
|
||||||
pkg := response.seenPackages[id]
|
pkg, ok := response.seenPackages[id]
|
||||||
|
if !ok {
|
||||||
|
response.addPackage(&Package{
|
||||||
|
ID: id,
|
||||||
|
Errors: []Error{
|
||||||
|
{
|
||||||
|
Kind: ListError,
|
||||||
|
Msg: fmt.Sprintf("package %s expected but not seen", id),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
continue
|
||||||
|
}
|
||||||
for _, f := range containFiles {
|
for _, f := range containFiles {
|
||||||
for _, g := range pkg.GoFiles {
|
for _, g := range pkg.GoFiles {
|
||||||
if sameFile(f, g) {
|
if sameFile(f, g) {
|
||||||
@ -205,6 +199,9 @@ extractQueries:
|
|||||||
}
|
}
|
||||||
|
|
||||||
func addNeededOverlayPackages(cfg *Config, driver driver, response *responseDeduper, pkgs []string) error {
|
func addNeededOverlayPackages(cfg *Config, driver driver, response *responseDeduper, pkgs []string) error {
|
||||||
|
if len(pkgs) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
dr, err := driver(cfg, pkgs...)
|
dr, err := driver(cfg, pkgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -212,10 +209,15 @@ func addNeededOverlayPackages(cfg *Config, driver driver, response *responseDedu
|
|||||||
for _, pkg := range dr.Packages {
|
for _, pkg := range dr.Packages {
|
||||||
response.addPackage(pkg)
|
response.addPackage(pkg)
|
||||||
}
|
}
|
||||||
|
_, needPkgs, err := processGolistOverlay(cfg, response)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
addNeededOverlayPackages(cfg, driver, response, needPkgs)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func runContainsQueries(cfg *Config, driver driver, isFallback bool, response *responseDeduper, queries []string) error {
|
func runContainsQueries(cfg *Config, driver driver, response *responseDeduper, queries []string) error {
|
||||||
for _, query := range queries {
|
for _, query := range queries {
|
||||||
// TODO(matloob): Do only one query per directory.
|
// TODO(matloob): Do only one query per directory.
|
||||||
fdir := filepath.Dir(query)
|
fdir := filepath.Dir(query)
|
||||||
@ -225,14 +227,15 @@ func runContainsQueries(cfg *Config, driver driver, isFallback bool, response *r
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err)
|
return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err)
|
||||||
}
|
}
|
||||||
if isFallback {
|
|
||||||
pattern = "."
|
|
||||||
cfg.Dir = fdir
|
|
||||||
}
|
|
||||||
|
|
||||||
dirResponse, err := driver(cfg, pattern)
|
dirResponse, err := driver(cfg, pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
// Couldn't find a package for the directory. Try to load the file as an ad-hoc package.
|
||||||
|
var queryErr error
|
||||||
|
dirResponse, err = driver(cfg, query)
|
||||||
|
if queryErr != nil {
|
||||||
|
// Return the original error if the attempt to fall back failed.
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
isRoot := make(map[string]bool, len(dirResponse.Roots))
|
isRoot := make(map[string]bool, len(dirResponse.Roots))
|
||||||
for _, root := range dirResponse.Roots {
|
for _, root := range dirResponse.Roots {
|
||||||
@ -559,10 +562,10 @@ func otherFiles(p *jsonPackage) [][]string {
|
|||||||
return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles}
|
return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles}
|
||||||
}
|
}
|
||||||
|
|
||||||
// golistDriverCurrent uses the "go list" command to expand the
|
// golistDriver uses the "go list" command to expand the pattern
|
||||||
// pattern words and return metadata for the specified packages.
|
// words and return metadata for the specified packages. dir may be
|
||||||
// dir may be "" and env may be nil, as per os/exec.Command.
|
// "" and env may be nil, as per os/exec.Command.
|
||||||
func golistDriverCurrent(cfg *Config, words ...string) (*driverResponse, error) {
|
func golistDriver(cfg *Config, words ...string) (*driverResponse, error) {
|
||||||
// go list uses the following identifiers in ImportPath and Imports:
|
// go list uses the following identifiers in ImportPath and Imports:
|
||||||
//
|
//
|
||||||
// "p" -- importable package or main (command)
|
// "p" -- importable package or main (command)
|
||||||
@ -605,7 +608,7 @@ func golistDriverCurrent(cfg *Config, words ...string) (*driverResponse, error)
|
|||||||
|
|
||||||
if old, found := seen[p.ImportPath]; found {
|
if old, found := seen[p.ImportPath]; found {
|
||||||
if !reflect.DeepEqual(p, old) {
|
if !reflect.DeepEqual(p, old) {
|
||||||
return nil, fmt.Errorf("go list repeated package %v with different values", p.ImportPath)
|
return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath)
|
||||||
}
|
}
|
||||||
// skip the duplicate
|
// skip the duplicate
|
||||||
continue
|
continue
|
||||||
@ -620,16 +623,25 @@ func golistDriverCurrent(cfg *Config, words ...string) (*driverResponse, error)
|
|||||||
OtherFiles: absJoin(p.Dir, otherFiles(p)...),
|
OtherFiles: absJoin(p.Dir, otherFiles(p)...),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Workaround for https://golang.org/issue/28749.
|
// Work around https://golang.org/issue/28749:
|
||||||
// TODO(adonovan): delete before go1.12 release.
|
// cmd/go puts assembly, C, and C++ files in CompiledGoFiles.
|
||||||
out := pkg.CompiledGoFiles[:0]
|
// Filter out any elements of CompiledGoFiles that are also in OtherFiles.
|
||||||
for _, f := range pkg.CompiledGoFiles {
|
// We have to keep this workaround in place until go1.12 is a distant memory.
|
||||||
if strings.HasSuffix(f, ".s") {
|
if len(pkg.OtherFiles) > 0 {
|
||||||
continue
|
other := make(map[string]bool, len(pkg.OtherFiles))
|
||||||
|
for _, f := range pkg.OtherFiles {
|
||||||
|
other[f] = true
|
||||||
}
|
}
|
||||||
out = append(out, f)
|
|
||||||
|
out := pkg.CompiledGoFiles[:0]
|
||||||
|
for _, f := range pkg.CompiledGoFiles {
|
||||||
|
if other[f] {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
out = append(out, f)
|
||||||
|
}
|
||||||
|
pkg.CompiledGoFiles = out
|
||||||
}
|
}
|
||||||
pkg.CompiledGoFiles = out
|
|
||||||
|
|
||||||
// Extract the PkgPath from the package's ID.
|
// Extract the PkgPath from the package's ID.
|
||||||
if i := strings.IndexByte(pkg.ID, ' '); i >= 0 {
|
if i := strings.IndexByte(pkg.ID, ' '); i >= 0 {
|
||||||
@ -687,7 +699,7 @@ func golistDriverCurrent(cfg *Config, words ...string) (*driverResponse, error)
|
|||||||
if p.Error != nil {
|
if p.Error != nil {
|
||||||
pkg.Errors = append(pkg.Errors, Error{
|
pkg.Errors = append(pkg.Errors, Error{
|
||||||
Pos: p.Error.Pos,
|
Pos: p.Error.Pos,
|
||||||
Msg: p.Error.Err,
|
Msg: strings.TrimSpace(p.Error.Err), // Trim to work around golang.org/issue/32363.
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -711,14 +723,16 @@ func absJoin(dir string, fileses ...[]string) (res []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func golistargs(cfg *Config, words []string) []string {
|
func golistargs(cfg *Config, words []string) []string {
|
||||||
|
const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo
|
||||||
fullargs := []string{
|
fullargs := []string{
|
||||||
"list", "-e", "-json", "-compiled",
|
"list", "-e", "-json",
|
||||||
|
fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypesInfo|NeedTypesSizes) != 0),
|
||||||
fmt.Sprintf("-test=%t", cfg.Tests),
|
fmt.Sprintf("-test=%t", cfg.Tests),
|
||||||
fmt.Sprintf("-export=%t", usesExportData(cfg)),
|
fmt.Sprintf("-export=%t", usesExportData(cfg)),
|
||||||
fmt.Sprintf("-deps=%t", cfg.Mode >= LoadImports),
|
fmt.Sprintf("-deps=%t", cfg.Mode&NeedDeps != 0),
|
||||||
// go list doesn't let you pass -test and -find together,
|
// go list doesn't let you pass -test and -find together,
|
||||||
// probably because you'd just get the TestMain.
|
// probably because you'd just get the TestMain.
|
||||||
fmt.Sprintf("-find=%t", cfg.Mode < LoadImports && !cfg.Tests),
|
fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0),
|
||||||
}
|
}
|
||||||
fullargs = append(fullargs, cfg.BuildFlags...)
|
fullargs = append(fullargs, cfg.BuildFlags...)
|
||||||
fullargs = append(fullargs, "--")
|
fullargs = append(fullargs, "--")
|
||||||
@ -728,9 +742,6 @@ func golistargs(cfg *Config, words []string) []string {
|
|||||||
|
|
||||||
// invokeGo returns the stdout of a go command invocation.
|
// invokeGo returns the stdout of a go command invocation.
|
||||||
func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) {
|
func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) {
|
||||||
if debug {
|
|
||||||
defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(cfg, args...)) }(time.Now())
|
|
||||||
}
|
|
||||||
stdout := new(bytes.Buffer)
|
stdout := new(bytes.Buffer)
|
||||||
stderr := new(bytes.Buffer)
|
stderr := new(bytes.Buffer)
|
||||||
cmd := exec.CommandContext(cfg.Context, "go", args...)
|
cmd := exec.CommandContext(cfg.Context, "go", args...)
|
||||||
@ -744,11 +755,21 @@ func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) {
|
|||||||
cmd.Dir = cfg.Dir
|
cmd.Dir = cfg.Dir
|
||||||
cmd.Stdout = stdout
|
cmd.Stdout = stdout
|
||||||
cmd.Stderr = stderr
|
cmd.Stderr = stderr
|
||||||
|
if debug {
|
||||||
|
defer func(start time.Time) {
|
||||||
|
log.Printf("%s for %v, stderr: <<%s>>\n", time.Since(start), cmdDebugStr(cmd, args...), stderr)
|
||||||
|
}(time.Now())
|
||||||
|
}
|
||||||
|
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
|
// Check for 'go' executable not being found.
|
||||||
|
if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound {
|
||||||
|
return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound)
|
||||||
|
}
|
||||||
|
|
||||||
exitErr, ok := err.(*exec.ExitError)
|
exitErr, ok := err.(*exec.ExitError)
|
||||||
if !ok {
|
if !ok {
|
||||||
// Catastrophic error:
|
// Catastrophic error:
|
||||||
// - executable not found
|
|
||||||
// - context cancellation
|
// - context cancellation
|
||||||
return nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err)
|
return nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err)
|
||||||
}
|
}
|
||||||
@ -758,6 +779,38 @@ func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) {
|
|||||||
return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)}
|
return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show
|
||||||
|
// the error in the Err section of stdout in case -e option is provided.
|
||||||
|
// This fix is provided for backwards compatibility.
|
||||||
|
if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") {
|
||||||
|
output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
|
||||||
|
strings.Trim(stderr.String(), "\n"))
|
||||||
|
return bytes.NewBufferString(output), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist.
|
||||||
|
if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") {
|
||||||
|
output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
|
||||||
|
strings.Trim(stderr.String(), "\n"))
|
||||||
|
return bytes.NewBufferString(output), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit
|
||||||
|
// status if there's a dependency on a package that doesn't exist. But it should return
|
||||||
|
// a zero exit status and set an error on that package.
|
||||||
|
if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") {
|
||||||
|
// try to extract package name from string
|
||||||
|
stderrStr := stderr.String()
|
||||||
|
var importPath string
|
||||||
|
colon := strings.Index(stderrStr, ":")
|
||||||
|
if colon > 0 && strings.HasPrefix(stderrStr, "go build ") {
|
||||||
|
importPath = stderrStr[len("go build "):colon]
|
||||||
|
}
|
||||||
|
output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`,
|
||||||
|
importPath, strings.Trim(stderrStr, "\n"))
|
||||||
|
return bytes.NewBufferString(output), nil
|
||||||
|
}
|
||||||
|
|
||||||
// Export mode entails a build.
|
// Export mode entails a build.
|
||||||
// If that build fails, errors appear on stderr
|
// If that build fails, errors appear on stderr
|
||||||
// (despite the -e flag) and the Export field is blank.
|
// (despite the -e flag) and the Export field is blank.
|
||||||
@ -777,12 +830,12 @@ func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) {
|
|||||||
// be useful for debugging. Print them if $GOPACKAGESPRINTGOLISTERRORS
|
// be useful for debugging. Print them if $GOPACKAGESPRINTGOLISTERRORS
|
||||||
// is set.
|
// is set.
|
||||||
if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTGOLISTERRORS") != "" {
|
if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTGOLISTERRORS") != "" {
|
||||||
fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cfg, args...), stderr)
|
fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd, args...), stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// debugging
|
// debugging
|
||||||
if false {
|
if false {
|
||||||
fmt.Fprintf(os.Stderr, "%s stdout: <<%s>>\n", cmdDebugStr(cfg, args...), stdout)
|
fmt.Fprintf(os.Stderr, "%s stdout: <<%s>>\n", cmdDebugStr(cmd, args...), stdout)
|
||||||
}
|
}
|
||||||
|
|
||||||
return stdout, nil
|
return stdout, nil
|
||||||
@ -797,13 +850,17 @@ func containsGoFile(s []string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func cmdDebugStr(cfg *Config, args ...string) string {
|
func cmdDebugStr(cmd *exec.Cmd, args ...string) string {
|
||||||
env := make(map[string]string)
|
env := make(map[string]string)
|
||||||
for _, kv := range cfg.Env {
|
for _, kv := range cmd.Env {
|
||||||
split := strings.Split(kv, "=")
|
split := strings.Split(kv, "=")
|
||||||
k, v := split[0], split[1]
|
k, v := split[0], split[1]
|
||||||
env[k] = v
|
env[k] = v
|
||||||
}
|
}
|
||||||
|
var quotedArgs []string
|
||||||
|
for _, arg := range args {
|
||||||
|
quotedArgs = append(quotedArgs, strconv.Quote(arg))
|
||||||
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v PWD=%v go %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["PWD"], args)
|
return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v PWD=%v go %s", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["PWD"], strings.Join(quotedArgs, " "))
|
||||||
}
|
}
|
||||||
|
450
vendor/golang.org/x/tools/go/packages/golist_fallback.go
generated
vendored
450
vendor/golang.org/x/tools/go/packages/golist_fallback.go
generated
vendored
@ -1,450 +0,0 @@
|
|||||||
// Copyright 2018 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 packages
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"go/build"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
|
||||||
"sort"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"golang.org/x/tools/go/internal/cgo"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO(matloob): Delete this file once Go 1.12 is released.
|
|
||||||
|
|
||||||
// This file provides backwards compatibility support for
|
|
||||||
// loading for versions of Go earlier than 1.11. This support is meant to
|
|
||||||
// assist with migration to the Package API until there's
|
|
||||||
// widespread adoption of these newer Go versions.
|
|
||||||
// This support will be removed once Go 1.12 is released
|
|
||||||
// in Q1 2019.
|
|
||||||
|
|
||||||
func golistDriverFallback(cfg *Config, words ...string) (*driverResponse, error) {
|
|
||||||
// Turn absolute paths into GOROOT and GOPATH-relative paths to provide to go list.
|
|
||||||
// This will have surprising behavior if GOROOT or GOPATH contain multiple packages with the same
|
|
||||||
// path and a user provides an absolute path to a directory that's shadowed by an earlier
|
|
||||||
// directory in GOROOT or GOPATH with the same package path.
|
|
||||||
words = cleanAbsPaths(cfg, words)
|
|
||||||
|
|
||||||
original, deps, err := getDeps(cfg, words...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var tmpdir string // used for generated cgo files
|
|
||||||
var needsTestVariant []struct {
|
|
||||||
pkg, xtestPkg *Package
|
|
||||||
}
|
|
||||||
|
|
||||||
var response driverResponse
|
|
||||||
allPkgs := make(map[string]bool)
|
|
||||||
addPackage := func(p *jsonPackage, isRoot bool) {
|
|
||||||
id := p.ImportPath
|
|
||||||
|
|
||||||
if allPkgs[id] {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
allPkgs[id] = true
|
|
||||||
|
|
||||||
pkgpath := id
|
|
||||||
|
|
||||||
if pkgpath == "unsafe" {
|
|
||||||
p.GoFiles = nil // ignore fake unsafe.go file
|
|
||||||
}
|
|
||||||
|
|
||||||
importMap := func(importlist []string) map[string]*Package {
|
|
||||||
importMap := make(map[string]*Package)
|
|
||||||
for _, id := range importlist {
|
|
||||||
|
|
||||||
if id == "C" {
|
|
||||||
for _, path := range []string{"unsafe", "syscall", "runtime/cgo"} {
|
|
||||||
if pkgpath != path && importMap[path] == nil {
|
|
||||||
importMap[path] = &Package{ID: path}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
importMap[vendorlessPath(id)] = &Package{ID: id}
|
|
||||||
}
|
|
||||||
return importMap
|
|
||||||
}
|
|
||||||
compiledGoFiles := absJoin(p.Dir, p.GoFiles)
|
|
||||||
// Use a function to simplify control flow. It's just a bunch of gotos.
|
|
||||||
var cgoErrors []error
|
|
||||||
var outdir string
|
|
||||||
getOutdir := func() (string, error) {
|
|
||||||
if outdir != "" {
|
|
||||||
return outdir, nil
|
|
||||||
}
|
|
||||||
if tmpdir == "" {
|
|
||||||
if tmpdir, err = ioutil.TempDir("", "gopackages"); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
outdir = filepath.Join(tmpdir, strings.Replace(p.ImportPath, "/", "_", -1))
|
|
||||||
if err := os.MkdirAll(outdir, 0755); err != nil {
|
|
||||||
outdir = ""
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return outdir, nil
|
|
||||||
}
|
|
||||||
processCgo := func() bool {
|
|
||||||
// Suppress any cgo errors. Any relevant errors will show up in typechecking.
|
|
||||||
// TODO(matloob): Skip running cgo if Mode < LoadTypes.
|
|
||||||
outdir, err := getOutdir()
|
|
||||||
if err != nil {
|
|
||||||
cgoErrors = append(cgoErrors, err)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
files, _, err := runCgo(p.Dir, outdir, cfg.Env)
|
|
||||||
if err != nil {
|
|
||||||
cgoErrors = append(cgoErrors, err)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
compiledGoFiles = append(compiledGoFiles, files...)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if len(p.CgoFiles) == 0 || !processCgo() {
|
|
||||||
compiledGoFiles = append(compiledGoFiles, absJoin(p.Dir, p.CgoFiles)...) // Punt to typechecker.
|
|
||||||
}
|
|
||||||
if isRoot {
|
|
||||||
response.Roots = append(response.Roots, id)
|
|
||||||
}
|
|
||||||
pkg := &Package{
|
|
||||||
ID: id,
|
|
||||||
Name: p.Name,
|
|
||||||
GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles),
|
|
||||||
CompiledGoFiles: compiledGoFiles,
|
|
||||||
OtherFiles: absJoin(p.Dir, otherFiles(p)...),
|
|
||||||
PkgPath: pkgpath,
|
|
||||||
Imports: importMap(p.Imports),
|
|
||||||
// TODO(matloob): set errors on the Package to cgoErrors
|
|
||||||
}
|
|
||||||
if p.Error != nil {
|
|
||||||
pkg.Errors = append(pkg.Errors, Error{
|
|
||||||
Pos: p.Error.Pos,
|
|
||||||
Msg: p.Error.Err,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
response.Packages = append(response.Packages, pkg)
|
|
||||||
if cfg.Tests && isRoot {
|
|
||||||
testID := fmt.Sprintf("%s [%s.test]", id, id)
|
|
||||||
if len(p.TestGoFiles) > 0 || len(p.XTestGoFiles) > 0 {
|
|
||||||
response.Roots = append(response.Roots, testID)
|
|
||||||
testPkg := &Package{
|
|
||||||
ID: testID,
|
|
||||||
Name: p.Name,
|
|
||||||
GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles, p.TestGoFiles),
|
|
||||||
CompiledGoFiles: append(compiledGoFiles, absJoin(p.Dir, p.TestGoFiles)...),
|
|
||||||
OtherFiles: absJoin(p.Dir, otherFiles(p)...),
|
|
||||||
PkgPath: pkgpath,
|
|
||||||
Imports: importMap(append(p.Imports, p.TestImports...)),
|
|
||||||
// TODO(matloob): set errors on the Package to cgoErrors
|
|
||||||
}
|
|
||||||
response.Packages = append(response.Packages, testPkg)
|
|
||||||
var xtestPkg *Package
|
|
||||||
if len(p.XTestGoFiles) > 0 {
|
|
||||||
xtestID := fmt.Sprintf("%s_test [%s.test]", id, id)
|
|
||||||
response.Roots = append(response.Roots, xtestID)
|
|
||||||
// Generate test variants for all packages q where a path exists
|
|
||||||
// such that xtestPkg -> ... -> q -> ... -> p (where p is the package under test)
|
|
||||||
// and rewrite all import map entries of p to point to testPkg (the test variant of
|
|
||||||
// p), and of each q to point to the test variant of that q.
|
|
||||||
xtestPkg = &Package{
|
|
||||||
ID: xtestID,
|
|
||||||
Name: p.Name + "_test",
|
|
||||||
GoFiles: absJoin(p.Dir, p.XTestGoFiles),
|
|
||||||
CompiledGoFiles: absJoin(p.Dir, p.XTestGoFiles),
|
|
||||||
PkgPath: pkgpath + "_test",
|
|
||||||
Imports: importMap(p.XTestImports),
|
|
||||||
}
|
|
||||||
// Add to list of packages we need to rewrite imports for to refer to test variants.
|
|
||||||
// We may need to create a test variant of a package that hasn't been loaded yet, so
|
|
||||||
// the test variants need to be created later.
|
|
||||||
needsTestVariant = append(needsTestVariant, struct{ pkg, xtestPkg *Package }{pkg, xtestPkg})
|
|
||||||
response.Packages = append(response.Packages, xtestPkg)
|
|
||||||
}
|
|
||||||
// testmain package
|
|
||||||
testmainID := id + ".test"
|
|
||||||
response.Roots = append(response.Roots, testmainID)
|
|
||||||
imports := map[string]*Package{}
|
|
||||||
imports[testPkg.PkgPath] = &Package{ID: testPkg.ID}
|
|
||||||
if xtestPkg != nil {
|
|
||||||
imports[xtestPkg.PkgPath] = &Package{ID: xtestPkg.ID}
|
|
||||||
}
|
|
||||||
testmainPkg := &Package{
|
|
||||||
ID: testmainID,
|
|
||||||
Name: "main",
|
|
||||||
PkgPath: testmainID,
|
|
||||||
Imports: imports,
|
|
||||||
}
|
|
||||||
response.Packages = append(response.Packages, testmainPkg)
|
|
||||||
outdir, err := getOutdir()
|
|
||||||
if err != nil {
|
|
||||||
testmainPkg.Errors = append(testmainPkg.Errors, Error{
|
|
||||||
Pos: "-",
|
|
||||||
Msg: fmt.Sprintf("failed to generate testmain: %v", err),
|
|
||||||
Kind: ListError,
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// Don't use a .go extension on the file, so that the tests think the file is inside GOCACHE.
|
|
||||||
// This allows the same test to test the pre- and post-Go 1.11 go list logic because the Go 1.11
|
|
||||||
// go list generates test mains in the cache, and the test code knows not to rely on paths in the
|
|
||||||
// cache to stay stable.
|
|
||||||
testmain := filepath.Join(outdir, "testmain-go")
|
|
||||||
extraimports, extradeps, err := generateTestmain(testmain, testPkg, xtestPkg)
|
|
||||||
if err != nil {
|
|
||||||
testmainPkg.Errors = append(testmainPkg.Errors, Error{
|
|
||||||
Pos: "-",
|
|
||||||
Msg: fmt.Sprintf("failed to generate testmain: %v", err),
|
|
||||||
Kind: ListError,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
deps = append(deps, extradeps...)
|
|
||||||
for _, imp := range extraimports { // testing, testing/internal/testdeps, and maybe os
|
|
||||||
imports[imp] = &Package{ID: imp}
|
|
||||||
}
|
|
||||||
testmainPkg.GoFiles = []string{testmain}
|
|
||||||
testmainPkg.CompiledGoFiles = []string{testmain}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, pkg := range original {
|
|
||||||
addPackage(pkg, true)
|
|
||||||
}
|
|
||||||
if cfg.Mode < LoadImports || len(deps) == 0 {
|
|
||||||
return &response, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
buf, err := invokeGo(cfg, golistArgsFallback(cfg, deps)...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Decode the JSON and convert it to Package form.
|
|
||||||
for dec := json.NewDecoder(buf); dec.More(); {
|
|
||||||
p := new(jsonPackage)
|
|
||||||
if err := dec.Decode(p); err != nil {
|
|
||||||
return nil, fmt.Errorf("JSON decoding failed: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
addPackage(p, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, v := range needsTestVariant {
|
|
||||||
createTestVariants(&response, v.pkg, v.xtestPkg)
|
|
||||||
}
|
|
||||||
|
|
||||||
return &response, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func createTestVariants(response *driverResponse, pkgUnderTest, xtestPkg *Package) {
|
|
||||||
allPkgs := make(map[string]*Package)
|
|
||||||
for _, pkg := range response.Packages {
|
|
||||||
allPkgs[pkg.ID] = pkg
|
|
||||||
}
|
|
||||||
needsTestVariant := make(map[string]bool)
|
|
||||||
needsTestVariant[pkgUnderTest.ID] = true
|
|
||||||
var needsVariantRec func(p *Package) bool
|
|
||||||
needsVariantRec = func(p *Package) bool {
|
|
||||||
if needsTestVariant[p.ID] {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
for _, imp := range p.Imports {
|
|
||||||
if needsVariantRec(allPkgs[imp.ID]) {
|
|
||||||
// Don't break because we want to make sure all dependencies
|
|
||||||
// have been processed, and all required test variants of our dependencies
|
|
||||||
// exist.
|
|
||||||
needsTestVariant[p.ID] = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !needsTestVariant[p.ID] {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
// Create a clone of the package. It will share the same strings and lists of source files,
|
|
||||||
// but that's okay. It's only necessary for the Imports map to have a separate identity.
|
|
||||||
testVariant := *p
|
|
||||||
testVariant.ID = fmt.Sprintf("%s [%s.test]", p.ID, pkgUnderTest.ID)
|
|
||||||
testVariant.Imports = make(map[string]*Package)
|
|
||||||
for imp, pkg := range p.Imports {
|
|
||||||
testVariant.Imports[imp] = pkg
|
|
||||||
if needsTestVariant[pkg.ID] {
|
|
||||||
testVariant.Imports[imp] = &Package{ID: fmt.Sprintf("%s [%s.test]", pkg.ID, pkgUnderTest.ID)}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
response.Packages = append(response.Packages, &testVariant)
|
|
||||||
return needsTestVariant[p.ID]
|
|
||||||
}
|
|
||||||
// finally, update the xtest package's imports
|
|
||||||
for imp, pkg := range xtestPkg.Imports {
|
|
||||||
if allPkgs[pkg.ID] == nil {
|
|
||||||
fmt.Printf("for %s: package %s doesn't exist\n", xtestPkg.ID, pkg.ID)
|
|
||||||
}
|
|
||||||
if needsVariantRec(allPkgs[pkg.ID]) {
|
|
||||||
xtestPkg.Imports[imp] = &Package{ID: fmt.Sprintf("%s [%s.test]", pkg.ID, pkgUnderTest.ID)}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// cleanAbsPaths replaces all absolute paths with GOPATH- and GOROOT-relative
|
|
||||||
// paths. If an absolute path is not GOPATH- or GOROOT- relative, it is left as an
|
|
||||||
// absolute path so an error can be returned later.
|
|
||||||
func cleanAbsPaths(cfg *Config, words []string) []string {
|
|
||||||
var searchpaths []string
|
|
||||||
var cleaned = make([]string, len(words))
|
|
||||||
for i := range cleaned {
|
|
||||||
cleaned[i] = words[i]
|
|
||||||
// Ignore relative directory paths (they must already be goroot-relative) and Go source files
|
|
||||||
// (absolute source files are already allowed for ad-hoc packages).
|
|
||||||
// TODO(matloob): Can there be non-.go files in ad-hoc packages.
|
|
||||||
if !filepath.IsAbs(cleaned[i]) || strings.HasSuffix(cleaned[i], ".go") {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
// otherwise, it's an absolute path. Search GOPATH and GOROOT to find it.
|
|
||||||
if searchpaths == nil {
|
|
||||||
cmd := exec.Command("go", "env", "GOPATH", "GOROOT")
|
|
||||||
cmd.Env = cfg.Env
|
|
||||||
out, err := cmd.Output()
|
|
||||||
if err != nil {
|
|
||||||
searchpaths = []string{}
|
|
||||||
continue // suppress the error, it will show up again when running go list
|
|
||||||
}
|
|
||||||
lines := strings.Split(string(out), "\n")
|
|
||||||
if len(lines) != 3 || lines[0] == "" || lines[1] == "" || lines[2] != "" {
|
|
||||||
continue // suppress error
|
|
||||||
}
|
|
||||||
// first line is GOPATH
|
|
||||||
for _, path := range filepath.SplitList(lines[0]) {
|
|
||||||
searchpaths = append(searchpaths, filepath.Join(path, "src"))
|
|
||||||
}
|
|
||||||
// second line is GOROOT
|
|
||||||
searchpaths = append(searchpaths, filepath.Join(lines[1], "src"))
|
|
||||||
}
|
|
||||||
for _, sp := range searchpaths {
|
|
||||||
if strings.HasPrefix(cleaned[i], sp) {
|
|
||||||
cleaned[i] = strings.TrimPrefix(cleaned[i], sp)
|
|
||||||
cleaned[i] = strings.TrimLeft(cleaned[i], string(filepath.Separator))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cleaned
|
|
||||||
}
|
|
||||||
|
|
||||||
// vendorlessPath returns the devendorized version of the import path ipath.
|
|
||||||
// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b".
|
|
||||||
// Copied from golang.org/x/tools/imports/fix.go.
|
|
||||||
func vendorlessPath(ipath string) string {
|
|
||||||
// Devendorize for use in import statement.
|
|
||||||
if i := strings.LastIndex(ipath, "/vendor/"); i >= 0 {
|
|
||||||
return ipath[i+len("/vendor/"):]
|
|
||||||
}
|
|
||||||
if strings.HasPrefix(ipath, "vendor/") {
|
|
||||||
return ipath[len("vendor/"):]
|
|
||||||
}
|
|
||||||
return ipath
|
|
||||||
}
|
|
||||||
|
|
||||||
// getDeps runs an initial go list to determine all the dependency packages.
|
|
||||||
func getDeps(cfg *Config, words ...string) (initial []*jsonPackage, deps []string, err error) {
|
|
||||||
buf, err := invokeGo(cfg, golistArgsFallback(cfg, words)...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
depsSet := make(map[string]bool)
|
|
||||||
var testImports []string
|
|
||||||
|
|
||||||
// Extract deps from the JSON.
|
|
||||||
for dec := json.NewDecoder(buf); dec.More(); {
|
|
||||||
p := new(jsonPackage)
|
|
||||||
if err := dec.Decode(p); err != nil {
|
|
||||||
return nil, nil, fmt.Errorf("JSON decoding failed: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
initial = append(initial, p)
|
|
||||||
for _, dep := range p.Deps {
|
|
||||||
depsSet[dep] = true
|
|
||||||
}
|
|
||||||
if cfg.Tests {
|
|
||||||
// collect the additional imports of the test packages.
|
|
||||||
pkgTestImports := append(p.TestImports, p.XTestImports...)
|
|
||||||
for _, imp := range pkgTestImports {
|
|
||||||
if depsSet[imp] {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
depsSet[imp] = true
|
|
||||||
testImports = append(testImports, imp)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get the deps of the packages imported by tests.
|
|
||||||
if len(testImports) > 0 {
|
|
||||||
buf, err = invokeGo(cfg, golistArgsFallback(cfg, testImports)...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
// Extract deps from the JSON.
|
|
||||||
for dec := json.NewDecoder(buf); dec.More(); {
|
|
||||||
p := new(jsonPackage)
|
|
||||||
if err := dec.Decode(p); err != nil {
|
|
||||||
return nil, nil, fmt.Errorf("JSON decoding failed: %v", err)
|
|
||||||
}
|
|
||||||
for _, dep := range p.Deps {
|
|
||||||
depsSet[dep] = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, orig := range initial {
|
|
||||||
delete(depsSet, orig.ImportPath)
|
|
||||||
}
|
|
||||||
|
|
||||||
deps = make([]string, 0, len(depsSet))
|
|
||||||
for dep := range depsSet {
|
|
||||||
deps = append(deps, dep)
|
|
||||||
}
|
|
||||||
sort.Strings(deps) // ensure output is deterministic
|
|
||||||
return initial, deps, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func golistArgsFallback(cfg *Config, words []string) []string {
|
|
||||||
fullargs := []string{"list", "-e", "-json"}
|
|
||||||
fullargs = append(fullargs, cfg.BuildFlags...)
|
|
||||||
fullargs = append(fullargs, "--")
|
|
||||||
fullargs = append(fullargs, words...)
|
|
||||||
return fullargs
|
|
||||||
}
|
|
||||||
|
|
||||||
func runCgo(pkgdir, tmpdir string, env []string) (files, displayfiles []string, err error) {
|
|
||||||
// Use go/build to open cgo files and determine the cgo flags, etc, from them.
|
|
||||||
// This is tricky so it's best to avoid reimplementing as much as we can, and
|
|
||||||
// we plan to delete this support once Go 1.12 is released anyways.
|
|
||||||
// TODO(matloob): This isn't completely correct because we're using the Default
|
|
||||||
// context. Perhaps we should more accurately fill in the context.
|
|
||||||
bp, err := build.ImportDir(pkgdir, build.ImportMode(0))
|
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
for _, ev := range env {
|
|
||||||
if v := strings.TrimPrefix(ev, "CGO_CPPFLAGS"); v != ev {
|
|
||||||
bp.CgoCPPFLAGS = append(bp.CgoCPPFLAGS, strings.Fields(v)...)
|
|
||||||
} else if v := strings.TrimPrefix(ev, "CGO_CFLAGS"); v != ev {
|
|
||||||
bp.CgoCFLAGS = append(bp.CgoCFLAGS, strings.Fields(v)...)
|
|
||||||
} else if v := strings.TrimPrefix(ev, "CGO_CXXFLAGS"); v != ev {
|
|
||||||
bp.CgoCXXFLAGS = append(bp.CgoCXXFLAGS, strings.Fields(v)...)
|
|
||||||
} else if v := strings.TrimPrefix(ev, "CGO_LDFLAGS"); v != ev {
|
|
||||||
bp.CgoLDFLAGS = append(bp.CgoLDFLAGS, strings.Fields(v)...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cgo.Run(bp, pkgdir, tmpdir, true)
|
|
||||||
}
|
|
318
vendor/golang.org/x/tools/go/packages/golist_fallback_testmain.go
generated
vendored
318
vendor/golang.org/x/tools/go/packages/golist_fallback_testmain.go
generated
vendored
@ -1,318 +0,0 @@
|
|||||||
// Copyright 2018 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.
|
|
||||||
|
|
||||||
// This file is largely based on the Go 1.10-era cmd/go/internal/test/test.go
|
|
||||||
// testmain generation code.
|
|
||||||
|
|
||||||
package packages
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"go/ast"
|
|
||||||
"go/doc"
|
|
||||||
"go/parser"
|
|
||||||
"go/token"
|
|
||||||
"os"
|
|
||||||
"sort"
|
|
||||||
"strings"
|
|
||||||
"text/template"
|
|
||||||
"unicode"
|
|
||||||
"unicode/utf8"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO(matloob): Delete this file once Go 1.12 is released.
|
|
||||||
|
|
||||||
// This file complements golist_fallback.go by providing
|
|
||||||
// support for generating testmains.
|
|
||||||
|
|
||||||
func generateTestmain(out string, testPkg, xtestPkg *Package) (extraimports, extradeps []string, err error) {
|
|
||||||
testFuncs, err := loadTestFuncs(testPkg, xtestPkg)
|
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
extraimports = []string{"testing", "testing/internal/testdeps"}
|
|
||||||
if testFuncs.TestMain == nil {
|
|
||||||
extraimports = append(extraimports, "os")
|
|
||||||
}
|
|
||||||
// Transitive dependencies of ("testing", "testing/internal/testdeps").
|
|
||||||
// os is part of the transitive closure so it and its transitive dependencies are
|
|
||||||
// included regardless of whether it's imported in the template below.
|
|
||||||
extradeps = []string{
|
|
||||||
"errors",
|
|
||||||
"internal/cpu",
|
|
||||||
"unsafe",
|
|
||||||
"internal/bytealg",
|
|
||||||
"internal/race",
|
|
||||||
"runtime/internal/atomic",
|
|
||||||
"runtime/internal/sys",
|
|
||||||
"runtime",
|
|
||||||
"sync/atomic",
|
|
||||||
"sync",
|
|
||||||
"io",
|
|
||||||
"unicode",
|
|
||||||
"unicode/utf8",
|
|
||||||
"bytes",
|
|
||||||
"math",
|
|
||||||
"syscall",
|
|
||||||
"time",
|
|
||||||
"internal/poll",
|
|
||||||
"internal/syscall/unix",
|
|
||||||
"internal/testlog",
|
|
||||||
"os",
|
|
||||||
"math/bits",
|
|
||||||
"strconv",
|
|
||||||
"reflect",
|
|
||||||
"fmt",
|
|
||||||
"sort",
|
|
||||||
"strings",
|
|
||||||
"flag",
|
|
||||||
"runtime/debug",
|
|
||||||
"context",
|
|
||||||
"runtime/trace",
|
|
||||||
"testing",
|
|
||||||
"bufio",
|
|
||||||
"regexp/syntax",
|
|
||||||
"regexp",
|
|
||||||
"compress/flate",
|
|
||||||
"encoding/binary",
|
|
||||||
"hash",
|
|
||||||
"hash/crc32",
|
|
||||||
"compress/gzip",
|
|
||||||
"path/filepath",
|
|
||||||
"io/ioutil",
|
|
||||||
"text/tabwriter",
|
|
||||||
"runtime/pprof",
|
|
||||||
"testing/internal/testdeps",
|
|
||||||
}
|
|
||||||
return extraimports, extradeps, writeTestmain(out, testFuncs)
|
|
||||||
}
|
|
||||||
|
|
||||||
// The following is adapted from the cmd/go testmain generation code.
|
|
||||||
|
|
||||||
// isTestFunc tells whether fn has the type of a testing function. arg
|
|
||||||
// specifies the parameter type we look for: B, M or T.
|
|
||||||
func isTestFunc(fn *ast.FuncDecl, arg string) bool {
|
|
||||||
if fn.Type.Results != nil && len(fn.Type.Results.List) > 0 ||
|
|
||||||
fn.Type.Params.List == nil ||
|
|
||||||
len(fn.Type.Params.List) != 1 ||
|
|
||||||
len(fn.Type.Params.List[0].Names) > 1 {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
ptr, ok := fn.Type.Params.List[0].Type.(*ast.StarExpr)
|
|
||||||
if !ok {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
// We can't easily check that the type is *testing.M
|
|
||||||
// because we don't know how testing has been imported,
|
|
||||||
// but at least check that it's *M or *something.M.
|
|
||||||
// Same applies for B and T.
|
|
||||||
if name, ok := ptr.X.(*ast.Ident); ok && name.Name == arg {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if sel, ok := ptr.X.(*ast.SelectorExpr); ok && sel.Sel.Name == arg {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// isTest tells whether name looks like a test (or benchmark, according to prefix).
|
|
||||||
// It is a Test (say) if there is a character after Test that is not a lower-case letter.
|
|
||||||
// We don't want TesticularCancer.
|
|
||||||
func isTest(name, prefix string) bool {
|
|
||||||
if !strings.HasPrefix(name, prefix) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if len(name) == len(prefix) { // "Test" is ok
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
rune, _ := utf8.DecodeRuneInString(name[len(prefix):])
|
|
||||||
return !unicode.IsLower(rune)
|
|
||||||
}
|
|
||||||
|
|
||||||
// loadTestFuncs returns the testFuncs describing the tests that will be run.
|
|
||||||
func loadTestFuncs(ptest, pxtest *Package) (*testFuncs, error) {
|
|
||||||
t := &testFuncs{
|
|
||||||
TestPackage: ptest,
|
|
||||||
XTestPackage: pxtest,
|
|
||||||
}
|
|
||||||
for _, file := range ptest.GoFiles {
|
|
||||||
if !strings.HasSuffix(file, "_test.go") {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if err := t.load(file, "_test", &t.ImportTest, &t.NeedTest); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if pxtest != nil {
|
|
||||||
for _, file := range pxtest.GoFiles {
|
|
||||||
if err := t.load(file, "_xtest", &t.ImportXtest, &t.NeedXtest); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return t, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// writeTestmain writes the _testmain.go file for t to the file named out.
|
|
||||||
func writeTestmain(out string, t *testFuncs) error {
|
|
||||||
f, err := os.Create(out)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
|
|
||||||
if err := testmainTmpl.Execute(f, t); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type testFuncs struct {
|
|
||||||
Tests []testFunc
|
|
||||||
Benchmarks []testFunc
|
|
||||||
Examples []testFunc
|
|
||||||
TestMain *testFunc
|
|
||||||
TestPackage *Package
|
|
||||||
XTestPackage *Package
|
|
||||||
ImportTest bool
|
|
||||||
NeedTest bool
|
|
||||||
ImportXtest bool
|
|
||||||
NeedXtest bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tested returns the name of the package being tested.
|
|
||||||
func (t *testFuncs) Tested() string {
|
|
||||||
return t.TestPackage.Name
|
|
||||||
}
|
|
||||||
|
|
||||||
type testFunc struct {
|
|
||||||
Package string // imported package name (_test or _xtest)
|
|
||||||
Name string // function name
|
|
||||||
Output string // output, for examples
|
|
||||||
Unordered bool // output is allowed to be unordered.
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *testFuncs) load(filename, pkg string, doImport, seen *bool) error {
|
|
||||||
var fset = token.NewFileSet()
|
|
||||||
|
|
||||||
f, err := parser.ParseFile(fset, filename, nil, parser.ParseComments)
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("failed to parse test file " + filename)
|
|
||||||
}
|
|
||||||
for _, d := range f.Decls {
|
|
||||||
n, ok := d.(*ast.FuncDecl)
|
|
||||||
if !ok {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if n.Recv != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
name := n.Name.String()
|
|
||||||
switch {
|
|
||||||
case name == "TestMain":
|
|
||||||
if isTestFunc(n, "T") {
|
|
||||||
t.Tests = append(t.Tests, testFunc{pkg, name, "", false})
|
|
||||||
*doImport, *seen = true, true
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
err := checkTestFunc(fset, n, "M")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if t.TestMain != nil {
|
|
||||||
return errors.New("multiple definitions of TestMain")
|
|
||||||
}
|
|
||||||
t.TestMain = &testFunc{pkg, name, "", false}
|
|
||||||
*doImport, *seen = true, true
|
|
||||||
case isTest(name, "Test"):
|
|
||||||
err := checkTestFunc(fset, n, "T")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
t.Tests = append(t.Tests, testFunc{pkg, name, "", false})
|
|
||||||
*doImport, *seen = true, true
|
|
||||||
case isTest(name, "Benchmark"):
|
|
||||||
err := checkTestFunc(fset, n, "B")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
t.Benchmarks = append(t.Benchmarks, testFunc{pkg, name, "", false})
|
|
||||||
*doImport, *seen = true, true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ex := doc.Examples(f)
|
|
||||||
sort.Slice(ex, func(i, j int) bool { return ex[i].Order < ex[j].Order })
|
|
||||||
for _, e := range ex {
|
|
||||||
*doImport = true // import test file whether executed or not
|
|
||||||
if e.Output == "" && !e.EmptyOutput {
|
|
||||||
// Don't run examples with no output.
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
t.Examples = append(t.Examples, testFunc{pkg, "Example" + e.Name, e.Output, e.Unordered})
|
|
||||||
*seen = true
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func checkTestFunc(fset *token.FileSet, fn *ast.FuncDecl, arg string) error {
|
|
||||||
if !isTestFunc(fn, arg) {
|
|
||||||
name := fn.Name.String()
|
|
||||||
pos := fset.Position(fn.Pos())
|
|
||||||
return fmt.Errorf("%s: wrong signature for %s, must be: func %s(%s *testing.%s)", pos, name, name, strings.ToLower(arg), arg)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var testmainTmpl = template.Must(template.New("main").Parse(`
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
{{if not .TestMain}}
|
|
||||||
"os"
|
|
||||||
{{end}}
|
|
||||||
"testing"
|
|
||||||
"testing/internal/testdeps"
|
|
||||||
|
|
||||||
{{if .ImportTest}}
|
|
||||||
{{if .NeedTest}}_test{{else}}_{{end}} {{.TestPackage.PkgPath | printf "%q"}}
|
|
||||||
{{end}}
|
|
||||||
{{if .ImportXtest}}
|
|
||||||
{{if .NeedXtest}}_xtest{{else}}_{{end}} {{.XTestPackage.PkgPath | printf "%q"}}
|
|
||||||
{{end}}
|
|
||||||
)
|
|
||||||
|
|
||||||
var tests = []testing.InternalTest{
|
|
||||||
{{range .Tests}}
|
|
||||||
{"{{.Name}}", {{.Package}}.{{.Name}}},
|
|
||||||
{{end}}
|
|
||||||
}
|
|
||||||
|
|
||||||
var benchmarks = []testing.InternalBenchmark{
|
|
||||||
{{range .Benchmarks}}
|
|
||||||
{"{{.Name}}", {{.Package}}.{{.Name}}},
|
|
||||||
{{end}}
|
|
||||||
}
|
|
||||||
|
|
||||||
var examples = []testing.InternalExample{
|
|
||||||
{{range .Examples}}
|
|
||||||
{"{{.Name}}", {{.Package}}.{{.Name}}, {{.Output | printf "%q"}}, {{.Unordered}}},
|
|
||||||
{{end}}
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
testdeps.ImportPath = {{.TestPackage.PkgPath | printf "%q"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
m := testing.MainStart(testdeps.TestDeps{}, tests, benchmarks, examples)
|
|
||||||
{{with .TestMain}}
|
|
||||||
{{.Package}}.{{.Name}}(m)
|
|
||||||
{{else}}
|
|
||||||
os.Exit(m.Run())
|
|
||||||
{{end}}
|
|
||||||
}
|
|
||||||
|
|
||||||
`))
|
|
264
vendor/golang.org/x/tools/go/packages/golist_overlay.go
generated
vendored
264
vendor/golang.org/x/tools/go/packages/golist_overlay.go
generated
vendored
@ -1,76 +1,172 @@
|
|||||||
package packages
|
package packages
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"go/parser"
|
"go/parser"
|
||||||
"go/token"
|
"go/token"
|
||||||
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// processGolistOverlay provides rudimentary support for adding
|
// processGolistOverlay provides rudimentary support for adding
|
||||||
// files that don't exist on disk to an overlay. The results can be
|
// files that don't exist on disk to an overlay. The results can be
|
||||||
// sometimes incorrect.
|
// sometimes incorrect.
|
||||||
// TODO(matloob): Handle unsupported cases, including the following:
|
// TODO(matloob): Handle unsupported cases, including the following:
|
||||||
// - test files
|
|
||||||
// - adding test and non-test files to test variants of packages
|
|
||||||
// - determining the correct package to add given a new import path
|
// - determining the correct package to add given a new import path
|
||||||
// - creating packages that don't exist
|
func processGolistOverlay(cfg *Config, response *responseDeduper) (modifiedPkgs, needPkgs []string, err error) {
|
||||||
func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, needPkgs []string, err error) {
|
|
||||||
havePkgs := make(map[string]string) // importPath -> non-test package ID
|
havePkgs := make(map[string]string) // importPath -> non-test package ID
|
||||||
needPkgsSet := make(map[string]bool)
|
needPkgsSet := make(map[string]bool)
|
||||||
modifiedPkgsSet := make(map[string]bool)
|
modifiedPkgsSet := make(map[string]bool)
|
||||||
|
|
||||||
for _, pkg := range response.Packages {
|
for _, pkg := range response.dr.Packages {
|
||||||
// This is an approximation of import path to id. This can be
|
// This is an approximation of import path to id. This can be
|
||||||
// wrong for tests, vendored packages, and a number of other cases.
|
// wrong for tests, vendored packages, and a number of other cases.
|
||||||
havePkgs[pkg.PkgPath] = pkg.ID
|
havePkgs[pkg.PkgPath] = pkg.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
outer:
|
var rootDirs map[string]string
|
||||||
for path, contents := range cfg.Overlay {
|
var onceGetRootDirs sync.Once
|
||||||
base := filepath.Base(path)
|
|
||||||
if strings.HasSuffix(path, "_test.go") {
|
for opath, contents := range cfg.Overlay {
|
||||||
// Overlays don't support adding new test files yet.
|
base := filepath.Base(opath)
|
||||||
// TODO(matloob): support adding new test files.
|
dir := filepath.Dir(opath)
|
||||||
|
var pkg *Package
|
||||||
|
var testVariantOf *Package // if opath is a test file, this is the package it is testing
|
||||||
|
var fileExists bool
|
||||||
|
isTest := strings.HasSuffix(opath, "_test.go")
|
||||||
|
pkgName, ok := extractPackageName(opath, contents)
|
||||||
|
if !ok {
|
||||||
|
// Don't bother adding a file that doesn't even have a parsable package statement
|
||||||
|
// to the overlay.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
dir := filepath.Dir(path)
|
nextPackage:
|
||||||
for _, pkg := range response.Packages {
|
for _, p := range response.dr.Packages {
|
||||||
var dirContains, fileExists bool
|
if pkgName != p.Name {
|
||||||
for _, f := range pkg.GoFiles {
|
continue
|
||||||
if sameFile(filepath.Dir(f), dir) {
|
}
|
||||||
dirContains = true
|
for _, f := range p.GoFiles {
|
||||||
|
if !sameFile(filepath.Dir(f), dir) {
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
if isTest && !hasTestFiles(p) {
|
||||||
|
// TODO(matloob): Are there packages other than the 'production' variant
|
||||||
|
// of a package that this can match? This shouldn't match the test main package
|
||||||
|
// because the file is generated in another directory.
|
||||||
|
testVariantOf = p
|
||||||
|
continue nextPackage
|
||||||
|
}
|
||||||
|
pkg = p
|
||||||
if filepath.Base(f) == base {
|
if filepath.Base(f) == base {
|
||||||
fileExists = true
|
fileExists = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if dirContains {
|
}
|
||||||
if !fileExists {
|
// The overlay could have included an entirely new package.
|
||||||
pkg.GoFiles = append(pkg.GoFiles, path) // TODO(matloob): should the file just be added to GoFiles?
|
if pkg == nil {
|
||||||
pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, path)
|
onceGetRootDirs.Do(func() {
|
||||||
modifiedPkgsSet[pkg.ID] = true
|
rootDirs = determineRootDirs(cfg)
|
||||||
}
|
})
|
||||||
imports, err := extractImports(path, contents)
|
// Try to find the module or gopath dir the file is contained in.
|
||||||
|
// Then for modules, add the module opath to the beginning.
|
||||||
|
var pkgPath string
|
||||||
|
for rdir, rpath := range rootDirs {
|
||||||
|
// TODO(matloob): This doesn't properly handle symlinks.
|
||||||
|
r, err := filepath.Rel(rdir, dir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Let the parser or type checker report errors later.
|
continue
|
||||||
continue outer
|
|
||||||
}
|
}
|
||||||
for _, imp := range imports {
|
pkgPath = filepath.ToSlash(r)
|
||||||
_, found := pkg.Imports[imp]
|
if rpath != "" {
|
||||||
if !found {
|
pkgPath = path.Join(rpath, pkgPath)
|
||||||
needPkgsSet[imp] = true
|
|
||||||
// TODO(matloob): Handle cases when the following block isn't correct.
|
|
||||||
// These include imports of test variants, imports of vendored packages, etc.
|
|
||||||
id, ok := havePkgs[imp]
|
|
||||||
if !ok {
|
|
||||||
id = imp
|
|
||||||
}
|
|
||||||
pkg.Imports[imp] = &Package{ID: id}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
continue outer
|
// We only create one new package even it can belong in multiple modules or GOPATH entries.
|
||||||
|
// This is okay because tools (such as the LSP) that use overlays will recompute the overlay
|
||||||
|
// once the file is saved, and golist will do the right thing.
|
||||||
|
// TODO(matloob): Implement module tiebreaking?
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if pkgPath == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
isXTest := strings.HasSuffix(pkgName, "_test")
|
||||||
|
if isXTest {
|
||||||
|
pkgPath += "_test"
|
||||||
|
}
|
||||||
|
id := pkgPath
|
||||||
|
if isTest && !isXTest {
|
||||||
|
id = fmt.Sprintf("%s [%s.test]", pkgPath, pkgPath)
|
||||||
|
}
|
||||||
|
// Try to reclaim a package with the same id if it exists in the response.
|
||||||
|
for _, p := range response.dr.Packages {
|
||||||
|
if reclaimPackage(p, id, opath, contents) {
|
||||||
|
pkg = p
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Otherwise, create a new package
|
||||||
|
if pkg == nil {
|
||||||
|
pkg = &Package{PkgPath: pkgPath, ID: id, Name: pkgName, Imports: make(map[string]*Package)}
|
||||||
|
response.addPackage(pkg)
|
||||||
|
havePkgs[pkg.PkgPath] = id
|
||||||
|
// Add the production package's sources for a test variant.
|
||||||
|
if isTest && !isXTest && testVariantOf != nil {
|
||||||
|
pkg.GoFiles = append(pkg.GoFiles, testVariantOf.GoFiles...)
|
||||||
|
pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, testVariantOf.CompiledGoFiles...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !fileExists {
|
||||||
|
pkg.GoFiles = append(pkg.GoFiles, opath)
|
||||||
|
// TODO(matloob): Adding the file to CompiledGoFiles can exhibit the wrong behavior
|
||||||
|
// if the file will be ignored due to its build tags.
|
||||||
|
pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, opath)
|
||||||
|
modifiedPkgsSet[pkg.ID] = true
|
||||||
|
}
|
||||||
|
imports, err := extractImports(opath, contents)
|
||||||
|
if err != nil {
|
||||||
|
// Let the parser or type checker report errors later.
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for _, imp := range imports {
|
||||||
|
_, found := pkg.Imports[imp]
|
||||||
|
if !found {
|
||||||
|
// TODO(matloob): Handle cases when the following block isn't correct.
|
||||||
|
// These include imports of test variants, imports of vendored packages, etc.
|
||||||
|
id, ok := havePkgs[imp]
|
||||||
|
if !ok {
|
||||||
|
id = imp
|
||||||
|
}
|
||||||
|
pkg.Imports[imp] = &Package{ID: id}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// toPkgPath tries to guess the package path given the id.
|
||||||
|
// This isn't always correct -- it's certainly wrong for
|
||||||
|
// vendored packages' paths.
|
||||||
|
toPkgPath := func(id string) string {
|
||||||
|
// TODO(matloob): Handle vendor paths.
|
||||||
|
i := strings.IndexByte(id, ' ')
|
||||||
|
if i >= 0 {
|
||||||
|
return id[:i]
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do another pass now that new packages have been created to determine the
|
||||||
|
// set of missing packages.
|
||||||
|
for _, pkg := range response.dr.Packages {
|
||||||
|
for _, imp := range pkg.Imports {
|
||||||
|
pkgPath := toPkgPath(imp.ID)
|
||||||
|
if _, ok := havePkgs[pkgPath]; !ok {
|
||||||
|
needPkgsSet[pkgPath] = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -86,6 +182,55 @@ outer:
|
|||||||
return modifiedPkgs, needPkgs, err
|
return modifiedPkgs, needPkgs, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func hasTestFiles(p *Package) bool {
|
||||||
|
for _, f := range p.GoFiles {
|
||||||
|
if strings.HasSuffix(f, "_test.go") {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// determineRootDirs returns a mapping from directories code can be contained in to the
|
||||||
|
// corresponding import path prefixes of those directories.
|
||||||
|
// Its result is used to try to determine the import path for a package containing
|
||||||
|
// an overlay file.
|
||||||
|
func determineRootDirs(cfg *Config) map[string]string {
|
||||||
|
// Assume modules first:
|
||||||
|
out, err := invokeGo(cfg, "list", "-m", "-json", "all")
|
||||||
|
if err != nil {
|
||||||
|
return determineRootDirsGOPATH(cfg)
|
||||||
|
}
|
||||||
|
m := map[string]string{}
|
||||||
|
type jsonMod struct{ Path, Dir string }
|
||||||
|
for dec := json.NewDecoder(out); dec.More(); {
|
||||||
|
mod := new(jsonMod)
|
||||||
|
if err := dec.Decode(mod); err != nil {
|
||||||
|
return m // Give up and return an empty map. Package won't be found for overlay.
|
||||||
|
}
|
||||||
|
if mod.Dir != "" && mod.Path != "" {
|
||||||
|
// This is a valid module; add it to the map.
|
||||||
|
m[mod.Dir] = mod.Path
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func determineRootDirsGOPATH(cfg *Config) map[string]string {
|
||||||
|
m := map[string]string{}
|
||||||
|
out, err := invokeGo(cfg, "env", "GOPATH")
|
||||||
|
if err != nil {
|
||||||
|
// Could not determine root dir mapping. Everything is best-effort, so just return an empty map.
|
||||||
|
// When we try to find the import path for a directory, there will be no root-dir match and
|
||||||
|
// we'll give up.
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
for _, p := range filepath.SplitList(string(bytes.TrimSpace(out.Bytes()))) {
|
||||||
|
m[filepath.Join(p, "src")] = ""
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
func extractImports(filename string, contents []byte) ([]string, error) {
|
func extractImports(filename string, contents []byte) ([]string, error) {
|
||||||
f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset?
|
f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset?
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -102,3 +247,44 @@ func extractImports(filename string, contents []byte) ([]string, error) {
|
|||||||
}
|
}
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reclaimPackage attempts to reuse a package that failed to load in an overlay.
|
||||||
|
//
|
||||||
|
// If the package has errors and has no Name, GoFiles, or Imports,
|
||||||
|
// then it's possible that it doesn't yet exist on disk.
|
||||||
|
func reclaimPackage(pkg *Package, id string, filename string, contents []byte) bool {
|
||||||
|
// TODO(rstambler): Check the message of the actual error?
|
||||||
|
// It differs between $GOPATH and module mode.
|
||||||
|
if pkg.ID != id {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if len(pkg.Errors) != 1 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if pkg.Name != "" || pkg.ExportFile != "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if len(pkg.GoFiles) > 0 || len(pkg.CompiledGoFiles) > 0 || len(pkg.OtherFiles) > 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if len(pkg.Imports) > 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
pkgName, ok := extractPackageName(filename, contents)
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
pkg.Name = pkgName
|
||||||
|
pkg.Errors = nil
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func extractPackageName(filename string, contents []byte) (string, bool) {
|
||||||
|
// TODO(rstambler): Check the message of the actual error?
|
||||||
|
// It differs between $GOPATH and module mode.
|
||||||
|
f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.PackageClauseOnly) // TODO(matloob): reuse fileset?
|
||||||
|
if err != nil {
|
||||||
|
return "", false
|
||||||
|
}
|
||||||
|
return f.Name.Name, true
|
||||||
|
}
|
||||||
|
265
vendor/golang.org/x/tools/go/packages/packages.go
generated
vendored
265
vendor/golang.org/x/tools/go/packages/packages.go
generated
vendored
@ -25,37 +25,69 @@ import (
|
|||||||
"golang.org/x/tools/go/gcexportdata"
|
"golang.org/x/tools/go/gcexportdata"
|
||||||
)
|
)
|
||||||
|
|
||||||
// A LoadMode specifies the amount of detail to return when loading.
|
// A LoadMode controls the amount of detail to return when loading.
|
||||||
// Higher-numbered modes cause Load to return more information,
|
// The bits below can be combined to specify which fields should be
|
||||||
// but may be slower. Load may return more information than requested.
|
// filled in the result packages.
|
||||||
|
// The zero value is a special case, equivalent to combining
|
||||||
|
// the NeedName, NeedFiles, and NeedCompiledGoFiles bits.
|
||||||
|
// ID and Errors (if present) will always be filled.
|
||||||
|
// Load may return more information than requested.
|
||||||
type LoadMode int
|
type LoadMode int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// LoadFiles finds the packages and computes their source file lists.
|
// NeedName adds Name and PkgPath.
|
||||||
// Package fields: ID, Name, Errors, GoFiles, and OtherFiles.
|
NeedName LoadMode = 1 << iota
|
||||||
LoadFiles LoadMode = iota
|
|
||||||
|
|
||||||
// LoadImports adds import information for each package
|
// NeedFiles adds GoFiles and OtherFiles.
|
||||||
// and its dependencies.
|
NeedFiles
|
||||||
// Package fields added: Imports.
|
|
||||||
LoadImports
|
|
||||||
|
|
||||||
// LoadTypes adds type information for package-level
|
// NeedCompiledGoFiles adds CompiledGoFiles.
|
||||||
// declarations in the packages matching the patterns.
|
NeedCompiledGoFiles
|
||||||
// Package fields added: Types, Fset, and IllTyped.
|
|
||||||
// This mode uses type information provided by the build system when
|
|
||||||
// possible, and may fill in the ExportFile field.
|
|
||||||
LoadTypes
|
|
||||||
|
|
||||||
// LoadSyntax adds typed syntax trees for the packages matching the patterns.
|
// NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain
|
||||||
// Package fields added: Syntax, and TypesInfo, for direct pattern matches only.
|
// "placeholder" Packages with only the ID set.
|
||||||
LoadSyntax
|
NeedImports
|
||||||
|
|
||||||
// LoadAllSyntax adds typed syntax trees for the packages matching the patterns
|
// NeedDeps adds the fields requested by the LoadMode in the packages in Imports. If NeedImports
|
||||||
// and all dependencies.
|
// is not set NeedDeps has no effect.
|
||||||
// Package fields added: Types, Fset, IllTyped, Syntax, and TypesInfo,
|
NeedDeps
|
||||||
// for all packages in the import graph.
|
|
||||||
LoadAllSyntax
|
// NeedExportsFile adds ExportsFile.
|
||||||
|
NeedExportsFile
|
||||||
|
|
||||||
|
// NeedTypes adds Types, Fset, and IllTyped.
|
||||||
|
NeedTypes
|
||||||
|
|
||||||
|
// NeedSyntax adds Syntax.
|
||||||
|
NeedSyntax
|
||||||
|
|
||||||
|
// NeedTypesInfo adds TypesInfo.
|
||||||
|
NeedTypesInfo
|
||||||
|
|
||||||
|
// NeedTypesSizes adds TypesSizes.
|
||||||
|
NeedTypesSizes
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Deprecated: LoadFiles exists for historical compatibility
|
||||||
|
// and should not be used. Please directly specify the needed fields using the Need values.
|
||||||
|
LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles
|
||||||
|
|
||||||
|
// Deprecated: LoadImports exists for historical compatibility
|
||||||
|
// and should not be used. Please directly specify the needed fields using the Need values.
|
||||||
|
LoadImports = LoadFiles | NeedImports | NeedDeps
|
||||||
|
|
||||||
|
// Deprecated: LoadTypes exists for historical compatibility
|
||||||
|
// and should not be used. Please directly specify the needed fields using the Need values.
|
||||||
|
LoadTypes = LoadImports | NeedTypes | NeedTypesSizes
|
||||||
|
|
||||||
|
// Deprecated: LoadSyntax exists for historical compatibility
|
||||||
|
// and should not be used. Please directly specify the needed fields using the Need values.
|
||||||
|
LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo
|
||||||
|
|
||||||
|
// Deprecated: LoadAllSyntax exists for historical compatibility
|
||||||
|
// and should not be used. Please directly specify the needed fields using the Need values.
|
||||||
|
LoadAllSyntax = LoadSyntax
|
||||||
)
|
)
|
||||||
|
|
||||||
// A Config specifies details about how packages should be loaded.
|
// A Config specifies details about how packages should be loaded.
|
||||||
@ -91,7 +123,7 @@ type Config struct {
|
|||||||
BuildFlags []string
|
BuildFlags []string
|
||||||
|
|
||||||
// Fset provides source position information for syntax trees and types.
|
// Fset provides source position information for syntax trees and types.
|
||||||
// If Fset is nil, the loader will create a new FileSet.
|
// If Fset is nil, Load will use a new fileset, but preserve Fset's value.
|
||||||
Fset *token.FileSet
|
Fset *token.FileSet
|
||||||
|
|
||||||
// ParseFile is called to read and parse each file
|
// ParseFile is called to read and parse each file
|
||||||
@ -229,9 +261,9 @@ type Package struct {
|
|||||||
Imports map[string]*Package
|
Imports map[string]*Package
|
||||||
|
|
||||||
// Types provides type information for the package.
|
// Types provides type information for the package.
|
||||||
// Modes LoadTypes and above set this field for packages matching the
|
// The NeedTypes LoadMode bit sets this field for packages matching the
|
||||||
// patterns; type information for dependencies may be missing or incomplete.
|
// patterns; type information for dependencies may be missing or incomplete,
|
||||||
// Mode LoadAllSyntax sets this field for all packages, including dependencies.
|
// unless NeedDeps and NeedImports are also set.
|
||||||
Types *types.Package
|
Types *types.Package
|
||||||
|
|
||||||
// Fset provides position information for Types, TypesInfo, and Syntax.
|
// Fset provides position information for Types, TypesInfo, and Syntax.
|
||||||
@ -244,8 +276,9 @@ type Package struct {
|
|||||||
|
|
||||||
// Syntax is the package's syntax trees, for the files listed in CompiledGoFiles.
|
// Syntax is the package's syntax trees, for the files listed in CompiledGoFiles.
|
||||||
//
|
//
|
||||||
// Mode LoadSyntax sets this field for packages matching the patterns.
|
// The NeedSyntax LoadMode bit populates this field for packages matching the patterns.
|
||||||
// Mode LoadAllSyntax sets this field for all packages, including dependencies.
|
// If NeedDeps and NeedImports are also set, this field will also be populated
|
||||||
|
// for dependencies.
|
||||||
Syntax []*ast.File
|
Syntax []*ast.File
|
||||||
|
|
||||||
// TypesInfo provides type information about the package's syntax trees.
|
// TypesInfo provides type information about the package's syntax trees.
|
||||||
@ -372,15 +405,34 @@ type loaderPackage struct {
|
|||||||
type loader struct {
|
type loader struct {
|
||||||
pkgs map[string]*loaderPackage
|
pkgs map[string]*loaderPackage
|
||||||
Config
|
Config
|
||||||
sizes types.Sizes
|
sizes types.Sizes
|
||||||
exportMu sync.Mutex // enforces mutual exclusion of exportdata operations
|
parseCache map[string]*parseValue
|
||||||
|
parseCacheMu sync.Mutex
|
||||||
|
exportMu sync.Mutex // enforces mutual exclusion of exportdata operations
|
||||||
|
|
||||||
|
// TODO(matloob): Add an implied mode here and use that instead of mode.
|
||||||
|
// Implied mode would contain all the fields we need the data for so we can
|
||||||
|
// get the actually requested fields. We'll zero them out before returning
|
||||||
|
// packages to the user. This will make it easier for us to get the conditions
|
||||||
|
// where we need certain modes right.
|
||||||
|
}
|
||||||
|
|
||||||
|
type parseValue struct {
|
||||||
|
f *ast.File
|
||||||
|
err error
|
||||||
|
ready chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newLoader(cfg *Config) *loader {
|
func newLoader(cfg *Config) *loader {
|
||||||
ld := &loader{}
|
ld := &loader{
|
||||||
|
parseCache: map[string]*parseValue{},
|
||||||
|
}
|
||||||
if cfg != nil {
|
if cfg != nil {
|
||||||
ld.Config = *cfg
|
ld.Config = *cfg
|
||||||
}
|
}
|
||||||
|
if ld.Config.Mode == 0 {
|
||||||
|
ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility.
|
||||||
|
}
|
||||||
if ld.Config.Env == nil {
|
if ld.Config.Env == nil {
|
||||||
ld.Config.Env = os.Environ()
|
ld.Config.Env = os.Environ()
|
||||||
}
|
}
|
||||||
@ -393,7 +445,7 @@ func newLoader(cfg *Config) *loader {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ld.Mode >= LoadTypes {
|
if ld.Mode&NeedTypes != 0 {
|
||||||
if ld.Fset == nil {
|
if ld.Fset == nil {
|
||||||
ld.Fset = token.NewFileSet()
|
ld.Fset = token.NewFileSet()
|
||||||
}
|
}
|
||||||
@ -402,12 +454,8 @@ func newLoader(cfg *Config) *loader {
|
|||||||
// because we load source if export data is missing.
|
// because we load source if export data is missing.
|
||||||
if ld.ParseFile == nil {
|
if ld.ParseFile == nil {
|
||||||
ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
|
ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
|
||||||
var isrc interface{}
|
|
||||||
if src != nil {
|
|
||||||
isrc = src
|
|
||||||
}
|
|
||||||
const mode = parser.AllErrors | parser.ParseComments
|
const mode = parser.AllErrors | parser.ParseComments
|
||||||
return parser.ParseFile(fset, filename, isrc, mode)
|
return parser.ParseFile(fset, filename, src, mode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -430,11 +478,9 @@ func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) {
|
|||||||
rootIndex = i
|
rootIndex = i
|
||||||
}
|
}
|
||||||
lpkg := &loaderPackage{
|
lpkg := &loaderPackage{
|
||||||
Package: pkg,
|
Package: pkg,
|
||||||
needtypes: ld.Mode >= LoadAllSyntax ||
|
needtypes: (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && rootIndex < 0) || rootIndex >= 0,
|
||||||
ld.Mode >= LoadTypes && rootIndex >= 0,
|
needsrc: (ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && rootIndex < 0) || rootIndex >= 0 ||
|
||||||
needsrc: ld.Mode >= LoadAllSyntax ||
|
|
||||||
ld.Mode >= LoadSyntax && rootIndex >= 0 ||
|
|
||||||
len(ld.Overlay) > 0 || // Overlays can invalidate export data. TODO(matloob): make this check fine-grained based on dependencies on overlaid files
|
len(ld.Overlay) > 0 || // Overlays can invalidate export data. TODO(matloob): make this check fine-grained based on dependencies on overlaid files
|
||||||
pkg.ExportFile == "" && pkg.PkgPath != "unsafe",
|
pkg.ExportFile == "" && pkg.PkgPath != "unsafe",
|
||||||
}
|
}
|
||||||
@ -507,14 +553,17 @@ func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) {
|
|||||||
if lpkg.needsrc {
|
if lpkg.needsrc {
|
||||||
srcPkgs = append(srcPkgs, lpkg)
|
srcPkgs = append(srcPkgs, lpkg)
|
||||||
}
|
}
|
||||||
|
if ld.Mode&NeedTypesSizes != 0 {
|
||||||
|
lpkg.TypesSizes = ld.sizes
|
||||||
|
}
|
||||||
stack = stack[:len(stack)-1] // pop
|
stack = stack[:len(stack)-1] // pop
|
||||||
lpkg.color = black
|
lpkg.color = black
|
||||||
|
|
||||||
return lpkg.needsrc
|
return lpkg.needsrc
|
||||||
}
|
}
|
||||||
|
|
||||||
if ld.Mode < LoadImports {
|
if ld.Mode&(NeedImports|NeedDeps) == 0 {
|
||||||
//we do this to drop the stub import packages that we are not even going to try to resolve
|
// We do this to drop the stub import packages that we are not even going to try to resolve.
|
||||||
for _, lpkg := range initial {
|
for _, lpkg := range initial {
|
||||||
lpkg.Imports = nil
|
lpkg.Imports = nil
|
||||||
}
|
}
|
||||||
@ -524,17 +573,19 @@ func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) {
|
|||||||
visit(lpkg)
|
visit(lpkg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, lpkg := range srcPkgs {
|
if ld.Mode&NeedDeps != 0 { // TODO(matloob): This is only the case if NeedTypes is also set, right?
|
||||||
// Complete type information is required for the
|
for _, lpkg := range srcPkgs {
|
||||||
// immediate dependencies of each source package.
|
// Complete type information is required for the
|
||||||
for _, ipkg := range lpkg.Imports {
|
// immediate dependencies of each source package.
|
||||||
imp := ld.pkgs[ipkg.ID]
|
for _, ipkg := range lpkg.Imports {
|
||||||
imp.needtypes = true
|
imp := ld.pkgs[ipkg.ID]
|
||||||
|
imp.needtypes = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Load type data if needed, starting at
|
// Load type data if needed, starting at
|
||||||
// the initial packages (roots of the import DAG).
|
// the initial packages (roots of the import DAG).
|
||||||
if ld.Mode >= LoadTypes {
|
if ld.Mode&NeedTypes != 0 {
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
for _, lpkg := range initial {
|
for _, lpkg := range initial {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
@ -547,16 +598,61 @@ func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
result := make([]*Package, len(initial))
|
result := make([]*Package, len(initial))
|
||||||
|
importPlaceholders := make(map[string]*Package)
|
||||||
for i, lpkg := range initial {
|
for i, lpkg := range initial {
|
||||||
result[i] = lpkg.Package
|
result[i] = lpkg.Package
|
||||||
}
|
}
|
||||||
|
for i := range ld.pkgs {
|
||||||
|
// Clear all unrequested fields, for extra de-Hyrum-ization.
|
||||||
|
if ld.Mode&NeedName == 0 {
|
||||||
|
ld.pkgs[i].Name = ""
|
||||||
|
ld.pkgs[i].PkgPath = ""
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedFiles == 0 {
|
||||||
|
ld.pkgs[i].GoFiles = nil
|
||||||
|
ld.pkgs[i].OtherFiles = nil
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedCompiledGoFiles == 0 {
|
||||||
|
ld.pkgs[i].CompiledGoFiles = nil
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedImports == 0 {
|
||||||
|
ld.pkgs[i].Imports = nil
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedExportsFile == 0 {
|
||||||
|
ld.pkgs[i].ExportFile = ""
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedTypes == 0 {
|
||||||
|
ld.pkgs[i].Types = nil
|
||||||
|
ld.pkgs[i].Fset = nil
|
||||||
|
ld.pkgs[i].IllTyped = false
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedSyntax == 0 {
|
||||||
|
ld.pkgs[i].Syntax = nil
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedTypesInfo == 0 {
|
||||||
|
ld.pkgs[i].TypesInfo = nil
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedTypesSizes == 0 {
|
||||||
|
ld.pkgs[i].TypesSizes = nil
|
||||||
|
}
|
||||||
|
if ld.Mode&NeedDeps == 0 {
|
||||||
|
for j, pkg := range ld.pkgs[i].Imports {
|
||||||
|
ph, ok := importPlaceholders[pkg.ID]
|
||||||
|
if !ok {
|
||||||
|
ph = &Package{ID: pkg.ID}
|
||||||
|
importPlaceholders[pkg.ID] = ph
|
||||||
|
}
|
||||||
|
ld.pkgs[i].Imports[j] = ph
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// loadRecursive loads the specified package and its dependencies,
|
// loadRecursive loads the specified package and its dependencies,
|
||||||
// recursively, in parallel, in topological order.
|
// recursively, in parallel, in topological order.
|
||||||
// It is atomic and idempotent.
|
// It is atomic and idempotent.
|
||||||
// Precondition: ld.Mode >= LoadTypes.
|
// Precondition: ld.Mode&NeedTypes.
|
||||||
func (ld *loader) loadRecursive(lpkg *loaderPackage) {
|
func (ld *loader) loadRecursive(lpkg *loaderPackage) {
|
||||||
lpkg.loadOnce.Do(func() {
|
lpkg.loadOnce.Do(func() {
|
||||||
// Load the direct dependencies, in parallel.
|
// Load the direct dependencies, in parallel.
|
||||||
@ -578,7 +674,7 @@ func (ld *loader) loadRecursive(lpkg *loaderPackage) {
|
|||||||
// loadPackage loads the specified package.
|
// loadPackage loads the specified package.
|
||||||
// It must be called only once per Package,
|
// It must be called only once per Package,
|
||||||
// after immediate dependencies are loaded.
|
// after immediate dependencies are loaded.
|
||||||
// Precondition: ld.Mode >= LoadTypes.
|
// Precondition: ld.Mode & NeedTypes.
|
||||||
func (ld *loader) loadPackage(lpkg *loaderPackage) {
|
func (ld *loader) loadPackage(lpkg *loaderPackage) {
|
||||||
if lpkg.PkgPath == "unsafe" {
|
if lpkg.PkgPath == "unsafe" {
|
||||||
// Fill in the blanks to avoid surprises.
|
// Fill in the blanks to avoid surprises.
|
||||||
@ -708,7 +804,7 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
|
|||||||
// Type-check bodies of functions only in non-initial packages.
|
// Type-check bodies of functions only in non-initial packages.
|
||||||
// Example: for import graph A->B->C and initial packages {A,C},
|
// Example: for import graph A->B->C and initial packages {A,C},
|
||||||
// we can ignore function bodies in B.
|
// we can ignore function bodies in B.
|
||||||
IgnoreFuncBodies: ld.Mode < LoadAllSyntax && !lpkg.initial,
|
IgnoreFuncBodies: (ld.Mode&(NeedDeps|NeedTypesInfo) == 0) && !lpkg.initial,
|
||||||
|
|
||||||
Error: appendError,
|
Error: appendError,
|
||||||
Sizes: ld.sizes,
|
Sizes: ld.sizes,
|
||||||
@ -761,6 +857,42 @@ func (f importerFunc) Import(path string) (*types.Package, error) { return f(pat
|
|||||||
// the number of parallel I/O calls per process.
|
// the number of parallel I/O calls per process.
|
||||||
var ioLimit = make(chan bool, 20)
|
var ioLimit = make(chan bool, 20)
|
||||||
|
|
||||||
|
func (ld *loader) parseFile(filename string) (*ast.File, error) {
|
||||||
|
ld.parseCacheMu.Lock()
|
||||||
|
v, ok := ld.parseCache[filename]
|
||||||
|
if ok {
|
||||||
|
// cache hit
|
||||||
|
ld.parseCacheMu.Unlock()
|
||||||
|
<-v.ready
|
||||||
|
} else {
|
||||||
|
// cache miss
|
||||||
|
v = &parseValue{ready: make(chan struct{})}
|
||||||
|
ld.parseCache[filename] = v
|
||||||
|
ld.parseCacheMu.Unlock()
|
||||||
|
|
||||||
|
var src []byte
|
||||||
|
for f, contents := range ld.Config.Overlay {
|
||||||
|
if sameFile(f, filename) {
|
||||||
|
src = contents
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var err error
|
||||||
|
if src == nil {
|
||||||
|
ioLimit <- true // wait
|
||||||
|
src, err = ioutil.ReadFile(filename)
|
||||||
|
<-ioLimit // signal
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
v.err = err
|
||||||
|
} else {
|
||||||
|
v.f, v.err = ld.ParseFile(ld.Fset, filename, src)
|
||||||
|
}
|
||||||
|
|
||||||
|
close(v.ready)
|
||||||
|
}
|
||||||
|
return v.f, v.err
|
||||||
|
}
|
||||||
|
|
||||||
// parseFiles reads and parses the Go source files and returns the ASTs
|
// parseFiles reads and parses the Go source files and returns the ASTs
|
||||||
// of the ones that could be at least partially parsed, along with a
|
// of the ones that could be at least partially parsed, along with a
|
||||||
// list of I/O and parse errors encountered.
|
// list of I/O and parse errors encountered.
|
||||||
@ -781,24 +913,7 @@ func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) {
|
|||||||
}
|
}
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(i int, filename string) {
|
go func(i int, filename string) {
|
||||||
ioLimit <- true // wait
|
parsed[i], errors[i] = ld.parseFile(filename)
|
||||||
// ParseFile may return both an AST and an error.
|
|
||||||
var src []byte
|
|
||||||
for f, contents := range ld.Config.Overlay {
|
|
||||||
if sameFile(f, filename) {
|
|
||||||
src = contents
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var err error
|
|
||||||
if src == nil {
|
|
||||||
src, err = ioutil.ReadFile(filename)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
parsed[i], errors[i] = nil, err
|
|
||||||
} else {
|
|
||||||
parsed[i], errors[i] = ld.ParseFile(ld.Fset, filename, src)
|
|
||||||
}
|
|
||||||
<-ioLimit // signal
|
|
||||||
wg.Done()
|
wg.Done()
|
||||||
}(i, file)
|
}(i, file)
|
||||||
}
|
}
|
||||||
@ -952,5 +1067,5 @@ func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func usesExportData(cfg *Config) bool {
|
func usesExportData(cfg *Config) bool {
|
||||||
return LoadTypes <= cfg.Mode && cfg.Mode < LoadAllSyntax
|
return cfg.Mode&NeedExportsFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedTypesInfo == 0
|
||||||
}
|
}
|
||||||
|
9
vendor/golang.org/x/tools/go/vcs/discovery.go
generated
vendored
9
vendor/golang.org/x/tools/go/vcs/discovery.go
generated
vendored
@ -28,13 +28,16 @@ func charsetReader(charset string, input io.Reader) (io.Reader, error) {
|
|||||||
|
|
||||||
// parseMetaGoImports returns meta imports from the HTML in r.
|
// parseMetaGoImports returns meta imports from the HTML in r.
|
||||||
// Parsing ends at the end of the <head> section or the beginning of the <body>.
|
// Parsing ends at the end of the <head> section or the beginning of the <body>.
|
||||||
|
//
|
||||||
|
// This copy of cmd/go/internal/vcs.parseMetaGoImports always operates
|
||||||
|
// in IgnoreMod ModuleMode.
|
||||||
func parseMetaGoImports(r io.Reader) (imports []metaImport, err error) {
|
func parseMetaGoImports(r io.Reader) (imports []metaImport, err error) {
|
||||||
d := xml.NewDecoder(r)
|
d := xml.NewDecoder(r)
|
||||||
d.CharsetReader = charsetReader
|
d.CharsetReader = charsetReader
|
||||||
d.Strict = false
|
d.Strict = false
|
||||||
var t xml.Token
|
var t xml.Token
|
||||||
for {
|
for {
|
||||||
t, err = d.Token()
|
t, err = d.RawToken()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == io.EOF || len(imports) > 0 {
|
if err == io.EOF || len(imports) > 0 {
|
||||||
err = nil
|
err = nil
|
||||||
@ -55,6 +58,10 @@ func parseMetaGoImports(r io.Reader) (imports []metaImport, err error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if f := strings.Fields(attrValue(e.Attr, "content")); len(f) == 3 {
|
if f := strings.Fields(attrValue(e.Attr, "content")); len(f) == 3 {
|
||||||
|
// Ignore VCS type "mod", which is applicable only in module mode.
|
||||||
|
if f[1] == "mod" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
imports = append(imports, metaImport{
|
imports = append(imports, metaImport{
|
||||||
Prefix: f[0],
|
Prefix: f[0],
|
||||||
VCS: f[1],
|
VCS: f[1],
|
||||||
|
15
vendor/golang.org/x/tools/imports/BUILD
generated
vendored
15
vendor/golang.org/x/tools/imports/BUILD
generated
vendored
@ -2,22 +2,11 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
|||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = [
|
srcs = ["forward.go"],
|
||||||
"fix.go",
|
|
||||||
"imports.go",
|
|
||||||
"mod.go",
|
|
||||||
"sortimports.go",
|
|
||||||
"zstdlib.go",
|
|
||||||
],
|
|
||||||
importmap = "k8s.io/kubernetes/vendor/golang.org/x/tools/imports",
|
importmap = "k8s.io/kubernetes/vendor/golang.org/x/tools/imports",
|
||||||
importpath = "golang.org/x/tools/imports",
|
importpath = "golang.org/x/tools/imports",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = ["//vendor/golang.org/x/tools/internal/imports:go_default_library"],
|
||||||
"//vendor/golang.org/x/tools/go/ast/astutil:go_default_library",
|
|
||||||
"//vendor/golang.org/x/tools/go/packages:go_default_library",
|
|
||||||
"//vendor/golang.org/x/tools/internal/gopathwalk:go_default_library",
|
|
||||||
"//vendor/golang.org/x/tools/internal/module:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
|
62
vendor/golang.org/x/tools/imports/forward.go
generated
vendored
Normal file
62
vendor/golang.org/x/tools/imports/forward.go
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
// Package imports implements a Go pretty-printer (like package "go/format")
|
||||||
|
// that also adds or removes import statements as necessary.
|
||||||
|
package imports // import "golang.org/x/tools/imports"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go/build"
|
||||||
|
|
||||||
|
intimp "golang.org/x/tools/internal/imports"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Options specifies options for processing files.
|
||||||
|
type Options struct {
|
||||||
|
Fragment bool // Accept fragment of a source file (no package statement)
|
||||||
|
AllErrors bool // Report all errors (not just the first 10 on different lines)
|
||||||
|
|
||||||
|
Comments bool // Print comments (true if nil *Options provided)
|
||||||
|
TabIndent bool // Use tabs for indent (true if nil *Options provided)
|
||||||
|
TabWidth int // Tab width (8 if nil *Options provided)
|
||||||
|
|
||||||
|
FormatOnly bool // Disable the insertion and deletion of imports
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debug controls verbose logging.
|
||||||
|
var Debug = false
|
||||||
|
|
||||||
|
// LocalPrefix is a comma-separated string of import path prefixes, which, if
|
||||||
|
// set, instructs Process to sort the import paths with the given prefixes
|
||||||
|
// into another group after 3rd-party packages.
|
||||||
|
var LocalPrefix string
|
||||||
|
|
||||||
|
// Process formats and adjusts imports for the provided file.
|
||||||
|
// If opt is nil the defaults are used.
|
||||||
|
//
|
||||||
|
// Note that filename's directory influences which imports can be chosen,
|
||||||
|
// so it is important that filename be accurate.
|
||||||
|
// To process data ``as if'' it were in filename, pass the data as a non-nil src.
|
||||||
|
func Process(filename string, src []byte, opt *Options) ([]byte, error) {
|
||||||
|
if opt == nil {
|
||||||
|
opt = &Options{Comments: true, TabIndent: true, TabWidth: 8}
|
||||||
|
}
|
||||||
|
intopt := &intimp.Options{
|
||||||
|
Env: &intimp.ProcessEnv{
|
||||||
|
GOPATH: build.Default.GOPATH,
|
||||||
|
GOROOT: build.Default.GOROOT,
|
||||||
|
Debug: Debug,
|
||||||
|
LocalPrefix: LocalPrefix,
|
||||||
|
},
|
||||||
|
AllErrors: opt.AllErrors,
|
||||||
|
Comments: opt.Comments,
|
||||||
|
FormatOnly: opt.FormatOnly,
|
||||||
|
Fragment: opt.Fragment,
|
||||||
|
TabIndent: opt.TabIndent,
|
||||||
|
TabWidth: opt.TabWidth,
|
||||||
|
}
|
||||||
|
return intimp.Process(filename, src, intopt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// VendorlessPath returns the devendorized version of the import path ipath.
|
||||||
|
// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b".
|
||||||
|
func VendorlessPath(ipath string) string {
|
||||||
|
return intimp.VendorlessPath(ipath)
|
||||||
|
}
|
35
vendor/golang.org/x/tools/internal/imports/BUILD
generated
vendored
Normal file
35
vendor/golang.org/x/tools/internal/imports/BUILD
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = [
|
||||||
|
"fix.go",
|
||||||
|
"imports.go",
|
||||||
|
"mod.go",
|
||||||
|
"sortimports.go",
|
||||||
|
"zstdlib.go",
|
||||||
|
],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/golang.org/x/tools/internal/imports",
|
||||||
|
importpath = "golang.org/x/tools/internal/imports",
|
||||||
|
visibility = ["//vendor/golang.org/x/tools:__subpackages__"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/golang.org/x/tools/go/ast/astutil:go_default_library",
|
||||||
|
"//vendor/golang.org/x/tools/go/packages:go_default_library",
|
||||||
|
"//vendor/golang.org/x/tools/internal/gopathwalk:go_default_library",
|
||||||
|
"//vendor/golang.org/x/tools/internal/module:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
108
vendor/golang.org/x/tools/imports/fix.go → vendor/golang.org/x/tools/internal/imports/fix.go
generated
vendored
108
vendor/golang.org/x/tools/imports/fix.go → vendor/golang.org/x/tools/internal/imports/fix.go
generated
vendored
@ -31,39 +31,27 @@ import (
|
|||||||
"golang.org/x/tools/internal/gopathwalk"
|
"golang.org/x/tools/internal/gopathwalk"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Debug controls verbose logging.
|
|
||||||
var Debug = false
|
|
||||||
|
|
||||||
// LocalPrefix is a comma-separated string of import path prefixes, which, if
|
|
||||||
// set, instructs Process to sort the import paths with the given prefixes
|
|
||||||
// into another group after 3rd-party packages.
|
|
||||||
var LocalPrefix string
|
|
||||||
|
|
||||||
func localPrefixes() []string {
|
|
||||||
if LocalPrefix != "" {
|
|
||||||
return strings.Split(LocalPrefix, ",")
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// importToGroup is a list of functions which map from an import path to
|
// importToGroup is a list of functions which map from an import path to
|
||||||
// a group number.
|
// a group number.
|
||||||
var importToGroup = []func(importPath string) (num int, ok bool){
|
var importToGroup = []func(env *ProcessEnv, importPath string) (num int, ok bool){
|
||||||
func(importPath string) (num int, ok bool) {
|
func(env *ProcessEnv, importPath string) (num int, ok bool) {
|
||||||
for _, p := range localPrefixes() {
|
if env.LocalPrefix == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, p := range strings.Split(env.LocalPrefix, ",") {
|
||||||
if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath {
|
if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath {
|
||||||
return 3, true
|
return 3, true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
},
|
},
|
||||||
func(importPath string) (num int, ok bool) {
|
func(_ *ProcessEnv, importPath string) (num int, ok bool) {
|
||||||
if strings.HasPrefix(importPath, "appengine") {
|
if strings.HasPrefix(importPath, "appengine") {
|
||||||
return 2, true
|
return 2, true
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
},
|
},
|
||||||
func(importPath string) (num int, ok bool) {
|
func(_ *ProcessEnv, importPath string) (num int, ok bool) {
|
||||||
if strings.Contains(importPath, ".") {
|
if strings.Contains(importPath, ".") {
|
||||||
return 1, true
|
return 1, true
|
||||||
}
|
}
|
||||||
@ -71,9 +59,9 @@ var importToGroup = []func(importPath string) (num int, ok bool){
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func importGroup(importPath string) int {
|
func importGroup(env *ProcessEnv, importPath string) int {
|
||||||
for _, fn := range importToGroup {
|
for _, fn := range importToGroup {
|
||||||
if n, ok := fn(importPath); ok {
|
if n, ok := fn(env, importPath); ok {
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,7 +229,7 @@ type pass struct {
|
|||||||
fset *token.FileSet // fset used to parse f and its siblings.
|
fset *token.FileSet // fset used to parse f and its siblings.
|
||||||
f *ast.File // the file being fixed.
|
f *ast.File // the file being fixed.
|
||||||
srcDir string // the directory containing f.
|
srcDir string // the directory containing f.
|
||||||
fixEnv *fixEnv // the environment to use for go commands, etc.
|
env *ProcessEnv // the environment to use for go commands, etc.
|
||||||
loadRealPackageNames bool // if true, load package names from disk rather than guessing them.
|
loadRealPackageNames bool // if true, load package names from disk rather than guessing them.
|
||||||
otherFiles []*ast.File // sibling files.
|
otherFiles []*ast.File // sibling files.
|
||||||
|
|
||||||
@ -266,7 +254,7 @@ func (p *pass) loadPackageNames(imports []*importInfo) error {
|
|||||||
unknown = append(unknown, imp.importPath)
|
unknown = append(unknown, imp.importPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
names, err := p.fixEnv.getResolver().loadPackageNames(unknown, p.srcDir)
|
names, err := p.env.getResolver().loadPackageNames(unknown, p.srcDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -324,7 +312,7 @@ func (p *pass) load() bool {
|
|||||||
if p.loadRealPackageNames {
|
if p.loadRealPackageNames {
|
||||||
err := p.loadPackageNames(append(imports, p.candidates...))
|
err := p.loadPackageNames(append(imports, p.candidates...))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if Debug {
|
if p.env.Debug {
|
||||||
log.Printf("loading package names: %v", err)
|
log.Printf("loading package names: %v", err)
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
@ -448,13 +436,13 @@ func (p *pass) addCandidate(imp *importInfo, pkg *packageInfo) {
|
|||||||
// easily be extended by adding a file with an init function.
|
// easily be extended by adding a file with an init function.
|
||||||
var fixImports = fixImportsDefault
|
var fixImports = fixImportsDefault
|
||||||
|
|
||||||
func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *fixEnv) error {
|
func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error {
|
||||||
abs, err := filepath.Abs(filename)
|
abs, err := filepath.Abs(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
srcDir := filepath.Dir(abs)
|
srcDir := filepath.Dir(abs)
|
||||||
if Debug {
|
if env.Debug {
|
||||||
log.Printf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir)
|
log.Printf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,7 +474,7 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *f
|
|||||||
// Third pass: get real package names where we had previously used
|
// Third pass: get real package names where we had previously used
|
||||||
// the naive algorithm. This is the first step that will use the
|
// the naive algorithm. This is the first step that will use the
|
||||||
// environment, so we provide it here for the first time.
|
// environment, so we provide it here for the first time.
|
||||||
p = &pass{fset: fset, f: f, srcDir: srcDir, fixEnv: env}
|
p = &pass{fset: fset, f: f, srcDir: srcDir, env: env}
|
||||||
p.loadRealPackageNames = true
|
p.loadRealPackageNames = true
|
||||||
p.otherFiles = otherFiles
|
p.otherFiles = otherFiles
|
||||||
if p.load() {
|
if p.load() {
|
||||||
@ -510,13 +498,16 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *f
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// fixEnv contains environment variables and settings that affect the use of
|
// ProcessEnv contains environment variables and settings that affect the use of
|
||||||
// the go command, the go/build package, etc.
|
// the go command, the go/build package, etc.
|
||||||
type fixEnv struct {
|
type ProcessEnv struct {
|
||||||
|
LocalPrefix string
|
||||||
|
Debug bool
|
||||||
|
|
||||||
// If non-empty, these will be used instead of the
|
// If non-empty, these will be used instead of the
|
||||||
// process-wide values.
|
// process-wide values.
|
||||||
GOPATH, GOROOT, GO111MODULE, GOPROXY, GOFLAGS string
|
GOPATH, GOROOT, GO111MODULE, GOPROXY, GOFLAGS, GOSUMDB string
|
||||||
WorkingDir string
|
WorkingDir string
|
||||||
|
|
||||||
// If true, use go/packages regardless of the environment.
|
// If true, use go/packages regardless of the environment.
|
||||||
ForceGoPackages bool
|
ForceGoPackages bool
|
||||||
@ -524,7 +515,7 @@ type fixEnv struct {
|
|||||||
resolver resolver
|
resolver resolver
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *fixEnv) env() []string {
|
func (e *ProcessEnv) env() []string {
|
||||||
env := os.Environ()
|
env := os.Environ()
|
||||||
add := func(k, v string) {
|
add := func(k, v string) {
|
||||||
if v != "" {
|
if v != "" {
|
||||||
@ -536,28 +527,32 @@ func (e *fixEnv) env() []string {
|
|||||||
add("GO111MODULE", e.GO111MODULE)
|
add("GO111MODULE", e.GO111MODULE)
|
||||||
add("GOPROXY", e.GOPROXY)
|
add("GOPROXY", e.GOPROXY)
|
||||||
add("GOFLAGS", e.GOFLAGS)
|
add("GOFLAGS", e.GOFLAGS)
|
||||||
|
add("GOSUMDB", e.GOSUMDB)
|
||||||
if e.WorkingDir != "" {
|
if e.WorkingDir != "" {
|
||||||
add("PWD", e.WorkingDir)
|
add("PWD", e.WorkingDir)
|
||||||
}
|
}
|
||||||
return env
|
return env
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *fixEnv) getResolver() resolver {
|
func (e *ProcessEnv) getResolver() resolver {
|
||||||
if e.resolver != nil {
|
if e.resolver != nil {
|
||||||
return e.resolver
|
return e.resolver
|
||||||
}
|
}
|
||||||
if e.ForceGoPackages {
|
if e.ForceGoPackages {
|
||||||
return &goPackagesResolver{env: e}
|
e.resolver = &goPackagesResolver{env: e}
|
||||||
|
return e.resolver
|
||||||
}
|
}
|
||||||
|
|
||||||
out, err := e.invokeGo("env", "GOMOD")
|
out, err := e.invokeGo("env", "GOMOD")
|
||||||
if err != nil || len(bytes.TrimSpace(out.Bytes())) == 0 {
|
if err != nil || len(bytes.TrimSpace(out.Bytes())) == 0 {
|
||||||
return &gopathResolver{env: e}
|
e.resolver = &gopathResolver{env: e}
|
||||||
|
return e.resolver
|
||||||
}
|
}
|
||||||
return &moduleResolver{env: e}
|
e.resolver = &moduleResolver{env: e}
|
||||||
|
return e.resolver
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *fixEnv) newPackagesConfig(mode packages.LoadMode) *packages.Config {
|
func (e *ProcessEnv) newPackagesConfig(mode packages.LoadMode) *packages.Config {
|
||||||
return &packages.Config{
|
return &packages.Config{
|
||||||
Mode: mode,
|
Mode: mode,
|
||||||
Dir: e.WorkingDir,
|
Dir: e.WorkingDir,
|
||||||
@ -565,14 +560,14 @@ func (e *fixEnv) newPackagesConfig(mode packages.LoadMode) *packages.Config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *fixEnv) buildContext() *build.Context {
|
func (e *ProcessEnv) buildContext() *build.Context {
|
||||||
ctx := build.Default
|
ctx := build.Default
|
||||||
ctx.GOROOT = e.GOROOT
|
ctx.GOROOT = e.GOROOT
|
||||||
ctx.GOPATH = e.GOPATH
|
ctx.GOPATH = e.GOPATH
|
||||||
return &ctx
|
return &ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *fixEnv) invokeGo(args ...string) (*bytes.Buffer, error) {
|
func (e *ProcessEnv) invokeGo(args ...string) (*bytes.Buffer, error) {
|
||||||
cmd := exec.Command("go", args...)
|
cmd := exec.Command("go", args...)
|
||||||
stdout := &bytes.Buffer{}
|
stdout := &bytes.Buffer{}
|
||||||
stderr := &bytes.Buffer{}
|
stderr := &bytes.Buffer{}
|
||||||
@ -581,7 +576,7 @@ func (e *fixEnv) invokeGo(args ...string) (*bytes.Buffer, error) {
|
|||||||
cmd.Env = e.env()
|
cmd.Env = e.env()
|
||||||
cmd.Dir = e.WorkingDir
|
cmd.Dir = e.WorkingDir
|
||||||
|
|
||||||
if Debug {
|
if e.Debug {
|
||||||
defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now())
|
defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now())
|
||||||
}
|
}
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
@ -632,7 +627,7 @@ type resolver interface {
|
|||||||
|
|
||||||
// gopathResolver implements resolver for GOPATH and module workspaces using go/packages.
|
// gopathResolver implements resolver for GOPATH and module workspaces using go/packages.
|
||||||
type goPackagesResolver struct {
|
type goPackagesResolver struct {
|
||||||
env *fixEnv
|
env *ProcessEnv
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *goPackagesResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
|
func (r *goPackagesResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
|
||||||
@ -680,7 +675,7 @@ func (r *goPackagesResolver) scan(refs references) ([]*pkg, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func addExternalCandidates(pass *pass, refs references, filename string) error {
|
func addExternalCandidates(pass *pass, refs references, filename string) error {
|
||||||
dirScan, err := pass.fixEnv.getResolver().scan(refs)
|
dirScan, err := pass.env.getResolver().scan(refs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -707,7 +702,7 @@ func addExternalCandidates(pass *pass, refs references, filename string) error {
|
|||||||
go func(pkgName string, symbols map[string]bool) {
|
go func(pkgName string, symbols map[string]bool) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
|
||||||
found, err := findImport(ctx, pass.fixEnv, dirScan, pkgName, symbols, filename)
|
found, err := findImport(ctx, pass, dirScan, pkgName, symbols, filename)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
firstErrOnce.Do(func() {
|
firstErrOnce.Do(func() {
|
||||||
@ -778,7 +773,7 @@ func importPathToAssumedName(importPath string) string {
|
|||||||
|
|
||||||
// gopathResolver implements resolver for GOPATH workspaces.
|
// gopathResolver implements resolver for GOPATH workspaces.
|
||||||
type gopathResolver struct {
|
type gopathResolver struct {
|
||||||
env *fixEnv
|
env *ProcessEnv
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
|
func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
|
||||||
@ -791,7 +786,7 @@ func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (
|
|||||||
|
|
||||||
// importPathToNameGoPath finds out the actual package name, as declared in its .go files.
|
// importPathToNameGoPath finds out the actual package name, as declared in its .go files.
|
||||||
// If there's a problem, it returns "".
|
// If there's a problem, it returns "".
|
||||||
func importPathToName(env *fixEnv, importPath, srcDir string) (packageName string) {
|
func importPathToName(env *ProcessEnv, importPath, srcDir string) (packageName string) {
|
||||||
// Fast path for standard library without going to disk.
|
// Fast path for standard library without going to disk.
|
||||||
if _, ok := stdlib[importPath]; ok {
|
if _, ok := stdlib[importPath]; ok {
|
||||||
return path.Base(importPath) // stdlib packages always match their paths.
|
return path.Base(importPath) // stdlib packages always match their paths.
|
||||||
@ -927,7 +922,7 @@ func (r *gopathResolver) scan(_ references) ([]*pkg, error) {
|
|||||||
dir: dir,
|
dir: dir,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
gopathwalk.Walk(gopathwalk.SrcDirsRoots(r.env.buildContext()), add, gopathwalk.Options{Debug: Debug, ModulesEnabled: false})
|
gopathwalk.Walk(gopathwalk.SrcDirsRoots(r.env.buildContext()), add, gopathwalk.Options{Debug: r.env.Debug, ModulesEnabled: false})
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -946,8 +941,8 @@ func VendorlessPath(ipath string) string {
|
|||||||
|
|
||||||
// loadExports returns the set of exported symbols in the package at dir.
|
// loadExports returns the set of exported symbols in the package at dir.
|
||||||
// It returns nil on error or if the package name in dir does not match expectPackage.
|
// It returns nil on error or if the package name in dir does not match expectPackage.
|
||||||
func loadExports(ctx context.Context, env *fixEnv, expectPackage string, pkg *pkg) (map[string]bool, error) {
|
func loadExports(ctx context.Context, env *ProcessEnv, expectPackage string, pkg *pkg) (map[string]bool, error) {
|
||||||
if Debug {
|
if env.Debug {
|
||||||
log.Printf("loading exports in dir %s (seeking package %s)", pkg.dir, expectPackage)
|
log.Printf("loading exports in dir %s (seeking package %s)", pkg.dir, expectPackage)
|
||||||
}
|
}
|
||||||
if pkg.goPackage != nil {
|
if pkg.goPackage != nil {
|
||||||
@ -1020,7 +1015,7 @@ func loadExports(ctx context.Context, env *fixEnv, expectPackage string, pkg *pk
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if Debug {
|
if env.Debug {
|
||||||
exportList := make([]string, 0, len(exports))
|
exportList := make([]string, 0, len(exports))
|
||||||
for k := range exports {
|
for k := range exports {
|
||||||
exportList = append(exportList, k)
|
exportList = append(exportList, k)
|
||||||
@ -1033,7 +1028,7 @@ func loadExports(ctx context.Context, env *fixEnv, expectPackage string, pkg *pk
|
|||||||
|
|
||||||
// findImport searches for a package with the given symbols.
|
// findImport searches for a package with the given symbols.
|
||||||
// If no package is found, findImport returns ("", false, nil)
|
// If no package is found, findImport returns ("", false, nil)
|
||||||
func findImport(ctx context.Context, env *fixEnv, dirScan []*pkg, pkgName string, symbols map[string]bool, filename string) (*pkg, error) {
|
func findImport(ctx context.Context, pass *pass, dirScan []*pkg, pkgName string, symbols map[string]bool, filename string) (*pkg, error) {
|
||||||
pkgDir, err := filepath.Abs(filename)
|
pkgDir, err := filepath.Abs(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -1043,6 +1038,11 @@ func findImport(ctx context.Context, env *fixEnv, dirScan []*pkg, pkgName string
|
|||||||
// Find candidate packages, looking only at their directory names first.
|
// Find candidate packages, looking only at their directory names first.
|
||||||
var candidates []pkgDistance
|
var candidates []pkgDistance
|
||||||
for _, pkg := range dirScan {
|
for _, pkg := range dirScan {
|
||||||
|
if pkg.dir == pkgDir && pass.f.Name.Name == pkgName {
|
||||||
|
// The candidate is in the same directory and has the
|
||||||
|
// same package name. Don't try to import ourselves.
|
||||||
|
continue
|
||||||
|
}
|
||||||
if pkgIsCandidate(filename, pkgName, pkg) {
|
if pkgIsCandidate(filename, pkgName, pkg) {
|
||||||
candidates = append(candidates, pkgDistance{
|
candidates = append(candidates, pkgDistance{
|
||||||
pkg: pkg,
|
pkg: pkg,
|
||||||
@ -1056,7 +1056,7 @@ func findImport(ctx context.Context, env *fixEnv, dirScan []*pkg, pkgName string
|
|||||||
// ones. Note that this sorts by the de-vendored name, so
|
// ones. Note that this sorts by the de-vendored name, so
|
||||||
// there's no "penalty" for vendoring.
|
// there's no "penalty" for vendoring.
|
||||||
sort.Sort(byDistanceOrImportPathShortLength(candidates))
|
sort.Sort(byDistanceOrImportPathShortLength(candidates))
|
||||||
if Debug {
|
if pass.env.Debug {
|
||||||
for i, c := range candidates {
|
for i, c := range candidates {
|
||||||
log.Printf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir)
|
log.Printf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir)
|
||||||
}
|
}
|
||||||
@ -1095,9 +1095,9 @@ func findImport(ctx context.Context, env *fixEnv, dirScan []*pkg, pkgName string
|
|||||||
wg.Done()
|
wg.Done()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
exports, err := loadExports(ctx, env, pkgName, c.pkg)
|
exports, err := loadExports(ctx, pass.env, pkgName, c.pkg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if Debug {
|
if pass.env.Debug {
|
||||||
log.Printf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err)
|
log.Printf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err)
|
||||||
}
|
}
|
||||||
resc <- nil
|
resc <- nil
|
@ -6,14 +6,13 @@
|
|||||||
|
|
||||||
// Package imports implements a Go pretty-printer (like package "go/format")
|
// Package imports implements a Go pretty-printer (like package "go/format")
|
||||||
// that also adds or removes import statements as necessary.
|
// that also adds or removes import statements as necessary.
|
||||||
package imports // import "golang.org/x/tools/imports"
|
package imports
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"go/ast"
|
"go/ast"
|
||||||
"go/build"
|
|
||||||
"go/format"
|
"go/format"
|
||||||
"go/parser"
|
"go/parser"
|
||||||
"go/printer"
|
"go/printer"
|
||||||
@ -27,8 +26,10 @@ import (
|
|||||||
"golang.org/x/tools/go/ast/astutil"
|
"golang.org/x/tools/go/ast/astutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Options specifies options for processing files.
|
// Options is golang.org/x/tools/imports.Options with extra internal-only options.
|
||||||
type Options struct {
|
type Options struct {
|
||||||
|
Env *ProcessEnv // The environment to use. Note: this contains the cached module and filesystem state.
|
||||||
|
|
||||||
Fragment bool // Accept fragment of a source file (no package statement)
|
Fragment bool // Accept fragment of a source file (no package statement)
|
||||||
AllErrors bool // Report all errors (not just the first 10 on different lines)
|
AllErrors bool // Report all errors (not just the first 10 on different lines)
|
||||||
|
|
||||||
@ -39,21 +40,8 @@ type Options struct {
|
|||||||
FormatOnly bool // Disable the insertion and deletion of imports
|
FormatOnly bool // Disable the insertion and deletion of imports
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process formats and adjusts imports for the provided file.
|
// Process implements golang.org/x/tools/imports.Process with explicit context in env.
|
||||||
// If opt is nil the defaults are used.
|
|
||||||
//
|
|
||||||
// Note that filename's directory influences which imports can be chosen,
|
|
||||||
// so it is important that filename be accurate.
|
|
||||||
// To process data ``as if'' it were in filename, pass the data as a non-nil src.
|
|
||||||
func Process(filename string, src []byte, opt *Options) ([]byte, error) {
|
func Process(filename string, src []byte, opt *Options) ([]byte, error) {
|
||||||
env := &fixEnv{GOPATH: build.Default.GOPATH, GOROOT: build.Default.GOROOT}
|
|
||||||
return process(filename, src, opt, env)
|
|
||||||
}
|
|
||||||
|
|
||||||
func process(filename string, src []byte, opt *Options, env *fixEnv) ([]byte, error) {
|
|
||||||
if opt == nil {
|
|
||||||
opt = &Options{Comments: true, TabIndent: true, TabWidth: 8}
|
|
||||||
}
|
|
||||||
if src == nil {
|
if src == nil {
|
||||||
b, err := ioutil.ReadFile(filename)
|
b, err := ioutil.ReadFile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -69,12 +57,12 @@ func process(filename string, src []byte, opt *Options, env *fixEnv) ([]byte, er
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !opt.FormatOnly {
|
if !opt.FormatOnly {
|
||||||
if err := fixImports(fileSet, file, filename, env); err != nil {
|
if err := fixImports(fileSet, file, filename, opt.Env); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sortImports(fileSet, file)
|
sortImports(opt.Env, fileSet, file)
|
||||||
imps := astutil.Imports(fileSet, file)
|
imps := astutil.Imports(fileSet, file)
|
||||||
var spacesBefore []string // import paths we need spaces before
|
var spacesBefore []string // import paths we need spaces before
|
||||||
for _, impSection := range imps {
|
for _, impSection := range imps {
|
||||||
@ -85,7 +73,7 @@ func process(filename string, src []byte, opt *Options, env *fixEnv) ([]byte, er
|
|||||||
lastGroup := -1
|
lastGroup := -1
|
||||||
for _, importSpec := range impSection {
|
for _, importSpec := range impSection {
|
||||||
importPath, _ := strconv.Unquote(importSpec.Path.Value)
|
importPath, _ := strconv.Unquote(importSpec.Path.Value)
|
||||||
groupNum := importGroup(importPath)
|
groupNum := importGroup(opt.Env, importPath)
|
||||||
if groupNum != lastGroup && lastGroup != -1 {
|
if groupNum != lastGroup && lastGroup != -1 {
|
||||||
spacesBefore = append(spacesBefore, importPath)
|
spacesBefore = append(spacesBefore, importPath)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@
|
|||||||
// standard library. The file is intended to be built as part of the imports
|
// standard library. The file is intended to be built as part of the imports
|
||||||
// package, so that the package may be used in environments where a GOROOT is
|
// package, so that the package may be used in environments where a GOROOT is
|
||||||
// not available (such as App Engine).
|
// not available (such as App Engine).
|
||||||
package main
|
package imports
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
@ -3,7 +3,7 @@
|
|||||||
// mkstdlib generates the zstdlib.go file, containing the Go standard
|
// mkstdlib generates the zstdlib.go file, containing the Go standard
|
||||||
// library API symbols. It's baked into the binary to avoid scanning
|
// library API symbols. It's baked into the binary to avoid scanning
|
||||||
// GOPATH in the common case.
|
// GOPATH in the common case.
|
||||||
package main
|
package imports
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
@ -14,6 +14,7 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"runtime"
|
"runtime"
|
||||||
@ -59,6 +60,10 @@ func main() {
|
|||||||
mustOpen(api("go1.10.txt")),
|
mustOpen(api("go1.10.txt")),
|
||||||
mustOpen(api("go1.11.txt")),
|
mustOpen(api("go1.11.txt")),
|
||||||
mustOpen(api("go1.12.txt")),
|
mustOpen(api("go1.12.txt")),
|
||||||
|
|
||||||
|
// The API of the syscall/js package needs to be computed explicitly,
|
||||||
|
// because it's not included in the GOROOT/api/go1.*.txt files at this time.
|
||||||
|
syscallJSAPI(),
|
||||||
)
|
)
|
||||||
sc := bufio.NewScanner(f)
|
sc := bufio.NewScanner(f)
|
||||||
|
|
||||||
@ -110,3 +115,18 @@ func main() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// syscallJSAPI returns the API of the syscall/js package.
|
||||||
|
// It's computed from the contents of $(go env GOROOT)/src/syscall/js.
|
||||||
|
func syscallJSAPI() io.Reader {
|
||||||
|
var exeSuffix string
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
exeSuffix = ".exe"
|
||||||
|
}
|
||||||
|
cmd := exec.Command("go"+exeSuffix, "run", "cmd/api", "-contexts", "js-wasm", "syscall/js")
|
||||||
|
out, err := cmd.Output()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln(err)
|
||||||
|
}
|
||||||
|
return bytes.NewReader(out)
|
||||||
|
}
|
@ -22,8 +22,9 @@ import (
|
|||||||
// moduleResolver implements resolver for modules using the go command as little
|
// moduleResolver implements resolver for modules using the go command as little
|
||||||
// as feasible.
|
// as feasible.
|
||||||
type moduleResolver struct {
|
type moduleResolver struct {
|
||||||
env *fixEnv
|
env *ProcessEnv
|
||||||
|
|
||||||
|
initialized bool
|
||||||
main *moduleJSON
|
main *moduleJSON
|
||||||
modsByModPath []*moduleJSON // All modules, ordered by # of path components in module Path...
|
modsByModPath []*moduleJSON // All modules, ordered by # of path components in module Path...
|
||||||
modsByDir []*moduleJSON // ...or Dir.
|
modsByDir []*moduleJSON // ...or Dir.
|
||||||
@ -48,7 +49,7 @@ type moduleErrorJSON struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *moduleResolver) init() error {
|
func (r *moduleResolver) init() error {
|
||||||
if r.main != nil {
|
if r.initialized {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
stdout, err := r.env.invokeGo("list", "-m", "-json", "...")
|
stdout, err := r.env.invokeGo("list", "-m", "-json", "...")
|
||||||
@ -61,7 +62,7 @@ func (r *moduleResolver) init() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if mod.Dir == "" {
|
if mod.Dir == "" {
|
||||||
if Debug {
|
if r.env.Debug {
|
||||||
log.Printf("module %v has not been downloaded and will be ignored", mod.Path)
|
log.Printf("module %v has not been downloaded and will be ignored", mod.Path)
|
||||||
}
|
}
|
||||||
// Can't do anything with a module that's not downloaded.
|
// Can't do anything with a module that's not downloaded.
|
||||||
@ -87,6 +88,7 @@ func (r *moduleResolver) init() error {
|
|||||||
return count(j) < count(i) // descending order
|
return count(j) < count(i) // descending order
|
||||||
})
|
})
|
||||||
|
|
||||||
|
r.initialized = true
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,7 +204,9 @@ func (r *moduleResolver) scan(_ references) ([]*pkg, error) {
|
|||||||
// Walk GOROOT, GOPATH/pkg/mod, and the main module.
|
// Walk GOROOT, GOPATH/pkg/mod, and the main module.
|
||||||
roots := []gopathwalk.Root{
|
roots := []gopathwalk.Root{
|
||||||
{filepath.Join(r.env.GOROOT, "/src"), gopathwalk.RootGOROOT},
|
{filepath.Join(r.env.GOROOT, "/src"), gopathwalk.RootGOROOT},
|
||||||
{r.main.Dir, gopathwalk.RootCurrentModule},
|
}
|
||||||
|
if r.main != nil {
|
||||||
|
roots = append(roots, gopathwalk.Root{r.main.Dir, gopathwalk.RootCurrentModule})
|
||||||
}
|
}
|
||||||
for _, p := range filepath.SplitList(r.env.GOPATH) {
|
for _, p := range filepath.SplitList(r.env.GOPATH) {
|
||||||
roots = append(roots, gopathwalk.Root{filepath.Join(p, "/pkg/mod"), gopathwalk.RootModuleCache})
|
roots = append(roots, gopathwalk.Root{filepath.Join(p, "/pkg/mod"), gopathwalk.RootModuleCache})
|
||||||
@ -249,7 +253,7 @@ func (r *moduleResolver) scan(_ references) ([]*pkg, error) {
|
|||||||
matches := modCacheRegexp.FindStringSubmatch(subdir)
|
matches := modCacheRegexp.FindStringSubmatch(subdir)
|
||||||
modPath, err := module.DecodePath(filepath.ToSlash(matches[1]))
|
modPath, err := module.DecodePath(filepath.ToSlash(matches[1]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if Debug {
|
if r.env.Debug {
|
||||||
log.Printf("decoding module cache path %q: %v", subdir, err)
|
log.Printf("decoding module cache path %q: %v", subdir, err)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@ -299,7 +303,7 @@ func (r *moduleResolver) scan(_ references) ([]*pkg, error) {
|
|||||||
importPathShort: VendorlessPath(importPath),
|
importPathShort: VendorlessPath(importPath),
|
||||||
dir: dir,
|
dir: dir,
|
||||||
})
|
})
|
||||||
}, gopathwalk.Options{Debug: Debug, ModulesEnabled: true})
|
}, gopathwalk.Options{Debug: r.env.Debug, ModulesEnabled: true})
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ import (
|
|||||||
|
|
||||||
// sortImports sorts runs of consecutive import lines in import blocks in f.
|
// 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 also removes duplicate imports when it is possible to do so without data loss.
|
||||||
func sortImports(fset *token.FileSet, f *ast.File) {
|
func sortImports(env *ProcessEnv, fset *token.FileSet, f *ast.File) {
|
||||||
for i, d := range f.Decls {
|
for i, d := range f.Decls {
|
||||||
d, ok := d.(*ast.GenDecl)
|
d, ok := d.(*ast.GenDecl)
|
||||||
if !ok || d.Tok != token.IMPORT {
|
if !ok || d.Tok != token.IMPORT {
|
||||||
@ -40,11 +40,11 @@ func sortImports(fset *token.FileSet, f *ast.File) {
|
|||||||
for j, s := range d.Specs {
|
for j, s := range d.Specs {
|
||||||
if j > i && fset.Position(s.Pos()).Line > 1+fset.Position(d.Specs[j-1].End()).Line {
|
if j > i && fset.Position(s.Pos()).Line > 1+fset.Position(d.Specs[j-1].End()).Line {
|
||||||
// j begins a new run. End this one.
|
// j begins a new run. End this one.
|
||||||
specs = append(specs, sortSpecs(fset, f, d.Specs[i:j])...)
|
specs = append(specs, sortSpecs(env, fset, f, d.Specs[i:j])...)
|
||||||
i = j
|
i = j
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
specs = append(specs, sortSpecs(fset, f, d.Specs[i:])...)
|
specs = append(specs, sortSpecs(env, fset, f, d.Specs[i:])...)
|
||||||
d.Specs = specs
|
d.Specs = specs
|
||||||
|
|
||||||
// Deduping can leave a blank line before the rparen; clean that up.
|
// Deduping can leave a blank line before the rparen; clean that up.
|
||||||
@ -95,7 +95,7 @@ type posSpan struct {
|
|||||||
End token.Pos
|
End token.Pos
|
||||||
}
|
}
|
||||||
|
|
||||||
func sortSpecs(fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec {
|
func sortSpecs(env *ProcessEnv, fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec {
|
||||||
// Can't short-circuit here even if specs are already sorted,
|
// Can't short-circuit here even if specs are already sorted,
|
||||||
// since they might yet need deduplication.
|
// since they might yet need deduplication.
|
||||||
// A lone import, however, may be safely ignored.
|
// A lone import, however, may be safely ignored.
|
||||||
@ -144,7 +144,7 @@ func sortSpecs(fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec {
|
|||||||
// Reassign the import paths to have the same position sequence.
|
// Reassign the import paths to have the same position sequence.
|
||||||
// Reassign each comment to abut the end of its spec.
|
// Reassign each comment to abut the end of its spec.
|
||||||
// Sort the comments by new position.
|
// Sort the comments by new position.
|
||||||
sort.Sort(byImportSpec(specs))
|
sort.Sort(byImportSpec{env, specs})
|
||||||
|
|
||||||
// Dedup. Thanks to our sorting, we can just consider
|
// Dedup. Thanks to our sorting, we can just consider
|
||||||
// adjacent pairs of imports.
|
// adjacent pairs of imports.
|
||||||
@ -197,16 +197,19 @@ func sortSpecs(fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec {
|
|||||||
return specs
|
return specs
|
||||||
}
|
}
|
||||||
|
|
||||||
type byImportSpec []ast.Spec // slice of *ast.ImportSpec
|
type byImportSpec struct {
|
||||||
|
env *ProcessEnv
|
||||||
|
specs []ast.Spec // slice of *ast.ImportSpec
|
||||||
|
}
|
||||||
|
|
||||||
func (x byImportSpec) Len() int { return len(x) }
|
func (x byImportSpec) Len() int { return len(x.specs) }
|
||||||
func (x byImportSpec) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
|
func (x byImportSpec) Swap(i, j int) { x.specs[i], x.specs[j] = x.specs[j], x.specs[i] }
|
||||||
func (x byImportSpec) Less(i, j int) bool {
|
func (x byImportSpec) Less(i, j int) bool {
|
||||||
ipath := importPath(x[i])
|
ipath := importPath(x.specs[i])
|
||||||
jpath := importPath(x[j])
|
jpath := importPath(x.specs[j])
|
||||||
|
|
||||||
igroup := importGroup(ipath)
|
igroup := importGroup(x.env, ipath)
|
||||||
jgroup := importGroup(jpath)
|
jgroup := importGroup(x.env, jpath)
|
||||||
if igroup != jgroup {
|
if igroup != jgroup {
|
||||||
return igroup < jgroup
|
return igroup < jgroup
|
||||||
}
|
}
|
||||||
@ -214,13 +217,13 @@ func (x byImportSpec) Less(i, j int) bool {
|
|||||||
if ipath != jpath {
|
if ipath != jpath {
|
||||||
return ipath < jpath
|
return ipath < jpath
|
||||||
}
|
}
|
||||||
iname := importName(x[i])
|
iname := importName(x.specs[i])
|
||||||
jname := importName(x[j])
|
jname := importName(x.specs[j])
|
||||||
|
|
||||||
if iname != jname {
|
if iname != jname {
|
||||||
return iname < jname
|
return iname < jname
|
||||||
}
|
}
|
||||||
return importComment(x[i]) < importComment(x[j])
|
return importComment(x.specs[i]) < importComment(x.specs[j])
|
||||||
}
|
}
|
||||||
|
|
||||||
type byCommentPos []*ast.CommentGroup
|
type byCommentPos []*ast.CommentGroup
|
@ -9783,6 +9783,29 @@ var stdlib = map[string]map[string]bool{
|
|||||||
"XP1_UNI_RECV": true,
|
"XP1_UNI_RECV": true,
|
||||||
"XP1_UNI_SEND": true,
|
"XP1_UNI_SEND": true,
|
||||||
},
|
},
|
||||||
|
"syscall/js": map[string]bool{
|
||||||
|
"Error": true,
|
||||||
|
"Func": true,
|
||||||
|
"FuncOf": true,
|
||||||
|
"Global": true,
|
||||||
|
"Null": true,
|
||||||
|
"Type": true,
|
||||||
|
"TypeBoolean": true,
|
||||||
|
"TypeFunction": true,
|
||||||
|
"TypeNull": true,
|
||||||
|
"TypeNumber": true,
|
||||||
|
"TypeObject": true,
|
||||||
|
"TypeString": true,
|
||||||
|
"TypeSymbol": true,
|
||||||
|
"TypeUndefined": true,
|
||||||
|
"TypedArray": true,
|
||||||
|
"TypedArrayOf": true,
|
||||||
|
"Undefined": true,
|
||||||
|
"Value": true,
|
||||||
|
"ValueError": true,
|
||||||
|
"ValueOf": true,
|
||||||
|
"Wrapper": true,
|
||||||
|
},
|
||||||
"testing": map[string]bool{
|
"testing": map[string]bool{
|
||||||
"AllocsPerRun": true,
|
"AllocsPerRun": true,
|
||||||
"B": true,
|
"B": true,
|
6
vendor/modules.txt
vendored
6
vendor/modules.txt
vendored
@ -870,7 +870,7 @@ golang.org/x/oauth2/google
|
|||||||
golang.org/x/oauth2/internal
|
golang.org/x/oauth2/internal
|
||||||
golang.org/x/oauth2/jws
|
golang.org/x/oauth2/jws
|
||||||
golang.org/x/oauth2/jwt
|
golang.org/x/oauth2/jwt
|
||||||
# golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
# golang.org/x/sync v0.0.0-20190423024810-112230192c58 => golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
|
||||||
golang.org/x/sync/errgroup
|
golang.org/x/sync/errgroup
|
||||||
# golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
# golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f => golang.org/x/sys v0.0.0-20190209173611-3b5209105503
|
||||||
golang.org/x/sys/unix
|
golang.org/x/sys/unix
|
||||||
@ -902,7 +902,7 @@ golang.org/x/text/unicode/norm
|
|||||||
golang.org/x/text/width
|
golang.org/x/text/width
|
||||||
# golang.org/x/time v0.0.0-20161028155119-f51c12702a4d => golang.org/x/time v0.0.0-20161028155119-f51c12702a4d
|
# golang.org/x/time v0.0.0-20161028155119-f51c12702a4d => golang.org/x/time v0.0.0-20161028155119-f51c12702a4d
|
||||||
golang.org/x/time/rate
|
golang.org/x/time/rate
|
||||||
# golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac => golang.org/x/tools v0.0.0-20190313210603-aa82965741a9
|
# golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac => golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac
|
||||||
golang.org/x/tools/benchmark/parse
|
golang.org/x/tools/benchmark/parse
|
||||||
golang.org/x/tools/container/intsets
|
golang.org/x/tools/container/intsets
|
||||||
golang.org/x/tools/go/analysis
|
golang.org/x/tools/go/analysis
|
||||||
@ -911,7 +911,6 @@ golang.org/x/tools/go/ast/astutil
|
|||||||
golang.org/x/tools/go/ast/inspector
|
golang.org/x/tools/go/ast/inspector
|
||||||
golang.org/x/tools/go/buildutil
|
golang.org/x/tools/go/buildutil
|
||||||
golang.org/x/tools/go/gcexportdata
|
golang.org/x/tools/go/gcexportdata
|
||||||
golang.org/x/tools/go/internal/cgo
|
|
||||||
golang.org/x/tools/go/internal/gcimporter
|
golang.org/x/tools/go/internal/gcimporter
|
||||||
golang.org/x/tools/go/internal/packagesdriver
|
golang.org/x/tools/go/internal/packagesdriver
|
||||||
golang.org/x/tools/go/packages
|
golang.org/x/tools/go/packages
|
||||||
@ -921,6 +920,7 @@ golang.org/x/tools/go/vcs
|
|||||||
golang.org/x/tools/imports
|
golang.org/x/tools/imports
|
||||||
golang.org/x/tools/internal/fastwalk
|
golang.org/x/tools/internal/fastwalk
|
||||||
golang.org/x/tools/internal/gopathwalk
|
golang.org/x/tools/internal/gopathwalk
|
||||||
|
golang.org/x/tools/internal/imports
|
||||||
golang.org/x/tools/internal/module
|
golang.org/x/tools/internal/module
|
||||||
golang.org/x/tools/internal/semver
|
golang.org/x/tools/internal/semver
|
||||||
# gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 => gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
|
# gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 => gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
|
||||||
|
Loading…
Reference in New Issue
Block a user