anchor.diff:  
     @override
     void _visit(Harness h) {
  -    expression._visit(h);
  -    h._flow.switchStatement_expressionEnd(this);
  -    var oldSwitch = h._currentSwitch;
  -    var previousBreakTarget = h._currentBreakTarget;
  -    h._currentSwitch = this;
  -    h._currentBreakTarget = this;
  -    for (var case_ in cases) {
  -      case_._visit(h);
  -    }
  -    h._currentSwitch = oldSwitch;
  -    h._currentBreakTarget = previousBreakTarget;
  -    h._flow.switchStatement_end(isExhaustive);
  +    h._typeAnalyzer.analyzeSwitchStatement(this, expression, cases);
     }
   }
   
  
positive.code: 
    @override
    Type _visit(Harness h) {
      var targetType = target._visit(h);
      var propertyType = h.getMember(targetType, propertyName);
      h._flow.propertyGet(this, target, propertyName, propertyName, propertyType);
      return propertyType;
    }
  
    @override
  
negative.code: 
    @override
    void _visit(Harness h) {
      h._typeAnalyzer.analyzeBlock(statements);
    }
  }
  
  