internal/impl: stop using deprecated .Field in lazy_test.go

This struct field is deprecated and hence litters the file with warnings.

Change-Id: I49c8c795da8feda9e9872167dff25c836030e622
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/703275
Reviewed-by: Florian Zenker <floriank@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/internal/impl/lazy_test.go b/internal/impl/lazy_test.go
index fe3035b..e0a91cc 100644
--- a/internal/impl/lazy_test.go
+++ b/internal/impl/lazy_test.go
@@ -16,6 +16,7 @@
 	"google.golang.org/protobuf/internal/impl"
 	"google.golang.org/protobuf/internal/protobuild"
 	"google.golang.org/protobuf/proto"
+	"google.golang.org/protobuf/runtime/protoimpl"
 	"google.golang.org/protobuf/testing/protocmp"
 
 	lazytestpb "google.golang.org/protobuf/internal/testprotos/lazy"
@@ -70,43 +71,43 @@
 
 	nh := roundtrip(t, h).(*lazytestpb.Holder)
 
-	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field) {
+	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 
 	proto.Size(nh)
-	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field) {
+	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension) {
 		t.Errorf("Extension unexpectedly initialized after Size")
 	}
 
 	proto.Marshal(nh)
-	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field) {
+	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension) {
 		t.Errorf("Extension unexpectedly initialized after Marshal")
 	}
 
 	if !proto.HasExtension(nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension) {
 		t.Fatalf("Can't get extension")
 	}
-	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field) {
+	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension) {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 
 	nh = roundtrip(t, nh).(*lazytestpb.Holder)
-	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field) {
+	if extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension) {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 
 	if diff := cmp.Diff(h, nh, protocmp.Transform()); diff != "" {
 		t.Errorf("Got %+v, want %+v, diff:\n%s", nh, h, diff)
 	}
-	if got, want := extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Diff")
 	}
 	int := proto.GetExtension(nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension).(*lazytestpb.Rabbit)
 	if int.GetName() != "Judy" {
 		t.Errorf("Extension value \"Judy\" not retained, got: %v", int.GetName())
 	}
-	if got, want := extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, nh.GetData(), lazytestpb.E_Rabbit_MessageSetExtension), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 }
@@ -136,11 +137,11 @@
 
 	nt := roundtrip(t, tree).(*lazytestpb.Tree)
 
-	if extensionIsInitialized(t, nt, lazytestpb.E_Bat.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_Bat) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	proto.Size(nt)
-	if extensionIsInitialized(t, nt, lazytestpb.E_Bat.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_Bat) {
 		t.Errorf("Extension unexpectedly initialized after Size")
 	}
 
@@ -148,7 +149,7 @@
 	if err != nil {
 		t.Fatalf("proto.Marshal(%+v) failed: %v", nt, err)
 	}
-	if extensionIsInitialized(t, nt, lazytestpb.E_Bat.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_Bat) {
 		t.Errorf("Extension unexpectedly initialized after Marshal")
 	}
 
@@ -156,20 +157,20 @@
 	if got, want := fox.GetSpecies(), spGH; want != got {
 		t.Errorf("Extension's Speices field not retained, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_Bat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_Bat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
-	if extensionIsInitialized(t, nt, lazytestpb.E_BatPup.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_BatPup) {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 	foxPup := proto.GetExtension(nt, lazytestpb.E_BatPup).(*lazytestpb.FlyingFox)
 	if got, want := foxPup.GetSpecies(), spP; want != got {
 		t.Errorf("Extension's Speices field not retained, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_Bat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_Bat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
-	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_BatPup.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_BatPup), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 
@@ -181,7 +182,7 @@
 	if diff := cmp.Diff(tree, rt, protocmp.Transform()); diff != "" {
 		t.Errorf("Got %+v, want %+v, diff:\n%s", rt, tree, diff)
 	}
-	if got, want := extensionIsInitialized(t, rt, lazytestpb.E_Bat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, rt, lazytestpb.E_Bat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Diff")
 	}
 
@@ -208,11 +209,11 @@
 
 	nt := roundtrip(t, tree).(*lazytestpb.Tree)
 
-	if extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	proto.Size(nt)
-	if extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat) {
 		t.Errorf("Extension unexpectedly initialized after Size")
 	}
 
@@ -220,7 +221,7 @@
 	if err != nil {
 		t.Fatalf("proto.Marshal(%+v) failed: %v", nt, err)
 	}
-	if extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat.Field) {
+	if extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat) {
 		t.Errorf("Extension unexpectedly initialized after Marshal")
 	}
 
@@ -228,7 +229,7 @@
 	if got, want := fox.GetSpecies(), spGH; want != got {
 		t.Errorf("Extension's Speices field not retained, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, nt, lazytestpb.E_BatNest_Bat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 
@@ -240,7 +241,7 @@
 	if diff := cmp.Diff(tree, rt, protocmp.Transform()); diff != "" {
 		t.Errorf("Got %+v, want %+v, diff:\n%s", rt, tree, diff)
 	}
-	if got, want := extensionIsInitialized(t, rt, lazytestpb.E_BatNest_Bat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, rt, lazytestpb.E_BatNest_Bat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Diff")
 	}
 }
@@ -261,7 +262,7 @@
 	}
 	mr := roundtrip(t, m).(*lazytestpb.Tree)
 
-	if extensionIsInitialized(t, mr, lazytestpb.E_BatPosse.Field) {
+	if extensionIsInitialized(t, mr, lazytestpb.E_BatPosse) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 
@@ -270,7 +271,7 @@
 		t.Errorf("Extension is not present after setting: got %v, want %v", got, want)
 	}
 
-	if extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse.Field) {
+	if extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse) {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 
@@ -279,7 +280,7 @@
 	if got, want := foxPosse[0].GetSpecies(), spLE; got != want {
 		t.Errorf("Extension's Speices field, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 
@@ -291,14 +292,14 @@
 	}
 	mr = roundtrip(t, m).(*lazytestpb.Tree)
 
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BatPosse.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BatPosse), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 
 	if got, want := proto.HasExtension(mr, lazytestpb.E_BatPosse), false; got != want {
 		t.Errorf("Extension is not present after setting: got %v, want %v", got, want)
 	}
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BatPosse.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BatPosse), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 
@@ -306,7 +307,7 @@
 	if got, want := proto.HasExtension(mrr, lazytestpb.E_BatPosse), false; got != want {
 		t.Errorf("Extension is not present after setting: got %v, want %v", got, want)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 
@@ -314,7 +315,7 @@
 	if got, want := len(foxPosse), 0; got != want {
 		t.Errorf("Extension field length, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_BatPosse), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 }
@@ -332,14 +333,14 @@
 	}
 	mr := roundtrip(t, m).(*lazytestpb.Tree)
 
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_IntegerBat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_IntegerBat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 
 	if got, want := proto.HasExtension(mr, lazytestpb.E_IntegerBat), true; got != want {
 		t.Errorf("Extension is not present after setting: got %v, want %v", got, want)
 	}
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_IntegerBat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_IntegerBat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 
@@ -347,7 +348,7 @@
 	if got, want := proto.GetExtension(mr, lazytestpb.E_IntegerBat).(uint32), iBat; got != want {
 		t.Errorf("Extension's integer field, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_IntegerBat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_IntegerBat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 }
@@ -365,7 +366,7 @@
 	}
 	mr := roundtrip(t, m).(*lazytestpb.Tree)
 	// A binary extension is never kept lazy
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BinaryBat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BinaryBat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	if got, want := proto.HasExtension(mr, lazytestpb.E_BinaryBat), true; got != want {
@@ -379,7 +380,7 @@
 		t.Errorf("Extension present after setting: got %v, want %v", got, want)
 	}
 	mr = roundtrip(t, m).(*lazytestpb.Tree)
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BinaryBat.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_BinaryBat), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	if got, want := proto.HasExtension(mr, lazytestpb.E_BinaryBat), true; got != want {
@@ -405,28 +406,28 @@
 	}
 	mr := roundtrip(t, m).(*lazytestpb.Tree)
 
-	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelle.Field) {
+	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelle) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	if got, want := proto.HasExtension(mr, lazytestpb.E_Pipistrelle), true; got != want {
 		t.Errorf("Extension present after setting: got %v, want %v", got, want)
 	}
-	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelle.Field) {
+	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelle) {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 	mrr := roundtrip(t, mr).(*lazytestpb.Tree)
-	if extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelle.Field) {
+	if extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelle) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	mrr = roundtrip(t, mr).(*lazytestpb.Tree)
-	if extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelle.Field) {
+	if extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelle) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	pipistrelle := proto.GetExtension(mrr, lazytestpb.E_Pipistrelle).(*lazytestpb.Pipistrelle)
 	if got, want := pipistrelle.GetSpecies(), spF; got != want {
 		t.Errorf("Extension's Speices field, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelle.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelle), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 
@@ -438,13 +439,13 @@
 	}
 	mr = roundtrip(t, m).(*lazytestpb.Tree)
 
-	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles.Field) {
+	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles) {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	if got, want := proto.HasExtension(mr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension present after setting: got %v, want %v", got, want)
 	}
-	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles.Field) {
+	if extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles) {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 	mr = roundtrip(t, m).(*lazytestpb.Tree)
@@ -452,7 +453,7 @@
 	if got, want := proto.HasExtension(mrr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension present after setting: got %v, want %v", got, want)
 	}
-	if extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles.Field) {
+	if extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles) {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 	mrr = roundtrip(t, mr).(*lazytestpb.Tree)
@@ -460,7 +461,7 @@
 	if got, want := pipistrelles[1].GetSpecies(), spR; got != want {
 		t.Errorf("Extension's Speices field, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 
@@ -472,27 +473,27 @@
 	}
 	mr = roundtrip(t, m).(*lazytestpb.Tree)
 
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Unmarshal")
 	}
 	if got, want := proto.HasExtension(mr, lazytestpb.E_Pipistrelles), false; got != want {
 		t.Errorf("Extension present after setting: got %v, want %v", got, want)
 	}
-	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 	mrr = roundtrip(t, mr).(*lazytestpb.Tree)
 	if got, want := proto.HasExtension(mrr, lazytestpb.E_Pipistrelles), false; got != want {
 		t.Errorf("Extension present after setting: got %v, want %v", got, want)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Has")
 	}
 	noPipistrelles := proto.GetExtension(mrr, lazytestpb.E_Pipistrelles).([]*lazytestpb.Pipistrelles)
 	if got, want := len(noPipistrelles), 0; got != want {
 		t.Errorf("Extension's field length, want: %v, got: %v", want, got)
 	}
-	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles.Field), true; got != want {
+	if got, want := extensionIsInitialized(t, mrr, lazytestpb.E_Pipistrelles), true; got != want {
 		t.Errorf("Extension unexpectedly initialized after Get")
 	}
 }
@@ -581,7 +582,7 @@
 
 // Highly implementation dependent - uses unsafe pointers to figure
 // out if the lazyExtensionValue is initialized.
-func extensionIsInitialized(t *testing.T, data any, fieldNo int32) bool {
+func extensionIsInitialized(t *testing.T, data any, ei *protoimpl.ExtensionInfo) bool {
 	ext, ok := reflect.TypeOf(data).Elem().FieldByName("extensionFields")
 	if !ok {
 		t.Fatalf("Failed to retrieve offset of field \"extensionFields\".")
@@ -596,7 +597,7 @@
 	if !ok {
 		t.Fatalf("Extension map has unexpected type.")
 	}
-	f := (*m)[fieldNo]
+	f := (*m)[int32(ei.TypeDescriptor().Number())]
 	// Here we rely on atomicOnce being the first field in the 'lazy' struct.
 	app, ok := pointerOfIface(&f).Apply(lazy.Offset).AsValueOf(reflect.TypeOf((*uint32)(nil))).Interface().(**uint32)
 	if !ok {