Это имя неоднозначно из-за нескольких совпадений:

У меня есть модель Alloy, у которой есть 2 подписи, у которых есть отношение с одинаковым именем.

sig Model { 
    components : set Component
}

sig Port extends Element {
    belongsTo : Component
}

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

Когда я пытаюсь получить доступ к этим отношениям, я присоединяюсь к решателю:

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 | 

а м это модели?

Спасибо.


person user2858691    schedule 10.10.2013    source источник


Ответы (1)


Ты можешь сказать

all x: m.(Component <: belongsTo) | ...
person Aleksandar Milicevic    schedule 10.10.2013