code: function (oPathValue) {
  			var i,
  				aParameters = [],
  				aPromises;
  
  			// Note: it is safe to modify the caller's object here
  			oPathValue.complexBinding = false;
  
  			aPromises = [Expression.parameter(oPathValue, 0, "Edm.String")];
  
  			for (i = 1; i < oPathValue.value.length; i += 1) {
  				aParameters[i] = Basics.descend(oPathValue, i, "object");
  				aPromises.push(Expression.expression(
  					Basics.descend(aParameters[i], "$LabeledElement", true/*"as expression"*/)));
  			}
  
  			return SyncPromise.all(aPromises).then(function (aResults) {
  				var sName,
  					aParts = [],
  					sPrefix = "";
  
  				aParts.push('odata.fillUriTemplate(',
  					Basics.resultToString(aResults[0], true, false),
  					',{');
  				for (i = 1; i < oPathValue.value.length; i += 1) {
  					sName = Basics.property(aParameters[i], "$Name", "string");
  					aParts.push(sPrefix, Basics.toJSON(sName), ":",
  						Basics.resultToString(aResults[i], true, false));
  					sPrefix = ",";
  				}
  				aParts.push("})");
  				return {
  					result : "expression",
  					type : "Edm.String",
  					value : aParts.join("")
  				};
  			});
  		}
docs: Handling of "14.5.3.1.2 Function odata.fillUriTemplate".
  
  @param {object} oPathValue
  path and value information pointing to the parameter array (see Expression object)
  @returns {sap.ui.base.SyncPromise}
  a sync promise which resolves with the result object or is rejected with an error