Ejemplo n.º 1
0
    public System.Object VisitCatchClause(System.Management.Automation.Language.CatchClauseAst catchClauseAst)
    {
        IScriptExtent mappedExtent = MapExtent(catchClauseAst.Extent);

        LinkedList <TypeConstraintAst> mappedCatchTypes = new LinkedList <TypeConstraintAst>();

        foreach (TypeConstraintAst tc in catchClauseAst.CatchTypes)
        {
            mappedCatchTypes.AddLast((TypeConstraintAst)VisitTypeConstraint(tc));
        }
        StatementBlockAst mappedBody = (StatementBlockAst)VisitStatementBlock(catchClauseAst.Body);


        return(new CatchClauseAst(mappedExtent, mappedCatchTypes, mappedBody));
    }
Ejemplo n.º 2
0
 public override AstVisitAction VisitTryStatement(TryStatementAst tryStatementAst)
 {
     if (tryStatementAst.CatchClauses.Count > 1)
     {
         for (int i = 0; i < (tryStatementAst.CatchClauses.Count - 1); i++)
         {
             CatchClauseAst ast = tryStatementAst.CatchClauses[i];
             for (int j = i + 1; j < tryStatementAst.CatchClauses.Count; j++)
             {
                 CatchClauseAst ast2 = tryStatementAst.CatchClauses[j];
                 if (ast.IsCatchAll)
                 {
                     this._parser.ReportError(Parser.Before(ast2.Extent), ParserStrings.EmptyCatchNotLast, new object[0]);
                     break;
                 }
                 if (!ast2.IsCatchAll)
                 {
                     foreach (TypeConstraintAst ast3 in ast.CatchTypes)
                     {
                         Type reflectionType = ast3.TypeName.GetReflectionType();
                         if (reflectionType != null)
                         {
                             foreach (TypeConstraintAst ast4 in ast2.CatchTypes)
                             {
                                 Type type2 = ast4.TypeName.GetReflectionType();
                                 if ((type2 != null) && ((reflectionType == type2) || type2.IsSubclassOf(reflectionType)))
                                 {
                                     this._parser.ReportError(ast4.Extent, ParserStrings.ExceptionTypeAlreadyCaught, new object[] { type2.FullName });
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return(AstVisitAction.Continue);
 }
 /// <summary/>
 public virtual object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return _decorated.VisitCatchClause(catchClauseAst);
 }
Ejemplo n.º 4
0
 public override AstVisitAction VisitCatchClause(CatchClauseAst ast) { return CheckParent(ast); }
Ejemplo n.º 5
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return(false);
 }
Ejemplo n.º 6
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     throw PSTraceSource.NewArgumentException("ast");
 }
Ejemplo n.º 7
0
 public override AstVisitAction VisitCatchClause(CatchClauseAst ast)
 {
     return(Check(ast));
 }
Ejemplo n.º 8
0
 public virtual AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return AstVisitAction.Continue;
 }
Ejemplo n.º 9
0
 public override AstVisitAction VisitCatchClause(CatchClauseAst ast)
 {
     return this.Check(ast);
 }
Ejemplo n.º 10
0
 public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return(AstVisitAction.Continue);
 }
 public object VisitCatchClause(CatchClauseAst catchClauseAst) { throw new UnexpectedElementException(); }
Ejemplo n.º 12
0
        public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst)
        {
            Diagnostics.Assert(FoundError, "VisitTryStatement should have reported an error");

            return AstVisitAction.Continue;
        }
Ejemplo n.º 13
0
 /// <summary/>
 public virtual AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) => DefaultVisit(catchClauseAst);
Ejemplo n.º 14
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return null;
 }
Ejemplo n.º 15
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst) { return AutomationNull.Value; }
Ejemplo n.º 16
0
 public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     throw new NotImplementedException(); //VisitCatchClause(catchClauseAst);
 }
Ejemplo n.º 17
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst) { throw PSTraceSource.NewArgumentException("ast"); }
Ejemplo n.º 18
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     catchClauseAst.Body.Accept(this);
     return(null);
 }
Ejemplo n.º 19
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     Diagnostics.Assert(false, "the catch body is visited directly from VisitTryStatement.");
     return null;
 }
Ejemplo n.º 20
0
 /// <summary/>
 public virtual object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return(null);
 }
Ejemplo n.º 21
0
 public override AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return AstVisitAction.Continue;
 }
Ejemplo n.º 22
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return false;
 }
Ejemplo n.º 23
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     catchClauseAst.Body.Accept(this);
     return null;
 }
Ejemplo n.º 24
0
 /// <summary/>
 public virtual AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return(AstVisitAction.Continue);
 }
Ejemplo n.º 25
0
        /// <summary>
        /// Visit catch clause
        /// </summary>
        /// <param name="catchClauseAst"></param>
        /// <returns></returns>
        public object VisitCatchClause(CatchClauseAst catchClauseAst)
        {
            if (catchClauseAst == null) return null;

            catchClauseAst.Body.Visit(this.Decorator);
            return null;
        }
Ejemplo n.º 26
0
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     return(AutomationNull.Value);
 }
 public object VisitCatchClause(CatchClauseAst catchClauseAst)
 {
     throw new NotImplementedException();
 }