/******************************************************************************
 * Copyright (c) ETSI 2017.
 *
 * This file is subject to copyrights owned by ETSI. Non-exclusive permission
 * is hereby granted, free of charge, to copy, reproduce and amend this file
 * under the following conditions: It is provided "as is", without warranty of any
 * kind, expressed or implied.
 * 
 * ETSI shall never be liable for any claim, damages, or other liability arising
 * from its use or inability of use.This permission does not apply to any documentation
 * associated with this file for which ETSI keeps all rights reserved. The present
 * copyright notice shall be included in all copies of whole or part of this
 * file and shall not imply any sub-license right.
 *
 * Modified by: Adrien Kirjak
 *
 ** @version  0.0.1
 ** @purpose  1:5.3.0.6, ensure that anytype types are only compatible with other anytype types.
 ** @verdict  pass reject
 ***************************************************/

/*The following requirement is tested:
 * Only anytype types that are constrained to a fixed set of types via list subtyping 
 * can be a potential cause for anytype incompatibility, i.e. if the set of types contained 
 * in type "B" does not contain the type selected in "a".
*/

module NegSem_060305_compatibility_of_anytype_types_001 {
    
    //import from NegSem_060305_compatibility_of_anytype_types_001_importB all;
    //import from NegSem_060305_compatibility_of_anytype_types_001_importC all;
    
    type integer I (0..9);
    type charstring C;
	type anytype Btype;
    //type anytype Btype ({float:=?},{integer:=?}); 

    type component GeneralComp { 
	}

	
	testcase TC_NegSem_060305_compatibility_of_anytype_types_001() runs on GeneralComp {
		        
		//var NegSem_060305_compatibility_of_anytype_types_001_importB.Atype v_aa;
		//var Atype v_baI ;
//:= { NegSem_060305_compatibility_of_anytype_types_001_importC.I := 1 };

		//v_aa := v_baI;        // incorrect
			  setverdict(pass);   
	}

	control {
    	execute(TC_NegSem_060305_compatibility_of_anytype_types_001());
	}

}
with {
	extension "anytype integer"
}
