diff options
author | Timotheus Pokorra <timotheus.pokorra@solidcharity.com> | 2019-08-09 07:00:01 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2019-08-12 23:07:15 +0300 |
commit | 9fd453f4282514f42c59483935ab82a651e5a403 (patch) | |
tree | d7028e01db8f1fb8f8fc947113f55bf3697f3829 | |
parent | bdfe0af88cc7934cff468999386ca50cbce6e2e9 (diff) |
Cecil 0.10: The property VariableReference.Name has been removed
see https://cecil.pe/post/149243207656/mono-cecil-010-beta-1
9 files changed, 33 insertions, 15 deletions
diff --git a/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs b/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs index 73e03e4f..7b4c8c0c 100644 --- a/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs +++ b/gendarme/framework/Gendarme.Framework.Rocks/VariableDefinitionRocks.cs @@ -43,7 +43,7 @@ namespace Gendarme.Framework.Rocks { if (self == null) return false; - string name = self.Name; + string name = String.Empty; // self.Name is not valid anymore since Mono.Cecil 0.10 if (String.IsNullOrEmpty (name)) return true; @@ -54,7 +54,8 @@ namespace Gendarme.Framework.Rocks { { if (self == null) return String.Empty; - return !string.IsNullOrEmpty (self.Name) ? self.Name : "V_" + self.Index.ToString (CultureInfo.InvariantCulture); + string name = String.Empty; // self.Name is not valid anymore since Mono.Cecil 0.10 + return !string.IsNullOrEmpty (name) ? name : "V_" + self.Index.ToString (CultureInfo.InvariantCulture); } } } diff --git a/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs b/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs index 843c9b84..c229c104 100644 --- a/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs +++ b/gendarme/rules/Gendarme.Rules.Concurrency/ProtectCallToEventDelegatesRule.cs @@ -171,7 +171,8 @@ namespace Gendarme.Rules.Concurrency { // look for the variable, if it's not then stop analysis VariableDefinition load = caller.GetVariable (method); if ((load != null) && !CheckVariable (method, caller, load)) { - string msg = String.Format (CultureInfo.InvariantCulture, "Variable '{0}' does not seems to be checked against null.", load.Name); + string name = String.Empty; // load.Name is not valid since Cecil 0.10 + string msg = String.Format (CultureInfo.InvariantCulture, "Variable '{0}' does not seems to be checked against null.", name); Runner.Report (method, ins, Severity.High, Confidence.Normal, msg); } } diff --git a/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs index 8d967669..7331e74b 100644 --- a/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs +++ b/gendarme/rules/Gendarme.Rules.Correctness/AvoidCodeWithSideEffectsInConditionalCodeRule.cs @@ -145,8 +145,10 @@ namespace Gendarme.Rules.Correctness { } else if (ins.IsStoreLocal ()) { VariableDefinition vd = ins.GetVariable (method); - if (!vd.IsGeneratedName ()) - name = "local " + vd.Name; + if (!vd.IsGeneratedName ()) { + string variableName = String.Empty; // vd.Name is not valid since Cecil 0.10 + name = "local " + variableName; + } } else if (ins.OpCode.Code == Code.Stfld || ins.OpCode.Code == Code.Stsfld) { FieldReference fr = ins.Operand as FieldReference; diff --git a/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs index 6d1c73db..2fa32196 100644 --- a/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs +++ b/gendarme/rules/Gendarme.Rules.Correctness/EnsureLocalDisposalRule.cs @@ -344,7 +344,8 @@ namespace Gendarme.Rules.Correctness { string tname = variable.VariableType.Name; if (variable.IsGeneratedName ()) return String.Format (CultureInfo.InvariantCulture, "of type '{0}' ", tname); - return String.Format (CultureInfo.InvariantCulture, "'{0}' of type '{1}' ", variable.Name, tname); + string variableName = String.Empty; // variable.Name is not valid anymore since Cecil 0.10 + return String.Format (CultureInfo.InvariantCulture, "'{0}' of type '{1}' ", variableName, tname); } static OpCodeBitmask BuildCallsAndNewobjOpCodeBitmask () diff --git a/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs b/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs index 272f86e7..1ccef2fd 100644 --- a/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs +++ b/gendarme/rules/Gendarme.Rules.Correctness/ReviewDoubleAssignmentRule.cs @@ -114,7 +114,8 @@ namespace Gendarme.Rules.Correctness { if (stfld.TraceBack (method).GetOperand (method) != next.TraceBack (method).GetOperand (method)) return String.Empty; - return String.Format (CultureInfo.InvariantCulture, "Instance field '{0}' on same variable '{1}'.", fd1.Name, vd1.Name); + string vd1Name = String.Empty; // vd1.Name is not valid anymore since Cecil 0.10 + return String.Format (CultureInfo.InvariantCulture, "Instance field '{0}' on same variable '{1}'.", fd1.Name, vd1Name); } static string CheckDoubleAssignement (MethodDefinition method, Instruction ins, Instruction next) @@ -142,7 +143,8 @@ namespace Gendarme.Rules.Correctness { if (vd1.Index != vd2.Index) return String.Empty; - return String.Format (CultureInfo.InvariantCulture, "Local variable '{0}'.", vd1.Name); + string vd1Name = String.Empty; // vd1.Name is not valid since Cecil 0.10 + return String.Format (CultureInfo.InvariantCulture, "Local variable '{0}'.", vd1Name); } else if (next.OpCode.Code == Code.Stfld) { // instance fields are a bit more complex... return CheckDoubleAssignementOnInstanceFields (method, ins, next); diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs index efe46539..c3c0a86e 100644 --- a/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs +++ b/gendarme/rules/Gendarme.Rules.Maintainability/PreferStringIsNullOrEmptyRule.cs @@ -111,10 +111,15 @@ namespace Gendarme.Rules.Maintainability { case Code.Ldloc_2: case Code.Ldloc_3: int vindex = ins.OpCode.Code - Code.Ldloc_0; - return method.Body.Variables [vindex].Name; + string name; + if (method.DebugInformation.TryGetName(method.Body.Variables [vindex], out name)) { + return name; + } + return String.Empty; case Code.Ldloc: case Code.Ldloc_S: - return (ins.Operand as VariableDefinition).Name; + //return (ins.Operand as VariableDefinition).Name; not valid since Cecil 0.10 + return String.Empty; default: object o = ins.Operand; MemberReference mr = (o as MemberReference); diff --git a/gendarme/rules/Gendarme.Rules.Maintainability/VariableNamesShouldNotMatchFieldNamesRule.cs b/gendarme/rules/Gendarme.Rules.Maintainability/VariableNamesShouldNotMatchFieldNamesRule.cs index c62a932e..a9effdff 100644 --- a/gendarme/rules/Gendarme.Rules.Maintainability/VariableNamesShouldNotMatchFieldNamesRule.cs +++ b/gendarme/rules/Gendarme.Rules.Maintainability/VariableNamesShouldNotMatchFieldNamesRule.cs @@ -113,8 +113,9 @@ namespace Gendarme.Rules.Maintainability { // if the name is compiler generated or if we do not have debugging symbols... if (var.IsGeneratedName ()) continue; - if (fields.Contains (var.Name)) - Runner.Report (method, Severity.Medium, Confidence.Normal, var.Name); + // var.Name is not valid anymore since Cecil 0.10 + //if (fields.Contains (var.Name)) + // Runner.Report (method, Severity.Medium, Confidence.Normal, var.Name); } } } diff --git a/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs b/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs index ac4ece92..2dbd3b99 100644 --- a/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs +++ b/gendarme/rules/Gendarme.Rules.Performance/RemoveUnusedLocalVariablesRule.cs @@ -133,8 +133,9 @@ namespace Gendarme.Rules.Performance { if (variable.IsGeneratedName ()) continue; + string variableName = String.Empty; // variable.Name is not valid anymore since Cecil 0.10 string s = String.Format (CultureInfo.InvariantCulture, "Variable '{0}' of type '{1}'", - variable.Name, variable.VariableType.GetFullName ()); + variableName, variable.VariableType.GetFullName ()); Runner.Report (method, Severity.Low, Confidence.Normal, s); } } diff --git a/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs b/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs index 92b597a0..3e263c64 100644 --- a/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs +++ b/gendarme/rules/Gendarme.Rules.Portability/DoNotHardcodePathsRule.cs @@ -337,8 +337,12 @@ namespace Gendarme.Rules.Portability { CheckIdentifier ((afterLdstr.Operand as FieldReference).Name); break; default: - if (afterLdstr.IsStoreLocal ()) - CheckIdentifier (afterLdstr.GetVariable (method_body.Method).Name); + if (afterLdstr.IsStoreLocal ()) { + string name; + if (method_body.Method.DebugInformation.TryGetName(afterLdstr.GetVariable (method_body.Method), out name)) { + CheckIdentifier (name); + } + } else return false; break; |