internal SyntaxNode CreateOrdinalMemberAccess(SyntaxGenerator syntaxFactoryService, SemanticModel model) { var stringComparisonType = WellKnownTypes.StringComparison(model.Compilation); return syntaxFactoryService.MemberAccessExpression( syntaxFactoryService.TypeExpression(stringComparisonType), syntaxFactoryService.IdentifierName(CA1309DiagnosticAnalyzer.OrdinalText)); }
internal SyntaxNode CreateEqualsExpression(SyntaxGenerator syntaxFactoryService, SemanticModel model, SyntaxNode operand1, SyntaxNode operand2, bool isEquals) { var stringType = model.Compilation.GetSpecialType(SpecialType.System_String); var memberAccess = syntaxFactoryService.MemberAccessExpression( syntaxFactoryService.TypeExpression(stringType), syntaxFactoryService.IdentifierName(CA1309DiagnosticAnalyzer.EqualsMethodName)); var ordinal = CreateOrdinalMemberAccess(syntaxFactoryService, model); var invocation = syntaxFactoryService.InvocationExpression( memberAccess, operand1, operand2.WithTrailingTrivia(), ordinal) .WithAdditionalAnnotations(Formatter.Annotation); if (!isEquals) { invocation = syntaxFactoryService.LogicalNotExpression(invocation); } invocation = invocation.WithTrailingTrivia(operand2.GetTrailingTrivia()); return invocation; }
internal SyntaxNode CreateCharSetArgument(SyntaxGenerator syntaxFactoryService, INamedTypeSymbol charSetType) { return syntaxFactoryService.MemberAccessExpression( syntaxFactoryService.TypeExpression(charSetType), syntaxFactoryService.IdentifierName(UnicodeText)); }
internal SyntaxNode CreateMarshalAsArgument(SyntaxGenerator syntaxFactoryService, INamedTypeSymbol unmanagedType) { return syntaxFactoryService.MemberAccessExpression( syntaxFactoryService.TypeExpression(unmanagedType), syntaxFactoryService.IdentifierName(LPWStrText)); }
private static SyntaxNode GetDefaultEqualityComparer( SyntaxGenerator factory, Compilation compilation, ISymbol member) { var equalityComparerType = compilation.EqualityComparerOfTType(); var constructedType = equalityComparerType.Construct(GetType(compilation, member)); return factory.MemberAccessExpression( factory.TypeExpression(constructedType), factory.IdentifierName(DefaultName)); }