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); }