Output: Don't output inherited generic type parameters on nested class definitions

This commit is contained in:
Katy Coe
2019-11-18 01:58:53 +01:00
parent 68d8e47d7d
commit aa50791362

View File

@@ -69,7 +69,7 @@ namespace Il2CppInspector.Reflection {
((GenericParameterAttributes & GenericParameterAttributes.Contravariant) == GenericParameterAttributes.Contravariant? "in " : "")
+ ((GenericParameterAttributes & GenericParameterAttributes.Covariant) == GenericParameterAttributes.Covariant? "out ":"")
+ (base.Name.IndexOf("`", StringComparison.Ordinal) == -1 ? base.Name : base.Name.Remove(base.Name.IndexOf("`", StringComparison.Ordinal)))
+ (GenericTypeParameters != null ? "<" + string.Join(", ", GenericTypeParameters.Select(x => x.CSharpTypeDeclarationName)) + ">" : "")
+ ((IsNested? GenericTypeParameters.Where(p => DeclaringType.GenericTypeParameters.All(dp => dp.Name != p.Name)) : GenericTypeParameters)?.Any() ?? false ? "<" + string.Join(", ", GenericTypeParameters.Select(x => x.CSharpTypeDeclarationName)) + ">" : "")
+ (GenericTypeArguments != null ? "<" + string.Join(", ", GenericTypeArguments.Select(x => x.CSharpTypeDeclarationName)) + ">" : ""))
+ (IsArray ? "[" + new string(',', GetArrayRank() - 1) + "]" : "")
+ (IsPointer ? "*" : "");