anchor.diff:      }
     }
   
  -  return foo()
  -      .toList() //# asyncStar: continued
  -      .catchError((e, st) {
  +  return foo().catchError((e, st) {
       tracer.trace("c");
       Expect.equals(savedStackTrace.toString(), st.toString());
  +  });
  +}
  +
  +Future<List<void>> test3star(Tracer tracer) {
  +  var savedStackTrace;
  +  Stream<void> foo() async* {
  +    try {
  +      tracer.trace("a");
  +      throw "Error";
  +    } catch (e, st) {
  +      tracer.trace("b");
  +      savedStackTrace = st;
  +      rethrow;
  +    }
  +  }
  +
  +  return foo().toList().catchError((e, st) {
  +    tracer.trace("c");
  +    Expect.equals(savedStackTrace.toString(), st.toString());
  +    return [];
     });
   }
   
  
positive.code:     tracer.trace("d");
    }
  
    return foo()
        .toList() //# asyncStar: continued
        .catchError((e, st) {
      tracer.trace("e");
      Expect.equals(savedStackTrace.toString(), st.toString());
    });
  }
  
  Future test3(Tracer tracer) {
    var savedStackTrace;
    foo() async
        * //# asyncStar: continued
    {
      try {
        tracer.trace("a");
        throw "Error";
  
negative.code: 
  runTests() async {
    await runTest("abcef", test1);
    await runTest("abcef", test1star);
    await runTest("abce", test2);
    await runTest("abce", test2star);
    await runTest("abc", test3);
    await runTest("abc", test3star);
  }
  
  main() {
  