我有一个rel[loc, str, int, int]
,别名为ECCModel
在函数中对其进行迭代会导致错误,当模式的元素称为location
时,将导致错误“无法计算模式的类型”。当命名为location
以外的其他名称时,错误消失。在Rascal中,“位置”是保留字吗?不管出现什么错误,它都可以编译并正常运行。
可以通过以下方法产生错误
alias ECCModel = rel[loc, str, int, int]
map[str,int] Foo(ECCModel bar)
{
return (y : z | <location, y, z, _> <- bar);
}
这是预期的行为吗?
答案 0 :(得分:1)
这不是预期的行为,location
不是保留字,而loc
是保留字。
我认为这是当前编译器的故障。
为了您的澄清:我们目前有Rascal的三种实现:
您的示例在解释器和新编译器中运行良好。因此,您报告的问题将随着时间的流逝而消失。