uint GetNamespaceTypeReferenceInternId(IUnitNamespaceReference containingUnitNamespace, IName typeName, uint genericParameterCount) {
Contract.Requires(containingUnitNamespace != null);
Contract.Requires(typeName != null);
uint containingUnitNamespaceInteredId = this.GetUnitNamespaceInternId(containingUnitNamespace);
foreach (NamespaceTypeStore nsTypeStore in this.NamespaceTypeHashtable.GetValuesFor((uint)typeName.UniqueKey)) {
if (nsTypeStore.ContainingNamespaceInternedId == containingUnitNamespaceInteredId && nsTypeStore.GenericParameterCount == genericParameterCount) {
return nsTypeStore.InternedId;
}
}
NamespaceTypeStore nsTypeStore1 = new NamespaceTypeStore(containingUnitNamespaceInteredId, genericParameterCount, this.CurrentTypeInternValue++);
this.NamespaceTypeHashtable.Add((uint)typeName.UniqueKey, nsTypeStore1);
return nsTypeStore1.InternedId;
}