Browse Source

Reuse the existing TSAB.

pull/1586/head
Daniel Grunwald 6 years ago
parent
commit
5a8796c05c
  1. 2
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs
  2. 3
      ICSharpCode.Decompiler/CSharp/CallBuilder.cs
  3. 3
      ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

2
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -397,7 +397,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -397,7 +397,7 @@ namespace ICSharpCode.Decompiler.CSharp
return new DecompilerTypeSystem(file, resolver);
}
internal static TypeSystemAstBuilder CreateAstBuilder(ITypeResolveContext decompilationContext)
static TypeSystemAstBuilder CreateAstBuilder(ITypeResolveContext decompilationContext)
{
var typeSystemAstBuilder = new TypeSystemAstBuilder();
typeSystemAstBuilder.ShowAttributes = true;

3
ICSharpCode.Decompiler/CSharp/CallBuilder.cs

@ -1299,9 +1299,6 @@ namespace ICSharpCode.Decompiler.CSharp @@ -1299,9 +1299,6 @@ namespace ICSharpCode.Decompiler.CSharp
.WithRR(result);
targetExpression = ide;
}
if (target.ResolveResult != null) {
result = new MemberResolveResult(target.ResolveResult, method);
}
var oce = new ObjectCreateExpression(expressionBuilder.ConvertType(inst.Method.DeclaringType), targetExpression)
.WithILInstruction(inst)
.WithRR(new ConversionResolveResult(

3
ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

@ -962,11 +962,10 @@ namespace ICSharpCode.Decompiler.CSharp @@ -962,11 +962,10 @@ namespace ICSharpCode.Decompiler.CSharp
LocalFunctionDeclarationStatement TranslateFunction(ILFunction function)
{
var stmt = new LocalFunctionDeclarationStatement();
var tsab = CSharpDecompiler.CreateAstBuilder(null);
var nestedBuilder = new StatementBuilder(typeSystem, exprBuilder.decompilationContext, function, settings, cancellationToken);
stmt.Name = function.Name;
stmt.Parameters.AddRange(exprBuilder.MakeParameters(function.Parameters, function));
stmt.ReturnType = tsab.ConvertType(function.Method.ReturnType);
stmt.ReturnType = exprBuilder.ConvertType(function.Method.ReturnType);
stmt.Body = nestedBuilder.ConvertAsBlock(function.Body);
stmt.AddAnnotation(new MemberResolveResult(null, function.ReducedMethod));
return stmt;

Loading…
Cancel
Save