public void Visit(Return rreturn)
 {
     _sb.Append("return");
     if (rreturn.Exp != null)
     {
         _sb.Append(" ");
         rreturn.Exp.Accept(this);
     }
     _sb.Append(";");
 }
 public void Visit(Return rreturn)
 {
     if (rreturn.Exp != null)
     {
         rreturn.Exp.Accept(this);
         rreturn.SmclType = rreturn.Exp.SmclType;
     }
     else
     {
         rreturn.SmclType = VoidType;
     }
     SmclType expectedRetType = _env.VisitPartEnv.Functions[_env.VisitFunName].GetReturn();
     MustBe(rreturn.SmclType, expectedRetType, "return a " + rreturn.SmclType + " in a " + expectedRetType + " function");
 }