public MethodName GetMethod(string name, TypeName returnType, IEnumerable <string> typeParameters, IEnumerable <TypeName> parameters) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (name.Length == 0) { throw Failure.EmptyString(nameof(name)); } if (returnType == null) { throw new ArgumentNullException("returnType"); } typeParameters = typeParameters ?? Array.Empty <string>(); parameters = parameters ?? Array.Empty <TypeName>(); if (typeParameters.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("typeParameters"); } if (parameters.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("parameters"); } return(new DefaultMethodName( this, name, DefaultMethodName.SetGenericParameters(typeParameters), DefaultMethodName.SetParameters(parameters), DefaultMethodName.SetReturnType(returnType) )); }
public MethodName GetMethod(string name, params TypeName[] parameters) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (name.Length == 0) { throw Failure.EmptyString(nameof(name)); } parameters = parameters ?? Array.Empty <TypeName>(); if (parameters.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("parameters"); } int mangle; var method = TypeName.StripMangle(name, out mangle); return(new DefaultMethodName( this, method, DefaultMethodName.SetGenericMangle(mangle), DefaultMethodName.SetParameters(parameters) )); }
private void RequireTemplates(IEnumerable <HxlTemplate> templates) { if (templates == null) { throw new ArgumentNullException("templates"); } if (!templates.Any()) { throw Failure.EmptyCollection("templates"); } if (templates.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("templates"); } }
public static MetadataName Combine(params MetadataName[] names) { if (names == null) { throw new ArgumentNullException("names"); } if (names.Length == 0) { throw Failure.EmptyCollection("names"); } if (names.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("names"); } return(names.Reverse().Aggregate((x, y) => y.AddRight(x))); }
public PropertyName GetProperty(string name, params TypeName[] parameters) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (name.Length == 0) { throw Failure.EmptyString(nameof(name)); } parameters = parameters ?? Array.Empty <TypeName>(); if (parameters.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("parameters"); } return(new PropertyName(this, name, null, ParameterData.AllFromTypes(parameters))); }
public GenericInstanceTypeName MakeGenericType(params TypeName[] arguments) { if (arguments == null) { throw new ArgumentNullException("arguments"); } if (arguments.Length == 0) { throw Failure.EmptyCollection("arguments"); } if (arguments.Any(t => t == null)) { throw Failure.CollectionContainsNullElement("arguments"); } if (arguments.Length != this.GenericParameterCount) { throw DotNetFailure.GenericParametersLengthMismatch("arguments"); } return(new GenericInstanceTypeName(this, arguments)); }
public PropertyName GetProperty(string name, TypeName propertyType, IEnumerable <TypeName> parameters) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (name.Length == 0) { throw Failure.EmptyString(nameof(name)); } parameters = parameters ?? Array.Empty <TypeName>(); if (parameters.Any(t => t == null)) { throw Failure.CollectionContainsNullElement(nameof(parameters)); } // TODO Can't bind unboound method parameters here var allParams = ParameterData.AllFromTypes(BindParameterTypes(null, parameters.ToArray())); return(new PropertyName(this, name, SafeCloneBind(propertyType), allParams)); }