Clarify behavior around handling of sdk members

Renames some types and adds some documentation to try and clarify how
the sdk handles the members.

Bug: 186290299
Test: m nothing
Change-Id: I4038276f5f4c473a96fe06aedc43050c90416877
diff --git a/sdk/update.go b/sdk/update.go
index 00751f3..248cf5d 100644
--- a/sdk/update.go
+++ b/sdk/update.go
@@ -113,8 +113,8 @@
 
 // Collect all the members.
 //
-// Returns a list containing type (extracted from the dependency tag) and the variant
-// plus the multilib usages.
+// Updates the sdk module with a list of sdkMemberVariantDeps and details as to which multilibs
+// (32/64/both) are used by this sdk variant.
 func (s *sdk) collectMembers(ctx android.ModuleContext) {
 	s.multilibUsages = multilibNone
 	ctx.WalkDeps(func(child android.Module, parent android.Module) bool {
@@ -141,14 +141,16 @@
 	})
 }
 
-// Organize the members.
+// groupMemberVariantsByMemberThenType groups the member variant dependencies so that all the
+// variants of each member are grouped together within an sdkMember instance.
 //
-// The members are first grouped by type and then grouped by name. The order of
-// the types is the order they are referenced in android.SdkMemberTypesRegistry.
-// The names are in the order in which the dependencies were added.
+// The sdkMember instances are then grouped into slices by member type. Within each such slice the
+// sdkMember instances appear in the order they were added as dependencies.
 //
-// Returns the members as well as the multilib setting to use.
-func (s *sdk) organizeMembers(ctx android.ModuleContext, memberVariantDeps []sdkMemberVariantDep) []*sdkMember {
+// Finally, the member type slices are concatenated together to form a single slice. The order in
+// which they are concatenated is the order in which the member types were registered in the
+// android.SdkMemberTypesRegistry.
+func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, memberVariantDeps []sdkMemberVariantDep) []*sdkMember {
 	byType := make(map[android.SdkMemberType][]*sdkMember)
 	byName := make(map[string]*sdkMember)
 
@@ -255,7 +257,8 @@
 	}
 	s.builderForTests = builder
 
-	members := s.organizeMembers(ctx, memberVariantDeps)
+	// Create the prebuilt modules for each of the member modules.
+	members := s.groupMemberVariantsByMemberThenType(ctx, memberVariantDeps)
 	for _, member := range members {
 		memberType := member.memberType
 
@@ -365,10 +368,10 @@
 	addHostDeviceSupportedProperties(s.ModuleBase.DeviceSupported(), s.ModuleBase.HostSupported(), snapshotModule)
 
 	var dynamicMemberPropertiesContainers []propertiesContainer
-	osTypeToMemberProperties := make(map[android.OsType]*sdk)
+	osTypeToMemberProperties := make(map[android.OsType]interface{})
 	for _, sdkVariant := range sdkVariants {
 		properties := sdkVariant.dynamicMemberTypeListProperties
-		osTypeToMemberProperties[sdkVariant.Target().Os] = sdkVariant
+		osTypeToMemberProperties[sdkVariant.Target().Os] = properties
 		dynamicMemberPropertiesContainers = append(dynamicMemberPropertiesContainers, &dynamicMemberPropertiesContainer{sdkVariant, properties})
 	}
 
@@ -385,13 +388,13 @@
 		Compile_multilib string `android:"arch_variant"`
 	}
 	var variantPropertiesContainers []propertiesContainer
-	variantToProperties := make(map[*sdk]*variantProperties)
+	osTypeToVariantProperties := make(map[android.OsType]*variantProperties)
 	for _, sdkVariant := range sdkVariants {
 		props := &variantProperties{
 			Compile_multilib: sdkVariant.multilibUsages.String(),
 		}
 		variantPropertiesContainers = append(variantPropertiesContainers, &dynamicMemberPropertiesContainer{sdkVariant, props})
-		variantToProperties[sdkVariant] = props
+		osTypeToVariantProperties[sdkVariant.Target().Os] = props
 	}
 	commonVariantProperties := variantProperties{}
 	extractor = newCommonValueExtractor(commonVariantProperties)
@@ -406,15 +409,15 @@
 
 	// Iterate over the os types in a fixed order.
 	for _, osType := range s.getPossibleOsTypes() {
-		if sdkVariant, ok := osTypeToMemberProperties[osType]; ok {
-			osPropertySet := targetPropertySet.AddPropertySet(sdkVariant.Target().Os.Name)
+		if properties, ok := osTypeToMemberProperties[osType]; ok {
+			osPropertySet := targetPropertySet.AddPropertySet(osType.Name)
 
-			variantProps := variantToProperties[sdkVariant]
+			variantProps := osTypeToVariantProperties[osType]
 			if variantProps.Compile_multilib != "" && variantProps.Compile_multilib != "both" {
 				osPropertySet.AddProperty("compile_multilib", variantProps.Compile_multilib)
 			}
 
-			s.addMemberPropertiesToPropertySet(builder, osPropertySet, sdkVariant.dynamicMemberTypeListProperties)
+			s.addMemberPropertiesToPropertySet(builder, osPropertySet, properties)
 		}
 	}