Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +10 −1 Original line number Diff line number Diff line Loading @@ -85,6 +85,8 @@ import org.eclipse.xtext.EcoreUtil2 import de.ugoe.cs.swe.tTCN3.SingleValueSpec import de.ugoe.cs.swe.tTCN3.PortReceiveOp import de.ugoe.cs.swe.tTCN3.Value import org.eclipse.xtext.nodemodel.util.NodeModelUtils import de.ugoe.cs.swe.tTCN3.Assignment //TODO: switch to TTCN3LocalScopeProvider as base class? class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading @@ -99,7 +101,9 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { private def Iterable<EObject> scopeFieldReferences(FieldReference fieldRef) { if (fieldRef instanceof StructFieldDef) { if (fieldRef.type !== null && fieldRef.type.ref !== null) { fieldRef.type.ref.scopeReferencedFields //TODO: why does it not work with default output? should all the others be adapted as well?! var fields = fieldRef.type.ref.scopeReferencedFields return fields } else if (fieldRef.nestedType !== null) { if (fieldRef.nestedType !== null) { val nType = fieldRef.nestedType.findUsedType Loading Loading @@ -210,6 +214,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { val cField = field.findDesiredParent(FieldConstExpressionSpec) val sField = field.findDesiredParent(FieldSpec) val constDef = field.findDesiredParent(ConstDef) val assignment = field.findDesiredParent(Assignment) val hasArrayAsParent = field.findDesiredParent(ArrayExpression) !== null var ArrayList<EObject> list = newArrayList var nestedFields = newArrayList Loading Loading @@ -248,6 +253,10 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } else if (variable.listType !== null && variable.listType.ref !== null) { list.addAll(variable.listType.ref.scopeReferencedFields) } } else if (assignment !== null) { var ref = assignment.ref.ref var elements = ref.head.directElements list.addAll(elements) } // TODO: search for a more sophisticated condition Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +10 −1 Original line number Diff line number Diff line Loading @@ -85,6 +85,8 @@ import org.eclipse.xtext.EcoreUtil2 import de.ugoe.cs.swe.tTCN3.SingleValueSpec import de.ugoe.cs.swe.tTCN3.PortReceiveOp import de.ugoe.cs.swe.tTCN3.Value import org.eclipse.xtext.nodemodel.util.NodeModelUtils import de.ugoe.cs.swe.tTCN3.Assignment //TODO: switch to TTCN3LocalScopeProvider as base class? class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { Loading @@ -99,7 +101,9 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { private def Iterable<EObject> scopeFieldReferences(FieldReference fieldRef) { if (fieldRef instanceof StructFieldDef) { if (fieldRef.type !== null && fieldRef.type.ref !== null) { fieldRef.type.ref.scopeReferencedFields //TODO: why does it not work with default output? should all the others be adapted as well?! var fields = fieldRef.type.ref.scopeReferencedFields return fields } else if (fieldRef.nestedType !== null) { if (fieldRef.nestedType !== null) { val nType = fieldRef.nestedType.findUsedType Loading Loading @@ -210,6 +214,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { val cField = field.findDesiredParent(FieldConstExpressionSpec) val sField = field.findDesiredParent(FieldSpec) val constDef = field.findDesiredParent(ConstDef) val assignment = field.findDesiredParent(Assignment) val hasArrayAsParent = field.findDesiredParent(ArrayExpression) !== null var ArrayList<EObject> list = newArrayList var nestedFields = newArrayList Loading Loading @@ -248,6 +253,10 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } else if (variable.listType !== null && variable.listType.ref !== null) { list.addAll(variable.listType.ref.scopeReferencedFields) } } else if (assignment !== null) { var ref = assignment.ref.ref var elements = ref.head.directElements list.addAll(elements) } // TODO: search for a more sophisticated condition Loading