@Nullable
 private PyType getTypeFromProviders(@NotNull TypeEvalContext context) {
   for (PyTypeProvider provider : Extensions.getExtensions(PyTypeProvider.EP_NAME)) {
     try {
       final PyType type = provider.getReferenceExpressionType(this, context);
       if (type != null) {
         return type;
       }
     } catch (AbstractMethodError e) {
       LOG.info(new ExtensionException(provider.getClass()));
     }
   }
   return null;
 }