/// <summary> /// Get an optional argument <see cref="RefKind"/> for an argument at the given <paramref name="index"/> to the given <paramref name="dynamicExpression"/>. /// Returns a non-null argument <see cref="RefKind"/> for C#. /// Always returns null for VB as <see cref="RefKind"/> cannot be specified for an the argument in VB. /// </summary> /// <param name="dynamicExpression">Dynamic or late bound expression.</param> /// <param name="index">Argument index.</param> public static RefKind?GetArgumentRefKind(this IDynamicObjectCreationExpression dynamicExpression, int index) { if (dynamicExpression == null) { throw new ArgumentNullException(nameof(dynamicExpression)); } return(GetArgumentRefKind((HasDynamicArgumentsExpression)dynamicExpression, index)); }
public void IDynamicObjectCreationExpression_PublicExtensionMethodTests() { // Test null argument IDynamicObjectCreationExpression nullDynamicExpression = null; Assert.Throws <ArgumentNullException>(() => nullDynamicExpression.GetArgumentName(0)); Assert.Throws <ArgumentNullException>(() => nullDynamicExpression.GetArgumentRefKind(0)); Func <ImmutableArray <IOperation>, ImmutableArray <string>, ImmutableArray <RefKind>, HasDynamicArgumentsExpression> createDynamicExpression = (arguments, argumentNames, argumentRefKinds) => new DynamicObjectCreationExpression(arguments, argumentNames, argumentRefKinds, null, null, null, null, null, false); TestCore(createDynamicExpression); }
public override void VisitDynamicObjectCreationExpression(IDynamicObjectCreationExpression operation) { VisitDynamicArguments((HasDynamicArgumentsExpression)operation); base.VisitDynamicObjectCreationExpression(operation); }
public virtual void VisitDynamicObjectCreationExpression(IDynamicObjectCreationExpression operation) { DefaultVisit(operation); }
public override IOperation VisitDynamicObjectCreationExpression(IDynamicObjectCreationExpression operation, object argument) { return(new DynamicObjectCreationExpression(VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, Visit(operation.Initializer), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit)); }