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

improved checkInlineTemplates

parent 7882c56a
Loading
Loading
Loading
Loading
+26 −15
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ import de.ugoe.cs.swe.tTCN3.ComponentDef
import de.ugoe.cs.swe.tTCN3.ConstDef
import de.ugoe.cs.swe.tTCN3.ConstList
import de.ugoe.cs.swe.tTCN3.EnumDefNamed
import de.ugoe.cs.swe.tTCN3.ExtFunctionDef
import de.ugoe.cs.swe.tTCN3.FieldExpressionList
import de.ugoe.cs.swe.tTCN3.FormalPortPar
import de.ugoe.cs.swe.tTCN3.FormalTemplatePar
import de.ugoe.cs.swe.tTCN3.FormalTimerPar
@@ -35,6 +37,7 @@ import de.ugoe.cs.swe.tTCN3.ModuleParDef
import de.ugoe.cs.swe.tTCN3.ModuleParameter
import de.ugoe.cs.swe.tTCN3.PermutationMatch
import de.ugoe.cs.swe.tTCN3.PortDef
import de.ugoe.cs.swe.tTCN3.PortElement
import de.ugoe.cs.swe.tTCN3.PredefinedValue
import de.ugoe.cs.swe.tTCN3.RecordDefNamed
import de.ugoe.cs.swe.tTCN3.RecordOfDefNamed
@@ -58,6 +61,7 @@ import de.ugoe.cs.swe.tTCN3.TypeDef
import de.ugoe.cs.swe.tTCN3.UnionDefNamed
import de.ugoe.cs.swe.tTCN3.VarList
import java.util.ArrayList
import java.util.HashMap
import java.util.HashSet
import java.util.List
import java.util.Map
@@ -79,9 +83,6 @@ import static de.ugoe.cs.swe.scoping.TTCN3GlobalScopeProvider.*
import static extension de.ugoe.cs.swe.common.TTCN3ReferenceHelper.*
import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.*
import static extension org.eclipse.xtext.EcoreUtil2.*
import de.ugoe.cs.swe.tTCN3.PortElement
import de.ugoe.cs.swe.tTCN3.ExtFunctionDef
import java.util.HashMap

class CheckDefinitionComeFirstParameter {
	public boolean hasOtherDefinitions
@@ -240,18 +241,28 @@ class CodeStyleValidator extends AbstractDeclarativeValidator {
		if (!activeProfile.checkInlineTemplates)
			return;
		
		var found = false
		
		if (template.template.simple != null) {
			if (template.template.simple.expr instanceof FieldExpressionList) {
				found = true
			}
		}
		
		if (found) {
			statistics.incrementCountStyle
		val message = "In line template is used!"
			val message = "In-line template is used!"
			val INode node = NodeModelUtils.getNode(template)
			warning(
				message,
				null,
				MessageClass.STYLE.toString,
				node.startLine.toString,
			node.endLine.toString,
				node.startLine.toString,
				"6.22, " + MiscTools.getMethodName()
			);
		}
	}

	private def <T extends EObject> int nestingDepth(EObject o, Class<T> t) {
		var depth = -1