Browse Source

Use ArgumentOutOfRangeException or BadImageFormatException in switch-default sections.

pull/1030/head
Siegfried Pammer 7 years ago
parent
commit
4540b93e19
  1. 3
      ICSharpCode.Decompiler/CSharp/StatementBuilder.cs
  2. 4
      ICSharpCode.Decompiler/Disassembler/MethodBodyDisassembler.cs
  3. 4
      ICSharpCode.Decompiler/IL/Instructions/Comp.cs
  4. 2
      ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs
  5. 2
      ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs
  6. 2
      ICSharpCode.Decompiler/Metadata/MetadataExtensions.cs
  7. 4
      ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs
  8. 3
      ICSharpCode.Decompiler/TypeSystem/MetadataAssembly.cs

3
ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

@ -874,8 +874,9 @@ namespace ICSharpCode.Decompiler.CSharp @@ -874,8 +874,9 @@ namespace ICSharpCode.Decompiler.CSharp
if (continueTarget.IncomingEdgeCount > continueCount)
blockStatement.Add(new LabelStatement { Label = continueTarget.Label });
return forStmt;
default:
throw new ArgumentOutOfRangeException();
}
throw new NotSupportedException();
}
BlockStatement ConvertBlockContainer(BlockContainer container, bool isLoop)

4
ICSharpCode.Decompiler/Disassembler/MethodBodyDisassembler.cs

@ -215,7 +215,7 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -215,7 +215,7 @@ namespace ICSharpCode.Decompiler.Disassembler
output.WriteLine("fault");
break;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException();
}
output.WriteLine("{");
break;
@ -224,7 +224,7 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -224,7 +224,7 @@ namespace ICSharpCode.Decompiler.Disassembler
output.WriteLine("{");
break;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException();
}
output.Indent();
}

4
ICSharpCode.Decompiler/IL/Instructions/Comp.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.Decompiler.IL @@ -57,7 +57,7 @@ namespace ICSharpCode.Decompiler.IL
case ComparisonKind.GreaterThanOrEqual:
return ComparisonKind.LessThan;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException();
}
}
@ -77,7 +77,7 @@ namespace ICSharpCode.Decompiler.IL @@ -77,7 +77,7 @@ namespace ICSharpCode.Decompiler.IL
case ComparisonKind.GreaterThanOrEqual:
return BinaryOperatorType.GreaterThanOrEqual;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException();
}
}

2
ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs

@ -232,7 +232,7 @@ namespace ICSharpCode.Decompiler.IL @@ -232,7 +232,7 @@ namespace ICSharpCode.Decompiler.IL
name = "I_";
break;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException(nameof(kind));
}
name += index;
variable.HasGeneratedName = true;

2
ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs

@ -419,7 +419,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -419,7 +419,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
callSiteInfo.Kind = BinderMethodKind.Invoke;
break;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException();
}
if (binderCall.Arguments.Count != 3)
return false;

2
ICSharpCode.Decompiler/Metadata/MetadataExtensions.cs

@ -157,7 +157,7 @@ namespace ICSharpCode.Decompiler.Metadata @@ -157,7 +157,7 @@ namespace ICSharpCode.Decompiler.Metadata
case KnownTypeCode.UIntPtr:
return PrimitiveTypeCode.UIntPtr;
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException();
}
}

4
ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs

@ -198,7 +198,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -198,7 +198,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
case SRM.MemberReferenceKind.Field:
return ResolveAsField(memberReference);
}
throw new NotSupportedException();
throw new BadImageFormatException("MemberReference must be either a method or a field");
case SRM.HandleKind.EventDefinition:
return ResolveAsEvent(memberReference);
case SRM.HandleKind.PropertyDefinition:
@ -206,7 +206,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -206,7 +206,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
case SRM.HandleKind.MethodSpecification:
return ResolveAsMethod(memberReference);
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException(nameof(memberReference), "HandleKind not allowed: " + memberReference.Kind);
}
}

3
ICSharpCode.Decompiler/TypeSystem/MetadataAssembly.cs

@ -588,6 +588,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -588,6 +588,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
{
switch (type.Implementation.Kind) {
case HandleKind.AssemblyFile:
// TODO : Resolve assembly file (module)...
return this;
case HandleKind.ExportedType:
var outerType = metadata.GetExportedType((ExportedTypeHandle)type.Implementation);
@ -602,7 +603,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -602,7 +603,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
}
return null;
default:
throw new NotSupportedException();
throw new BadImageFormatException("Expected implementation to be either an AssemblyFile, ExportedType or AssemblyReference.");
}
}
}

Loading…
Cancel
Save