You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Compiling a TryExpression that is inside the Filter expression of a CatchBlock of another TryExpression throws with the IL compiler (the interpreter has no problem with it).
This is reasonable since if it produced such IL it would be unverifiable.
It is however a limit on composability; a method producing bool-typed expressions may in good faith use a TryExpression within it while a method producing CatchBlocks may in good faith use such an expression in a filter. The failure comes from the combination of two reasonable operations.
Branching to outside of the filter won't work, as that is also unverifiable.
Emitting a method for the closure of the filter expression and locals it uses, and calling that method as a new filter expression would work.
The text was updated successfully, but these errors were encountered:
@JonHanna it would help me a bit if you hint in future in the issues you file, if they are about Linq or Linq.Expressions, so that I can help set the labels correctly (not that they matter too much as both are owned by the same folks, but if we have them, let's use them properly :))
Thanks!
Compiling a
TryExpression
that is inside theFilter
expression of aCatchBlock
of anotherTryExpression
throws with the IL compiler (the interpreter has no problem with it).This is reasonable since if it produced such IL it would be unverifiable.
It is however a limit on composability; a method producing
bool
-typed expressions may in good faith use aTryExpression
within it while a method producingCatchBlock
s may in good faith use such an expression in a filter. The failure comes from the combination of two reasonable operations.Branching to outside of the filter won't work, as that is also unverifiable.
Emitting a method for the closure of the filter expression and locals it uses, and calling that method as a new filter expression would work.
The text was updated successfully, but these errors were encountered: