anchor.diff:    @override
     Object visitDeclaredIdentifier(DeclaredIdentifier node) {
       SimpleIdentifier variableName = node.identifier;
  -    sc.Token keyword = node.keyword;
       LocalVariableElementImpl element =
           new LocalVariableElementImpl.forNode(variableName);
       ForEachStatement statement = node.parent as ForEachStatement;
       int declarationEnd = node.offset + node.length;
       int statementEnd = statement.offset + statement.length;
       element.setVisibleRange(declarationEnd, statementEnd - declarationEnd - 1);
  -    element.const3 = _matches(keyword, sc.Keyword.CONST);
  -    element.final2 = _matches(keyword, sc.Keyword.FINAL);
  +    element.const3 = node.isConst;
  +    element.final2 = node.isFinal;
       _currentHolder.addLocalVariable(element);
       variableName.staticElement = element;
       return super.visitDeclaredIdentifier(node);
  
positive.code: 
    @override
    Object visitVariableDeclaration(VariableDeclaration node) {
      sc.Token keyword = (node.parent as VariableDeclarationList).keyword;
      bool isConst = _matches(keyword, sc.Keyword.CONST);
      bool isFinal = _matches(keyword, sc.Keyword.FINAL);
      bool hasInitializer = node.initializer != null;
      VariableElementImpl element;
      if (_inFieldContext) {
  
negative.code:     }
      return null;
    }
  
    /**
     * Sets the visible source range for formal parameter.
  