http://bugzilla.novell.com/show_bug.cgi?id=622972
http://bugzilla.novell.com/show_bug.cgi?id=622972#c0 Summary: CheckParametersNullityInVisibleMethodsRule does not validate generic methods Classification: Mono Product: Mono: Tools Version: unspecified Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Gendarme AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Using this code that checks the nullity the report result is not correct: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MonoGendarmeSamples { using System.IO; public class GenericClass { public bool Test1<T>(T fs) where T:Stream { return fs.CanRead; } public bool Test2<T>(T fs) where T : Stream { if (fs == null) { return false; } return fs.CanRead; } public bool Test2Equals<T>(T fs) where T : Stream { if (Equals(fs, null)) { return false; } return fs.CanRead; } public bool Test2EqualsDefault<T>(T fs) where T : Stream { if (Equals(fs, default(Stream))) { return false; } return fs.CanRead; } public bool Test3<T>(T fs) where T : Stream { if (fs != null) { return fs.CanRead; } return false; } public bool Test3Equals<T>(T fs) where T : Stream { if (!Equals(fs, null)) { return fs.CanRead; } return false; } public bool Test3EqualsDefault<T>(T fs) where T : Stream { if (!Equals(fs, default(Stream))) { return fs.CanRead; } return false; } } } report: Gendarme Report Produced on 16.07.2010 12:41:53 UTC. Table of contents 1. Summary 1.1. List of assemblies searched 1.2. List of rules used 2. Reported defects 2.1. CheckParametersNullityInVisibleMethodsRule Summary Gendarme found 7 potential defects using 1 rules. List of assemblies analyzed [show] * C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\bin\Debug\MonoGendarmeSamples.dll: 7 defects List of rules used [show] Assembly: * None Type: * None Method: * Gendarme.Rules.Correctness.CheckParametersNullityInVisibleMethodsRule : 7 defects Reported Defects 1. CheckParametersNullityInVisibleMethodsRule [hide] Problem: A visible method does not check its parameter(s) for null values. Solution: Since the caller is unknown you should always verify all of your parameters to protect yourself. 7 defect(s) found: Target: System.Boolean MonoGendarmeSamples.GenericClass::Test1(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈13) Go to CheckParametersNullityInVisibleMethodsRule description Target: System.Boolean MonoGendarmeSamples.GenericClass::Test2(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈19) Go to CheckParametersNullityInVisibleMethodsRule description Target: System.Boolean MonoGendarmeSamples.GenericClass::Test2Equals(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈30) Go to CheckParametersNullityInVisibleMethodsRule description Target: System.Boolean MonoGendarmeSamples.GenericClass::Test2EqualsDefault(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈41) Go to CheckParametersNullityInVisibleMethodsRule description Target: System.Boolean MonoGendarmeSamples.GenericClass::Test3(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈52) Go to CheckParametersNullityInVisibleMethodsRule description Target: System.Boolean MonoGendarmeSamples.GenericClass::Test3Equals(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈63) Go to CheckParametersNullityInVisibleMethodsRule description Target: System.Boolean MonoGendarmeSamples.GenericClass::Test3EqualsDefault(T) Assembly: MonoGendarmeSamples, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Severity: High Confidence: Normal Location: fs Source: C:\wc\04_Prototypes\MonoGendarmeSamples\MonoGendarmeSamples\GenericClass.cs(≈74) Go to CheckParametersNullityInVisibleMethodsRule description -- Configure bugmail: http://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
