@Override
  public PyType getType(@NotNull TypeEvalContext context, @NotNull TypeEvalContext.Key key) {
    final var resultExpr = getResultExpression();
    final var cache = PyBuiltinCache.getInstance(this);
    final var dictionary = cache.getDictType();
    if (resultExpr instanceof PyKeyValueExpression keyValue && dictionary != null) {
      final PyType keyType = context.getType(keyValue.getKey());
      PyExpression value = keyValue.getValue();
      final PyType valueType =  value != null ? context.getType(value) : null;
      return new PyCollectionTypeImpl(dictionary.getPyClass(), false, new SmartList<>(keyType, valueType));
    }
    return dictionary;
  }
@Override
  public PyType getType(@NotNull TypeEvalContext context, @NotNull TypeEvalContext.Key key)