From 36ed2d55d1c02ed6fe705a34fd1778300fbc5a3a Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Fri, 11 Jan 2019 10:46:42 -0800 Subject: [PATCH] Fix crash on invalid prefix imports. --- lib/src/model.dart | 3 ++- testing/test_package/lib/fake.dart | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/src/model.dart b/lib/src/model.dart index 783adb0759..3aaa7c8d7e 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 da134b13c6..b6b147feac 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;