cmd/protoc-gen-go: add compile-time assertion for legacy proto package version

Change-Id: I2bc71dae34b5af379838239210cc04e3e3547d2b
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/218939
Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
Joe Tsai 2020-01-29 23:27:38 -08:00 committed by Joe Tsai
parent 93bccf763e
commit 3b512245dc

View File

@ -46,6 +46,7 @@ var (
protoifacePackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/runtime/protoiface")
protoimplPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/runtime/protoimpl")
protoreflectPackage goImportPath = protogen.GoImportPath("google.golang.org/protobuf/reflect/protoreflect")
protoV1Package goImportPath = protogen.GoImportPath("github.com/golang/protobuf/proto")
)
type goImportPath interface {
@ -74,6 +75,12 @@ func GenerateFile(gen *protogen.Plugin, file *protogen.File) *protogen.Generated
g.P("_ = ", protoimplPackage.Ident("EnforceVersion"), "(", protoimplPackage.Ident("MaxVersion"), " - ", protoimpl.GenVersion, ")")
g.P(")")
g.P()
// TODO: Remove this after some soak-in period after the v2 release.
g.P("// This is a compile-time assertion that a sufficiently up-to-date version")
g.P("// of the legacy proto package is being used.")
g.P("const _ = ", protoV1Package.Ident("ProtoPackageIsVersion4"))
g.P()
}
for i, imps := 0, f.Desc.Imports(); i < imps.Len(); i++ {