runtime/protoimpl: remove ExtensionFieldsV1

This is no longer directly used by v1.

Change-Id: I14a283dd2d1572d50ebd82fdf55f7d86bfacc272
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/172438
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/cmd/protoc-gen-go-grpc/testdata/go.mod b/cmd/protoc-gen-go-grpc/testdata/go.mod
index 39d44c3..6785682 100644
--- a/cmd/protoc-gen-go-grpc/testdata/go.mod
+++ b/cmd/protoc-gen-go-grpc/testdata/go.mod
@@ -1,7 +1,7 @@
 module github.com/golang/protobuf/v2/cmd/protoc-gen-go-grpc/testdata
 
 require (
-	github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2
+	github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39
 	github.com/golang/protobuf/v2 v2.0.0
 	google.golang.org/grpc v1.19.0
 )
diff --git a/cmd/protoc-gen-go/testdata/go.mod b/cmd/protoc-gen-go/testdata/go.mod
index c8b3c59..2cf84ad 100644
--- a/cmd/protoc-gen-go/testdata/go.mod
+++ b/cmd/protoc-gen-go/testdata/go.mod
@@ -1,7 +1,7 @@
 module github.com/golang/protobuf/v2/cmd/protoc-gen-go/testdata
 
 require (
-	github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2
+	github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39
 	github.com/golang/protobuf/v2 v2.0.0
 )
 
diff --git a/go.mod b/go.mod
index cc9b075..de2dded 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/golang/protobuf/v2
 
 require (
-	github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2
+	github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39
 	github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42
 )
diff --git a/go.sum b/go.sum
index f2f4001..0697572 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,8 @@
 github.com/golang/protobuf v1.2.1-0.20190322195920-d94fb84e04b7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2 h1:lkKDUagzhHJnfyahshk3wkddt6PWmUy/gVOV35CWQrA=
 github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2/go.mod h1:rZ4veVXHB1S2+o7TKqD9Isxml062IeDutnCDtFPUlCc=
+github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39 h1:5ypd1txfe3cmWAw+lhzJXDrjc8gyh6/3KkhnPSfkrUQ=
+github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39/go.mod h1:RgnTNLHWo9HXezTFX5MTeuXnXx9eeQX8y3Cukv+9HaE=
 github.com/golang/protobuf/v2 v2.0.0-20190322201422-f503c300f70e/go.mod h1:25ZALhydMFaBRgPH58a8zpFe9YXMAMjOYWtB6pNPcoo=
+github.com/golang/protobuf/v2 v2.0.0-20190416222953-ab61d41ec93f/go.mod h1:baUT2weUsA1MR7ocRtLXLmi2B1s4VrUT3S6tO8AYzMw=
 github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42 h1:q3pnF5JFBNRz8sRD+IRj7Y6DMyYGTNqnZ9axTbSfoNI=
 github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
diff --git a/internal/impl/legacy_export.go b/internal/impl/legacy_export.go
index d40d4ff..8038333 100644
--- a/internal/impl/legacy_export.go
+++ b/internal/impl/legacy_export.go
@@ -7,7 +7,6 @@
 import (
 	"encoding/binary"
 	"encoding/json"
-	"fmt"
 	"hash/crc32"
 	"math"
 
@@ -75,17 +74,3 @@
 	out = append(out, gzipFooter[:]...)
 	return out
 }
-
-// ExtensionFieldsOf returns an interface abstraction over various
-// internal representations of extension fields.
-//
-// TODO: Delete this once v1 no longer needs this.
-// Remember to delete the HasInit, Lock, and Unlock methods.
-func (Export) ExtensionFieldsOf(p interface{}) legacyExtensionFieldsIface {
-	switch p := p.(type) {
-	case *ExtensionFieldsV1:
-		return (*legacyExtensionMap)(p)
-	default:
-		panic(fmt.Sprintf("invalid extension fields type: %T", p))
-	}
-}
diff --git a/internal/impl/legacy_extension.go b/internal/impl/legacy_extension.go
index 16701b6..4a60f05 100644
--- a/internal/impl/legacy_extension.go
+++ b/internal/impl/legacy_extension.go
@@ -6,7 +6,6 @@
 
 import (
 	"reflect"
-	"sync"
 
 	pref "github.com/golang/protobuf/v2/reflect/protoreflect"
 	piface "github.com/golang/protobuf/v2/runtime/protoiface"
@@ -25,7 +24,7 @@
 	}
 }
 
-var extType = reflect.TypeOf(ExtensionFieldsV1{})
+var extType = reflect.TypeOf(map[int32]ExtensionFieldV1{})
 
 func makeLegacyExtensionMapFunc(t reflect.Type) func(*messageDataType) *legacyExtensionMap {
 	fx, _ := t.FieldByName("XXX_extensions")
@@ -39,7 +38,7 @@
 	fieldOffset := offsetOf(fx)
 	return func(p *messageDataType) *legacyExtensionMap {
 		v := p.p.Apply(fieldOffset).AsValueOf(fx.Type).Interface()
-		return (*legacyExtensionMap)(v.(*ExtensionFieldsV1))
+		return (*legacyExtensionMap)(v.(*map[int32]ExtensionFieldV1))
 	}
 }
 
@@ -240,20 +239,6 @@
 	return legacyWrapper.ExtensionTypeFromDesc(desc)
 }
 
-type legacyExtensionFieldsIface = interface {
-	Len() int
-	Has(pref.FieldNumber) bool
-	Get(pref.FieldNumber) ExtensionFieldV1
-	Set(pref.FieldNumber, ExtensionFieldV1)
-	Clear(pref.FieldNumber)
-	Range(f func(pref.FieldNumber, ExtensionFieldV1) bool)
-
-	// HasInit and Locker are used by v1 GetExtension to provide
-	// an artificial degree of concurrent safety.
-	HasInit() bool
-	sync.Locker
-}
-
 type ExtensionFieldV1 struct {
 	// TODO: We should turn this into a type alias to an unnamed type,
 	// which means that v1 can have the same struct, and we no longer have to
@@ -290,9 +275,7 @@
 	Raw []byte // TODO: remove; let this be handled by XXX_unrecognized
 }
 
-type ExtensionFieldsV1 = map[int32]ExtensionFieldV1
-
-type legacyExtensionMap ExtensionFieldsV1
+type legacyExtensionMap map[int32]ExtensionFieldV1
 
 func (m legacyExtensionMap) Len() int {
 	return len(m)
@@ -320,9 +303,3 @@
 		}
 	}
 }
-
-func (m legacyExtensionMap) HasInit() bool {
-	return m != nil
-}
-func (m legacyExtensionMap) Lock()   {} // noop
-func (m legacyExtensionMap) Unlock() {} // noop
diff --git a/internal/impl/legacy_test.go b/internal/impl/legacy_test.go
index 1bc5acf..84cf071 100644
--- a/internal/impl/legacy_test.go
+++ b/internal/impl/legacy_test.go
@@ -29,7 +29,7 @@
 
 type legacyTestMessage struct {
 	XXX_unrecognized       []byte
-	XXX_InternalExtensions pimpl.ExtensionFieldsV1
+	XXX_InternalExtensions map[int32]pimpl.ExtensionFieldV1
 }
 
 func (*legacyTestMessage) Reset()         {}
diff --git a/internal/legacy/extension_test.go b/internal/legacy/extension_test.go
index 58af84b..630c158 100644
--- a/internal/legacy/extension_test.go
+++ b/internal/legacy/extension_test.go
@@ -21,7 +21,7 @@
 
 type legacyTestMessage struct {
 	XXX_unrecognized       []byte
-	XXX_InternalExtensions pimpl.ExtensionFieldsV1
+	XXX_InternalExtensions map[int32]pimpl.ExtensionFieldV1
 }
 
 func (*legacyTestMessage) Reset()         {}
diff --git a/runtime/protoimpl/impl.go b/runtime/protoimpl/impl.go
index bbfab27..617aed6 100644
--- a/runtime/protoimpl/impl.go
+++ b/runtime/protoimpl/impl.go
@@ -46,6 +46,5 @@
 	UnknownFields   = []byte
 	SizeCache       = int32
 
-	ExtensionFieldV1  = impl.ExtensionFieldV1
-	ExtensionFieldsV1 = impl.ExtensionFieldsV1
+	ExtensionFieldV1 = impl.ExtensionFieldV1
 )