Пример #1
0
        public void IDynamicObjectCreationExpression_PublicExtensionMethodTests()
        {
            // Test null argument
            IDynamicObjectCreationOperation 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 DynamicObjectCreationOperation(
                initializer: null,
                arguments,
                argumentNames,
                argumentRefKinds,
                semanticModel: null,
                syntax: null,
                type: null,
                isImplicit: false
                );

            TestCore(createDynamicExpression);
        }
        public override TAbstractAnalysisValue VisitDynamicObjectCreation(IDynamicObjectCreationOperation operation, object argument)
        {
            var value = base.VisitDynamicObjectCreation(operation, argument);
            PointsToAbstractValue instanceLocation = GetPointsToAbstractValue(operation);

            return(HandleInstanceCreation(operation, instanceLocation, value));
        }
Пример #3
0
        /// <summary>
        /// Get an optional argument <see cref="RefKind"/> for an argument at the given <paramref name="index"/> to the given <paramref name="dynamicOperation"/>.
        /// Returns a non-null argument <see cref="RefKind"/> for C#.
        /// Always returns null for VB as <see cref="RefKind"/> cannot be specified for an argument in VB.
        /// </summary>
        /// <param name="dynamicOperation">Dynamic or late bound operation.</param>
        /// <param name="index">Argument index.</param>
        public static RefKind?GetArgumentRefKind(this IDynamicObjectCreationOperation dynamicOperation, int index)
        {
            if (dynamicOperation == null)
            {
                throw new ArgumentNullException(nameof(dynamicOperation));
            }

            return(GetArgumentRefKind((HasDynamicArgumentsExpression)dynamicOperation, index));
        }
Пример #4
0
        public void IDynamicObjectCreationExpression_PublicExtensionMethodTests()
        {
            // Test null argument
            IDynamicObjectCreationOperation 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 DynamicObjectCreationOperation(arguments, argumentNames, argumentRefKinds, null, null, null, null, null, false);

            TestCore(createDynamicExpression);
        }
Пример #5
0
        public override void VisitDynamicObjectCreation(IDynamicObjectCreationOperation operation)
        {
            Assert.Equal(OperationKind.DynamicObjectCreation, operation.Kind);

            IEnumerable <IOperation> children = operation.Arguments;

            if (operation.Initializer != null)
            {
                children = children.Concat(new[] { operation.Initializer });
            }

            AssertEx.Equal(children, operation.Children);
        }
Пример #6
0
 public override IOperation VisitDynamicObjectCreation(
     IDynamicObjectCreationOperation operation,
     object?argument
     )
 {
     return(new DynamicObjectCreationOperation(
                Visit(operation.Initializer),
                VisitArray(operation.Arguments),
                ((HasDynamicArgumentsExpression)operation).ArgumentNames,
                ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds,
                ((Operation)operation).OwningSemanticModel,
                operation.Syntax,
                operation.Type,
                operation.IsImplicit
                ));
 }
Пример #7
0
 public override PointsToAbstractValue VisitDynamicObjectCreation(IDynamicObjectCreationOperation operation, object argument)
 {
     return(VisitTypeCreationWithArgumentsAndInitializer(operation.Arguments, operation.Initializer, operation, argument));
 }
            public override NullAbstractValue VisitDynamicObjectCreation(IDynamicObjectCreationOperation operation, object argument)
            {
                var _ = base.VisitDynamicObjectCreation(operation, argument);

                return(NullAbstractValue.NotNull);
            }
Пример #9
0
 public virtual void VisitDynamicObjectCreation(IDynamicObjectCreationOperation operation)
 {
     DefaultVisit(operation);
 }
Пример #10
0
 public override void VisitDynamicObjectCreation([NotNull] IDynamicObjectCreationOperation operation)
 {
 }
 public override void VisitDynamicObjectCreation([NotNull] IDynamicObjectCreationOperation operation)
 {
     Result.SetImmediate();
 }
Пример #12
0
        public override void VisitDynamicObjectCreation(IDynamicObjectCreationOperation operation)
        {
            VisitDynamicArguments((HasDynamicArgumentsExpression)operation);

            base.VisitDynamicObjectCreation(operation);
        }
Пример #13
0
 public override bool VisitDynamicObjectCreation([NotNull] IDynamicObjectCreationOperation operation1,
                                                 [CanBeNull] IOperation argument)
 {
     return(argument is IDynamicObjectCreationOperation operation2 && AreBaseOperationsEqual(operation1, operation2));
 }