When I try to create an identifier using the Roslyn SyntaxGenerator.IdentifierName
for a primitive type, it adds an escape to the Identifier.Text
.
var generator = SyntaxGenerator.GetGenerator(document);
// genericTypeArg.Identifier.ValueText = "@double"
var genericTypeArg = generator.IdentifierName("double");
// generic.Identifier.ValueText = "IEnumerable<@double>"
var generic = generator.GenericName("IEnumerable", genericTypeArg);
Any ideas how to create the type identifier without it being escaped?
Edit:
Would this be a valid way to test?
var typeExp = typeSymbol.SpecialType == SpecialType.None
? _generator.IdentifierName(typeSymbol.ToDisplayString(symbolDisplayFormat));
: _generator.TypeExpression(typeSymbol.SpecialType)
var generic = _generator.GenericName("IEnumerable", typeExp);