Commit 431d8087 authored by Daniel Honsel's avatar Daniel Honsel
Browse files

fixed minor bug

parent d56b30f0
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import de.ugoe.cs.swe.tTCN3.FunctionDef

import static org.eclipse.xtext.scoping.Scopes.*
import de.ugoe.cs.swe.tTCN3.TestcaseDef
import de.ugoe.cs.swe.tTCN3.InLineTemplate

class TTCN3ScopeHelper {

@@ -367,6 +368,17 @@ class TTCN3ScopeHelper {
		}
	}
	
	def static void templateFieldScope(InLineTemplate template, ArrayList<EObject> list) {
		val type = template.type

		if (type != null && type.ref != null && typeof(RecordDefNamed).isAssignableFrom(type.ref.class)) {
			list.addAll((type.ref as RecordDefNamed).body.defs)
		}
		if (type != null && type.ref != null && typeof(SignatureDef).isAssignableFrom(type.ref.class)) {
			list.addAll((type.ref as SignatureDef).paramList.params)
		}
	}	
	
	def static void componentScopePorts(ComponentDef component, ArrayList<EObject> list) {
		for (ComponentDefList l : component.defs.filter[it.element.port != null]) {
			for (PortElement e : l.element.port.instances) {
+7 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import static org.eclipse.xtext.scoping.Scopes.*

import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.*
import static extension org.eclipse.xtext.EcoreUtil2.*
import de.ugoe.cs.swe.tTCN3.InLineTemplate

class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {

@@ -44,6 +45,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {
	}

	def IScope scope_FieldSpec_ref(FieldSpec spec, EReference ref) {
		val inlineTemplate = spec.findDesiredParent(InLineTemplate)
		val template = spec.findDesiredParent(TemplateDef)
		val variable = spec.findDesiredParent(VarInstance)
		val field = spec.findDesiredParent(FieldSpec)
@@ -60,6 +62,8 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {
					fieldRef.type.ref.scopeReferencedFields(list)
				}
			}
		} else if (inlineTemplate != null) {
			inlineTemplate.templateFieldScope(list)
		} else if (template != null) {
			template.templateFieldScope(list)
		} else if (variable != null && variable.type.ref != null) {
@@ -69,6 +73,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {
	}

	def IScope scope_FieldExpressionSpec_fieldRef(FieldExpressionSpec field, EReference ref) {
		val inlineTemplate = field.findDesiredParent(InLineTemplate)
		val template = field.findDesiredParent(TemplateDef)
		val variable = field.findDesiredParent(VarInstance)
		val cField = field.findDesiredParent(FieldExpressionSpec)
@@ -85,6 +90,8 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {
					fieldRef.type.ref.scopeReferencedFields(list)
				}
			}
		} else if (inlineTemplate != null) {
			inlineTemplate.templateFieldScope(list)
		} else if (template != null) {
			template.templateFieldScope(list)
		} else if (variable != null && variable.type.ref != null) {