Browse Source

Fix #2888: Tuple syntax cannot be used in is-expressions, use underlying type instead.

pull/2955/head
Siegfried Pammer 2 years ago
parent
commit
4d6c5322e9
  1. 2
      ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

2
ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

@ -375,7 +375,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -375,7 +375,7 @@ namespace ICSharpCode.Decompiler.CSharp
{
var arg = Translate(inst.Argument);
arg = UnwrapBoxingConversion(arg);
return new IsExpression(arg.Expression, ConvertType(inst.Type))
return new IsExpression(arg.Expression, ConvertType(inst.Type.TupleUnderlyingTypeOrSelf()))
.WithILInstruction(inst)
.WithRR(new TypeIsResolveResult(arg.ResolveResult, inst.Type, compilation.FindType(TypeCode.Boolean)));
}

Loading…
Cancel
Save