在此处发现,尚不明原因,需尽早解决。
> python -m unittest 测试.unittest.原始可执行文件
AttributeError: 'str' object has no attribute '_fields'
F
======================================================================
FAIL: test_生成 (测试.unittest.原始可执行文件.test所有)
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:\git\mulan-rework-fork-cndp-20220702\测试\unittest\原始可执行文件.py", line 26, in test_生成
python路径 + " 转换错误")
AssertionError: '' != '/* This file is auto-generated by the com[71 chars]n}\n'
+ /* This file is auto-generated by the command `ulang -s `. */
+
+ try {
+ }
+ catch e : ValueError {
+ println(0)
+ }
: 测试\unittest\源码生成\流程控制\try.py 转换错误
----------------------------------------------------------------------
Ran 1 test in 12.787s
FAILED (failures=1)
您好,经过我的分析,我认为这个应该是原始木兰的设计问题
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
这个问题是内部设计的问题
在 此提交 复原 try/catch 功能时,文档/功能/与原始区别.md
里记录过:
生成木兰的 catch 时,原始报错 AttributeError: 'str' object has no attribute '_fields'
不知是否和此测试报错有关?
按照我之前开发 AIL 的语法树转换器来看,应该是原始实现中的木兰到 Python 的转换器未能够正常地将木兰的语法树转换到 Python 语法树,不知您是想要在 PR 中复现此错误还是?因为我测试了一下复现的木兰并没有出现这样的问题。
细看了一下 之前提交,在 木兰/生成/木兰.py
中有此注释:
if 节点.name is not None:
# 此处原为 self.visit(节点.name),会报错 AttributeError: 'str' object has no attribute '_fields'
self.编写(节点.name)
看起来是这里导致复现版本和原始木兰的行为不同。依稀记得之前是为了增强复现版本的实用性因而保留了此行为差异,比如说要转换 此演示代码 的话。
此issue主要是希望保持所有测试的通过状态。要不就在 测试.unittest.原始可执行文件
中跳过对 测试\unittest\源码生成\流程控制\try.py
的转换吧?
要不就在 测试.unittest.原始可执行文件 中跳过对 测试\unittest\源码生成\流程控制\try.py 的转换吧?
现在只想到这个,也许再加点注释说明?
登录 后才可以发表评论