Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/CodeStyleValidator.xtend +15 −77 Original line number Diff line number Diff line Loading @@ -1214,16 +1214,23 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { if (!activeProfile.checkNoZeroOrMultipleFieldsInUnionTemplates) return; if (template.base.type.ref !== null) { var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { //skip omit templates var expr = template.body.simple.expr if (expr instanceof Value) { if (expr.predef !== null) { if (expr.predef.omit !== null) { return } } } var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) var originalType = type if (type instanceof ReferencedType) { originalType = findOriginalType(type) } if (originalType instanceof NestedUnionDef || originalType instanceof UnionDefNamed) { var guard = new Guard() // if (expr instanceof OpCall) { // var ref = expr.function.ref // if (!(ref instanceof BaseTemplate)) { // guard.stop = true // } // } var referencedFields = new ArrayList<FieldReference>() template.collectAssignedFieldSpecifications(referencedFields, true, guard) if (!guard.stop) { Loading Loading @@ -1299,52 +1306,6 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) } } // var expr = template.body.simple.expr // if (expr instanceof FieldExpressionList) { // //DONE: this seems to break things.. also for unions it has to be treated differently // if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { // // } else { // //DONE: handle unions -> skip altogether? or separate warning? (new feature) // referencedFields.addAll(expr.specs.map[it.fieldRef]) // //DONE: handle fields of assigned template -> below // //TODO: what if modified template is assigned? // if (template.derived !== null) { // template.collectInheritedFieldSpecifications(referencedFields) // } // checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) // } // } else if (expr instanceof OpCall) { // //assigned to another template // var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) // var fields = type.getFields // var ref = expr.function.ref // if (ref instanceof BaseTemplate) { // var assigned = ref.eContainer // if (assigned instanceof TemplateDef) { // var referencedFields = new ArrayList<FieldReference>() // assigned.collectAssignedFieldSpecifications(referencedFields) // checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) // } // } // } else if (expr instanceof ArrayOrMixedExpression) { // //no fields specified // if (expr.list === null) { // var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) // var fields = type.getFields // if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { // // } else { // var referencedFields = new ArrayList<FieldReference>() // //DONE: handle unions -> skip altogether? or separate warning? (new feature) // if (template.derived !== null) { // template.collectInheritedFieldSpecifications(referencedFields) // } // checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) // } // } // } } } Loading Loading @@ -1406,29 +1367,6 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { } } // protected def void collectInheritedFieldSpecifications(TemplateDef template, ArrayList<FieldReference> referencedFields) { // //TODO: check same type? // //TODO: check type, further derivation? // var baseTemplate = (template.derived.template.eContainer as TemplateDef) // var derivedExpr = baseTemplate.body.simple.expr // if (derivedExpr instanceof FieldExpressionList) { // referencedFields.addAll(derivedExpr.specs.map[it.fieldRef]) // } else if (derivedExpr instanceof OpCall) { // var ref = derivedExpr.function.ref // if (ref instanceof BaseTemplate) { // var assigned = ref.eContainer // if (assigned instanceof TemplateDef) { // assigned.collectAssignedFieldSpecifications(referencedFields) // } // } // } // if (activeProfile.checkNoUninitializedFieldsInTemplatesRecursion) { // if (baseTemplate.derived !== null) { // baseTemplate.collectInheritedFieldSpecifications(referencedFields) // } // } // } @Check def checkNoUninitializedFieldsInTemplates(VarInstance variable) { //TODO: also for variables and parameters? other expressions? operations? -> deactivated for now, pending clarification Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/CodeStyleValidator.xtend +15 −77 Original line number Diff line number Diff line Loading @@ -1214,16 +1214,23 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { if (!activeProfile.checkNoZeroOrMultipleFieldsInUnionTemplates) return; if (template.base.type.ref !== null) { var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { //skip omit templates var expr = template.body.simple.expr if (expr instanceof Value) { if (expr.predef !== null) { if (expr.predef.omit !== null) { return } } } var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) var originalType = type if (type instanceof ReferencedType) { originalType = findOriginalType(type) } if (originalType instanceof NestedUnionDef || originalType instanceof UnionDefNamed) { var guard = new Guard() // if (expr instanceof OpCall) { // var ref = expr.function.ref // if (!(ref instanceof BaseTemplate)) { // guard.stop = true // } // } var referencedFields = new ArrayList<FieldReference>() template.collectAssignedFieldSpecifications(referencedFields, true, guard) if (!guard.stop) { Loading Loading @@ -1299,52 +1306,6 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) } } // var expr = template.body.simple.expr // if (expr instanceof FieldExpressionList) { // //DONE: this seems to break things.. also for unions it has to be treated differently // if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { // // } else { // //DONE: handle unions -> skip altogether? or separate warning? (new feature) // referencedFields.addAll(expr.specs.map[it.fieldRef]) // //DONE: handle fields of assigned template -> below // //TODO: what if modified template is assigned? // if (template.derived !== null) { // template.collectInheritedFieldSpecifications(referencedFields) // } // checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) // } // } else if (expr instanceof OpCall) { // //assigned to another template // var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) // var fields = type.getFields // var ref = expr.function.ref // if (ref instanceof BaseTemplate) { // var assigned = ref.eContainer // if (assigned instanceof TemplateDef) { // var referencedFields = new ArrayList<FieldReference>() // assigned.collectAssignedFieldSpecifications(referencedFields) // checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) // } // } // } else if (expr instanceof ArrayOrMixedExpression) { // //no fields specified // if (expr.list === null) { // var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) // var fields = type.getFields // if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { // // } else { // var referencedFields = new ArrayList<FieldReference>() // //DONE: handle unions -> skip altogether? or separate warning? (new feature) // if (template.derived !== null) { // template.collectInheritedFieldSpecifications(referencedFields) // } // checkNoUninitializedFieldsInTemplates(referencedFields, fields, template.base.name, expr) // } // } // } } } Loading Loading @@ -1406,29 +1367,6 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { } } // protected def void collectInheritedFieldSpecifications(TemplateDef template, ArrayList<FieldReference> referencedFields) { // //TODO: check same type? // //TODO: check type, further derivation? // var baseTemplate = (template.derived.template.eContainer as TemplateDef) // var derivedExpr = baseTemplate.body.simple.expr // if (derivedExpr instanceof FieldExpressionList) { // referencedFields.addAll(derivedExpr.specs.map[it.fieldRef]) // } else if (derivedExpr instanceof OpCall) { // var ref = derivedExpr.function.ref // if (ref instanceof BaseTemplate) { // var assigned = ref.eContainer // if (assigned instanceof TemplateDef) { // assigned.collectAssignedFieldSpecifications(referencedFields) // } // } // } // if (activeProfile.checkNoUninitializedFieldsInTemplatesRecursion) { // if (baseTemplate.derived !== null) { // baseTemplate.collectInheritedFieldSpecifications(referencedFields) // } // } // } @Check def checkNoUninitializedFieldsInTemplates(VarInstance variable) { //TODO: also for variables and parameters? other expressions? operations? -> deactivated for now, pending clarification Loading