anchor.diff:  class NumericConversion extends Conversion {
     // int to double only?
   
  -  NumericConversion(TypeRules rules, Expression expression) : super(rules, expression) {
  +  NumericConversion(TypeRules rules, Expression expression)
  +      : super(rules, expression) {
       assert(baseType.displayName == rules.provider.intType);
     }
   
  
positive.code:   // TODO(vsm): Refactor to a different class.
    final bool fieldOverride;
  
    InvalidOverride(this.node, this.element, this.base, this.methodType, this.baseType, [this.fieldOverride = false]);
  
    ClassDeclaration get parent => element.enclosingElement.node as ClassDeclaration;
    String get message {
      if (fieldOverride)
        return 'Invalid field override for ${element.name} in ${parent.name} over $base';
      else
        return 'Invalid override for ${element.name} in ${parent.name} over $base: $methodType does not subtype $baseType';
    }
  
    logger.Level get level => logger.Level.SEVERE;
  
negative.code:     if (baseMethod != null) {
        // TODO(vsm): Test for generic
        FunctionType baseType = _rules.elementType(baseMethod);
        if (!_rules.isAssignable(subType, baseType)) {
          return new InvalidOverride(node, element, type, subType, baseType);
        }
  
        // Test that we're not overriding a field.
        if (allowFieldOverride == false) {
  