Почему instagram время от времени выдает в браузере ошибку «Ожидаемый Dict получил Mapping»? - PullRequest
9 голосов
/ 26 июня 2019

pyre-fixme [6]: ожидаемый Dict[str, Any] для 2-го параметра, но получил # Mapping[str, Any].

Ответы [ 2 ]

8 голосов
/ 26 июня 2019

Это означает, что кто-то из сотрудников Instagram запутался. Потому что это сообщение не должно отображаться в производстве. Никогда. Программисты используют статический анализ кода для проверки исходного кода на наличие потенциальных ошибок до того, как они действительно произойдут. И по какой-то странной причине вывод этого инструмента анализа был добавлен на HTML-страницу:

<meta property="al:android:url" content="https://www.instagram.com/_u/.../" />

# pyre-fixme[6]: Expected `Dict[str, Any]` for 2nd param but got
#  `Mapping[str, Any]`.
<link rel="canonical" href="https://www.instagram.com/.../" />

Как видите, он выводится между тегами <meta> и <link>, и не заключен ни в один тег, поэтому браузер обрабатывает его как текстовый узел. Вот почему он отображается на странице при загрузке.

Но поскольку он находится в теге <head>, после загрузки страницы браузер будет скрывать содержимое <head>, поскольку он должен отображать только содержимое <body>.

И я думаю, что именно поэтому автоматические тесты не могут зафиксировать эту ошибку, поскольку она не влияет на окончательный визуальный макет.

Но простой валидатор HTML может легко отловить эту ошибку. В любом случае, кто-то из Instagram обязательно должен это исправить.

Забавный факт: Google уже проиндексировал эту ошибку на 2 100 000 страниц Instagram. Попробуйте поискать в Google site:instagram.com "pyre-fixme"

1 голос
/ 26 июня 2019

Эта ошибка взята из Python-интерфейса Instagram.И это не ошибка, это ошибка статического анализа кода: https://pyre -check.org /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...