anchor.diff:  
     static const LintCode packageDirectiveBeforeRelative = LintCode(
         'directives_ordering', "Place 'package:' {0}s before relative {0}s.");
  -
  -  DartProject? project;
   
     DirectivesOrdering()
         : super(
  
positive.code: bool _isRelativeDirective(NamespaceDirective node) =>
      !_isAbsoluteDirective(node);
  
  class DirectivesOrdering extends LintRule
      implements ProjectVisitor, NodeLintRule {
    static const LintCode dartDirectiveGoFirst =
        LintCode('directives_ordering', "Place 'dart:' {0}s before other {0}s.");
  
  
negative.code:     _checkSectionInOrder(lintedNodes, relativeImports);
      _checkSectionInOrder(lintedNodes, relativeExports);
  
      // See: https://github.com/dart-lang/linter/issues/3395
      // (`DartProject` removal)
      // The rub is that *all* projects are being treated as "not pub"
      // packages.  We'll want to be careful when fixing this since it
      // will have ecosystem impact.
  
      // Not a pub package. Package directives should be sorted in one block.
      var packageImports = importDirectives.where(_isPackageDirective);
      var packageExports = exportDirectives.where(_isPackageDirective);
  
      _checkSectionInOrder(lintedNodes, packageImports);
      _checkSectionInOrder(lintedNodes, packageExports);
  
      // The following is relying on projectName which is meant to come from
      // a `DartProject` instance (but was not since the project was always null)
      // else {
      //   var packageBox = _PackageBox(projectName);
      //
      //   var thirdPartyPackageImports =
      //       importDirectives.where(packageBox._isNotOwnPackageDirective);
      //   var thirdPartyPackageExports =
      //       exportDirectives.where(packageBox._isNotOwnPackageDirective);
      //
      //   var ownPackageImports =
      //       importDirectives.where(packageBox._isOwnPackageDirective);
      //   var ownPackageExports =
      //       exportDirectives.where(packageBox._isOwnPackageDirective);
      //
      //   _checkSectionInOrder(lintedNodes, thirdPartyPackageImports);
      //   _checkSectionInOrder(lintedNodes, thirdPartyPackageExports);
      //
      //   _checkSectionInOrder(lintedNodes, ownPackageImports);
      //   _checkSectionInOrder(lintedNodes, ownPackageExports);
      // }
    }
  
    void _checkExportDirectiveAfterImportDirective(
  