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); }
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); }