public override ICodeNode VisitReturnExpression(ReturnExpression node)
 {
     dummyVar0 = this.VisitReturnExpression(node);
     V_0       = node.get_Value() as LiteralExpression;
     if (V_0 != null)
     {
         if (!this.isBoolReturnType)
         {
             if (this.isCharReturnType)
             {
                 this.FixCharLiteral(V_0);
             }
         }
         else
         {
             this.FixBooleanLiteral(V_0);
         }
     }
     V_1 = node.get_Value() as ExplicitCastExpression;
     if (V_1 != null && String.op_Inequality(V_1.get_ExpressionType().get_FullName(), this.methodContext.get_Method().get_ReturnType().get_FullName()) && this.isCharReturnType && String.op_Equality(V_1.get_ExpressionType().get_FullName(), this.currentTypeSystem.get_UInt16().get_FullName()))
     {
         V_1.set_TargetType(this.currentTypeSystem.get_Char());
     }
     return(node);
 }
 public override void VisitReturnExpression(ReturnExpression node)
 {
     this.VisitReturnExpression(node);
     if (node.get_Value() != null && node.get_Value().get_HasType() && this.ShouldAddCast(node.get_Value().get_ExpressionType().Resolve(), this.decompiledMethodReturnType))
     {
         node.set_Value(new ExplicitCastExpression(node.get_Value(), this.decompiledMethodReturnType, null));
     }
     return;
 }
Ejemplo n.º 3
0
 public override ICodeNode VisitReturnExpression(ReturnExpression node)
 {
     node = (ReturnExpression)this.VisitReturnExpression(node);
     V_0  = this.context.get_MethodContext().get_Method().get_ReturnType().Resolve();
     if (V_0 == null)
     {
         return(node);
     }
     if (node.get_Value() == null)
     {
         return(node);
     }
     if (V_0.get_IsEnum() && !this.context.get_MethodContext().get_Method().get_ReturnType().get_IsArray() && node.get_Value().get_ExpressionType() == null || String.op_Inequality(node.get_Value().get_ExpressionType().get_FullName(), V_0.get_FullName()))
     {
         if (node.get_Value() as LiteralExpression == null)
         {
             if (node.get_Value() as ExplicitCastExpression == null || (node.get_Value() as ExplicitCastExpression).get_Expression() as LiteralExpression == null)
             {
                 if (node.get_Value().get_HasType() && this.NeedsCast(node.get_Value().get_ExpressionType(), V_0))
                 {
                     node.set_Value(new ExplicitCastExpression(node.get_Value(), V_0, null));
                 }
             }
             else
             {
                 node.set_Value(EnumHelper.GetEnumExpression(V_0, (node.get_Value() as ExplicitCastExpression).get_Expression() as LiteralExpression, this.typeSystem));
             }
         }
         else
         {
             node.set_Value(EnumHelper.GetEnumExpression(V_0, node.get_Value() as LiteralExpression, this.typeSystem));
         }
     }
     return(node);
 }
Ejemplo n.º 4
0
 public override void VisitReturnExpression(ReturnExpression node)
 {
     this.VisitReturnExpression(node);
     if (node.get_Value() == null)
     {
         return;
     }
     if (node.get_Value().get_CodeNodeType() == 21)
     {
         V_0 = (DelegateCreationExpression)node.get_Value();
         if (this.CanInferTypeOfDelegateCreation(this.context.get_MethodContext().get_Method().get_ReturnType()))
         {
             V_0.set_TypeIsImplicitlyInferable(true);
         }
     }
     return;
 }
 public override void VisitReturnExpression(ReturnExpression node)
 {
     this.Visit(node.get_Value());
     if (this.searchResult == UsageFinderSearchResult.NotFound)
     {
         this.searchResult = 2;
     }
     return;
 }
Ejemplo n.º 6
0
 public override void VisitReturnExpression(ReturnExpression node)
 {
     this.VisitReturnExpression(node);
     if (this.decompiledMethodReturnType != null && node.get_Value() != null && node.get_Value().get_HasType() && this.ShouldAddCastToAssignment(this.decompiledMethodReturnType, node.get_Value().get_ExpressionType()))
     {
         V_0 = node.get_Value();
         if (node.get_Value() as ExplicitCastExpression != null)
         {
             V_1 = node.get_Value() as ExplicitCastExpression;
             if (this.IsIntegerType(V_1.get_TargetType()))
             {
                 V_0 = V_1.get_Expression();
             }
         }
         node.set_Value(new ExplicitCastExpression(V_0, this.decompiledMethodReturnType, null));
     }
     return;
 }
Ejemplo n.º 7
0
 public virtual void VisitReturnExpression(ReturnExpression node)
 {
     this.Visit(node.get_Value());
     return;
 }
 public virtual ICodeNode VisitReturnExpression(ReturnExpression node)
 {
     node.set_Value((Expression)this.Visit(node.get_Value()));
     return(node);
 }