anchor.diff:     * observe the associated properties.
      */
     void explodeObservers() {
  -    var options = const smoke.QueryOptions(includeProperties: false,
  -        includeMethods: true, includeInherited: true,
  +    var options = const smoke.QueryOptions(includeFields: false,
  +        includeProperties: false, includeMethods: true, includeInherited: true,
           withAnnotations: const [ObserveProperty]);
       for (var decl in smoke.query(_type, options)) {
         for (var meta in decl.annotations) {
  
positive.code:    * properties.
     */
    void inferObservers() {
      var options = const smoke.QueryOptions(includeProperties: false,
          includeMethods: true, includeInherited: true);
      for (var decl in smoke.query(_type, options)) {
        String name = smoke.symbolToName(decl.name);
        if (name.endsWith(_OBSERVE_SUFFIX) && name != 'attributeChanged') {
  
negative.code:         }
  
          var decl = smoke.getDeclaration(_type, property);
          if (decl == null || decl.isMethod || decl.isFinal) {
            window.console.warn('property for attribute $attr of polymer-element '
                'name=$name not found.');
            continue;
  