function fetchExpandedTypes(sBaseMetaPath, mQueryOptions) {
			if (mQueryOptions && mQueryOptions.$expand) {
				Object.keys(mQueryOptions.$expand).forEach(function (sNavigationPath) {
					var sMetaPath = sBaseMetaPath;

					sNavigationPath.split("/").forEach(function (sSegment) {
						sMetaPath += "/" + sSegment;
						aPromises.push(that.oRequestor.fetchType(mTypeForMetaPath, sMetaPath));
					});
					fetchExpandedTypes(sMetaPath, mQueryOptions.$expand[sNavigationPath]);
				});
			}
		}
Fetches the type from the metadata for the root entity plus all types for $expand and puts
them into a map from meta path to type. Checks the types' key properties and puts their types
into the map, too, if they are complex. If a type has a
"@com.sap.vocabularies.Common.v1.Messages" annotation for messages, the type is enriched by
the property "@com.sap.vocabularies.Common.v1.Messages" containing the annotation object.

@returns {sap.ui.base.SyncPromise}
  A promise that is resolved with a map from resource path + entity path to the type

@private
@see #getTypes