module checkNoUnusedFormalParameters { function f_0 ( in someType someParName, //bad out template someOtherType someOtherParName, //bad out someOtherType someYetAnotherParName, //bad inout timer timerParName, //bad inout portType portParName //bad ) { } type record t_t { //neutral integer f1 } template t_t t_templ :={ //neutral f1 := 0 } template t_t t_templ2 (integer x1) :={ //good f1 := x1 } template t_t t_templ3 (integer x1) :={ //bad f1 := 2 } template t_t t_templ4 (integer x1) :={ //bad f1 := 2 } template t_t t_templ5 (template templateType t1) :={ //good f1 := t1 } template t_t t_templ6 (integer x1, integer y2) modifies t_templ2 :={ //good f2 := y2 } template t_t t_templ7 (integer x1, integer y2) modifies t_templ2 :={ //bad f2 := 2 } template t_t t_templ8 (template templateType t1, template templateType t2) modifies t_templ5 :={ //good f2 := t2 } function f_1 ( inout timer p_t ) { //good p_t.start(10) } function f_2 ( inout portType p_p ) { //good p_p.send(integer:0); p_p.send(t_t:{0}); } function f_3 ( inout omit templateType p_t ) { //good p_p.send(p_t); } function f_4 ( inout template templateType p_t ) { //good var integer x := 1; p_p.send(integer:x); p_p.send(p_t); p_p.send(t_templ); p_p.send(t_t:{0}); p_p.send(0); p_p.send("x"); } function f_5 ( inout template ( value ) templateType p_t ) { //bad } external function fx_1 (charstring y1, integer x2); //neutral function f(charstring b, integer a){ //bad 2x // var integer c := a; } }