https://bugzilla.novell.com/show_bug.cgi?id=665161
https://bugzilla.novell.com/show_bug.cgi?id=665161#c0 Summary: Spurious ConsiderAddingInterfaceRule / No Source Lines Classification: Mono Product: Mono: Tools Version: 2.10.x Platform: 64bit OS/Version: Windows 7 Status: NEW Severity: Normal Priority: P5 - None Component: Gendarme AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=408848) --> (http://bugzilla.novell.com/attachment.cgi?id=408848) Demonstrates unnecessary ConsiderAddingInterfaceRule User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16 There are two issues demonstrated in the attachment (though the line numbering isn't really a problem since the issues should not be generated in the first place). In an interface hiearchy, Gendarme seems to get confused and generates unnecessary ConsiderAddingInterfaceRule defects. Reproducible: Always Steps to Reproduce: 1.Run Gendarme 2.10.x against the attached assemblies 2. 3. Actual Results: 3. ConsiderAddingInterfaceRule Problem: This type implements an interface's members, but does not implement the interface. * Severity: Medium, Confidence: High * Target: EPS.Web.Authentication.Abstractions.IHttpContextInspectingAuthenticationFailureHandler`1 * Location: EPS.Web.Authentication.Abstractions.IHttpContextInspectingAuthenticator`1 * Details: Type implements 'EPS.Web.Authentication.Abstractions.IHttpContextInspectingAuthenticator`1' interface but does not declare it. Solution: If the semantics of the type's members are compatible with the interface then inherit from the interface. Otherwise ignore the defect. More info available at: https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design.ConsiderAddingInterfaceRule(2.10) 4. ConsiderAddingInterfaceRule Problem: This type implements an interface's members, but does not implement the interface. * Severity: Medium, Confidence: High * Target: EPS.Web.Authentication.Abstractions.HttpContextInspectingAuthenticationFailureHandlerBase`1 * Location: EPS.Web.Authentication.Abstractions.IHttpContextInspectingAuthenticator`1 * Details: Type implements 'EPS.Web.Authentication.Abstractions.IHttpContextInspectingAuthenticator`1' interface but does not declare it. Solution: If the semantics of the type's members are compatible with the interface then inherit from the interface. Otherwise ignore the defect. More info available at: https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design.ConsiderAddingInterfaceRule(2.10) Expected Results: Defect 3 doesn't really make any sense. Here are the relevant interface definitions: public interface IHttpContextInspectingAuthenticationFailureHandler<T> : IHttpContextInspectingAuthenticationFailureHandler where T : HttpContextInspectingAuthenticationFailureConfigurationSection { new IPrincipal OnAuthenticationFailure(HttpContextBase context, Dictionary<IHttpContextInspectingAuthenticator, InspectorAuthenticationResult> inspectorResults); new T Configuration { get; } } and IHttpContextInspectingAuthenticator<T> looks like this: public interface IHttpContextInspectingAuthenticator<out T> : IHttpContextInspectingAuthenticator where T : HttpContextInspectingAuthenticatorConfigurationElement { new T Configuration { get; } } where its base interface is: public interface IHttpContextInspectingAuthenticator { string Name { get; } InspectorAuthenticationResult Authenticate(HttpContextBase context); HttpContextInspectingAuthenticatorConfigurationElement Configuration { get; } } Gednarme seems to be ignoring the base interface. Defect 4 is a similar scenario. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
