Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: pkg/analyzer/lib/src/generated/element_resolver.dart

Issue 1917203002: Remove more type casts (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/generated/element_resolver.dart
diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart
index d076a10bfc0e373b4790753d24f2bf6e2a0ef24a..b37ebea8d1b858d2bb3ece905ede30e2962c58b6 100644
--- a/pkg/analyzer/lib/src/generated/element_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/element_resolver.dart
@@ -351,8 +351,19 @@ class ElementResolver extends SimpleAstVisitor<Object> {
Object visitConstructorName(ConstructorName node) {
DartType type = node.type.type;
if (type != null && type.isDynamic) {
- return null;
- } else if (type is! InterfaceType) {
+ // Nothing to do.
+ } else if (type is InterfaceType) {
+ // look up ConstructorElement
+ ConstructorElement constructor;
+ SimpleIdentifier name = node.name;
+ if (name == null) {
+ constructor = type.lookUpConstructor(null, _definingLibrary);
+ } else {
+ constructor = type.lookUpConstructor(name.name, _definingLibrary);
+ name.staticElement = constructor;
+ }
+ node.staticElement = constructor;
+ } else {
// TODO(brianwilkerson) Report these errors.
// ASTNode parent = node.getParent();
// if (parent instanceof InstanceCreationExpression) {
@@ -364,20 +375,7 @@ class ElementResolver extends SimpleAstVisitor<Object> {
// } else {
// // This is part of a redirecting factory constructor; not sure which error code to use
// }
- return null;
}
- // look up ConstructorElement
- ConstructorElement constructor;
- SimpleIdentifier name = node.name;
- InterfaceType interfaceType = type as InterfaceType;
- if (name == null) {
- constructor = interfaceType.lookUpConstructor(null, _definingLibrary);
- } else {
- constructor =
- interfaceType.lookUpConstructor(name.name, _definingLibrary);
- name.staticElement = constructor;
- }
- node.staticElement = constructor;
return null;
}
@@ -1085,7 +1083,6 @@ class ElementResolver extends SimpleAstVisitor<Object> {
_resolver.reportErrorForNode(
CompileTimeErrorCode.INVALID_CONSTRUCTOR_NAME, node);
} else {
- AstNode parent = node.parent;
if (parent is Annotation) {
_resolver.reportErrorForNode(
CompileTimeErrorCode.INVALID_ANNOTATION, parent);
@@ -1112,9 +1109,8 @@ class ElementResolver extends SimpleAstVisitor<Object> {
//
// Validate annotation element.
//
- if (node.parent is Annotation) {
- Annotation annotation = node.parent as Annotation;
- _resolveAnnotationElement(annotation);
+ if (parent is Annotation) {
+ _resolveAnnotationElement(parent);
}
return null;
}
@@ -1417,12 +1413,11 @@ class ElementResolver extends SimpleAstVisitor<Object> {
}
/**
- * Assuming that the given [expression] is a prefix for a deferred import,
+ * Assuming that the given [identifier] is a prefix for a deferred import,
* return the library that is being imported.
*/
- LibraryElement _getImportedLibrary(Expression expression) {
- PrefixElement prefixElement =
- (expression as SimpleIdentifier).staticElement as PrefixElement;
+ LibraryElement _getImportedLibrary(SimpleIdentifier identifier) {
+ PrefixElement prefixElement = identifier.staticElement as PrefixElement;
List<ImportElement> imports =
prefixElement.enclosingElement.getImportsWithPrefix(prefixElement);
return imports[0].importedLibrary;
@@ -1544,20 +1539,18 @@ class ElementResolver extends SimpleAstVisitor<Object> {
* Return `true` if the given [expression] is a prefix for a deferred import.
*/
bool _isDeferredPrefix(Expression expression) {
- if (expression is! SimpleIdentifier) {
- return false;
- }
- Element element = (expression as SimpleIdentifier).staticElement;
- if (element is! PrefixElement) {
- return false;
- }
- PrefixElement prefixElement = element as PrefixElement;
- List<ImportElement> imports =
- prefixElement.enclosingElement.getImportsWithPrefix(prefixElement);
- if (imports.length != 1) {
- return false;
+ if (expression is SimpleIdentifier) {
+ Element element = expression.staticElement;
+ if (element is PrefixElement) {
+ List<ImportElement> imports =
+ element.enclosingElement.getImportsWithPrefix(element);
+ if (imports.length != 1) {
+ return false;
+ }
+ return imports[0].isDeferred;
+ }
}
- return imports[0].isDeferred;
+ return false;
}
/**
@@ -1870,9 +1863,8 @@ class ElementResolver extends SimpleAstVisitor<Object> {
{
Identifier annName = annotation.name;
if (annName is PrefixedIdentifier) {
- PrefixedIdentifier prefixed = annName;
- nameNode1 = prefixed.prefix;
- nameNode2 = prefixed.identifier;
+ nameNode1 = annName.prefix;
+ nameNode2 = annName.identifier;
} else {
nameNode1 = annName as SimpleIdentifier;
nameNode2 = null;

Powered by Google App Engine
This is Rietveld 408576698