[Mono-bugs] [Bug 675755] New: Enable explicitly typed expression evaluation in the C# Evaluator

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Feb 28 17:40:58 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=675755

https://bugzilla.novell.com/show_bug.cgi?id=675755#c0


           Summary: Enable explicitly typed expression evaluation in the
                    C# Evaluator
    Classification: Mono
           Product: Mono: Compilers
           Version: 2.8.x
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Enhancement
          Priority: P5 - None
         Component: C#
        AssignedTo: msafar at novell.com
        ReportedBy: kramieb at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.21
(KHTML, like Gecko) Ubuntu/10.04 Chromium/11.0.677.0 Chrome/11.0.677.0
Safari/534.21

Allow generic type parameters for the `Evaluator.Compile()` and
`Evaluator.Evaluate()` methods to allow more flexible input expressions, e.g.
lambda's.

Consider the following use case:

    var code = "x => x * x" // can be from any input;
    var lambda = Evaluator.Evaluate<Func<float, float>>(lambda);
    Plot(lambda);

Currently this has to be done using:

    var lambda = (Func<float, float>)Evaluator.Evaluate("Func<float, float> f =
" + lambda + "; f;");

This is unwanted for at least two reasons:
 - Extra variable introduced, this could infer with the input.
 - The expression (here `code`) must be rhs valid;

This feature would consist of the addition of the following four methods and
one delegate:

    public static T Evaluate<T>(string input);
    public static string Evaluate<T>(string input, out T result, bool
result_set);
    public static CompiledMethod<T> Compile<T>(string input);
    public static string Compile<T>(string input, out CompiledMethod<T>
compiled);
    public sealed delegate void CompiledMethod<T>(ref T retvalue);

Reproducible: Always

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list