/// <summary> /// Matches the parameter. /// </summary> /// <param name="childSymbol">The child symbol.</param> /// <param name="parentSymbol">The parent symbol.</param> /// <returns>True if the child contains a member with a paramter that is of the type of the parentsymbol</returns> private bool MatchParameter(INamedTypeSymbol childSymbol, INamedTypeSymbol parentSymbol) { var members = childSymbol.GetMembers().Where(m => m is IMethodSymbol).Cast <IMethodSymbol>(); var parameters = members.SelectMany(m => m.Parameters); return(parameters.Any(p => SymbolMatcher.MatchDataType(p, parentSymbol))); }
/// <summary> /// Matches the member. /// </summary> /// <param name="childSymbol">The child symbol.</param> /// <param name="parentSymbol">The parent symbol.</param> /// <returns>True if the child symbol contains a member with a type/returntype of the parentsymbol</returns> private bool MatchMember(INamedTypeSymbol childSymbol, INamedTypeSymbol parentSymbol) => childSymbol.GetMembers().Any(m => SymbolMatcher.MatchDataType(m, parentSymbol));