Index: lib/src/checker/resolver.dart |
diff --git a/lib/src/checker/resolver.dart b/lib/src/checker/resolver.dart |
index 427baf3575f9516954cbb781d8016b0608206271..942eb905022aac0ba740d6c9264099bc182b38c8 100644 |
--- a/lib/src/checker/resolver.dart |
+++ b/lib/src/checker/resolver.dart |
@@ -607,9 +607,17 @@ class RestrictedStaticTypeAnalyzer extends StaticTypeAnalyzer { |
// variety of types, especially when we get to JS interop. |
var args = node.argumentList.arguments; |
if (args.isNotEmpty && args.first is SimpleStringLiteral) { |
- var coreLib = _typeProvider.objectType.element.library; |
- var classElem = coreLib.getType(args.first.stringValue); |
- if (classElem != null) node.staticType = classElem.type; |
+ var typeStr = args.first.stringValue; |
+ if (typeStr == '-dynamic') { |
+ node.staticType = _typeProvider.bottomType; |
+ } else { |
+ var coreLib = _typeProvider.objectType.element.library; |
+ var classElem = coreLib.getType(typeStr); |
+ if (classElem != null) { |
+ var type = fillDynamicTypeArgs(classElem.type, _typeProvider); |
+ node.staticType = type; |
+ } |
+ } |
} |
} |
} |