specman - Specman e:“keep type .. is a”无法细化字段的类型
问题描述
我的验证环境中有下一个代码:
// seq_file.e
extend SPECIFIC_TYPE sequence {
keep type driver is a SPECIFIC_TYPE sequence_driver;
event some_event is @driver.as_a(SPECIFIC_TYPE sequence_driver).some_event;
};
extend SPECIFIC_TYPE SEQ_NAME sequence {
body()@driver.clock is only {
var foo := driver.specific_type_field;
};
};
请注意,keep type driver is a..
由于没有必要在driver
' 行开始var foo..
但是,keep type driver is a..
不影响some_event
,即如果as_a
从行中删除强制转换,则会出现编译错误'driver' does not have 'some_event' though its subtype do. use driver.as_a(SPECIFIC_TYPE sequence_driver)
。
为什么keep type driver is a..
无法投driver
下线some_event..
?
谢谢您的帮助
解决方案
您的观察是正确的:字段访问(和方法调用)考虑了类型约束,但不考虑事件采样。这是一个限制,可能会在即将发布的版本中删除。我建议联系 Specman 官方支持以获取有关计划的确切信息。
推荐阅读
- java - 哪些是用于 firebase 数据库的 Listner?
- amazon-web-services - 如果我们要旋转大约 500-600 个虚拟机,如何节省 ec2 实例的成本
- c++ - OpenCV保存带有imwrite问题的大图像
- r - 根据索引列重新排列数据框
- windows - 如何保护文件不被复制?
- java - 在java中使用array_agg序列化psql结果集
- php - 当我使用 php setrawcookie 函数获取服务器错误时
- makefile - 如何处理需要 sudo 权限的项目
- c# - 直接从 .net 应用程序与 USB 端口通信并控制电流(开和关)
- python - Python:汇总和聚合 DataFrame 中的组和子组