Commit 70557686 authored by Daniel Honsel's avatar Daniel Honsel
Browse files

more validation rules

parent 22a986c8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1158,7 +1158,7 @@ TTCN3ReferenceList:
// StructFieldRef | ArrayOrBitRef | ParRef;
// ParRef -> RefValue
FieldReference:
	StructFieldDef | FormalValuePar;
	StructFieldDef | FormalValuePar | SubTypeDefNamed;

ArrayOrBitRef:
	SQUAREOPEN FieldOrBitNumber SQUARECLOSE;
+2 −2
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {
				if (fieldRef.type != null && fieldRef.type.ref != null) {
					scopeFor(fieldRef.type.ref.scopeReferencedFields)
				}
			} else if (field.ref instanceof FormalValuePar) {
			} else if (fieldRef instanceof FormalValuePar) {
				if (fieldRef.type != null && fieldRef.type.ref != null) {
					scopeFor(fieldRef.type.ref.scopeReferencedFields)
				}
@@ -106,7 +106,7 @@ class TTCN3ScopeProvider extends AbstractDeclarativeScopeProvider {
				if (fieldRef.type != null && fieldRef.type.ref != null) {
					scopeFor(fieldRef.type.ref.scopeReferencedFields)
				}
			} else if (cField.fieldRef instanceof FormalValuePar) {
			} else if (fieldRef instanceof FormalValuePar) {
				if (fieldRef.type != null && fieldRef.type.ref != null) {
					scopeFor(fieldRef.type.ref.scopeReferencedFields)
				}
+23 −0
Original line number Diff line number Diff line
@@ -715,6 +715,29 @@ class TTCN3Validator extends AbstractTTCN3Validator {
		}
	}

	@Check
	def checkNoModifiedTemplateOfModifiedTemplate(TemplateDef template) {
		if (!activeProfile.checkNoModifiedTemplateOfModifiedTemplate)
			return;

		if (template.derived != null) {
			val baseTemplate = template.derived.template.findDesiredParent(TemplateDef)
			val INode node = NodeModelUtils.getNode(template)
			if (baseTemplate.derived != null) {
				val message = "Template \"" + template.base.name + "\" modifies another modified template (\"" +
					baseTemplate.base.name + "\")!"
				warning(
					message,
					null,  //TODO: maybe use BaseTemplate to have the correct feature.
					MessageClass.STYLE.toString,
					node.startLine.toString,
					node.endLine.toString,
					"6.7, " + MiscTools.getMethodName()
				);
			}
		}
	}

	/**
	  * END: Code Style ------------------------------------------------------------------------------
	  */