Convert "a in (b, c)" to "a == b or a == c"
Do this by adding "contains" to our codegen type system, and implement a special contains on the unboxedtuple type. This makes this operation quite a lot faster, but it looks like largely because we don't implement a couple optimizations that we should: - we create a new tuple object every time we hit that line - our generic contains code goes through compare(), which returns a box (since "<" and friends can return non-bools), but contains will always return a bool, so we have a bunch of extra boxing/unboxing We probably should separate out the contains logic from the rest of the comparisons, since it works quite differently and doesn't gain anything by being there.
Showing
Please register or sign in to comment