From 4cd291139806e21e577cd93461f3433657ea1579 Mon Sep 17 00:00:00 2001 From: jnm2 Date: Sat, 14 Dec 2019 20:43:13 -0500 Subject: [PATCH] Add a test for mismatching constant type --- .../PopulateSwitchExpressionTests.cs | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/EditorFeatures/CSharpTest/PopulateSwitch/PopulateSwitchExpressionTests.cs b/src/EditorFeatures/CSharpTest/PopulateSwitch/PopulateSwitchExpressionTests.cs index 45f6d09242d..f1b9d0be763 100644 --- a/src/EditorFeatures/CSharpTest/PopulateSwitch/PopulateSwitchExpressionTests.cs +++ b/src/EditorFeatures/CSharpTest/PopulateSwitch/PopulateSwitchExpressionTests.cs @@ -862,6 +862,53 @@ void Method() }", index: 2); } + [Fact] + public async Task NotAllMembersExist_NotDefault_WithMismatchingConstantType() + { + await TestInRegularAndScriptAsync( +@"enum MyEnum +{ + Fizz, + Buzz, + FizzBuzz +} + +class MyClass +{ + void Method() + { + var e = MyEnum.Fizz; + _ = e [||]switch + { + (MyEnum)0 => 1, + (MyEnum)1 => 2, + ""Mismatching constant"" => 3, + } + } +}", +@"enum MyEnum +{ + Fizz, + Buzz, + FizzBuzz +} + +class MyClass +{ + void Method() + { + var e = MyEnum.Fizz; + _ = e switch + { + (MyEnum)0 => 1, + (MyEnum)1 => 2, + ""Mismatching constant"" => 3, + _ => throw new System.NotImplementedException(), + } + } +}"); + } + [Fact] public async Task AllMissingTokens() { -- GitLab