diff --git a/lib/src/model.dart b/lib/src/model.dart index 78190b77db..9868133800 100644 --- a/lib/src/model.dart +++ b/lib/src/model.dart @@ -2236,7 +2236,8 @@ class Library extends ModelElement with Categorization, TopLevelContainer { _prefixToLibrary = {}; // It is possible to have overlapping prefixes. for (ImportElement i in (element as LibraryElement).imports) { - if (i.prefix?.name != null) { + // Ignore invalid imports. + if (i.prefix?.name != null && i.importedLibrary != null) { _prefixToLibrary.putIfAbsent(i.prefix?.name, () => new Set()); _prefixToLibrary[i.prefix?.name].add( new ModelElement.from(i.importedLibrary, library, packageGraph)); diff --git a/testing/test_package/lib/fake.dart b/testing/test_package/lib/fake.dart index 9e001ab709..03b0a69ee0 100644 --- a/testing/test_package/lib/fake.dart +++ b/testing/test_package/lib/fake.dart @@ -48,6 +48,9 @@ library fake; import 'dart:async'; import 'dart:collection'; +// Make sure dartdoc ignores invalid prefixes imports (#1896) +// ignore: uri_does_not_exist +import 'dart:json' as invalidPrefix; import 'package:meta/meta.dart' show Required; import 'csspub.dart' as css; import 'csspub.dart' as renamedLib2;