Browse Source

Remove some NotImplementedExceptions/NotSupportedExceptions

pull/1030/head
Siegfried Pammer 7 years ago
parent
commit
0377f406f8
  1. 10
      ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs
  2. 3
      ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs
  3. 2
      ICSharpCode.Decompiler/TypeSystem/MetadataAssembly.cs

10
ICSharpCode.Decompiler/CSharp/RequiredNamespaceCollector.cs

@ -8,6 +8,7 @@ using System.Reflection.PortableExecutable; @@ -8,6 +8,7 @@ using System.Reflection.PortableExecutable;
using System.Text;
using System.Threading.Tasks;
using ICSharpCode.Decompiler.Disassembler;
using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.Semantics;
using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.Decompiler.TypeSystem.Implementation;
@ -102,8 +103,6 @@ namespace ICSharpCode.Decompiler.CSharp @@ -102,8 +103,6 @@ namespace ICSharpCode.Decompiler.CSharp
CollectNamespaces(@event.AddAccessor, typeSystem, namespaces);
CollectNamespaces(@event.RemoveAccessor, typeSystem, namespaces);
break;
default:
throw new NotImplementedException();
}
}
@ -195,7 +194,8 @@ namespace ICSharpCode.Decompiler.CSharp @@ -195,7 +194,8 @@ namespace ICSharpCode.Decompiler.CSharp
case Metadata.OperandType.Sig:
case Metadata.OperandType.Tok:
case Metadata.OperandType.Type:
var handle = MetadataTokens.EntityHandle(instructions.ReadInt32());
var handle = MetadataTokenHelpers.EntityHandleOrNil(instructions.ReadInt32());
if (handle.IsNil) break;
switch (handle.Kind) {
case HandleKind.TypeDefinition:
case HandleKind.TypeReference:
@ -218,8 +218,6 @@ namespace ICSharpCode.Decompiler.CSharp @@ -218,8 +218,6 @@ namespace ICSharpCode.Decompiler.CSharp
}
}
break;
default:
throw new NotSupportedException();
}
break;
default:
@ -250,8 +248,6 @@ namespace ICSharpCode.Decompiler.CSharp @@ -250,8 +248,6 @@ namespace ICSharpCode.Decompiler.CSharp
foreach (var arg in method.TypeArguments)
CollectNamespacesForTypeReference(arg, namespaces);
break;
default:
throw new NotImplementedException();
}
}
}

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

@ -237,9 +237,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -237,9 +237,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms
operand: targetInvokeCall.Arguments[2]
);
default:
throw new NotSupportedException();
throw new ArgumentOutOfRangeException($"Value {callsite.Kind} is not supported!");
}
throw new NotImplementedException();
}
bool ScanCallSiteInitBlock(Block callSiteInitBlock, IField callSiteCacheField, IType callSiteDelegateType, out CallSiteInfo callSiteInfo, out Block blockAfterInit)

2
ICSharpCode.Decompiler/TypeSystem/MetadataAssembly.cs

@ -295,7 +295,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -295,7 +295,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
{
var method = GetDefinition(methodDefHandle);
if (method == null) {
throw new NotImplementedException();
throw new BadImageFormatException("MethodDef not found in current assembly.");
}
if (expandVarArgs && method.Parameters.LastOrDefault()?.Type.Kind == TypeKind.ArgList) {
method = new VarArgInstanceMethod(method, EmptyList<IType>.Instance);

Loading…
Cancel
Save