【发布时间】:2019-06-26 06:29:17
【问题描述】:
pyre-fixme[6]: 第二个参数应该是
Dict[str, Any]但得到了#Mapping[str, Any].
【问题讨论】:
pyre-fixme[6]: 第二个参数应该是
Dict[str, Any]但得到了#Mapping[str, Any].
【问题讨论】:
这意味着 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 页面上将此错误编入索引。尝试谷歌搜索site:instagram.com "pyre-fixme"
【讨论】:
此错误来自 Instagram 的 python 后端。而且这不是错误,是静态代码分析的错误:https://pyre-check.org/
【讨论】: