@@ -8,7 +8,6 @@ namespace StyleCop.Analyzers.Test.CSharp7.NamingRules
88 using Microsoft . CodeAnalysis . Testing ;
99 using StyleCop . Analyzers . Lightup ;
1010 using StyleCop . Analyzers . NamingRules ;
11- using StyleCop . Analyzers . Settings . ObjectModel ;
1211 using Xunit ;
1312 using static StyleCop . Analyzers . Test . Verifiers . StyleCopCodeFixVerifier <
1413 StyleCop . Analyzers . NamingRules . SA1316TupleElementNamesShouldUseCorrectCasing ,
@@ -170,6 +169,40 @@ public void TestMethod()
170169 await VerifyCSharpDiagnosticAsync ( LanguageVersionEx . CSharp7_1 , testCode , settings , DiagnosticResult . EmptyDiagnosticResults , CancellationToken . None ) . ConfigureAwait ( false ) ;
171170 }
172171
172+ /// <summary>
173+ /// Validates the properly explicitly named tuple elements, even when using inferred tuple element names, will not produce diagnostics.
174+ /// </summary>
175+ /// <param name="settings">The test settings to use.</param>
176+ /// <param name="tupleElementName1">The expected tuple element name for the first field.</param>
177+ /// <param name="tupleElementName2">The expected tuple element name for the second field.</param>
178+ /// <returns>A <see cref="Task"/> representing the asynchronous unit test.</returns>
179+ [ Theory ]
180+ [ InlineData ( CamelCaseInferredTestSettings , "elementName1" , "elementName2" , "ElementValue1" , "ElementValue2" ) ]
181+ [ InlineData ( PascalCaseInferredTestSettings , "ElementName1" , "ElementName2" , "elementValue1" , "elementValue2" ) ]
182+ public async Task ValidateProperCasedExplicitNamesEvenWithInferredTupleElementNamesAsync ( string settings , string tupleElementName1 , string tupleElementName2 , string tupleInferred1 , string tupleInferred2 )
183+ {
184+ var testCode = $@ "
185+ public class TestClass
186+ {{
187+ public void TestMethod1()
188+ {{
189+ var { tupleInferred1 } = 1;
190+ var { tupleInferred2 } = ""test"";
191+ var tuple = ({ tupleElementName1 } : { tupleInferred1 } , { tupleElementName2 } : { tupleInferred2 } );
192+ }}
193+
194+ public void TestMethod2()
195+ {{
196+ var { tupleInferred1 } = 1;
197+ var { tupleElementName2 } = ""test"";
198+ var tuple = ({ tupleElementName1 } : { tupleInferred1 } , { tupleElementName2 } );
199+ }}
200+ }}
201+ " ;
202+
203+ await VerifyCSharpDiagnosticAsync ( LanguageVersionEx . CSharp7_1 , testCode , settings , DiagnosticResult . EmptyDiagnosticResults , CancellationToken . None ) . ConfigureAwait ( false ) ;
204+ }
205+
173206 /// <summary>
174207 /// Validates the improperly named tuple element names will produce the expected diagnostics.
175208 /// </summary>
0 commit comments