Browse Source

Fix ResolveResult on typeof() expression.

pull/1612/head
Daniel Grunwald 6 years ago
parent
commit
60422a0f7e
  1. 4
      ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

4
ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

@ -543,7 +543,9 @@ namespace ICSharpCode.Decompiler.CSharp
protected internal override TranslatedExpression VisitLdTypeToken(LdTypeToken inst, TranslationContext context) protected internal override TranslatedExpression VisitLdTypeToken(LdTypeToken inst, TranslationContext context)
{ {
return new MemberReferenceExpression(new TypeOfExpression(ConvertType(inst.Type)), "TypeHandle") var typeofExpr = new TypeOfExpression(ConvertType(inst.Type))
.WithRR(new TypeOfResolveResult(compilation.FindType(KnownTypeCode.Type), inst.Type));
return new MemberReferenceExpression(typeofExpr, "TypeHandle")
.WithILInstruction(inst) .WithILInstruction(inst)
.WithRR(new TypeOfResolveResult(compilation.FindType(new TopLevelTypeName("System", "RuntimeTypeHandle")), inst.Type)); .WithRR(new TypeOfResolveResult(compilation.FindType(new TopLevelTypeName("System", "RuntimeTypeHandle")), inst.Type));
} }

Loading…
Cancel
Save