Beispiel #1
0
            protected override Void handleObjectCreation(ObjectCreationExpressionNode objectCreation, Set <TypeInfo> dependencies, bool nested)
            {
                var info = objectCreation.getUserData(typeof(ExpressionInfo));

                addDependencies(info.Type, dependencies);
                foreach (var e in objectCreation.Arguments)
                {
                    handleExpression(e, dependencies, true);
                }
                if (objectCreation.Initializer != null)
                {
                    handleExpression(objectCreation.Initializer, dependencies, true);
                }
                return(null);
            }
            protected override AssignmentState handleObjectCreation(ObjectCreationExpressionNode objectCreation, HashSet <StatementNode> visited,
                                                                    bool nested)
            {
                foreach (var arg in objectCreation.Arguments)
                {
                    if (handleExpression(arg, visited, true) == AssignmentState.Assigned)
                    {
                        return(AssignmentState.Assigned);
                    }
                }
                var init = objectCreation.Initializer;

                if (init != null)
                {
                    if (init.ExpressionKind == ExpressionKind.ObjectInitializer)
                    {
                        var initializer = (ObjectInitializerExpressionNode)init;
                        foreach (var mi in initializer.MemberInitializers)
                        {
                            if (handleExpression(mi.Value, visited, true) == AssignmentState.Assigned)
                            {
                                return(AssignmentState.Assigned);
                            }
                        }
                    }
                    else
                    {
                        var initializer = (CollectionInitializerExpressionNode)init;
                        foreach (var args in initializer.Values)
                        {
                            foreach (var e in args)
                            {
                                if (handleExpression(e, visited, true) == AssignmentState.Assigned)
                                {
                                    return(AssignmentState.Assigned);
                                }
                            }
                        }
                    }
                }
                return(AssignmentState.NotAssigned);
            }