anchor.diff:        void setValue(Variable variable, Reference<Primitive> value) {
           variable.type = value.definition.type;
         }
  -      if (invoke.receiver != null) {
  +      if (invoke.callingConvention == CallingConvention.Intercepted) {
           setValue(function.thisParameter, invoke.receiver);
  -      }
  -      for (int i = 0; i < invoke.arguments.length; ++i) {
  -        setValue(function.parameters[i], invoke.arguments[i]);
  +        function.parameters[0].type = abstractReceiverInMethod;
  +        for (int i = 1; i < invoke.arguments.length; ++i) {
  +          setValue(function.parameters[i], invoke.arguments[i]);
  +        }
  +      } else {
  +        if (invoke.receiver != null) {
  +          function.thisParameter.type = abstractReceiverInMethod;
  +        }
  +        for (int i = 0; i < invoke.arguments.length; ++i) {
  +          setValue(function.parameters[i], invoke.arguments[i]);
  +        }
         }
         optimizeBeforeInlining(function);
       }
  
positive.code:     // before.  Make an inlining decision.
      assert(cachedResult == InliningCache.ABSENT);
      Primitive doNotInline() {
        _inliner.cache.putNegative(target, callStructure, abstractReceiver,
            abstractArguments);
        return null;
      }
      if (backend.annotations.noInline(target)) return doNotInline();
  
negative.code:     Reference<Primitive> dartReceiver = invoke.dartReceiverReference;
      TypeMask abstractReceiver =
          dartReceiver == null ? null : abstractType(dartReceiver);
      // The receiver is non-null in a method body, unless the receiver is known
      // to be `null` (isEmpty covers `null` and unreachable).
      TypeMask abstractReceiverInMethod = abstractReceiver == null
          ? null
          : abstractReceiver.isEmpty
              ? abstractReceiver
              : abstractReceiver.nonNullable();
      List<TypeMask> abstractArguments =
          invoke.arguments.map(abstractType).toList();
      var cachedResult = _inliner.cache.get(target, callStructure,
          abstractReceiverInMethod,
          abstractArguments);
  
      // Negative inlining result in the cache.
  