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>
diff --git a/cmd/protoc-gen-go/internal_gengo/main.go b/cmd/protoc-gen-go/internal_gengo/main.go
index b89d3b3..8905448 100644
--- a/cmd/protoc-gen-go/internal_gengo/main.go
+++ b/cmd/protoc-gen-go/internal_gengo/main.go
@@ -46,6 +46,7 @@
 	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 @@
 		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++ {