From d88ad7e53aeecd5b295003e9cb3a010bf09a515b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martti=20K=C3=A4=C3=A4rik?= <martti.kaarik@elvior.com> Date: Thu, 13 Jun 2024 14:40:24 +0300 Subject: [PATCH] MemberReference for Function use is based on return type. --- .../src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java index 4238bbde..904cd360 100644 --- a/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java +++ b/plugins/org.etsi.mts.tdl.common/src/org/etsi/mts/tdl/scoping/TDLScopeProvider.java @@ -564,8 +564,11 @@ public class TDLScopeProvider extends AbstractDeclarativeScopeProvider { NamedElement dataElement = ((DataElementUse) context.eContainer()).getDataElement(); //TODO: duplicated from above ->extract if (dataElement instanceof org.etsi.mts.tdl.Function) { - IScope scope = Scopes.scopeFor(((org.etsi.mts.tdl.Function)dataElement).getFormalParameter()); - return scope; + DataType returnType = ((org.etsi.mts.tdl.Function)dataElement).getReturnType(); + if (returnType instanceof StructuredDataType) { + IScope scope = Scopes.scopeFor(((StructuredDataType)returnType).allMembers()); + return scope; + } } else if (dataElement instanceof FormalParameter) { IScope scope = Scopes.scopeFor(((StructuredDataType)((FormalParameter) dataElement).getDataType()).allMembers()); return scope; -- GitLab