The problem occurs when optimization is performed on an unreachable base unit. In your case, the compiler encloses the get_prop method (which unconditionally returns false). This leads to the JIT compiler treating the region as unreachable. Typically, the JIT compiler removes unreachable code before starting the optimization, but adding a try / catch scope causes JIT not to delete these base blocks.
If you want to prevent this problem, you can disable the optimization, disable the embedding of get_prop or change the implementation of the get_prop method as follows:
static bool s_alwaysFalse = false; private bool prop {get{ return s_alwaysFalse;}}
We had several reports about this problem, and we have a ready-made solution, and it will be provided to users in the upcoming update.
source share