/// <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));