2

同じ名前の関係を持つ 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 | 

そしてmはモデルですか?

ありがとう。

4

1 に答える 1

3

あなたは言うことができます

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