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..329b9fa0fc2c83c7b0aabaa9c389a809de785919 100644 --- a/src/EditorFeatures/TestUtilities/CodeActions/AbstractCodeActionOrUserDiagnosticTest.cs +++ b/src/EditorFeatures/TestUtilities/CodeActions/AbstractCodeActionOrUserDiagnosticTest.cs @@ -534,25 +534,68 @@ protected static IList FlattenActions(IEnumerable codeAc : new[] { a }).ToList(); } - protected IDictionary Option(IOption option, CodeStyleOption notification) + protected (OptionKey, object) SingleOption(Option> option, bool enabled, NotificationOption notification) + => throw new Exception(); + + protected (OptionKey, object) SingleOption(Option> option, CodeStyleOption codeStyle) + => throw new Exception(); + + protected (OptionKey, object) SingleOption(PerLanguageOption> option, bool enabled, NotificationOption notification) + => throw new Exception(); + + protected (OptionKey, object) SingleOption(PerLanguageOption> option, CodeStyleOption codeStyle) + => throw new Exception(); + + protected (OptionKey, object) SingleOption(PerLanguageOption> option, CodeStyleOption codeStyle, string language) + => throw new Exception(); + + 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 IDictionary OptionsSet( + params (OptionKey key, object value)[] options) + { + var result = new Dictionary(); + foreach (var option in options) + { + result.Add(option.key, option.value); + } + + return result; + } + +#if false + protected IDictionary SingleOption(IOption option, CodeStyleOption notification) => Option(option, notification.Value, notification.Notification); - protected IDictionary Option(IOption option, bool value, NotificationOption notification) - => OptionsSet(Tuple.Create(option, value, notification)); + protected IDictionary SingleOption(IOption option, bool value, NotificationOption notification) + => Options((option, value, notification)); + + protected IDictionary Options(params (IOption option, bool enabled, NotificationOption notification)[] optionsToSet) + => Options(optionsToSet.Select(vt => ( + optionKey: new OptionKey(vt.option, vt.option.IsPerLanguage ? GetLanguage() : null), + value: (object)new CodeStyleOption(vt.enabled, vt.notification))).ToArray()); - protected IDictionary OptionsSet(params Tuple[] optionsToSet) + protected IDictionary Options( + params (OptionKey key, object value)[] optionsToSet) { var options = new Dictionary(); - foreach (var triple in optionsToSet) + foreach (var option in optionsToSet) { - 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)); + options.Add(option.key, option.value); } return options; } +#endif } } \ No newline at end of file diff --git a/src/EditorFeatures/TestUtilities/OptionExtensions.cs b/src/EditorFeatures/TestUtilities/OptionExtensions.cs index 3bea45a6af7c4170be10fe66727baa9d129711df..efe3d88ce53105ac286d97d941e126b318412c21 100644 --- a/src/EditorFeatures/TestUtilities/OptionExtensions.cs +++ b/src/EditorFeatures/TestUtilities/OptionExtensions.cs @@ -8,6 +8,7 @@ namespace Microsoft.CodeAnalysis.Editor.UnitTests { internal static class OptionExtensions { +#if false internal static IDictionary With(this IDictionary options, OptionKey option, object value) { options.Add(option, value); @@ -19,5 +20,6 @@ internal static class OptionExtensions options.Add(new OptionKey(option, language), value); return options; } +#endif } }