Main Content

識別子名の競合とマングリング

識別子の生成では、同じ識別子が複数生成されることがあり、そうした状況は "名前の競合" と呼ばれます。名前の競合が発生する可能性がある場合、一意の "名前マングリング" テキストが生成され、競合する可能性がある各識別子に挿入されます。それぞれの名前マングリング文字セットは生成される各識別子に対して一意です。

識別子の名前と参照モデルの競合

参照モデルには、命名制約を追加できます。参照モデルを使用するモデルでは、モデルの名前が競合することはありません。参照モデルを含むモデルからコードを生成する場合、[識別子の最大の長さ] パラメーターは、ルート モデル名および名前マングリング テキストに対応できる大きさでなければなりません。[識別子の最大の長さ] が小さすぎると、コード生成エラーが発生します。

上位レベル モデルの範囲内の識別子と参照モデル範囲内の識別子間で名前の競合が発生すると、参照モデルの識別子が保持されます。名前マングリングは上位レベル モデルからの識別子に対して実行されます。

参照モデルの詳細については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。