anchor.diff:          ast.references,
           hasTemplateRefQuery: parent.hasTemplateRefQuery,
           isInlined: isPureHtml);
  -    view.nodes.add(compileElement);
  -    nestedViewCount++;
  +    _view.nodes.add(compileElement);
  +    _nestedViewCount++;
       var embeddedView = CompileView(
  -        view.component,
  -        view.genConfig,
  -        view.directiveTypes,
  -        view.pipeMetas,
  +        _view.component,
  +        _view.genConfig,
  +        _view.directiveTypes,
  +        _view.pipeMetas,
           o.NULL_EXPR,
  -        view.viewIndex + nestedViewCount,
  +        _view.viewIndex + _nestedViewCount,
           compileElement,
           ast.variables,
  -        view.deferredModules,
  +        _view.deferredModules,
           isInlined: isPureHtml);
   
       // Create a visitor for embedded view and visit all nodes.
  -    var embeddedViewVisitor =
  -        ViewBuilderVisitor(embeddedView, isInlinedView: isPureHtml);
  +    var embeddedViewVisitor = ViewBuilderVisitor(embeddedView);
       templateVisitAll(
           embeddedViewVisitor,
           ast.children,
           embeddedView.declarationElement.parent ??
               embeddedView.declarationElement);
  -    nestedViewCount += embeddedViewVisitor.nestedViewCount;
  +    _nestedViewCount += embeddedViewVisitor._nestedViewCount;
   
       if (!isPureHtml) {
         compileElement.beforeChildren();
  
positive.code:     templateVisitAll(this, ast.children, parent);
    }
  
    void visitNgContent(NgContentAst ast, CompileElement parent) {
      view.projectNodesIntoElement(parent, ast.index, ast);
    }
  
    void visitElement(ElementAst ast, CompileElement parent) {
      int nodeIndex = view.nodes.length;
  
      bool isHostRootView = nodeIndex == 0 && view.viewType == ViewType.host;
      final type = o.importType(identifierFromTagName(ast.name));
      NodeReference elementRef;
      if (isHostRootView) {
        elementRef = NodeReference.appViewRoot();
      } else if (view.isInlined) {
        elementRef = NodeReference.inlinedNode(
            view.storage, type, view.declarationElement.nodeIndex, nodeIndex);
      } else {
        elementRef = NodeReference(view.storage, type, nodeIndex);
      }
  
      var directives = <CompileDirectiveMetadata>[];
  
negative.code:         isHtmlElement: detectHtmlElementFromTagName(tagName),
          hasTemplateRefQuery: parent.hasTemplateRefQuery);
  
      _view.nodes.add(compileElement);
      // beforeChildren() -> _prepareProviderInstances will create the actual
      // directive and component instances.
      compileElement.beforeChildren();
      _addRootNodeAndProject(compileElement, ast.ngContentIndex, parent);
      templateVisitAll(this, ast.children, compileElement);
      compileElement.afterChildren(_view.nodes.length - nodeIndex - 1);
    }
  
    @override
    void visitEmbeddedTemplate(EmbeddedTemplateAst ast, CompileElement parent) {
      var nodeIndex = _view.nodes.length;
      var isPureHtml = !_visitingProjectedContent && _isPureHtml(ast);
      if (isPureHtml) {
        _view.hasInlinedView = true;
      }
      NodeReference nodeReference =
          _view.createViewContainerAnchor(parent, nodeIndex, ast);
      var directives =
          ast.directives.map((directiveAst) => directiveAst.directive).toList();
      var compileElement = CompileElement(
          parent,
          _view,
          nodeIndex,
          nodeReference,
          ast,
  