Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/common/TTCN3ScopeHelper.xtend +9 −5 Original line number Diff line number Diff line Loading @@ -384,9 +384,9 @@ class TTCN3ScopeHelper { } } def static Iterable<RefValueElement> scopeReferencedFields(TypeReference type) { def static Iterable<RefValueElement> scopeReferencedFields(ReferencedType type) { val List<RefValueElement> list = newArrayList val ReferencedType originalType = findOriginalType(getReferencedType(type)) val ReferencedType originalType = findOriginalType(type) if (originalType == null) return list; Loading @@ -409,6 +409,10 @@ class TTCN3ScopeHelper { return list } def static Iterable<RefValueElement> scopeReferencedFields(TypeReference type) { scopeReferencedFields(getReferencedType(type)) } def static Iterable<RefValueElement> templateFieldScope(TypeReference ref) { val ArrayList<RefValueElement> list = newArrayList Loading @@ -433,7 +437,7 @@ class TTCN3ScopeHelper { } // TODO: consider nested types private def static ReferencedType findOriginalType(ReferencedType type) { public def static ReferencedType findOriginalType(ReferencedType type) { if (type != null && typeof(SubTypeDefNamed).isAssignableFrom(type.class)) { findOriginalType(getReferencedType((type as SubTypeDefNamed).type.ref)) } else if (type != null && typeof(RecordOfDefNamed).isAssignableFrom(type.class)) { Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +6 −19 Original line number Diff line number Diff line Loading @@ -67,6 +67,8 @@ import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import static extension org.eclipse.xtext.EcoreUtil2.* import org.eclipse.xtend.typesystem.emf.EcoreUtil2 import de.ugoe.cs.swe.tTCN3.SubTypeDefNamed class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { private final static Logger LOG = Logger.getLogger(TTCN3LocalScopeProvider); Loading Loading @@ -452,28 +454,13 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } def IScope scope_TypeReference_field(TypeReference tr, EReference ref) { val parent = tr.eContainer if (parent instanceof TypeReference) { if (parent.field == null) { scopeFor(parent.tail.scopeReferencedFields) } else { IScope.NULLSCOPE } } //TODO: test other nested possibilities if (!(tr.head instanceof TTCN3Module)) scopeFor(tr.head.scopeReferencedFields) } def IScope scope_TypeReference_head(TypeReference tr, EReference ref) { val parent = tr.eContainer if (parent instanceof TypeReference) { if (parent.field == null) { scopeFor(parent.tail.getAllContentsOfType(ReferencedType)) } else { IScope.NULLSCOPE } } else { val module = tr.findDesiredParent(TTCN3Module) delegate.getScope(module, ref) } // TODO: fix me! } def IScope scope_Head_target(Head value, EReference ref) { Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/common/TTCN3ScopeHelper.xtend +9 −5 Original line number Diff line number Diff line Loading @@ -384,9 +384,9 @@ class TTCN3ScopeHelper { } } def static Iterable<RefValueElement> scopeReferencedFields(TypeReference type) { def static Iterable<RefValueElement> scopeReferencedFields(ReferencedType type) { val List<RefValueElement> list = newArrayList val ReferencedType originalType = findOriginalType(getReferencedType(type)) val ReferencedType originalType = findOriginalType(type) if (originalType == null) return list; Loading @@ -409,6 +409,10 @@ class TTCN3ScopeHelper { return list } def static Iterable<RefValueElement> scopeReferencedFields(TypeReference type) { scopeReferencedFields(getReferencedType(type)) } def static Iterable<RefValueElement> templateFieldScope(TypeReference ref) { val ArrayList<RefValueElement> list = newArrayList Loading @@ -433,7 +437,7 @@ class TTCN3ScopeHelper { } // TODO: consider nested types private def static ReferencedType findOriginalType(ReferencedType type) { public def static ReferencedType findOriginalType(ReferencedType type) { if (type != null && typeof(SubTypeDefNamed).isAssignableFrom(type.class)) { findOriginalType(getReferencedType((type as SubTypeDefNamed).type.ref)) } else if (type != null && typeof(RecordOfDefNamed).isAssignableFrom(type.class)) { Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +6 −19 Original line number Diff line number Diff line Loading @@ -67,6 +67,8 @@ import static org.eclipse.xtext.scoping.Scopes.* import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import static extension org.eclipse.xtext.EcoreUtil2.* import org.eclipse.xtend.typesystem.emf.EcoreUtil2 import de.ugoe.cs.swe.tTCN3.SubTypeDefNamed class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { private final static Logger LOG = Logger.getLogger(TTCN3LocalScopeProvider); Loading Loading @@ -452,28 +454,13 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { } def IScope scope_TypeReference_field(TypeReference tr, EReference ref) { val parent = tr.eContainer if (parent instanceof TypeReference) { if (parent.field == null) { scopeFor(parent.tail.scopeReferencedFields) } else { IScope.NULLSCOPE } } //TODO: test other nested possibilities if (!(tr.head instanceof TTCN3Module)) scopeFor(tr.head.scopeReferencedFields) } def IScope scope_TypeReference_head(TypeReference tr, EReference ref) { val parent = tr.eContainer if (parent instanceof TypeReference) { if (parent.field == null) { scopeFor(parent.tail.getAllContentsOfType(ReferencedType)) } else { IScope.NULLSCOPE } } else { val module = tr.findDesiredParent(TTCN3Module) delegate.getScope(module, ref) } // TODO: fix me! } def IScope scope_Head_target(Head value, EReference ref) { Loading