uint GetParameterTypeInternId(IParameterTypeInformation parameterTypeInformation) {
Contract.Requires(parameterTypeInformation != null);
uint typeReferenceInternId = this.GetTypeReferenceInternId(parameterTypeInformation.Type);
uint customModifiersInternId = 0;
if (parameterTypeInformation.IsModified)
customModifiersInternId = this.GetCustomModifierListInternId(parameterTypeInformation.CustomModifiers.GetEnumerator());
foreach (ParameterTypeStore parameterTypeStore in this.ParameterTypeHashtable.GetValuesFor(typeReferenceInternId)) {
if (
parameterTypeStore.IsByReference == parameterTypeInformation.IsByReference
&& parameterTypeStore.CustomModifiersInternId == customModifiersInternId
) {
return parameterTypeStore.InternedId;
}
}
ParameterTypeStore parameterTypeStore1 = new ParameterTypeStore(parameterTypeInformation.IsByReference, customModifiersInternId, this.CurrentParameterTypeInternValue++);
this.ParameterTypeHashtable.Add(typeReferenceInternId, parameterTypeStore1);
return parameterTypeStore1.InternedId;
}