2

我有一个合金模型,它有 2 个具有相同名称的关系的签名。

sig Model { 
    components : set Component
}

sig Port extends Element {
    belongsTo : Component
}

sig Component extends Element{
    belongsTo : Model,
    ports : set Port
}

当我尝试访问这些关系 throw join 时,求解器会抛出我:

A type error has occured:
This name is ambiguous due to multiple matches:
field this/Port <: belongsTo
field this/Component <: belongsTo

有没有办法明确指定我想访问belongTo组件的关系而不是端口一,当我这样做时:

all m : m.belongsTo | 

和 m 是模型?

谢谢。

4

1 回答 1

3

You can say

all x: m.(Component <: belongsTo) | ...
于 2013-10-10T14:49:10.273 回答