private List <GenericTypeDeclaration> GetMatchingGenerics(ReferenceType referenceType) { if (referenceType.Identifiers.Count() != 1) { return(new List <GenericTypeDeclaration>()); } var parentMethod = referenceType.NearestAncestorOfType <MethodDeclaration>(); var methodGenerics = parentMethod?.GenericTypeDeclarations.Where(x => x.Name == referenceType.Identifiers.First().Text).ToList() ?? new List <GenericTypeDeclaration>(); if (methodGenerics.Any()) { return(methodGenerics); } var parentClass = referenceType.NearestAncestorOfType <ClassDeclaration>(); if (parentClass == null || IsStatic(referenceType)) { return(new List <GenericTypeDeclaration>()); } var classGenerics = parentClass.GenericTypeDeclarations.Where(x => x.Name == referenceType.Identifiers.First().Text).ToList() ?? new List <GenericTypeDeclaration>(); return(classGenerics); }