Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +16 −17 Original line number Diff line number Diff line Loading @@ -54,7 +54,6 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { scopeFor(inner) } def IScope scope_PortOrAny_ref(PortOrAny spec, EReference ref) { val altstep = spec.findDesiredParent(typeof(AltstepDef)) as AltstepDef val inner = newArrayList Loading @@ -62,17 +61,17 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { if (altstep.spec != null) { componentScopePorts(altstep.spec.component, inner) } scopeFor(inner) } // TODO: use this for other types (constDef, singleVar, template) // TODO: treat extended components def private void componentScopePorts(ComponentDef component, ArrayList<EObject> list) { for (ComponentDefList l : component.defs.filter[it.element.port != null]) { for (PortElement e : l.element.port.instances) { list.add(e) } } for (ComponentDef e : component.extends) { componentScopePorts(e, list) } } } de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/TTCN3Validator.xtend +21 −16 Original line number Diff line number Diff line package de.ugoe.cs.swe.validation import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ConstDef import de.ugoe.cs.swe.tTCN3.ConstList import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.ForStatement import de.ugoe.cs.swe.tTCN3.FormalTemplatePar import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.FunctionDefList import de.ugoe.cs.swe.tTCN3.FunctionFormalPar import de.ugoe.cs.swe.tTCN3.FunctionFormalParList import de.ugoe.cs.swe.tTCN3.Initial import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ModuleDefinition import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList import de.ugoe.cs.swe.tTCN3.RefValue import de.ugoe.cs.swe.tTCN3.SingleConstDef import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.StatementBlock import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.StructFieldDef import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TTCN3Package import de.ugoe.cs.swe.tTCN3.VarList import org.eclipse.emf.ecore.EObject import org.eclipse.xtext.validation.Check import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.TemplateOrValueFormalParList import de.ugoe.cs.swe.tTCN3.TemplateOrValueFormalPar import de.ugoe.cs.swe.tTCN3.TemplateOrValueFormalParList import de.ugoe.cs.swe.tTCN3.TestcaseDef import de.ugoe.cs.swe.tTCN3.VarList import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.EStructuralFeature import de.ugoe.cs.swe.tTCN3.StructFieldDef import org.eclipse.xtext.validation.Check import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import de.ugoe.cs.swe.tTCN3.impl.SingleConstDefImpl import de.ugoe.cs.swe.tTCN3.impl.RefValueImpl import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList class TTCN3Validator extends AbstractTTCN3Validator { Loading @@ -54,6 +54,11 @@ class TTCN3Validator extends AbstractTTCN3Validator { variable.isNameClashInHierarchy } @Check def checkUniqueNameNestedVariable(FormalTemplatePar variable) { variable.isNameClashInHierarchy } @Check def checkUniqueNameStructFieldDef(StructFieldDef field) { // find name clashes with module variables Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/scoping/TTCN3ScopeProvider.xtend +16 −17 Original line number Diff line number Diff line Loading @@ -54,7 +54,6 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { scopeFor(inner) } def IScope scope_PortOrAny_ref(PortOrAny spec, EReference ref) { val altstep = spec.findDesiredParent(typeof(AltstepDef)) as AltstepDef val inner = newArrayList Loading @@ -62,17 +61,17 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider { if (altstep.spec != null) { componentScopePorts(altstep.spec.component, inner) } scopeFor(inner) } // TODO: use this for other types (constDef, singleVar, template) // TODO: treat extended components def private void componentScopePorts(ComponentDef component, ArrayList<EObject> list) { for (ComponentDefList l : component.defs.filter[it.element.port != null]) { for (PortElement e : l.element.port.instances) { list.add(e) } } for (ComponentDef e : component.extends) { componentScopePorts(e, list) } } }
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/TTCN3Validator.xtend +21 −16 Original line number Diff line number Diff line package de.ugoe.cs.swe.validation import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.ConstDef import de.ugoe.cs.swe.tTCN3.ConstList import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.ForStatement import de.ugoe.cs.swe.tTCN3.FormalTemplatePar import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.FunctionDefList import de.ugoe.cs.swe.tTCN3.FunctionFormalPar import de.ugoe.cs.swe.tTCN3.FunctionFormalParList import de.ugoe.cs.swe.tTCN3.Initial import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ModuleDefinition import de.ugoe.cs.swe.tTCN3.ModuleDefinitionsList import de.ugoe.cs.swe.tTCN3.RefValue import de.ugoe.cs.swe.tTCN3.SingleConstDef import de.ugoe.cs.swe.tTCN3.SingleVarInstance import de.ugoe.cs.swe.tTCN3.StatementBlock import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.StructFieldDef import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TTCN3Package import de.ugoe.cs.swe.tTCN3.VarList import org.eclipse.emf.ecore.EObject import org.eclipse.xtext.validation.Check import de.ugoe.cs.swe.tTCN3.FormalValuePar import de.ugoe.cs.swe.tTCN3.ModuleControlPart import de.ugoe.cs.swe.tTCN3.ControlStatementOrDefList import de.ugoe.cs.swe.tTCN3.ComponentDef import de.ugoe.cs.swe.tTCN3.ComponentDefList import de.ugoe.cs.swe.tTCN3.TemplateOrValueFormalParList import de.ugoe.cs.swe.tTCN3.TemplateOrValueFormalPar import de.ugoe.cs.swe.tTCN3.TemplateOrValueFormalParList import de.ugoe.cs.swe.tTCN3.TestcaseDef import de.ugoe.cs.swe.tTCN3.VarList import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.EStructuralFeature import de.ugoe.cs.swe.tTCN3.StructFieldDef import org.eclipse.xtext.validation.Check import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.* import de.ugoe.cs.swe.tTCN3.impl.SingleConstDefImpl import de.ugoe.cs.swe.tTCN3.impl.RefValueImpl import de.ugoe.cs.swe.tTCN3.StructDefBody import de.ugoe.cs.swe.tTCN3.AltstepDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDef import de.ugoe.cs.swe.tTCN3.AltstepLocalDefList class TTCN3Validator extends AbstractTTCN3Validator { Loading @@ -54,6 +54,11 @@ class TTCN3Validator extends AbstractTTCN3Validator { variable.isNameClashInHierarchy } @Check def checkUniqueNameNestedVariable(FormalTemplatePar variable) { variable.isNameClashInHierarchy } @Check def checkUniqueNameStructFieldDef(StructFieldDef field) { // find name clashes with module variables Loading