dotnet/roslyn

TypedConstant.ToCSharpString/ToVisualBasicString should exclude bitwise or value of 0

Open

#74,326 opened on Jul 10, 2024

View on GitHub
 (4 comments) (1 reaction) (0 assignees)C# (4,257 forks)batch import
Area-CompilersBughelp wanted

Repository metrics

Stars
 (20,414 stars)
PR merge metrics
 (Avg merge 6d 17h) (256 merged PRs in 30d)

Description

Version Used: 4.7.0

Steps to Reproduce:

  1. Define FlagEnum:
[Flags]
public enum FlagEnum
{
    None = 0,
    Flag1 = 1,
    Flag2 = 2,
    Flag3 = 4,
}
  1. Get an instance of TypedConstant with value FlagEnum.Flag1 | FlagEnum.Flag3;
  2. Call TypedConstant.ToCSharpString()/ToVisualBasicString().

Expected Behavior: Returns FlagEnum.Flag1 | FlagEnum.Flag3 in C#, or FlagEnum.Flag1 Or FlagEnum.Flag3 in VisualBasic.

Actual Behavior: Returns FlagsEnum.None | FlagEnum.Flag1 | FlagEnum.Flag3 in C#, or FlagEnum.None Or FlagEnum.Flag1 Or FlagEnum.Flag3 in VisualBasic.

Contributor guide