anchor.diff:    visitTypeLiteral(TypeLiteral node) {
       shaker._addInstantiatedExternalSubclass(coreTypes.typeClass);
       node.visitChildren(this);
  +  }
  +
  +  @override
  +  visitSuperPropertyGet(SuperPropertyGet node) {
  +    throw 'The treeshaker assumes mixins have been desugared.';
  +  }
  +
  +  @override
  +  visitSuperPropertySet(SuperPropertySet node) {
  +    throw 'The treeshaker assumes mixins have been desugared.';
  +  }
  +
  +  @override
  +  visitSuperMethodInvocation(SuperMethodInvocation node) {
  +    throw 'The treeshaker assumes mixins have been desugared.';
     }
   }
   
  
positive.code:       addSelfDispatch(node.name);
      } else {
        shaker._addDispatchedName(getStaticType(node.receiver), node.name);
        if (node.interfaceTarget != null) {
          shaker._typedCalls.add(node);
        }
      }
      node.visitChildren(this);
    }
  
negative.code:       addSelfDispatch(node.name);
      } else {
        shaker._addDispatchedName(getStaticType(node.receiver), node.name);
      }
      if (node.interfaceTarget != null) {
        shaker._addUsedInterfaceMember(node.interfaceTarget);
        shaker._typedCalls.add(node);
      }
      node.visitChildren(this);
    }
  