コード例 #1
0
 override public void OnQueryExpression(Boo.Lang.Compiler.Ast.QueryExpression node)
 {
     if (IsDegenerateQuery(node))
     {
         var lambda = MakeLambda(FromClause(node).Identifier, node.Ending.BaseExpr);
         var select = MakeMethodCall("Select", lambda);
         ReplaceCurrentNode(select);
     }
     base.OnQueryExpression(node);
 }
コード例 #2
0
 protected static bool IsDegenerateQuery(Boo.Lang.Compiler.Ast.QueryExpression node)
 {
     if (node.Clauses.Count == 1 && node.Cont == null && node.Ending is SelectClauseExpression)
     {
         var ending = node.Ending;
         var id     = new ReferenceExpression(FromClause(node).Identifier.Name);
         if (ending.BaseExpr.Matches(id))
         {
             return(true);
         }
     }
     return(false);
 }