/***************************************************
 * @author TTF T003
 * @version 0.0.1
 * @purpose 1.6.2.16, Ensure that the open type is forbidden as formal parameters of altsteps.
 * @verdict pass reject
 ***************************************************/

module NegSem_060216_the_open_type_008 {
	type port P message {
		inout integer;
	}

	type component GeneralComp {
		port P p;
	}

	altstep a_test(any p_any) runs on GeneralComp{  //not allowed
		[] any port.receive {
			setverdict(pass);
		}
	}

	testcase TC_Sem_060216_the_open_type_008() runs on GeneralComp system GeneralComp {
		var GeneralComp v_ptc := GeneralComp.create;
		connect(mtc:p, v_ptc:p);
		p.send(1);
		v_ptc.start(a_test(p));
		v_ptc.done;
	}

	control {
		execute(TC_Sem_060216_the_open_type_007());
	};
}
