/// <summary>
/// Checks whether a given set of arguments can be used to construct a generic type or method from a specified definition.
/// </summary>
public bool CheckGenericConstruction(IEntity definition, Node node, TypeReferenceCollection arguments, CompilerErrorCollection errors)
{
GenericConstructionChecker checker = new GenericConstructionChecker(
TypeSystemServices, node, arguments, Errors);
return(!(
checker.NotGenericDefinition(definition) ||
checker.IncorrectGenerity(definition) ||
checker.ViolatesParameterConstraints(definition)));
}