anchor.diff:      _forDoStatement.add(new _Subscription(linter, f, _getTimer(linter)));
     }
   
  +  void addDottedName(LintRule linter, void Function(DottedName) f) {
  +    _forDottedName.add(new _Subscription(linter, f, _getTimer(linter)));
  +  }
  +
  +  void addDoubleLiteral(LintRule linter, void Function(DoubleLiteral) f) {
  +    _forDoubleLiteral.add(new _Subscription(linter, f, _getTimer(linter)));
  +  }
  +
  +  void addEmptyFunctionBody(
  +      LintRule linter, void Function(EmptyFunctionBody) f) {
  +    _forEmptyFunctionBody.add(new _Subscription(linter, f, _getTimer(linter)));
  +  }
  +
     void addEmptyStatement(LintRule linter, void Function(EmptyStatement) f) {
       _forEmptyStatement.add(new _Subscription(linter, f, _getTimer(linter)));
     }
  
positive.code:   }
  
    @override
    void visitCompilationUnit(CompilationUnit node) {
      _runSubscriptions(node, registry._forCompilationUnit);
      super.visitCompilationUnit(node);
    }
  
    @override
    void visitConstructorDeclaration(ConstructorDeclaration node) {
      _runSubscriptions(node, registry._forConstructorDeclaration);
      super.visitConstructorDeclaration(node);
    }
  
    @override
    void visitContinueStatement(ContinueStatement node) {
      _runSubscriptions(node, registry._forContinueStatement);
      super.visitContinueStatement(node);
  
negative.code:         .add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addSuperConstructorInvocation(
        LintRule linter, void Function(SuperConstructorInvocation) f) {
      _forSuperConstructorInvocation
          .add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addSuperExpression(LintRule linter, void Function(SuperExpression) f) {
      _forSuperExpression.add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addSwitchCase(LintRule linter, void Function(SwitchCase) f) {
      _forSwitchCase.add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addSwitchDefault(LintRule linter, void Function(SwitchDefault) f) {
      _forSwitchDefault.add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addSwitchStatement(LintRule linter, void Function(SwitchStatement) f) {
      _forSwitchStatement.add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addSymbolLiteral(LintRule linter, void Function(SymbolLiteral) f) {
      _forSymbolLiteral.add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addThisExpression(LintRule linter, void Function(ThisExpression) f) {
      _forThisExpression.add(new _Subscription(linter, f, _getTimer(linter)));
    }
  
    void addThrowExpression(LintRule linter, void Function(ThrowExpression) f) {
  