public virtual CatchClauseAst VisitCatchClause(CatchClauseAst catchClauseAst) { return(new CatchClauseAst( catchClauseAst.Extent, catchClauseAst.CatchTypes?.RewriteAll <TypeConstraintAst>(this, SyntaxKind.TypeConstraint), catchClauseAst.Body.Rewrite(this, SyntaxKind.StatementBlock))); }
public object VisitCatchClause(CatchClauseAst catchClauseAst) { var catchTypes = VisitAst(catchClauseAst.CatchTypes); var body = VisitAst(catchClauseAst.Body); return(new CatchClauseAst(catchClauseAst.Extent, catchTypes, body)); }
public static CatchClauseAst Update( this CatchClauseAst ast, IEnumerable <TypeConstraintAst> catchTypes = null, IEnumerable <StatementAst> statements = null) { return(new CatchClauseAst( ast.Extent, catchTypes?.CloneAll() ?? ast.CatchTypes?.CloneAll(), ast.Body?.Update(statements))); }
public override object VisitCatchClause(CatchClauseAst catchClauseAst) { script_.Write("catch"); if (catchClauseAst.CatchTypes.Count > 0) { script_.Write(" "); script_.Write(string.Join(",", "[" + catchClauseAst.CatchTypes + "]")); } script_.Write("{"); VisitElement(catchClauseAst.Body); script_.Write("}"); return(catchClauseAst); }
public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) { var exceptionText = ""; if (!catchClauseAst.IsCatchAll) { exceptionText = $"of type '{string.Join("', '", catchClauseAst.CatchTypes.Select(c => c.TypeName.Name))}' "; } explanations.Add( new Explanation() { CommandName = $"Catch block, belongs to Try statement", HelpResult = HelpTableQuery("about_try_catch_finally"), Description = $"Executed when an exception {exceptionText}is thrown in the Try {{}} block.", TextToHighlight = "catch" }.AddDefaults(catchClauseAst, explanations)); return(AstVisitAction.Continue); }
/// <summary> /// AnalyzeScript: Analyze the script to check if any empty catch block is used. /// </summary> public IEnumerable <DiagnosticRecord> AnalyzeScript(Ast ast, string fileName) { if (ast == null) { throw new ArgumentNullException(Strings.NullAstErrorMessage); } // Finds all CommandAsts. IEnumerable <Ast> foundAsts = ast.FindAll(testAst => testAst is CatchClauseAst, true); // Iterates all CatchClauseAst and check the statements count. foreach (Ast foundAst in foundAsts) { CatchClauseAst catchAst = (CatchClauseAst)foundAst; if (catchAst.Body.Statements.Count == 0) { yield return(new DiagnosticRecord(string.Format(CultureInfo.CurrentCulture, Strings.AvoidEmptyCatchBlockError), catchAst.Extent, GetName(), DiagnosticSeverity.Warning, fileName)); } } }
public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) { var body = VisitSyntaxNode(catchClauseAst.Body); var block = body as Block; if (block == null) { block = new Block(body); } var type = catchClauseAst.CatchTypes.FirstOrDefault(); CatchDeclaration declaration = null; if (type != null) { var myType = type.TypeName.Name; declaration = new CatchDeclaration(myType.ToString(), null); } _currentNode = new Catch(declaration, block); return(AstVisitAction.SkipChildren); }
/// <summary/> public virtual AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) => DefaultVisit(catchClauseAst);
public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) { throw new NotImplementedException(); //VisitCatchClause(catchClauseAst); }
public object VisitCatchClause(CatchClauseAst catchClauseAst) { throw PSTraceSource.NewArgumentException("ast"); }
public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) { return(Visit(catchClauseAst)); }
public override CatchClauseAst VisitCatchClause(CatchClauseAst catchClauseAst) => VisitOther(base.VisitCatchClause(catchClauseAst));
public virtual TResult VisitCatchClause(CatchClauseAst catchClauseAst) => default(TResult);
// TryStatementAst Extension Methods // New Methods Available: // - CreateNodeFromAST(NodeDepth, NodePosition) => Creates a Node // - CreateChildNodes ($item in $collection) {} => Creates Child Nodes public static CatchNode CreateNodeFromAst(this CatchClauseAst _ast, int _depth, int _position, Node _parent) { return(new CatchNode(_ast, _depth, _position, _parent)); }
object ICustomAstVisitor.VisitCatchClause(CatchClauseAst catchClauseAst) => VisitCatchClause(catchClauseAst);
public object VisitCatchClause(CatchClauseAst catchClauseAst) { Console.WriteLine("Visited an CatchClauseAst."); return(catchClauseAst); }
public object VisitCatchClause(CatchClauseAst catchClauseAst) => null;
object ICustomAstVisitor.VisitCatchClause(CatchClauseAst catchClauseAst) => ProcessRewriter(VisitCatchClause, catchClauseAst);
public object VisitCatchClause(CatchClauseAst catchClauseAst) { throw new UnexpectedElementException(); }
public object VisitCatchClause(CatchClauseAst catchClauseAst) { throw new NotImplementedException(); }
public override AstVisitAction VisitCatchClause(CatchClauseAst ast) { return(AstVisitAction.Continue); }
public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) { Console.WriteLine("Visited an CatchClauseAst."); Console.WriteLine(" " + catchClauseAst.ToString().Replace(Environment.NewLine, Environment.NewLine + " ")); return(AstVisitAction.Continue); }
public virtual object VisitCatchClause(CatchClauseAst catchClauseAst) { VisitElement(catchClauseAst.Body); return(catchClauseAst); }
public object VisitCatchClause(CatchClauseAst catchClauseAst) { var newBody = VisitElement(catchClauseAst.Body); return(new CatchClauseAst(catchClauseAst.Extent, catchClauseAst.CatchTypes, newBody)); }
public override AstVisitAction VisitCatchClause(CatchClauseAst ast) { return(Check(ast)); }
public object VisitCatchClause(CatchClauseAst catchClauseAst) { return(false); }
public override AstVisitAction VisitCatchClause(CatchClauseAst ast) { return(DoNextAction(ast)); }
public static IEnumerable <Ast> GetChildAst(this CatchClauseAst _ast) { return(_ast.Body.FindAll(Args => Args is Ast && Args.Parent == _ast.Body, false)); }
public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) => VisitAst(catchClauseAst);