diff --git a/src/EditorFeatures/CSharpTest/CodeActions/EncapsulateField/EncapsulateFieldTests.cs b/src/EditorFeatures/CSharpTest/CodeActions/EncapsulateField/EncapsulateFieldTests.cs index 3dd6385c9c1efa3971a092bcf9bb8c99a7f54405..eab682baed8e098e41c02f3938de2e0a5d17b11d 100644 --- a/src/EditorFeatures/CSharpTest/CodeActions/EncapsulateField/EncapsulateFieldTests.cs +++ b/src/EditorFeatures/CSharpTest/CodeActions/EncapsulateField/EncapsulateFieldTests.cs @@ -170,8 +170,8 @@ void baz() "; await TestAsync(text, expected, options: OptionsSet( - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedProperties, true, NotificationOption.None), - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedProperties, true, NotificationOption.None), + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); } [Fact, Trait(Traits.Feature, Traits.Features.EncapsulateField)] diff --git a/src/EditorFeatures/CSharpTest/CodeActions/IntroduceVariable/IntroduceVariableTests.cs b/src/EditorFeatures/CSharpTest/CodeActions/IntroduceVariable/IntroduceVariableTests.cs index 33a112827038f25807356bbe61aafdb60b3a2354..901d075685caa28b773474a36bbd82b39c5ee225 100644 --- a/src/EditorFeatures/CSharpTest/CodeActions/IntroduceVariable/IntroduceVariableTests.cs +++ b/src/EditorFeatures/CSharpTest/CodeActions/IntroduceVariable/IntroduceVariableTests.cs @@ -24,9 +24,10 @@ protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspa // specify all options explicitly to override defaults. private IDictionary ImplicitTypingEverywhere() => - OptionSet(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo); + OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo)); internal IDictionary OptionSet(OptionKey option, object value) { diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/GenerateVariable/GenerateVariableTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/GenerateVariable/GenerateVariableTests.cs index 3406b16e7584ea44ed8262825254de2bcb925c4a..12f08ca375f076dcb09b49d9ce678ee3ccb63cf6 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/GenerateVariable/GenerateVariableTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/GenerateVariable/GenerateVariableTests.cs @@ -28,10 +28,10 @@ public class GenerateVariableTests : AbstractCSharpDiagnosticProviderBasedUserDi private readonly CodeStyleOption onWithInfo = new CodeStyleOption(true, NotificationOption.Suggestion); // specify all options explicitly to override defaults. - private IDictionary ImplicitTypingEverywhere() => - OptionSet(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo); + private IDictionary ImplicitTypingEverywhere() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo)); internal IDictionary OptionSet(OptionKey option, object value) { diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/ImplementAbstractClass/ImplementAbstractClassTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/ImplementAbstractClass/ImplementAbstractClassTests.cs index c1ee855d8d833c2c822780e7befb5e2dc51038c5..0668a01fedd829f3fd9acc325eb23423d5def8e2 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/ImplementAbstractClass/ImplementAbstractClassTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/ImplementAbstractClass/ImplementAbstractClassTests.cs @@ -1257,8 +1257,8 @@ public override int M } } }", options: OptionsSet( - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedProperties, true, NotificationOption.None), - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedProperties, true, NotificationOption.None), + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); } [WorkItem(581500, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/581500")] @@ -1296,8 +1296,8 @@ public override int M } } }", options: OptionsSet( - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedProperties, true, NotificationOption.None), - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedProperties, true, NotificationOption.None), + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); } [WorkItem(581500, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/581500")] @@ -1356,8 +1356,8 @@ class T : A } } }", options: OptionsSet( - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedIndexers, true, NotificationOption.None), - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedIndexers, true, NotificationOption.None), + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); } [WorkItem(581500, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/581500")] @@ -1395,8 +1395,8 @@ class T : A } } }", options: OptionsSet( - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedIndexers, true, NotificationOption.None), - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedIndexers, true, NotificationOption.None), + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, false, NotificationOption.None))); } [WorkItem(581500, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/581500")] @@ -1426,8 +1426,8 @@ public override int M get => throw new NotImplementedException(); } }", options: OptionsSet( - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedProperties, false, NotificationOption.None), - Tuple.Create((IOption)CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, true, NotificationOption.None))); + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedProperties, false, NotificationOption.None), + SingleOption(CSharpCodeStyleOptions.PreferExpressionBodiedAccessors, true, NotificationOption.None))); } [WorkItem(581500, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/581500")] diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.cs index 67987bde53f4ad75e27d205c15180c1ff48288b5..94a4821e1661c4f6edca2b27edfb37da8d217ac7 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.cs @@ -24,21 +24,21 @@ public partial class PreferFrameworkTypeTests : AbstractCSharpDiagnosticProvider private readonly CodeStyleOption onWithInfo = new CodeStyleOption(true, NotificationOption.Suggestion); private readonly CodeStyleOption offWithInfo = new CodeStyleOption(false, NotificationOption.Suggestion); - private IDictionary NoFrameworkType => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Suggestion) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, onWithInfo, GetLanguage()); + private IDictionary NoFrameworkType => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, onWithInfo, GetLanguage())); - private IDictionary FrameworkTypeEverywhere => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, false, NotificationOption.Suggestion) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, offWithInfo, GetLanguage()); + private IDictionary FrameworkTypeEverywhere => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, false, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, offWithInfo, GetLanguage())); - private IDictionary FrameworkTypeInDeclaration => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, false, NotificationOption.Suggestion) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, onWithInfo, GetLanguage()); + private IDictionary FrameworkTypeInDeclaration => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, false, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, onWithInfo, GetLanguage())); - private IDictionary FrameworkTypeInMemberAccess => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Suggestion) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, offWithInfo, GetLanguage()); + private IDictionary FrameworkTypeInMemberAccess => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, offWithInfo, GetLanguage())); [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseFrameworkType)] public async Task NotWhenOptionsAreNotSet() diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.cs index 812e2b6400aa74235b96eb97e38ac9947fddb1df..ae1171423b1a7c3cfe952116b9c23f988ec2fca8 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.cs @@ -3770,17 +3770,17 @@ private async Task TestWithPredefinedTypeOptionsAsync(string code, string expect await TestAsync(code, expected, index, options: PreferIntrinsicTypeEverywhere); } - private IDictionary PreferIntrinsicTypeEverywhere => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Error) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, this.onWithError, GetLanguage()); + private IDictionary PreferIntrinsicTypeEverywhere => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Error), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, this.onWithError, GetLanguage())); - private IDictionary PreferIntrinsicTypeInDeclaration => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Error) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, this.offWithNone, GetLanguage()); + private IDictionary PreferIntrinsicTypeInDeclaration => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, true, NotificationOption.Error), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, this.offWithNone, GetLanguage())); - private IDictionary PreferIntrinsicTypeInMemberAccess => - Option(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, true, NotificationOption.Error) - .With(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, this.offWithNone, GetLanguage()); + private IDictionary PreferIntrinsicTypeInMemberAccess => OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, true, NotificationOption.Error), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, this.offWithNone, GetLanguage())); private readonly CodeStyleOption onWithNone = new CodeStyleOption(true, NotificationOption.None); private readonly CodeStyleOption offWithNone = new CodeStyleOption(false, NotificationOption.None); diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.cs index c035224ff12329000c14794d836a99843cb5d084..0bf20c37613a2c3bdd6887e16d1f0a0e08205394 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.cs @@ -932,8 +932,9 @@ void N() "; var options = OptionsSet( - Tuple.Create((IOption)CodeStyleOptions.QualifyPropertyAccess, false, NotificationOption.Suggestion), - Tuple.Create((IOption)CodeStyleOptions.QualifyFieldAccess, true, NotificationOption.Suggestion)); + SingleOption(CodeStyleOptions.QualifyPropertyAccess, false, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.QualifyFieldAccess, true, NotificationOption.Suggestion)); + await TestAsync( initialMarkup: input, expectedMarkup: expected, diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseExplicitTypeTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseExplicitTypeTests.cs index b9afdd3124ab4b35eb0e235e708a7c660663a91e..43c3f67f3837b5dc933966c055b98f135e12a7dc 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseExplicitTypeTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseExplicitTypeTests.cs @@ -34,30 +34,30 @@ public partial class UseExplicitTypeTests : AbstractCSharpDiagnosticProviderBase private readonly CodeStyleOption offWithError = new CodeStyleOption(false, NotificationOption.Error); // specify all options explicitly to override defaults. - private IDictionary ExplicitTypeEverywhere() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, offWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo); - - private IDictionary ExplicitTypeExceptWhereApparent() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo); - - private IDictionary ExplicitTypeForBuiltInTypesOnly() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo); - - private IDictionary ExplicitTypeEnforcements() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithWarning) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, offWithError) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo); - - private IDictionary ExplicitTypeNoneEnforcement() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithNone) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, offWithNone) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithNone); + private IDictionary ExplicitTypeEverywhere() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, offWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo)); + + private IDictionary ExplicitTypeExceptWhereApparent() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo)); + + private IDictionary ExplicitTypeForBuiltInTypesOnly() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo)); + + private IDictionary ExplicitTypeEnforcements() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithWarning), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, offWithError), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo)); + + private IDictionary ExplicitTypeNoneEnforcement() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithNone), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, offWithNone), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithNone)); private IDictionary Options(OptionKey option, object value) { diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseImplicitTypeTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseImplicitTypeTests.cs index 1fdd54555e52138e69eb47ed89ad609b61dce0d5..9b9c699627e1bd9df8db08b2bdbb6a056e54c048 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseImplicitTypeTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/UseImplicitOrExplicitType/UseImplicitTypeTests.cs @@ -34,35 +34,35 @@ public partial class UseImplicitTypeTests : AbstractCSharpDiagnosticProviderBase private static readonly CodeStyleOption offWithError = new CodeStyleOption(false, NotificationOption.Error); // specify all options explicitly to override defaults. - public static IDictionary ImplicitTypeEverywhere() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo); - - private IDictionary ImplicitTypeWhereApparent() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo); - - private IDictionary ImplicitTypeWhereApparentAndForIntrinsics() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo); - - public static IDictionary ImplicitTypeButKeepIntrinsics() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo); - - private IDictionary ImplicitTypeEnforcements() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithWarning) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithError) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo); - - private IDictionary ImplicitTypeNoneEnforcement() => - Options(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithNone) - .With(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithNone) - .With(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithNone); + public IDictionary ImplicitTypeEverywhere() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo)); + + private IDictionary ImplicitTypeWhereApparent() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo)); + + private IDictionary ImplicitTypeWhereApparentAndForIntrinsics() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, offWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo)); + + public IDictionary ImplicitTypeButKeepIntrinsics() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, offWithInfo), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithInfo)); + + private IDictionary ImplicitTypeEnforcements() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithWarning), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithError), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithInfo)); + + private IDictionary ImplicitTypeNoneEnforcement() => OptionsSet( + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWherePossible, onWithNone), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeWhereApparent, onWithNone), + SingleOption(CSharpCodeStyleOptions.UseImplicitTypeForIntrinsicTypes, onWithNone)); private static IDictionary Options(OptionKey option, object value) { diff --git a/src/EditorFeatures/CSharpTest/InlineDeclaration/CSharpInlineDeclarationTests.cs b/src/EditorFeatures/CSharpTest/InlineDeclaration/CSharpInlineDeclarationTests.cs index fa0e996030b5e9e6ecdd1aee08263152d6d9dca1..499c4bdf94c8eb1553fe7f6a35c7c935607598ca 100644 --- a/src/EditorFeatures/CSharpTest/InlineDeclaration/CSharpInlineDeclarationTests.cs +++ b/src/EditorFeatures/CSharpTest/InlineDeclaration/CSharpInlineDeclarationTests.cs @@ -209,7 +209,7 @@ void M(string v) { } } -}", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); +}", options: new UseImplicitTypeTests().ImplicitTypeEverywhere()); } [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsInlineDeclaration)] @@ -234,7 +234,7 @@ void M(string v) { } } -}", options: UseImplicitTypeTests.ImplicitTypeButKeepIntrinsics()); +}", options: new UseImplicitTypeTests().ImplicitTypeButKeepIntrinsics()); } [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsInlineDeclaration)] @@ -568,7 +568,7 @@ void M2(out int i) void M2(out string s) { } -}", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); +}", options: new UseImplicitTypeTests().ImplicitTypeEverywhere()); } [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsInlineDeclaration)] @@ -609,7 +609,7 @@ void M2(out int i) void M2(out string s) { } -}", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); +}", options: new UseImplicitTypeTests().ImplicitTypeEverywhere()); } [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsInlineDeclaration)] @@ -642,7 +642,7 @@ void M() void M2(out T i) { } -}", options: UseImplicitTypeTests.ImplicitTypeEverywhere()); +}", options: new UseImplicitTypeTests().ImplicitTypeEverywhere()); } [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsInlineDeclaration)] diff --git a/src/EditorFeatures/TestUtilities/CodeActions/AbstractCodeActionOrUserDiagnosticTest.cs b/src/EditorFeatures/TestUtilities/CodeActions/AbstractCodeActionOrUserDiagnosticTest.cs index a8e1dfa7c701f0b14d08cc2fb736def565210289..c9728bc3d93ea3ffac0d6a182223c8e5fc582942 100644 --- a/src/EditorFeatures/TestUtilities/CodeActions/AbstractCodeActionOrUserDiagnosticTest.cs +++ b/src/EditorFeatures/TestUtilities/CodeActions/AbstractCodeActionOrUserDiagnosticTest.cs @@ -534,25 +534,43 @@ protected static IList FlattenActions(IEnumerable codeAc : new[] { a }).ToList(); } - protected IDictionary Option(IOption option, CodeStyleOption notification) - => Option(option, notification.Value, notification.Notification); + protected (OptionKey, object) SingleOption(Option> option, bool enabled, NotificationOption notification) + => SingleOption(option, new CodeStyleOption(enabled, notification)); - protected IDictionary Option(IOption option, bool value, NotificationOption notification) - => OptionsSet(Tuple.Create(option, value, notification)); + protected (OptionKey, object) SingleOption(Option> option, CodeStyleOption codeStyle) + => (new OptionKey(option), codeStyle); - protected IDictionary OptionsSet(params Tuple[] optionsToSet) + protected (OptionKey, object) SingleOption(PerLanguageOption> option, bool enabled, NotificationOption notification) + => SingleOption(option, new CodeStyleOption(enabled, notification)); + + protected (OptionKey, object) SingleOption(PerLanguageOption> option, CodeStyleOption codeStyle) + => SingleOption(option, codeStyle, language: GetLanguage()); + + protected static (OptionKey, object) SingleOption(PerLanguageOption> option, CodeStyleOption codeStyle, string language) + => (new OptionKey(option, language), codeStyle); + + protected IDictionary Option(Option> option, bool enabled, NotificationOption notification) + => OptionsSet(SingleOption(option, enabled, notification)); + + protected IDictionary Option(Option> option, CodeStyleOption codeStyle) + => OptionsSet(SingleOption(option, codeStyle)); + + protected IDictionary Option(PerLanguageOption> option, bool enabled, NotificationOption notification) + => OptionsSet(SingleOption(option, enabled, notification)); + + protected IDictionary Option(PerLanguageOption> option, CodeStyleOption codeStyle) + => OptionsSet(SingleOption(option, codeStyle)); + + protected static IDictionary OptionsSet( + params (OptionKey key, object value)[] options) { - var options = new Dictionary(); - foreach (var triple in optionsToSet) + var result = new Dictionary(); + foreach (var option in options) { - var option = triple.Item1; - var value = triple.Item2; - var notification = triple.Item3; - var optionKey = new OptionKey(option, option.IsPerLanguage ? GetLanguage() : null); - options.Add(optionKey, new CodeStyleOption(value, notification)); + result.Add(option.key, option.value); } - return options; + return result; } } } \ No newline at end of file diff --git a/src/EditorFeatures/TestUtilities/OptionExtensions.cs b/src/EditorFeatures/TestUtilities/OptionExtensions.cs deleted file mode 100644 index 3bea45a6af7c4170be10fe66727baa9d129711df..0000000000000000000000000000000000000000 --- a/src/EditorFeatures/TestUtilities/OptionExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Generic; -using Microsoft.CodeAnalysis.CodeStyle; -using Microsoft.CodeAnalysis.Options; - -namespace Microsoft.CodeAnalysis.Editor.UnitTests -{ - internal static class OptionExtensions - { - internal static IDictionary With(this IDictionary options, OptionKey option, object value) - { - options.Add(option, value); - return options; - } - - internal static IDictionary With(this IDictionary options, PerLanguageOption> option, object value, string language) - { - options.Add(new OptionKey(option, language), value); - return options; - } - } -} diff --git a/src/EditorFeatures/TestUtilities/ServicesTestUtilities.csproj b/src/EditorFeatures/TestUtilities/ServicesTestUtilities.csproj index 1d821fbb972ea7c07d437739ed81790d245c21cd..710f3a7203197a8691089cd9e971278d57f208e3 100644 --- a/src/EditorFeatures/TestUtilities/ServicesTestUtilities.csproj +++ b/src/EditorFeatures/TestUtilities/ServicesTestUtilities.csproj @@ -199,7 +199,6 @@ - diff --git a/src/EditorFeatures/VisualBasicTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.vb b/src/EditorFeatures/VisualBasicTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.vb index 0d889b42356390a9a28dae045d9e0c7ff1c8e13f..428e51d539c39a71e6d100d8285e57aef39e0964 100644 --- a/src/EditorFeatures/VisualBasicTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.vb +++ b/src/EditorFeatures/VisualBasicTest/Diagnostics/PreferFrameworkType/PreferFrameworkTypeTests.vb @@ -23,29 +23,33 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Diagnostics.Prefer Private ReadOnly Property NoFrameworkType As IDictionary(Of OptionKey, Object) Get - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, True, NotificationOption.Suggestion).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.onWithInfo, GetLanguage()) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, True, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.onWithInfo, GetLanguage())) End Get End Property Private ReadOnly Property FrameworkTypeEverywhere As IDictionary(Of OptionKey, Object) Get - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, False, NotificationOption.Suggestion).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.offWithInfo, GetLanguage()) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, False, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.offWithInfo, GetLanguage())) End Get End Property Private ReadOnly Property FrameworkTypeInDeclaration As IDictionary(Of OptionKey, Object) Get - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, False, NotificationOption.Suggestion).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.onWithInfo, GetLanguage()) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, False, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.onWithInfo, GetLanguage())) End Get End Property Private ReadOnly Property FrameworkTypeInMemberAccess As IDictionary(Of OptionKey, Object) Get - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, False, NotificationOption.Suggestion).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, Me.onWithInfo, GetLanguage()) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, False, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, Me.onWithInfo, GetLanguage())) End Get End Property diff --git a/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.vb b/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.vb index 5f81e7b96181f5aa38a545109b0e523b427693b1..72e553522446531f05a6e8c2f85567103b200b7f 100644 --- a/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.vb +++ b/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests.vb @@ -23,22 +23,25 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Diagnostics.Simpli Private Function PreferIntrinsicPredefinedTypeEverywhere() As IDictionary(Of OptionKey, Object) Dim language = GetLanguage() - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, True, NotificationOption.Error).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.onWithError, language) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, True, NotificationOption.Error), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.onWithError, language)) End Function Private Function PreferIntrinsicPredefinedTypeInDeclaration() As IDictionary(Of OptionKey, Object) Dim language = GetLanguage() - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, True, NotificationOption.Error).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.offWithNone, language) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, True, NotificationOption.Error), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, Me.offWithNone, language)) End Function Private Function PreferIntrinsicTypeInMemberAccess() As IDictionary(Of OptionKey, Object) Dim language = GetLanguage() - Return [Option](CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, True, NotificationOption.Error).With( - CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, Me.offWithNone, language) + Return OptionsSet( + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess, True, NotificationOption.Error), + SingleOption(CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration, Me.offWithNone, language)) End Function Private ReadOnly onWithError = New CodeStyleOption(Of Boolean)(True, NotificationOption.Error) @@ -2444,7 +2447,7 @@ End Class") Public Async Function TestAppropriateDiagnosticOnMissingQualifier() As Task Await TestDiagnosticSeverityAndCountAsync( "Class C : Property SomeProperty As Integer : Sub M() : [|Me|].SomeProperty = 1 : End Sub : End Class", - options:=OptionsSet(Tuple.Create(DirectCast(CodeStyleOptions.QualifyPropertyAccess, IOption), False, NotificationOption.Error)), + options:=OptionsSet(SingleOption(CodeStyleOptions.QualifyPropertyAccess, False, NotificationOption.Error)), diagnosticCount:=1, diagnosticId:=IDEDiagnosticIds.RemoveQualificationDiagnosticId, diagnosticSeverity:=DiagnosticSeverity.Error) diff --git a/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.vb b/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.vb index 8fee539365ca897e67ddc37f833316d56248cd11..1ca813306e934246674d43a192ee544e53ce4338 100644 --- a/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.vb +++ b/src/EditorFeatures/VisualBasicTest/Diagnostics/SimplifyTypeNames/SimplifyTypeNamesTests_FixAllTests.vb @@ -790,8 +790,8 @@ End Class]]> .ToString() Dim options = OptionsSet( - Tuple.Create(DirectCast(CodeStyleOptions.QualifyPropertyAccess, IOption), False, NotificationOption.Suggestion), - Tuple.Create(DirectCast(CodeStyleOptions.QualifyFieldAccess, IOption), True, NotificationOption.Suggestion)) + SingleOption(CodeStyleOptions.QualifyPropertyAccess, False, NotificationOption.Suggestion), + SingleOption(CodeStyleOptions.QualifyFieldAccess, True, NotificationOption.Suggestion)) Await TestAsync( initialMarkup:=input, expectedMarkup:=expected,