@@ -10,7 +10,7 @@ internal class CodeFix
1010 {
1111 private static readonly DiagnosticAnalyzer Analyzer = new GetXAnalyzer ( ) ;
1212 private static readonly CodeFixProvider Fix = new BindingFlagsFix ( ) ;
13- private static readonly ExpectedDiagnostic ExpectedDiagnostic = ExpectedDiagnostic . Create ( "REFL006" ) ;
13+ private static readonly ExpectedDiagnostic ExpectedDiagnostic = ExpectedDiagnostic . Create ( REFL006RedundantBindingFlags . Descriptor ) ;
1414
1515 [ TestCase ( "Static" , "BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Instance" , "BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly" ) ]
1616 [ TestCase ( "Static" , "BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.NonPublic" , "BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly" ) ]
@@ -173,5 +173,41 @@ private class Private
173173 var message = $ "The binding flags can be more precise. Expected: { expected } .";
174174 AnalyzerAssert . CodeFix ( Analyzer , Fix , ExpectedDiagnostic . WithMessage ( message ) , code , fixedCode ) ;
175175 }
176+
177+ [ TestCase ( "GetConstructor(↓BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly, null, Type.EmptyTypes, null)" ) ]
178+ [ TestCase ( "GetConstructor(↓BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy, null, Type.EmptyTypes, null)" ) ]
179+ public void GetConstructor ( string call )
180+ {
181+ var code = @"
182+ namespace RoslynSandbox
183+ {
184+ using System;
185+ using System.Reflection;
186+
187+ class Foo
188+ {
189+ public Foo()
190+ {
191+ var member = typeof(Foo).GetConstructor(↓BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly, null, Type.EmptyTypes, null);
192+ }
193+ }
194+ }" . AssertReplace ( "GetConstructor(↓BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly, null, Type.EmptyTypes, null)" , call ) ;
195+ var fixedCode = @"
196+ namespace RoslynSandbox
197+ {
198+ using System;
199+ using System.Reflection;
200+
201+ class Foo
202+ {
203+ public Foo()
204+ {
205+ var member = typeof(Foo).GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, Type.EmptyTypes, null);
206+ }
207+ }
208+ }" ;
209+ var message = "The binding flags can be more precise. Expected: BindingFlags.Public | BindingFlags.Instance." ;
210+ AnalyzerAssert . CodeFix ( Analyzer , Fix , ExpectedDiagnostic . WithMessage ( message ) , code , fixedCode ) ;
211+ }
176212 }
177213}
0 commit comments