The following model is not instantiated properly:
package feature_in_feature_group_test
public
system s
end s;
system implementation s.i
subcomponents
left: process left_process;
right: process right_process;
connections
conn_1: feature left.left_feature_group.out_f -> right.right_feature_group.in_f;
end s.i;
process left_process
features
left_feature_group: feature group left_feature_group;
end left_process;
feature group left_feature_group
features
out_f: out feature;
end left_feature_group;
process right_process
features
right_feature_group: feature group right_feature_group;
end right_process;
feature group right_feature_group
features
in_f: in feature;
end right_feature_group;
end feature_in_feature_group_test;
The destination of the ConnectionReference should be the feature in_f, but it is the feature group right_feature_group. The source and destination of the ConnectionInstance are correct and the source of the ConnectionReference is correct, but not the destination of the ConnectionReference.
I suspect that the problem is in ConnectionInfo.resolveFeatureInstance(ConnectionInstanceEnd, ConnectionInstanceEnd). This method was probably not updated to support reach down into feature groups.
Here is an additional test case that is similar, but has a deeper nesting of feature groups:
package feature_in_multiple_feature_groups_test
public
system s
end s;
system implementation s.i
subcomponents
left: process left_process;
right: process right_process;
connections
conn_1: feature left.left_feature_group_1.left_feature_group_2.left_feature_group_3.out_f ->
right.right_feature_group_1.right_feature_group_2.right_feature_group_3.in_f;
end s.i;
process left_process
features
left_feature_group_1: feature group left_feature_group_1;
end left_process;
feature group left_feature_group_1
features
left_feature_group_2: feature group left_feature_group_2;
end left_feature_group_1;
feature group left_feature_group_2
features
left_feature_group_3: feature group left_feature_group_3;
end left_feature_group_2;
feature group left_feature_group_3
features
out_f: out feature;
end left_feature_group_3;
process right_process
features
right_feature_group_1: feature group right_feature_group_1;
end right_process;
feature group right_feature_group_1
features
right_feature_group_2: feature group right_feature_group_2;
end right_feature_group_1;
feature group right_feature_group_2
features
right_feature_group_3: feature group right_feature_group_3;
end right_feature_group_2;
feature group right_feature_group_3
features
in_f: in feature;
end right_feature_group_3;
end feature_in_multiple_feature_groups_test;
In this example, the destination of the ConnectionReference should be the feature in_f, but it is the feature group right_feature_group_1.
The following model is not instantiated properly:
The destination of the
ConnectionReferenceshould be the featurein_f, but it is the feature groupright_feature_group. The source and destination of theConnectionInstanceare correct and the source of theConnectionReferenceis correct, but not the destination of theConnectionReference.I suspect that the problem is in
ConnectionInfo.resolveFeatureInstance(ConnectionInstanceEnd, ConnectionInstanceEnd). This method was probably not updated to support reach down into feature groups.Here is an additional test case that is similar, but has a deeper nesting of feature groups:
In this example, the destination of the
ConnectionReferenceshould be the featurein_f, but it is the feature groupright_feature_group_1.