@Nullable
  private List<? extends RatedResolveResult> resolveDefinitionMember(@NotNull PyClassLikeType classLikeType,
                                                                     @NotNull PyExpression object,
                                                                     @NotNull String name) {
    final PyClassLikeType metaClassType = classLikeType.getMetaClassType(myContext.getTypeEvalContext(), true);
    if (metaClassType != null) {
      final List<? extends RatedResolveResult> results =
        metaClassType.resolveMember(name, object, AccessDirection.of(myElement), myContext);

      if (!ContainerUtil.isEmpty(results)) return results;
    }

    return name.equals(PyNames.GETITEM) && LanguageLevel.forElement(object).isAtLeast(LanguageLevel.PYTHON37)
           ? classLikeType.resolveMember(PyNames.CLASS_GETITEM, object, AccessDirection.of(myElement), myContext)
           : null;
  }
@Nullable
  private List<? extends RatedResolveResult> resolveDefinitionMember(@NotNull PyClassLikeType classLikeType,
                                                                     @NotNull PyExpression object,
                                                                     @NotNull String name)