2013-07-22 2 views
2

Мне интересно, какие шаги компилятор (v3 +) берет для создания выражений LINQ для методов, которые принимают аргумент выражения. В частности, использует ли компилятор или использует логику с LeafExpressionConverter? (Это может потребовать сначала генерации Expr, а затем преобразования его.) Если есть отдельный механизм, что-нибудь сделано для обеспечения четности с LeafExpressionConverter?Компиляция выражений LINQ

ответ

2

Да, я считаю, что он использует LeafExpressionConverter.QuotationToLambdaExpression. Найдите quote_to_linq_lambda_info в базе кода компилятора с открытым исходным кодом.

+1

[Найдено] (https://github.com/fsharp/fsharp/blob/4493a116ba6862ff0c1d08b7e1c73c6ff8b4e8af/src/fsharp/env.fs#L945). Благодарю. – Daniel

Смежные вопросы