From bc68339ac4a48c37a03497a60173f3427bf169a3 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 15 Nov 2014 20:59:14 +0100 Subject: [PATCH] rename ConvertedExpression to TranslatedExpression and Convert to Translate, etc. --- ICSharpCode.Decompiler/CSharp/Annotations.cs | 12 +- .../CSharp/ExpressionBuilder.cs | 130 +++++++++--------- .../CSharp/StatementBuilder.cs | 12 +- .../ConvertConstructorCallIntoInitializer.cs | 4 +- ...dExpression.cs => TranslatedExpression.cs} | 24 ++-- .../ICSharpCode.Decompiler.csproj | 6 +- 6 files changed, 93 insertions(+), 95 deletions(-) rename ICSharpCode.Decompiler/CSharp/{ConvertedExpression.cs => TranslatedExpression.cs} (89%) diff --git a/ICSharpCode.Decompiler/CSharp/Annotations.cs b/ICSharpCode.Decompiler/CSharp/Annotations.cs index 32ca01b82..cc43a9f6e 100644 --- a/ICSharpCode.Decompiler/CSharp/Annotations.cs +++ b/ICSharpCode.Decompiler/CSharp/Annotations.cs @@ -51,15 +51,15 @@ namespace ICSharpCode.Decompiler.CSharp return new ExpressionWithILInstruction(expression); } - public static ConvertedExpression WithILInstruction(this ExpressionWithResolveResult expression, ILInstruction instruction) + public static TranslatedExpression WithILInstruction(this ExpressionWithResolveResult expression, ILInstruction instruction) { expression.Expression.AddAnnotation(instruction); - return new ConvertedExpression(expression.Expression, expression.ResolveResult); + return new TranslatedExpression(expression.Expression, expression.ResolveResult); } - public static ConvertedExpression WithoutILInstruction(this ExpressionWithResolveResult expression) + public static TranslatedExpression WithoutILInstruction(this ExpressionWithResolveResult expression) { - return new ConvertedExpression(expression.Expression, expression.ResolveResult); + return new TranslatedExpression(expression.Expression, expression.ResolveResult); } public static ExpressionWithResolveResult WithRR(this Expression expression, ResolveResult resolveResult) @@ -68,10 +68,10 @@ namespace ICSharpCode.Decompiler.CSharp return new ExpressionWithResolveResult(expression, resolveResult); } - public static ConvertedExpression WithRR(this ExpressionWithILInstruction expression, ResolveResult resolveResult) + public static TranslatedExpression WithRR(this ExpressionWithILInstruction expression, ResolveResult resolveResult) { expression.Expression.AddAnnotation(resolveResult); - return new ConvertedExpression(expression, resolveResult); + return new TranslatedExpression(expression, resolveResult); } /// diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index 55f85c269..77dfb5bdb 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -35,7 +35,7 @@ namespace ICSharpCode.Decompiler.CSharp /// /// Translates from ILAst to C# expressions. /// - class ExpressionBuilder : ILVisitor + class ExpressionBuilder : ILVisitor { internal readonly ICompilation compilation; internal readonly NRefactoryCecilMapper cecilMapper; @@ -67,7 +67,7 @@ namespace ICSharpCode.Decompiler.CSharp return astType; } - public ConvertedExpression Convert(ILInstruction inst) + public TranslatedExpression Translate(ILInstruction inst) { Debug.Assert(inst != null); var cexpr = inst.AcceptVisitor(this); @@ -75,9 +75,9 @@ namespace ICSharpCode.Decompiler.CSharp return cexpr; } - public ConvertedExpression ConvertCondition(ILInstruction condition) + public TranslatedExpression TranslateCondition(ILInstruction condition) { - var expr = Convert(condition); + var expr = Translate(condition); return expr.ConvertToBoolean(this); } @@ -103,81 +103,81 @@ namespace ICSharpCode.Decompiler.CSharp return expr.WithRR(new ResolveResult(cecilMapper.GetType(variable.Type))); } - ConvertedExpression IsType(IsInst inst) + TranslatedExpression IsType(IsInst inst) { - var arg = Convert(inst.Argument); + var arg = Translate(inst.Argument); var type = cecilMapper.GetType(inst.Type); return new IsExpression(arg.Expression, ConvertType(type)) .WithILInstruction(inst) .WithRR(new TypeIsResolveResult(arg.ResolveResult, type, compilation.FindType(TypeCode.Boolean))); } - protected internal override ConvertedExpression VisitIsInst(IsInst inst) + protected internal override TranslatedExpression VisitIsInst(IsInst inst) { - var arg = Convert(inst.Argument); + var arg = Translate(inst.Argument); var type = cecilMapper.GetType(inst.Type); return new AsExpression(arg.Expression, ConvertType(type)) .WithILInstruction(inst) .WithRR(new ConversionResolveResult(type, arg.ResolveResult, Conversion.TryCast)); } - protected internal override ConvertedExpression VisitNewObj(NewObj inst) + protected internal override TranslatedExpression VisitNewObj(NewObj inst) { return HandleCallInstruction(inst); } - protected internal override ConvertedExpression VisitLdcI4(LdcI4 inst) + protected internal override TranslatedExpression VisitLdcI4(LdcI4 inst) { return new PrimitiveExpression(inst.Value) .WithILInstruction(inst) .WithRR(new ConstantResolveResult(compilation.FindType(KnownTypeCode.Int32), inst.Value)); } - protected internal override ConvertedExpression VisitLdcI8(LdcI8 inst) + protected internal override TranslatedExpression VisitLdcI8(LdcI8 inst) { return new PrimitiveExpression(inst.Value) .WithILInstruction(inst) .WithRR(new ConstantResolveResult(compilation.FindType(KnownTypeCode.Int64), inst.Value)); } - protected internal override ConvertedExpression VisitLdcF(LdcF inst) + protected internal override TranslatedExpression VisitLdcF(LdcF inst) { return new PrimitiveExpression(inst.Value) .WithILInstruction(inst) .WithRR(new ConstantResolveResult(compilation.FindType(KnownTypeCode.Double), inst.Value)); } - protected internal override ConvertedExpression VisitLdStr(LdStr inst) + protected internal override TranslatedExpression VisitLdStr(LdStr inst) { return new PrimitiveExpression(inst.Value) .WithILInstruction(inst) .WithRR(new ConstantResolveResult(compilation.FindType(KnownTypeCode.String), inst.Value)); } - protected internal override ConvertedExpression VisitLdNull(LdNull inst) + protected internal override TranslatedExpression VisitLdNull(LdNull inst) { return new NullReferenceExpression() .WithILInstruction(inst) .WithRR(new ConstantResolveResult(SpecialType.UnknownType, null)); } - protected internal override ConvertedExpression VisitLogicNot(LogicNot inst) + protected internal override TranslatedExpression VisitLogicNot(LogicNot inst) { - return LogicNot(ConvertCondition(inst.Argument)).WithILInstruction(inst); + return LogicNot(TranslateCondition(inst.Argument)).WithILInstruction(inst); } - ExpressionWithResolveResult LogicNot(ConvertedExpression expr) + ExpressionWithResolveResult LogicNot(TranslatedExpression expr) { return new UnaryOperatorExpression(UnaryOperatorType.Not, expr.Expression) .WithRR(new OperatorResolveResult(compilation.FindType(KnownTypeCode.Boolean), ExpressionType.Not)); } - protected internal override ConvertedExpression VisitLdLoc(LdLoc inst) + protected internal override TranslatedExpression VisitLdLoc(LdLoc inst) { return ConvertVariable(inst.Variable).WithILInstruction(inst); } - protected internal override ConvertedExpression VisitLdLoca(LdLoca inst) + protected internal override TranslatedExpression VisitLdLoca(LdLoca inst) { var expr = ConvertVariable(inst.Variable).WithILInstruction(inst); // Note that we put the instruction on the IdentifierExpression instead of the DirectionExpression, @@ -187,12 +187,12 @@ namespace ICSharpCode.Decompiler.CSharp .WithRR(new ByReferenceResolveResult(expr.ResolveResult, isOut: false)); } - protected internal override ConvertedExpression VisitStLoc(StLoc inst) + protected internal override TranslatedExpression VisitStLoc(StLoc inst) { - return Assignment(ConvertVariable(inst.Variable).WithoutILInstruction(), Convert(inst.Value)).WithILInstruction(inst); + return Assignment(ConvertVariable(inst.Variable).WithoutILInstruction(), Translate(inst.Value)).WithILInstruction(inst); } - protected internal override ConvertedExpression VisitCeq(Ceq inst) + protected internal override TranslatedExpression VisitCeq(Ceq inst) { // Translate '(e as T) == null' to '!(e is T)'. // This is necessary for correctness when T is a value type. @@ -202,8 +202,8 @@ namespace ICSharpCode.Decompiler.CSharp return LogicNot(IsType((IsInst)inst.Right)).WithILInstruction(inst); } - var left = Convert(inst.Left); - var right = Convert(inst.Right); + var left = Translate(inst.Left); + var right = Translate(inst.Right); // Remove redundant bool comparisons if (left.Type.IsKnownType(KnownTypeCode.Boolean)) { @@ -227,30 +227,30 @@ namespace ICSharpCode.Decompiler.CSharp .WithRR(rr); } - protected internal override ConvertedExpression VisitClt(Clt inst) + protected internal override TranslatedExpression VisitClt(Clt inst) { return Comparison(inst, BinaryOperatorType.LessThan); } - protected internal override ConvertedExpression VisitCgt(Cgt inst) + protected internal override TranslatedExpression VisitCgt(Cgt inst) { return Comparison(inst, BinaryOperatorType.GreaterThan); } - protected internal override ConvertedExpression VisitClt_Un(Clt_Un inst) + protected internal override TranslatedExpression VisitClt_Un(Clt_Un inst) { return Comparison(inst, BinaryOperatorType.LessThan, un: true); } - protected internal override ConvertedExpression VisitCgt_Un(Cgt_Un inst) + protected internal override TranslatedExpression VisitCgt_Un(Cgt_Un inst) { return Comparison(inst, BinaryOperatorType.GreaterThan, un: true); } - ConvertedExpression Comparison(BinaryComparisonInstruction inst, BinaryOperatorType op, bool un = false) + TranslatedExpression Comparison(BinaryComparisonInstruction inst, BinaryOperatorType op, bool un = false) { - var left = Convert(inst.Left); - var right = Convert(inst.Right); + var left = Translate(inst.Left); + var right = Translate(inst.Right); // TODO: ensure the arguments are signed // or with _Un: ensure the arguments are unsigned; and that float comparisons are performed unordered return new BinaryOperatorExpression(left.Expression, op, right.Expression) @@ -260,68 +260,68 @@ namespace ICSharpCode.Decompiler.CSharp left.ResolveResult, right.ResolveResult)); } - ExpressionWithResolveResult Assignment(ConvertedExpression left, ConvertedExpression right) + ExpressionWithResolveResult Assignment(TranslatedExpression left, TranslatedExpression right) { right = right.ConvertTo(left.Type, this); return new AssignmentExpression(left.Expression, right.Expression) .WithRR(new OperatorResolveResult(left.Type, ExpressionType.Assign, left.ResolveResult, right.ResolveResult)); } - protected internal override ConvertedExpression VisitAdd(Add inst) + protected internal override TranslatedExpression VisitAdd(Add inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.Add); } - protected internal override ConvertedExpression VisitSub(Sub inst) + protected internal override TranslatedExpression VisitSub(Sub inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.Subtract); } - protected internal override ConvertedExpression VisitMul(Mul inst) + protected internal override TranslatedExpression VisitMul(Mul inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.Multiply); } - protected internal override ConvertedExpression VisitDiv(Div inst) + protected internal override TranslatedExpression VisitDiv(Div inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.Divide); } - protected internal override ConvertedExpression VisitRem(Rem inst) + protected internal override TranslatedExpression VisitRem(Rem inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.Modulus); } - protected internal override ConvertedExpression VisitBitXor(BitXor inst) + protected internal override TranslatedExpression VisitBitXor(BitXor inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.ExclusiveOr); } - protected internal override ConvertedExpression VisitBitAnd(BitAnd inst) + protected internal override TranslatedExpression VisitBitAnd(BitAnd inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.BitwiseAnd); } - protected internal override ConvertedExpression VisitBitOr(BitOr inst) + protected internal override TranslatedExpression VisitBitOr(BitOr inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.BitwiseOr); } - protected internal override ConvertedExpression VisitShl(Shl inst) + protected internal override TranslatedExpression VisitShl(Shl inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.ShiftLeft); } - protected internal override ConvertedExpression VisitShr(Shr inst) + protected internal override TranslatedExpression VisitShr(Shr inst) { return HandleBinaryNumeric(inst, BinaryOperatorType.ShiftRight); } - ConvertedExpression HandleBinaryNumeric(BinaryNumericInstruction inst, BinaryOperatorType op) + TranslatedExpression HandleBinaryNumeric(BinaryNumericInstruction inst, BinaryOperatorType op) { var resolverWithOverflowCheck = resolver.WithCheckForOverflow(inst.CheckForOverflow); - var left = Convert(inst.Left); - var right = Convert(inst.Right); + var left = Translate(inst.Left); + var right = Translate(inst.Right); var rr = resolverWithOverflowCheck.ResolveBinaryOperator(op, left.ResolveResult, right.ResolveResult); if (rr.IsError || rr.Type.GetStackType() != inst.ResultType || !IsCompatibleWithSign(left.Type, inst.Sign) || !IsCompatibleWithSign(right.Type, inst.Sign)) @@ -346,9 +346,9 @@ namespace ICSharpCode.Decompiler.CSharp return sign == Sign.None || type.GetSign() == sign; } - protected internal override ConvertedExpression VisitConv(Conv inst) + protected internal override TranslatedExpression VisitConv(Conv inst) { - var arg = Convert(inst.Argument); + var arg = Translate(inst.Argument); if (arg.Type.GetSign() != inst.Sign) { // we need to cast the input to a type of appropriate sign var inputType = inst.Argument.ResultType.ToKnownTypeCode(inst.Sign); @@ -361,23 +361,23 @@ namespace ICSharpCode.Decompiler.CSharp .WithRR(rr); } - protected internal override ConvertedExpression VisitCall(Call inst) + protected internal override TranslatedExpression VisitCall(Call inst) { return HandleCallInstruction(inst); } - protected internal override ConvertedExpression VisitCallVirt(CallVirt inst) + protected internal override TranslatedExpression VisitCallVirt(CallVirt inst) { return HandleCallInstruction(inst); } - ConvertedExpression HandleCallInstruction(CallInstruction inst) + TranslatedExpression HandleCallInstruction(CallInstruction inst) { // Used for Call, CallVirt and NewObj var method = cecilMapper.GetMethod(inst.Method); - ConvertedExpression target; + TranslatedExpression target; if (inst.OpCode == OpCode.NewObj) { - target = default(ConvertedExpression); // no target + target = default(TranslatedExpression); // no target } else if (inst.Method.HasThis) { var argInstruction = inst.Arguments[0]; if (inst.OpCode == OpCode.Call && argInstruction.MatchLdThis()) { @@ -385,7 +385,7 @@ namespace ICSharpCode.Decompiler.CSharp .WithILInstruction(argInstruction) .WithRR(new ThisResolveResult(cecilMapper.GetType(inst.Method.DeclaringType), causesNonVirtualInvocation: true)); } else { - target = Convert(argInstruction); + target = Translate(argInstruction); } } else { var declaringType = cecilMapper.GetType(inst.Method.DeclaringType); @@ -394,12 +394,12 @@ namespace ICSharpCode.Decompiler.CSharp .WithRR(new TypeResolveResult(declaringType)); } - var arguments = inst.Arguments.SelectArray(Convert); + var arguments = inst.Arguments.SelectArray(Translate); int firstParamIndex = (inst.Method.HasThis && inst.OpCode != OpCode.NewObj) ? 1 : 0; Debug.Assert(arguments.Length == firstParamIndex + inst.Method.Parameters.Count); ResolveResult rr; if (method != null) { - // Convert arguments to the expected parameter types + // Translate arguments to the expected parameter types Debug.Assert(arguments.Length == firstParamIndex + method.Parameters.Count); for (int i = firstParamIndex; i < arguments.Length; i++) { var parameter = method.Parameters[i - firstParamIndex]; @@ -432,9 +432,9 @@ namespace ICSharpCode.Decompiler.CSharp } } - protected internal override ConvertedExpression VisitLdObj(LdObj inst) + protected internal override TranslatedExpression VisitLdObj(LdObj inst) { - var target = Convert(inst.Target); + var target = Translate(inst.Target); var type = cecilMapper.GetType(inst.Type); if (target.Type.Equals(new ByReferenceType(type)) && target.Expression is DirectionExpression) { // we can deference the managed reference by stripping away the 'ref' @@ -451,12 +451,12 @@ namespace ICSharpCode.Decompiler.CSharp } } - protected internal override ConvertedExpression VisitStObj(StObj inst) + protected internal override TranslatedExpression VisitStObj(StObj inst) { - var target = Convert(inst.Target); - var value = Convert(inst.Value); + var target = Translate(inst.Target); + var value = Translate(inst.Value); var type = cecilMapper.GetType(inst.Type); - ConvertedExpression result; + TranslatedExpression result; if (target.Type.Equals(new ByReferenceType(type)) && target.Expression is DirectionExpression) { // we can deference the managed reference by stripping away the 'ref' result = target.UnwrapChild(((DirectionExpression)target.Expression).Expression); @@ -470,9 +470,9 @@ namespace ICSharpCode.Decompiler.CSharp return Assignment(result, value).WithILInstruction(inst); } - protected internal override ConvertedExpression VisitUnboxAny(UnboxAny inst) + protected internal override TranslatedExpression VisitUnboxAny(UnboxAny inst) { - var arg = Convert(inst.Argument); + var arg = Translate(inst.Argument); if (arg.Type.IsReferenceType != true) { // ensure we treat the input as a reference type arg = arg.ConvertTo(compilation.FindType(KnownTypeCode.Object), this); @@ -482,12 +482,12 @@ namespace ICSharpCode.Decompiler.CSharp .WithRR(new ConversionResolveResult(cecilMapper.GetType(inst.Type), arg.ResolveResult, Conversion.UnboxingConversion)); } - protected override ConvertedExpression Default(ILInstruction inst) + protected override TranslatedExpression Default(ILInstruction inst) { return ErrorExpression("OpCode not supported: " + inst.OpCode); } - static ConvertedExpression ErrorExpression(string message) + static TranslatedExpression ErrorExpression(string message) { var e = new ErrorExpression(); e.AddChild(new Comment(message, CommentType.MultiLine), Roles.Comment); diff --git a/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs b/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs index 0e3b6af21..5f8966183 100644 --- a/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/StatementBuilder.cs @@ -51,7 +51,7 @@ namespace ICSharpCode.Decompiler.CSharp protected override Statement Default(ILInstruction inst) { - return new ExpressionStatement(exprBuilder.Convert(inst)); + return new ExpressionStatement(exprBuilder.Translate(inst)); } protected internal override Statement VisitNop(Nop inst) @@ -61,12 +61,12 @@ namespace ICSharpCode.Decompiler.CSharp protected internal override Statement VisitVoid(ICSharpCode.Decompiler.IL.Void inst) { - return new ExpressionStatement(exprBuilder.Convert(inst.Argument)); + return new ExpressionStatement(exprBuilder.Translate(inst.Argument)); } protected internal override Statement VisitIfInstruction(IfInstruction inst) { - var condition = exprBuilder.ConvertCondition(inst.Condition); + var condition = exprBuilder.TranslateCondition(inst.Condition); var trueStatement = Convert(inst.TrueInst); var falseStatement = inst.FalseInst.OpCode == OpCode.Nop ? null : Convert(inst.FalseInst); return new IfElseStatement(condition, trueStatement, falseStatement); @@ -79,14 +79,14 @@ namespace ICSharpCode.Decompiler.CSharp protected internal override Statement VisitThrow(Throw inst) { - return new ThrowStatement(exprBuilder.Convert(inst.Argument)); + return new ThrowStatement(exprBuilder.Translate(inst.Argument)); } protected internal override Statement VisitReturn(Return inst) { if (inst.ReturnValue == null) return new ReturnStatement(); - return new ReturnStatement(exprBuilder.Convert(inst.ReturnValue).ConvertTo(currentMethod.ReturnType, exprBuilder)); + return new ReturnStatement(exprBuilder.Translate(inst.ReturnValue).ConvertTo(currentMethod.ReturnType, exprBuilder)); } TryCatchStatement MakeTryCatch(ILInstruction tryBlock) @@ -111,7 +111,7 @@ namespace ICSharpCode.Decompiler.CSharp catchClause.VariableName = handler.Variable.Name; } if (!handler.Filter.MatchLdcI4(1)) - catchClause.Condition = exprBuilder.ConvertCondition(handler.Filter); + catchClause.Condition = exprBuilder.TranslateCondition(handler.Filter); catchClause.Body = ConvertAsBlock(handler.Body); tryCatch.CatchClauses.Add(catchClause); } diff --git a/ICSharpCode.Decompiler/CSharp/Transforms/ConvertConstructorCallIntoInitializer.cs b/ICSharpCode.Decompiler/CSharp/Transforms/ConvertConstructorCallIntoInitializer.cs index 4f7304071..5aa76b699 100644 --- a/ICSharpCode.Decompiler/CSharp/Transforms/ConvertConstructorCallIntoInitializer.cs +++ b/ICSharpCode.Decompiler/CSharp/Transforms/ConvertConstructorCallIntoInitializer.cs @@ -100,7 +100,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms return; // Recognize field initializers: - // Convert first statement in all ctors (if all ctors have the same statement) into a field initializer. + // Translate first statement in all ctors (if all ctors have the same statement) into a field initializer. bool allSame; do { Match m = fieldInitializerPattern.Match(instanceCtorsNotChainingWithThis[0].Body.FirstOrDefault()); @@ -146,7 +146,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms void HandleStaticFieldInitializers(IEnumerable members, TransformContext context) { - // Convert static constructor into field initializers if the class is BeforeFieldInit + // Translate static constructor into field initializers if the class is BeforeFieldInit var staticCtor = members.OfType().FirstOrDefault(c => (c.Modifiers & Modifiers.Static) == Modifiers.Static); if (staticCtor != null) { IMethod ctorMethod = staticCtor.GetSymbol() as IMethod; diff --git a/ICSharpCode.Decompiler/CSharp/ConvertedExpression.cs b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs similarity index 89% rename from ICSharpCode.Decompiler/CSharp/ConvertedExpression.cs rename to ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs index 7cc751b67..9522d3c6d 100644 --- a/ICSharpCode.Decompiler/CSharp/ConvertedExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs @@ -86,10 +86,10 @@ namespace ICSharpCode.Decompiler.CSharp /// /// /// The resolve result is also always available as annotation on the expression, but having - /// ConvertedExpression as a separate type is still useful to ensure that no case in the expression builder + /// TranslatedExpression as a separate type is still useful to ensure that no case in the expression builder /// forgets to add the annotation. /// - struct ConvertedExpression + struct TranslatedExpression { public readonly Expression Expression; @@ -105,14 +105,14 @@ namespace ICSharpCode.Decompiler.CSharp get { return ResolveResult.Type; } } - internal ConvertedExpression(Expression expression) + internal TranslatedExpression(Expression expression) { Debug.Assert(expression != null); this.Expression = expression; this.ResolveResult = expression.Annotation() ?? ErrorResolveResult.UnknownError; } - internal ConvertedExpression(Expression expression, ResolveResult resolveResult) + internal TranslatedExpression(Expression expression, ResolveResult resolveResult) { Debug.Assert(expression != null && resolveResult != null); Debug.Assert(expression.Annotation() == resolveResult); @@ -120,27 +120,27 @@ namespace ICSharpCode.Decompiler.CSharp this.Expression = expression; } - public static implicit operator Expression(ConvertedExpression expression) + public static implicit operator Expression(TranslatedExpression expression) { return expression.Expression; } - public static implicit operator ExpressionWithResolveResult(ConvertedExpression expression) + public static implicit operator ExpressionWithResolveResult(TranslatedExpression expression) { return new ExpressionWithResolveResult(expression.Expression, expression.ResolveResult); } - public static implicit operator ExpressionWithILInstruction(ConvertedExpression expression) + public static implicit operator ExpressionWithILInstruction(TranslatedExpression expression) { return new ExpressionWithILInstruction(expression.Expression); } /// - /// Returns a new ConvertedExpression that represents the specified descendant expression. + /// Returns a new TranslatedExpression that represents the specified descendant expression. /// All ILInstruction annotations from the current expression are copied to the descendant expression. /// The descendant expression is detached from the AST. /// - public ConvertedExpression UnwrapChild(Expression descendant) + public TranslatedExpression UnwrapChild(Expression descendant) { if (descendant == Expression) return this; @@ -148,12 +148,12 @@ namespace ICSharpCode.Decompiler.CSharp foreach (var inst in parent.Annotations.OfType()) descendant.AddAnnotation(inst); if (parent == Expression) - return new ConvertedExpression(descendant.Detach()); + return new TranslatedExpression(descendant.Detach()); } throw new ArgumentException("descendant must be a descendant of the current node"); } - public ConvertedExpression ConvertTo(IType targetType, ExpressionBuilder expressionBuilder) + public TranslatedExpression ConvertTo(IType targetType, ExpressionBuilder expressionBuilder) { var type = this.Type; if (targetType.IsKnownType(KnownTypeCode.Boolean)) @@ -180,7 +180,7 @@ namespace ICSharpCode.Decompiler.CSharp .WithoutILInstruction().WithRR(rr); } - public ConvertedExpression ConvertToBoolean(ExpressionBuilder expressionBuilder) + public TranslatedExpression ConvertToBoolean(ExpressionBuilder expressionBuilder) { if (Type.IsKnownType(KnownTypeCode.Boolean) || Type.Kind == TypeKind.Unknown) { return this; diff --git a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj index 5170d0bf3..5e039f36e 100644 --- a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj +++ b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj @@ -63,7 +63,7 @@ - + @@ -160,9 +160,7 @@ - - - +