uint GetTypeReferenceListInternedId(IEnumerator<ITypeReference> typeReferences) {
Contract.Requires(typeReferences != null);
if (!typeReferences.MoveNext()) return 0;
ITypeReference currentTypeRef = typeReferences.Current;
Contract.Assume(currentTypeRef != null);
uint currentTypeRefInternedId = this.GetTypeReferenceInternId(currentTypeRef);
uint tailInternedId = this.GetTypeReferenceListInternedId(typeReferences);
uint value = this.TypeListHashtable.Find(currentTypeRefInternedId, tailInternedId);
if (value == 0) {
value = this.CurrentTypeListInternValue++;
this.TypeListHashtable.Add(currentTypeRefInternedId, tailInternedId, value);
}
return value;
}