Eliminate relative imports where possible and workaround inheritance problem in reexported classes (#1675)
* Eliminate relative imports where possible (and not in test package)
* Add back the dartdoc options export to see if it causes meltdown on Windows
* Workaround for dart-lang/sdk#32923
* Sort imports with Optimize Imports
diff --git a/lib/dartdoc.dart b/lib/dartdoc.dart
index 37c6c78..b4c7ced 100644
--- a/lib/dartdoc.dart
+++ b/lib/dartdoc.dart
@@ -13,25 +13,25 @@
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/source.dart';
+import 'package:dartdoc/src/config.dart';
+import 'package:dartdoc/src/generator.dart';
+import 'package:dartdoc/src/html/html_generator.dart';
+import 'package:dartdoc/src/logging.dart';
+import 'package:dartdoc/src/model.dart';
+import 'package:dartdoc/src/package_meta.dart';
import 'package:dartdoc/src/utils.dart';
+import 'package:dartdoc/src/warnings.dart';
import 'package:html/dom.dart' show Element, Document;
import 'package:html/parser.dart' show parse;
import 'package:path/path.dart' as pathLib;
-
import 'package:tuple/tuple.dart';
-import 'src/config.dart';
-import 'src/generator.dart';
-import 'src/html/html_generator.dart';
-import 'src/logging.dart';
-import 'src/model.dart';
-import 'src/package_meta.dart';
-import 'src/warnings.dart';
-export 'src/config.dart';
-export 'src/element_type.dart';
-export 'src/generator.dart';
-export 'src/model.dart';
-export 'src/package_meta.dart';
+export 'package:dartdoc/src/config.dart';
+export 'package:dartdoc/src/dartdoc_options.dart';
+export 'package:dartdoc/src/element_type.dart';
+export 'package:dartdoc/src/generator.dart';
+export 'package:dartdoc/src/model.dart';
+export 'package:dartdoc/src/package_meta.dart';
const String name = 'dartdoc';
// Update when pubspec version changes.
diff --git a/lib/src/dartdoc_options.dart b/lib/src/dartdoc_options.dart
index a91d856..2bc1c3a 100644
--- a/lib/src/dartdoc_options.dart
+++ b/lib/src/dartdoc_options.dart
@@ -19,11 +19,10 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:args/args.dart';
import 'package:dartdoc/dartdoc.dart';
+import 'package:dartdoc/src/logging.dart';
import 'package:path/path.dart' as pathLib;
import 'package:yaml/yaml.dart';
-import 'logging.dart';
-
/// Constants to help with type checking, because T is int and so forth
/// don't work in Dart.
const String _kStringVal = '';
diff --git a/lib/src/debug.dart b/lib/src/debug.dart
index 7d78d11..349aefc 100644
--- a/lib/src/debug.dart
+++ b/lib/src/debug.dart
@@ -4,7 +4,7 @@
library debugger_helper;
-import "dart:developer" as dev;
+import 'dart:developer' as dev;
get debugger =>
const String.fromEnvironment('DEBUG') == null ? _nodebugger : dev.debugger;
diff --git a/lib/src/element_type.dart b/lib/src/element_type.dart
index ee9c10a..aa6c599 100644
--- a/lib/src/element_type.dart
+++ b/lib/src/element_type.dart
@@ -7,8 +7,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
-
-import 'model.dart';
+import 'package:dartdoc/src/model.dart';
/// Base class representing a type in Dartdoc. It wraps a [DartType], and
/// may link to a [ModelElement].
diff --git a/lib/src/generator.dart b/lib/src/generator.dart
index ac4bc7b..20dd037 100644
--- a/lib/src/generator.dart
+++ b/lib/src/generator.dart
@@ -8,7 +8,7 @@
import 'dart:async' show Stream, Future;
import 'dart:io' show File;
-import 'model.dart' show PackageGraph;
+import 'package:dartdoc/src/model.dart' show PackageGraph;
/// An abstract class that defines a generator that generates documentation for
/// a given package.
diff --git a/lib/src/html/html_generator.dart b/lib/src/html/html_generator.dart
index 4febcc2..2e3de78 100644
--- a/lib/src/html/html_generator.dart
+++ b/lib/src/html/html_generator.dart
@@ -7,14 +7,13 @@
import 'dart:async' show Future, StreamController, Stream;
import 'dart:io' show File;
+import 'package:dartdoc/src/generator.dart';
+import 'package:dartdoc/src/html/html_generator_instance.dart';
+import 'package:dartdoc/src/html/template_data.dart';
+import 'package:dartdoc/src/html/templates.dart';
+import 'package:dartdoc/src/model.dart';
import 'package:path/path.dart' as pathLib;
-import '../generator.dart';
-import '../model.dart';
-import 'html_generator_instance.dart';
-import 'template_data.dart';
-import 'templates.dart';
-
typedef String Renderer(String input);
// Generation order for libraries:
diff --git a/lib/src/html/html_generator_instance.dart b/lib/src/html/html_generator_instance.dart
index 98e3782..c4bc561 100644
--- a/lib/src/html/html_generator_instance.dart
+++ b/lib/src/html/html_generator_instance.dart
@@ -7,19 +7,18 @@
import 'dart:io' show File;
import 'package:collection/collection.dart' show compareNatural;
+import 'package:dartdoc/src/html/html_generator.dart' show HtmlGeneratorOptions;
+import 'package:dartdoc/src/html/resource_loader.dart' as loader;
+import 'package:dartdoc/src/html/resources.g.dart' as resources;
+import 'package:dartdoc/src/html/template_data.dart';
+import 'package:dartdoc/src/html/templates.dart';
+import 'package:dartdoc/src/logging.dart';
+import 'package:dartdoc/src/model.dart';
import 'package:dartdoc/src/model_utils.dart';
+import 'package:dartdoc/src/warnings.dart';
import 'package:mustache4dart/mustache4dart.dart';
import 'package:path/path.dart' as pathLib;
-import '../logging.dart';
-import '../model.dart';
-import '../warnings.dart';
-import 'html_generator.dart' show HtmlGeneratorOptions;
-import 'resource_loader.dart' as loader;
-import 'resources.g.dart' as resources;
-import 'template_data.dart';
-import 'templates.dart';
-
typedef void FileWriter(String path, Object content, {bool allowOverwrite});
class HtmlGeneratorInstance {
diff --git a/lib/src/html/template_data.dart b/lib/src/html/template_data.dart
index bdc7ae0..7014a5c 100644
--- a/lib/src/html/template_data.dart
+++ b/lib/src/html/template_data.dart
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import '../model.dart';
+import 'package:dartdoc/src/model.dart';
abstract class HtmlOptions {
String get relCanonicalPrefix;
diff --git a/lib/src/html/templates.dart b/lib/src/html/templates.dart
index d2258c9..42189ef 100644
--- a/lib/src/html/templates.dart
+++ b/lib/src/html/templates.dart
@@ -7,10 +7,9 @@
import 'dart:async' show Future;
import 'dart:io' show File;
+import 'package:dartdoc/src/html/resource_loader.dart' as loader;
import 'package:mustache4dart/mustache4dart.dart';
-import 'resource_loader.dart' as loader;
-
const _partials = const <String>[
'callable',
'callable_multiline',
diff --git a/lib/src/markdown_processor.dart b/lib/src/markdown_processor.dart
index e97ce2a..b6dd03d 100644
--- a/lib/src/markdown_processor.dart
+++ b/lib/src/markdown_processor.dart
@@ -11,14 +11,13 @@
import 'package:analyzer/dart/ast/ast.dart' hide TypeParameter;
import 'package:analyzer/dart/element/element.dart';
import 'package:dartdoc/src/element_type.dart';
+import 'package:dartdoc/src/model.dart';
import 'package:dartdoc/src/model_utils.dart';
+import 'package:dartdoc/src/warnings.dart';
import 'package:html/parser.dart' show parse;
import 'package:markdown/markdown.dart' as md;
import 'package:tuple/tuple.dart';
-import 'model.dart';
-import 'warnings.dart';
-
const validHtmlTags = const [
"a",
"abbr",
diff --git a/lib/src/model.dart b/lib/src/model.dart
index a608919..60f601f 100644
--- a/lib/src/model.dart
+++ b/lib/src/model.dart
@@ -35,24 +35,23 @@
show ExecutableMember, Member, ParameterMember;
import 'package:analyzer/src/dart/analysis/driver.dart';
import 'package:collection/collection.dart';
+import 'package:dartdoc/src/config.dart';
import 'package:dartdoc/src/dartdoc_options.dart';
+import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/io_utils.dart';
+import 'package:dartdoc/src/line_number_cache.dart';
+import 'package:dartdoc/src/logging.dart';
+import 'package:dartdoc/src/markdown_processor.dart' show Documentation;
+import 'package:dartdoc/src/model_utils.dart';
+import 'package:dartdoc/src/package_meta.dart' show PackageMeta, FileContents;
+import 'package:dartdoc/src/utils.dart';
+import 'package:dartdoc/src/warnings.dart';
import 'package:front_end/src/byte_store/byte_store.dart';
import 'package:front_end/src/base/performance_logger.dart';
import 'package:path/path.dart' as pathLib;
import 'package:tuple/tuple.dart';
import 'package:package_config/discovery.dart' as package_config;
-import 'config.dart';
-import 'element_type.dart';
-import 'line_number_cache.dart';
-import 'logging.dart';
-import 'markdown_processor.dart' show Documentation;
-import 'model_utils.dart';
-import 'package_meta.dart' show PackageMeta, FileContents;
-import 'utils.dart';
-import 'warnings.dart';
-
int byName(Nameable a, Nameable b) =>
compareAsciiLowerCaseNatural(a.name, b.name);
@@ -923,9 +922,9 @@
if (__inheritedElements == null) {
__inheritedElements = [];
Map<String, ExecutableElement> cmap =
- library.inheritanceManager.getMembersInheritedFromClasses(element);
+ definingLibrary.inheritanceManager.getMembersInheritedFromClasses(element);
Map<String, ExecutableElement> imap =
- library.inheritanceManager.getMembersInheritedFromInterfaces(element);
+ definingLibrary.inheritanceManager.getMembersInheritedFromInterfaces(element);
__inheritedElements.addAll(cmap.values);
__inheritedElements
.addAll(imap.values.where((e) => !cmap.containsKey(e.name)));
diff --git a/lib/src/warnings.dart b/lib/src/warnings.dart
index 5fc5d2f..58589ed 100644
--- a/lib/src/warnings.dart
+++ b/lib/src/warnings.dart
@@ -3,11 +3,10 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/element/element.dart';
+import 'package:dartdoc/src/logging.dart';
import 'package:dartdoc/src/model.dart';
import 'package:tuple/tuple.dart';
-import 'logging.dart';
-
class PackageWarningHelpText {
final String warningName;
final String shortHelp;