anchor.diff:  
     @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 isConst = node.isConst;
  +    bool isFinal = node.isFinal;
       bool hasInitializer = node.initializer != null;
       VariableElementImpl element;
       if (_inFieldContext) {
  
positive.code:           variable.synthetic = true;
            _currentHolder.addTopLevelVariable(variable);
          }
          if (_matches(property, sc.Keyword.GET)) {
            PropertyAccessorElementImpl getter =
                new PropertyAccessorElementImpl.forNode(propertyNameNode);
            getter.functions = holder.functions;
  
negative.code:       PropertyInducingElementImpl variable =
            element as PropertyInducingElementImpl;
        if (_inFieldContext) {
          (variable as FieldElementImpl).static =
              (node.parent.parent as FieldDeclaration).isStatic;
        }
        PropertyAccessorElementImpl getter =
            new PropertyAccessorElementImpl.forVariable(variable);
  