}
if (this instanceof DartArrayAccessExpression) {
final DartReference reference = PsiTreeUtil.getChildOfType(this, DartReference.class);
if (reference != null) {
final DartClassResolveResult resolveResult = reference.resolveDartClass();
final DartClass resolveResultDartClass = resolveResult.getDartClass();
if (resolveResultDartClass == null) {
return resolveResult;
}
return DartResolveUtil.getDartClassResolveResult(resolveResultDartClass.findOperator("[]", null),
resolveResult.getSpecialization());
}
}
if (this instanceof DartAsExpression) {
return DartResolveUtil.resolveClassByType(((DartAsExpression)this).getType());
}
if (this instanceof DartStringLiteralExpression) {
return DartResolveUtil.findCoreClass(this, "String");
}
if (this instanceof DartListLiteralExpression) {
final DartClassResolveResult classResolveResult = DartResolveUtil.findCoreClass(this, "List");
classResolveResult.specializeByParameters(((DartListLiteralExpression)this).getTypeArguments());
return classResolveResult;
}
if (this instanceof DartMapLiteralExpression) {
final DartClassResolveResult classResolveResult = DartResolveUtil.findCoreClass(this, "Map");
classResolveResult.specializeByParameters(((DartMapLiteralExpression)this).getTypeArguments());
return classResolveResult;
}
final PsiElement firstChild = getFirstChild();
if (firstChild instanceof LeafPsiElement) {