Confusing int64 error at cyclic class boundary
还没有人认领这个 Issue。
评估
调研方向
从 test1.py 和 test2.py 中的循环复现用例开始,然后将其与非循环的 test3 和 test4 用例进行比较。使用 static-python 运行这两个示例,并跟踪带注解的 Board.add 调用如何跨越该循环进行解析。当循环用例报告出与非循环用例相同的正确基本类型参数错误时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
I have a method that expects an int64, but when I call it from another, special location the error says expected an int.
The other location is across a cyclic dependency: file test1 imports file test2, but the class inside test2 expects an object defined in test1 as an init param:
## test2.py , home of class A
from __future__ import annotations
from __static__ import int64
class A:
def __init__(self, b: Board):
self.b: Board = b
def add(self):
self.b.add(int64(0))
## test1.py , home of class Board
from __static__ import int64
from test2 import A
class Board:
def add(self, pos: int64) -> None:
return
def main():
bb = Board()
A(bb).add()
return
main()
$ [static-python] test1.py
....
File "/vol/static-python-perf/Benchmark/go/advanced/test2.py", line 9, in add
self.b.add(int64(0))
TypeError: add expected 'int' for argument pos, got 'int64'
The correct error is that call arguments cannot be primitive --- right? That's what I see without the cycle:
## test3import static
class Board:
def add(self, pos: int64) -> None:
return
## test4from static import int64
from test3 import Boardclass A:
def init(self, b: Board):
self.b: Board = bdef add(self): self.b.add(int64(0))def main():
bb = Board()
A(bb).add()
returnmain()
$ [static-python] test4.py
....
raise exception
File "test4.py", line 9
self.b.add(int64(0))
^
cinderx.compiler.errors.TypedSyntaxError: Call argument cannot be a primitive
- 主要语言
- Python
- 星标
- 3.8k
- 派生
- 139
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
facebookincubator/MetaPython 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 35/100
facebookincubator/MetaPython#147 ·
-
难度 4/5 3-5 天 新手友好度 35/100
facebookincubator/MetaPython#145 · 4 条评论 ·
-
难度 3/5 1-2 天 新手友好度 30/100
facebookincubator/MetaPython#144 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 20/100
facebookincubator/MetaPython#129 · 2 条评论 ·
-
难度 4/5 3-5 天 新手友好度 35/100
facebookincubator/MetaPython#116 · 2 条评论 ·
查看 facebookincubator/MetaPython 的全部 Issue
相似的 Issue
-
Harmony OPeNDAP SubSetter (HOSS) Geographic LARC_CLOUD PREFIRE_SAT2_AUX-SAT R01 production
难度 2/5 1-3 小时 新手友好度 68/100
nasa/harmony-autotester#245 ·
-
feature
难度 2/5 1-3 小时 新手友好度 66/100
-
L: github:actions L: php:composer
难度 2/5 1-3 小时 新手友好度 88/100
dependabot/dependabot-core#16493 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 92/100
DataTalksClub/machine-learning-zoomcamp#730 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 4 天内回复