return valid(typeProvider.getMapType(), new MapState(map));
}
@Override
public EvaluationResultImpl visitMethodInvocation(MethodInvocation node) {
Element element = node.getMethodName().getStaticElement();
if (element instanceof FunctionElement) {
FunctionElement function = (FunctionElement) element;
if (function.getName().equals("identical")) {
NodeList<Expression> arguments = node.getArgumentList().getArguments();
if (arguments.size() == 2) {
Element enclosingElement = function.getEnclosingElement();
if (enclosingElement instanceof CompilationUnitElement) {
LibraryElement library = ((CompilationUnitElement) enclosingElement).getLibrary();
if (library.isDartCore()) {
EvaluationResultImpl leftArgument = arguments.get(0).accept(this);
EvaluationResultImpl rightArgument = arguments.get(1).accept(this);