anchor.diff:        if (inliningStack[i].function == element) return false;
       }
   
  -    PartialFunctionElement function = element;
  +    FunctionElement function = element;
       bool canBeInlined = backend.canBeInlined[function];
       if (canBeInlined == false) return false;
  -    assert(selector != null || Elements.isStaticOrTopLevel(element));
  +    assert(selector != null
  +           || Elements.isStaticOrTopLevel(element)
  +           || element.isGenerativeConstructorBody());
       if (selector != null && !selector.applies(function, compiler)) return false;
   
       // Don't inline operator== methods if the parameter can be null.
  
positive.code:    *
     * Invariant: [function] must be an implementation element.
     */
    final PartialFunctionElement function;
    final Element oldReturnElement;
    final DartType oldReturnType;
    final TreeElements oldElements;
  
negative.code:                        HType.STRING);
        pushInvokeStatic(node,
                         backend.getCreateRuntimeType(),
                         [pop()]);
      } else {
        internalError('unexpected element kind $element', node: node);
      }
  