• Kevin Modzelewski's avatar
    Convert "a in (b, c)" to "a == b or a == c" · f3e03b35
    Kevin Modzelewski authored
    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.
    f3e03b35