icsharpcode / ILSpy

.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
21.45k stars 3.35k forks source link

Another crash #418

Closed avneraa closed 7 years ago

avneraa commented 11 years ago

Here is another crash in that code:

repro: 1) Unzip the project from this location: http://sdrv.ms/16hsVFa 2) decompile 3) Choose from the menu "Save Code..."

Result: ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void PreschoolEssentials.Dragging::HandleReleased(PreschoolEssentials.Dragging/Control) ---> System.ArgumentNullException: Value cannot be null. Parameter name: type at Mono.Cecil.ByReferenceType..ctor(TypeReference type) at ICSharpCode.Decompiler.ILAst.TypeAnalysis.DoInferTypeForExpression(ILExpression expr, TypeReference expectedType, Boolean forceInferChildren) at ICSharpCode.Decompiler.ILAst.TypeAnalysis.InferTypeForExpression(ILExpression expr, TypeReference expectedType, Boolean forceInferChildren) at ICSharpCode.Decompiler.ILAst.TypeAnalysis.DoInferTypeForExpression(ILExpression expr, TypeReference expectedType, Boolean forceInferChildren) at ICSharpCode.Decompiler.ILAst.TypeAnalysis.InferTypeForExpression(ILExpression expr, TypeReference expectedType, Boolean forceInferChildren) at ICSharpCode.Decompiler.ILAst.TypeAnalysis.RunInference(ILExpression expr) at ICSharpCode.Decompiler.ILAst.TypeAnalysis.RunInference() at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, ILAstOptimizationStep abortBeforeStep) at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable1 parameters) at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDefinition methodDef, DecompilerContext context, IEnumerable1 parameters) --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDefinition methodDef, DecompilerContext context, IEnumerable1 parameters) at ICSharpCode.Decompiler.Ast.AstBuilder.CreateMethod(MethodDefinition methodDef) at ICSharpCode.Decompiler.Ast.AstBuilder.AddTypeMembers(TypeDeclaration astType, TypeDefinition typeDef) at ICSharpCode.Decompiler.Ast.AstBuilder.CreateType(TypeDefinition typeDef) at ICSharpCode.Decompiler.Ast.AstBuilder.AddType(TypeDefinition typeDef) at ICSharpCode.ILSpy.CSharpLanguage.<>c__DisplayClasse.<WriteCodeFilesInProject>b__b(IGrouping2 file) at System.Threading.Tasks.Parallel.<>cDisplayClassf`1.bc() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>cDisplayClass11.b10(Object param0)

siegfriedpammer commented 7 years ago

This was probably fixed in the new decompiler engine (which just landed on the master branch).