/// <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));
        }
Example #2
0
        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);
        }
Example #4
0
 public virtual void VisitDynamicObjectCreationExpression(IDynamicObjectCreationExpression operation)
 {
     DefaultVisit(operation);
 }
Example #5
0
 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));
 }