diff --git a/pkg/dev_compiler/lib/src/utils.dart b/pkg/dev_compiler/lib/src/utils.dart index 4c7339520c67..9f21703d7dea 100644 --- a/pkg/dev_compiler/lib/src/utils.dart +++ b/pkg/dev_compiler/lib/src/utils.dart @@ -207,8 +207,15 @@ _MemberTypeGetter _memberTypeGetter(ExecutableElement member) { return f; } -bool isDynamicTarget(Expression node) => - node != null && !isLibraryPrefix(node) && node.staticType.isDynamic; +bool isDynamicTarget(Expression node) { + if (node == null) return false; + var type = node.staticType; + + // This is an unknown identifier, like an import that doesn't resolve. + if (type == null) return true; + + return type.isDynamic && !isLibraryPrefix(node); +} bool isLibraryPrefix(Expression node) => node is SimpleIdentifier && node.staticElement is PrefixElement;