anchor.diff:  
     void instanceMethod() {}
     X? genericInstanceMethod<X>() => null;
  +
  +  // Enable a mixed-in method in `M` that has a superinvocation.
  +  int mixedInSuperMethod() => 0;
  +}
  +
  +mixin M on A {
  +  void mixedInMethod() {}
  +  int mixedInSuperMethod() => super.mixedInSuperMethod() + 1;
  +}
  +
  +class AM extends A with M {
  +  int Function() get tearoffSuperMethod => super.mixedInSuperMethod;
  +}
  +
  +class AMM extends AM with M {
  +  // Tear off the second copy of M.mixedInSuperMethod
  +  // (`tearoffSuperMethod` still tears off the first copy).
  +  int Function() get tearoffSuperMethodSecond => super.mixedInSuperMethod;
  +  // In this case, `super.` should not make a difference.
  +  int Function() get tearoffSuperMethodSecondNoSuper => mixedInSuperMethod;
   }
   
   const cTopLevelFunction = topLevelFunction;
  
positive.code:   const CheckNotIdentical(cIntTopLevelFunction1, cStringTopLevelFunction);
    const CheckNotIdentical(cIntStaticMethod1, cStringStaticMethod);
  
    <X>() {
      X? Function() vXTopLevelFunction1 = genericTopLevelFunction;
      X? Function() vXStaticMethod1 = A.genericStaticMethod;
  
negative.code:   checkIdentical(cIntStaticMethod1, vIntStaticMethod2);
    checkIdentical(vIntTopLevelFunction1, vIntTopLevelFunction2);
    checkIdentical(vIntStaticMethod1, vIntStaticMethod2);
    checkEqual(vIntInstanceMethod1, vIntInstanceMethod2);
  
    const CheckIdentical(topLevelFunction, topLevelFunction);
    const CheckIdentical(A.staticMethod, A.staticMethod);
  