/// <summary> /// Internalizes a type descriptor. /// </summary> /// <param name="td">a type descriptor</param> /// <returns>equivalent type descriptor which is contained inside the library</returns> public TypeDescriptor Canonicalize(TypeDescriptor td) { TypeDescriptor tdOut; if (_types.TryGetValue(td, out tdOut)) { return tdOut; } else { td = td.Clone(); _types[td] = td; if (!td.HasIntrinsicTypeOverride) { PackageDescriptor pd = GetPackage(td.CILType); td.Package = pd; pd.AddChild(td, td.Name); } return td; } }
/// <summary> /// Internalizes a type descriptor. /// </summary> /// <param name="td">a type descriptor</param> /// <returns>equivalent type descriptor which is contained inside the library</returns> public TypeDescriptor Canonicalize(TypeDescriptor td) { TypeDescriptor tdOut; if (_types.TryGetValue(td, out tdOut)) { return(tdOut); } else { td = td.Clone(); _types[td] = td; if (!td.HasIntrinsicTypeOverride) { PackageDescriptor pd = GetPackage(td.CILType); td.Package = pd; pd.AddChild(td, td.Name); } return(td); } }