dotnet/roslyn

ToCSharpString outputs floats without a type suffix

Open

#76 061 ouverte le 24 nov. 2024

Voir sur GitHub
 (4 commentaires) (1 réaction) (0 assignés)C# (4 257 forks)batch import
Area-Compilershelp wanted

Métriques du dépôt

Stars
 (20 414 stars)
Métriques de merge PR
 (Merge moyen 6j 17h) (256 PRs mergées en 30 j)

Description

Version Used:

<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" PrivateAssets="all" />

Steps to Reproduce:

  1. Use ToCSharpString on any TypedConstant that represents a float

Expected Behavior:

It produces a string that represents the float and could be used to initialise a new float in C#, i.e., 0.5f

Actual Behavior:

It produces a string without a type suffix, i.e., 0.5

Use case:

I'm creating a source generator that generates source code based on NamedArguments in AttributeData. When the named argument's value is retrieved, I use arg[x].Value.ToCSharpString() to turn the value into a string to place in the generated code and the string being generated for floats is causing compile errors

Guide contributeur