internal static bool CanSimplifyTupleElementName(ArgumentSyntax node, CSharpParseOptions parseOptions) { // Tuple elements are arguments in a tuple expression if (node.NameColon == null || !node.IsParentKind(SyntaxKind.TupleExpression)) { return(false); } if (parseOptions.LanguageVersion < LanguageVersion.CSharp7_1) { return(false); } if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) { return(false); } var inferredName = node.Expression.TryGetInferredMemberName(); if (inferredName == null || inferredName != node.NameColon.Name.Identifier.ValueText) { return(false); } return(true); }
private bool IsPassedToDelegateCreationExpression(ArgumentSyntax argument, ITypeSymbol type) { if (type.IsDelegateType() && argument.IsParentKind(SyntaxKind.ArgumentList) && argument.Parent.IsParentKind(SyntaxKind.ObjectCreationExpression)) { var objectCreationExpression = (ObjectCreationExpressionSyntax)argument.Parent.Parent; var objectCreationType = _semanticModel.GetTypeInfo(objectCreationExpression).Type; if (objectCreationType.Equals(type)) { return(true); } } return(false); }
private static ArgumentSyntax SimplifyTupleName(ArgumentSyntax node, SemanticModel semanticModel, OptionSet optionSet, CancellationToken cancellationToken) { // Tuple elements are arguments in a tuple expression if (node.NameColon == null || !node.IsParentKind(SyntaxKind.TupleExpression)) { return(node); } var inferredName = node.Expression.TryGetInferredMemberName(); if (inferredName == null || inferredName != node.NameColon.Name.Identifier.ValueText) { return(node); } return(node.WithNameColon(null).WithTriviaFrom(node)); }