Skip to content

Commit 8865229

Browse files
author
John Messerly
committed
fixes #200, library prefixes for unknown imports
Take 2. The first version passed checker_test but not inferred_type_test. The library prefix staticElement check needs to come first. [email protected] Review URL: https://codereview.chromium.org/1161603009
1 parent 33eee25 commit 8865229

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pkg/dev_compiler/lib/src/utils.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,16 @@ _MemberTypeGetter _memberTypeGetter(ExecutableElement member) {
207207
return f;
208208
}
209209

210-
bool isDynamicTarget(Expression node) =>
211-
node != null && !isLibraryPrefix(node) && node.staticType.isDynamic;
210+
bool isDynamicTarget(Expression node) {
211+
if (node == null) return false;
212+
213+
if (isLibraryPrefix(node)) return false;
214+
215+
// Null type happens when we have unknown identifiers, like a dart: import
216+
// that doesn't resolve.
217+
var type = node.staticType;
218+
return type == null || type.isDynamic;
219+
}
212220

213221
bool isLibraryPrefix(Expression node) =>
214222
node is SimpleIdentifier && node.staticElement is PrefixElement;

0 commit comments

Comments
 (0)