anchor.diff:          .add(new _Subscription(linter, visitor, _getTimer(linter)));
     }
   
  +  void addCollectionForElement(LintRule linter, AstVisitor visitor) {
  +    _forCollectionForElement
  +        .add(new _Subscription(linter, visitor, _getTimer(linter)));
  +  }
  +
  +  void addCollectionIfElement(LintRule linter, AstVisitor visitor) {
  +    _forCollectionIfElement
  +        .add(new _Subscription(linter, visitor, _getTimer(linter)));
  +  }
  +
     void addComment(LintRule linter, AstVisitor visitor) {
       _forComment.add(new _Subscription(linter, visitor, _getTimer(linter)));
     }
  
positive.code:   }
  
    @override
    void visitForStatement(ForStatement node) {
      _runSubscriptions(node, registry._forForStatement);
      super.visitForStatement(node);
    }
  
    @override
    void visitFunctionDeclaration(FunctionDeclaration node) {
      _runSubscriptions(node, registry._forFunctionDeclaration);
      super.visitFunctionDeclaration(node);
  
negative.code:   }
  
    @override
    void visitForEachPartsWithDeclaration(ForEachPartsWithDeclaration node) {
      _runSubscriptions(node, registry._forForEachPartsWithDeclaration);
      super.visitForEachPartsWithDeclaration(node);
    }
  
    @override
    void visitForEachPartsWithIdentifier(ForEachPartsWithIdentifier node) {
      _runSubscriptions(node, registry._forForEachPartsWithIdentifier);
      super.visitForEachPartsWithIdentifier(node);
    }
  
    @override
    void visitForEachStatement(ForEachStatement node) {
      _runSubscriptions(node, registry._forForEachStatement);
      super.visitForEachStatement(node);
  