public static string GetGenericName(IGenericDefinition genericDefinition, string leftBracket, string rightBracket, ILanguage language) { V_0 = false; if (genericDefinition as MethodDefinition != null) { V_0 = ((MethodDefinition)genericDefinition).get_HasOverrides(); } V_1 = GenericHelper.GetNonGenericName(genericDefinition.get_Name()); if (!V_0) { if (genericDefinition as MethodDefinition == null) { stackVariable70 = false; } else { stackVariable70 = ((MethodDefinition)genericDefinition).get_IsConstructor(); } if (!stackVariable70) { V_1 = GenericHelper.ReplaceInvalidCharactersName(language, V_1); } } if (genericDefinition.get_HasGenericParameters()) { V_2 = 0; if (genericDefinition as TypeDefinition != null) { V_3 = (genericDefinition as TypeDefinition).get_DeclaringType(); if (V_3 != null && V_3.get_HasGenericParameters()) { V_2 = V_3.get_GenericParameters().get_Count(); } } if (V_2 < genericDefinition.get_GenericParameters().get_Count()) { V_1 = String.Concat(V_1, leftBracket); while (V_2 < genericDefinition.get_GenericParameters().get_Count()) { V_4 = genericDefinition.get_GenericParameters().get_Item(V_2); if (V_4.get_IsCovariant()) { V_1 = String.Concat(V_1, "out "); } if (V_4.get_IsContravariant()) { V_1 = String.Concat(V_1, "in "); } V_1 = String.Concat(V_1, GenericHelper.ReplaceInvalidCharactersName(language, V_4.get_Name())); if (V_2 != genericDefinition.get_GenericParameters().get_Count() - 1) { V_1 = String.Concat(V_1, ", "); } V_2 = V_2 + 1; } V_1 = String.Concat(V_1, rightBracket); } } return(V_1); }