anchor.diff:      _buildInitializers(constructor, constructorChain, fieldValues);
   
       final constructorArguments = <HInstruction>[];
  +    // Doing this instead of fieldValues.forEach because we haven't defined the
  +    // order of the arguments here. We can define that with JElements.
       astAdapter.getClass(constructor.enclosingClass).forEachInstanceField(
           (ClassElement enclosingClass, FieldElement member) {
         var value = fieldValues[astAdapter.getFieldFromElement(member)];
  
positive.code:         // TODO(efortuna): Do we need to check mixin classes as well?
          if (procedure.name.name == Identifiers.noSuchMethod_ &&
              Selectors.noSuchMethod_
                  .signatureApplies(astAdapter.getElement(procedure))) {
            noSuchMethod = procedure;
          }
        }
  
negative.code:   void _addClassTypeVariablesIfNeeded(ir.Member constructor) {
      var enclosing = constructor.enclosingClass;
      if (backend.rtiNeed.classNeedsRti(astAdapter.getElement(enclosing))) {
        enclosing.typeParameters.forEach((ir.TypeParameter typeParameter) {
          var typeParamElement = astAdapter.getElement(typeParameter);
          HParameterValue param =
              addParameter(typeParamElement, commonMasks.nonNullType);
          // This is a little bit wacky (and n^2) until we make the localsHandler
          // take Kernel DartTypes instead of just the AST DartTypes.
          var typeVariableType = astAdapter
              .getElement(enclosing)
              .typeVariables
              .firstWhere(
                  (ResolutionTypeVariableType i) => i.name == typeParameter.name);
          localsHandler.directLocals[
              localsHandler.getTypeVariableAsLocal(typeVariableType)] = param;
        });
  