anchor.diff:  
     @override
     void visitNamedType(NamedType node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitSupertype(Supertype node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitName(Name node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitRedirectingFactoryConstructorReference(
         RedirectingFactoryConstructor node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitProcedureReference(Procedure node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitConstructorReference(Constructor node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitFieldReference(Field node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTypeLiteralConstantReference(TypeLiteralConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTearOffConstantReference(TearOffConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitPartialInstantiationConstantReference(
         PartialInstantiationConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitInstanceConstantReference(InstanceConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitListConstantReference(ListConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitMapConstantReference(MapConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitSymbolConstantReference(SymbolConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitStringConstantReference(StringConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitDoubleConstantReference(DoubleConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitIntConstantReference(IntConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitBoolConstantReference(BoolConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitNullConstantReference(NullConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTypedefReference(Typedef node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitClassReference(Class node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTypeLiteralConstant(TypeLiteralConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTearOffConstant(TearOffConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitPartialInstantiationConstant(PartialInstantiationConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitInstanceConstant(InstanceConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitListConstant(ListConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitMapConstant(MapConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitSymbolConstant(SymbolConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitStringConstant(StringConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitDoubleConstant(DoubleConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitIntConstant(IntConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitBoolConstant(BoolConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitNullConstant(NullConstant node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTypedefType(TypedefType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitTypeParameterType(TypeParameterType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitFunctionType(FunctionType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitInterfaceType(InterfaceType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitBottomType(BottomType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitVoidType(VoidType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitDynamicType(DynamicType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitInvalidType(InvalidType node) {
  +    storeLastSeenUriAndOffset(node);
       makeDartTypeRoundTrip(node);
     }
   
     @override
     void visitComponent(Component node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitMapEntry(MapEntry node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitCatch(Catch node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitSwitchCase(SwitchCase node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitNamedExpression(NamedExpression node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitArguments(Arguments node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitFunctionNode(FunctionNode node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTypeParameter(TypeParameter node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTypedef(Typedef node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitLibraryPart(LibraryPart node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitCombinator(Combinator node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitLibraryDependency(LibraryDependency node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitLibrary(Library node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitAssertInitializer(AssertInitializer node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitLocalInitializer(LocalInitializer node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitRedirectingInitializer(RedirectingInitializer node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitSuperInitializer(SuperInitializer node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitFieldInitializer(FieldInitializer node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitInvalidInitializer(InvalidInitializer node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitClass(Class node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitRedirectingFactoryConstructor(RedirectingFactoryConstructor node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitField(Field node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitProcedure(Procedure node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitConstructor(Constructor node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitFunctionDeclaration(FunctionDeclaration node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitVariableDeclaration(VariableDeclaration node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitYieldStatement(YieldStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTryFinally(TryFinally node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitTryCatch(TryCatch node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitReturnStatement(ReturnStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitIfStatement(IfStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitContinueSwitchStatement(ContinueSwitchStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitSwitchStatement(SwitchStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitForInStatement(ForInStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitForStatement(ForStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitDoStatement(DoStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitWhileStatement(WhileStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitBreakStatement(BreakStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitLabeledStatement(LabeledStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitAssertStatement(AssertStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitEmptyStatement(EmptyStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitAssertBlock(AssertBlock node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitBlock(Block node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitExpressionStatement(ExpressionStatement node) {
  +    storeLastSeenUriAndOffset(node);
       node.visitChildren(this);
     }
   
     @override
     void visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitLoadLibrary(LoadLibrary node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitInstantiation(Instantiation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitLet(Let node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitNullLiteral(NullLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitBoolLiteral(BoolLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitDoubleLiteral(DoubleLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitIntLiteral(IntLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitStringLiteral(StringLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitConstantExpression(ConstantExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitFunctionExpression(FunctionExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitAwaitExpression(AwaitExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitMapLiteral(MapLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitSetLiteral(SetLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitListLiteral(ListLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitThrow(Throw node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitRethrow(Rethrow node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitThisExpression(ThisExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitTypeLiteral(TypeLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitSymbolLiteral(SymbolLiteral node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitAsExpression(AsExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitIsExpression(IsExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitStringConcatenation(StringConcatenation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitConditionalExpression(ConditionalExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitLogicalExpression(LogicalExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitNot(Not node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitConstructorInvocation(ConstructorInvocation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitStaticInvocation(StaticInvocation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitSuperMethodInvocation(SuperMethodInvocation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitDirectMethodInvocation(DirectMethodInvocation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitMethodInvocation(MethodInvocation node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitStaticSet(StaticSet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitStaticGet(StaticGet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitSuperPropertySet(SuperPropertySet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitSuperPropertyGet(SuperPropertyGet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitDirectPropertySet(DirectPropertySet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitDirectPropertyGet(DirectPropertyGet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitPropertySet(PropertySet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitPropertyGet(PropertyGet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitVariableSet(VariableSet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitVariableGet(VariableGet node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   
     @override
     void visitInvalidExpression(InvalidExpression node) {
  +    storeLastSeenUriAndOffset(node);
       makeExpressionRoundTrip(node);
     }
   }
  
positive.code:   }
  
    void makeDartTypeRoundTrip(DartType node) {
      throw new UnimplementedError("makeDartTypeRoundTrip");
    }
  
    @override
  
negative.code: import '../text/text_reader.dart' show TextIterator;
  
  import '../text/text_serializer.dart'
      show dartTypeSerializer, expressionSerializer, initializeSerializers;
  
  import '../visitor.dart' show Visitor;
  
  