message: Test that nested loops work nicely
  Summary: In one branch I managed to screw this up, so adding a test to catch it.
diff: @@ -1498,6 +1498,28 @@ fn test_self_assign() {
  assert::fail("x = {0:0,1:1}\na, x[0] = x", "mutate an iterable");
  }
  +#[test]
  +fn test_nested_loops() {
  + // Nested loops with returns used to cause problems in some cases, add a test
  + assert::pass(
  + r#"
  +def foo(y):
  + for x in [1,2,3,4]:
  + if x == 3:
  + return y
  +
  +def bar(xs):
  + res = []
  + for x in xs:
  + if type(x) == type(1):
  + fail("Type confusion")
  + res.append(foo(x))
  + assert_eq(xs, res)
  +bar(["a","b","c"])
  +"#,
  + );
  +}
  +
  #[test]
  fn test_go() {
  macro_rules! test_case {
  