public override void CaseAVoidReturnStm(AVoidReturnStm node)
 {
     InAVoidReturnStm(node);
     if (node.GetToken() != null)
     {
         node.GetToken().Apply(this);
     }
     OutAVoidReturnStm(node);
 }
 public override void CaseAVoidReturnStm(AVoidReturnStm node)
 {
     ALocalLvalue paramRef = new ALocalLvalue(new TIdentifier("paramRef"));
     ALvalueExp paramRefExp = new ALvalueExp(paramRef);
     node.ReplaceBy(new AValueReturnStm(node.GetToken(), paramRefExp));
     data.LocalLinks[paramRef] = param;
     data.LvalueTypes[paramRef] = data.ExpTypes[paramRefExp] = param.GetType();
 }
 public override void OutAVoidReturnStm(AVoidReturnStm node)
 {
     AMethodDecl method = Util.GetAncestor<AMethodDecl>(node);
     AConstructorDecl constructor = Util.GetAncestor<AConstructorDecl>(node);
     APropertyDecl property = Util.GetAncestor<APropertyDecl>(node);
     if (method != null && Util.TypeToString(method.GetReturnType()) != "void")
     {
         errors.Add(new ErrorCollection.Error(node.GetToken(), currentSourceFile,
                                              LocRM.GetString("ErrorText160") +
                                              Util.TypeToString(method.GetReturnType())));
     }
     if (property != null)
     {
         AABlock lastBlock = Util.GetLastAncestor<AABlock>(node);
         if (lastBlock == property.GetGetter())
             errors.Add(new ErrorCollection.Error(node.GetToken(), currentSourceFile,
                                                  LocRM.GetString("ErrorText161") +
                                                  Util.TypeToString(property.GetType())));
     }
     else if (!Util.HasAncestor<ADeconstructorDecl>(node))
         CheckAssignedOutParameters(
             method != null ? method.GetFormals().Cast<AALocalDecl>() : constructor.GetFormals().Cast<AALocalDecl>(),
             node.GetToken());
     base.OutAVoidReturnStm(node);
 }
 public override void CaseAVoidReturnStm(AVoidReturnStm node)
 {
     ABooleanConstExp trueBool = new ABooleanConstExp(new ATrueBool());
     AValueReturnStm replacer = new AValueReturnStm(node.GetToken(), trueBool);
     node.ReplaceBy(replacer);
     data.ExpTypes[trueBool] = new ANamedType(new TIdentifier("bool"), null);
 }