Esempio n. 1
0
 /// <summary>
 /// Checks whether current instance of <see cref="Argument"/> is assignable to given <paramref name="parameter"/>.
 /// A concrete subclass decides, how the assignability is defined.
 /// </summary>
 /// <param name="parameter">A parameter to which the assignability is being checked.</param>
 /// <returns>True, if current instance of <see cref="Argument"/> is assignable to given <paramref name="parameter"/>. Otherwise false.</returns>
 public abstract bool IsAssignableTo(Parameter parameter);
Esempio n. 2
0
 /// <summary>
 /// Determines whether this argument can be assigned to given <paramref name="parameter"/>.
 /// It can be assigned if their types are compatible or
 /// when argument value is null and parameter is null assignable.
 /// </summary>
 /// <param name="parameter">A parameter against which the assignability will be determined.</param>
 /// <returns>True if this argument can be assigned to given <paramref name="parameter"/>. Otherwise false.</returns>
 public override bool IsAssignableTo(Parameter parameter) =>
     IsNull ? parameter.IsNullAssignable : parameter.Type.IsAssignableFrom(Type);
 /// <summary>
 /// A constructor that takes the <see cref="Parameter"/> and <see cref="Arguments"/>.
 /// </summary>
 /// <param name="parameter">The <see cref="Parameter"/>.</param>
 /// <param name="arguments">Arguments that are assignable to the <see cref="Parameter"/>.</param>
 internal Parameter2ArgumentsRelation(Parameter parameter, IEnumerable<Argument> arguments)
 {
     Parameter = parameter;
     Arguments = arguments;
 }
 /// <summary>
 /// A constructor that populates internal properties.
 /// </summary>
 /// <param name="parameter">The function parameter.</param>
 /// <param name="arguments">Arguments that can be assigned to the <paramref name="parameter"/>.</param>
 /// <param name="isAssignableFromMandatoryArgument">Indicates whether the mandatory argument is assignable to the <paramref name="parameter"/>.</param>
 internal Parameter2MandatoryArgumentsRelation(Parameter parameter, IEnumerable<Argument> arguments, bool isAssignableFromMandatoryArgument)
         : base(parameter, arguments)
 {
     IsAssignableFromMandatoryArgument = isAssignableFromMandatoryArgument;
 }
 /// <summary>
 /// A constructor that takes the <see cref="Parameter"/> and <see cref="Arguments"/>.
 /// </summary>
 /// <param name="parameter">The <see cref="Parameter"/>.</param>
 /// <param name="arguments">Arguments that are assignable to the <see cref="Parameter"/>.</param>
 internal Parameter2InvocationsRelation(Parameter parameter, IEnumerable<IInvocation> arguments)
 {
     Parameter = parameter;
     Arguments = arguments;
 }
 /// <summary>
 /// Determines whether this function's returned type is compatible with given <paramref name="parameter"/>.
 /// </summary>
 /// <param name="parameter">A parameter which assignability will be determined.</param>
 /// <returns>True if this function's returned type is compatible with given <paramref name="parameter"/>. Otherwise false.</returns>
 public override bool IsAssignableTo(Parameter parameter) =>
     parameter.Type.IsAssignableFrom(Type);