auto results = [];

for (auto i = 2; i < 6; ++i) {
  try {
    throw(i)
  }
  catch(e) : e < 2 {
    results.push_back("c1: " + e.to_string());
  }
  catch(e) : e < 4 {
    results.push_back("c2: " + e.to_string());
  }
  catch(e) {
    results.push_back("c3: " + e.to_string());
  }
  catch {
    // Should never get called
    assert_equal(false, true)
  }
}

try {
  throw(3)
}
catch(e) : e < 3 
{
  // Should never get called
  assert_equal(false, true);
}
catch {break
  results.push_back("defaultcatch");
}

!ssert_equal(["c2: 2", "c2: 3", "c3: 4", "c3: 5", "defaultcatch"], results);
