anchor.diff:      var length = parameters.length;
       for (int i = 0; i < length; ++i) {
         ParameterElement parameter = parameters[i];
  -      if (parameter.hasImplicitType && parameter.type.isDynamic) {
  +      if (parameter is ParameterElementImpl && parameter.hasImplicitType) {
           overriddenMethods = overriddenMethods ??
               inheritanceManager.lookupOverrides(
                   methodElement.enclosingElement, methodElement.name);
           if (overriddenMethods.isEmpty || !_onlyMethods(overriddenMethods)) {
             return;
           }
  -        DartType type = _computeParameterType(parameter, i, overriddenMethods);
  -        if (!type.isDynamic) {
  -          if (parameter is ParameterElementImpl) {
  -            parameter.type = type;
  -          }
  -        }
  +        parameter.type = _computeParameterType(parameter, i, overriddenMethods);
         }
       }
     }
  
positive.code:           newType = fieldElement.initializer.returnType;
          }
        }
        if (newType != null && !newType.isBottom) {
          (fieldElement as FieldElementImpl).type = newType;
          _setReturnType(fieldElement.getter, newType);
          _setParameterType(fieldElement.setter, newType);
        }
      }
    }
  
  
negative.code:     if (!accessorElement.isSynthetic &&
          accessorElement.isGetter &&
          !accessorElement.isStatic &&
          accessorElement.hasImplicitReturnType) {
        List<ExecutableElement> overriddenGetters = inheritanceManager
            .lookupOverrides(
                accessorElement.enclosingElement, accessorElement.name);
  