typegraph/scripts/typing/setParameter.gml

28 lines
501 B
Plaintext

///setParameter(type, param)
/**
* setParameter :: ParametricType -> Parameter -> ()
*
* Changes the parameter (name/link) of a parametrized type.
*
* @param type the type instance to change
* @param param the new parameter
*/
var type = argument0;
var param = argument1;
if (type.parameter == param)
exit;
with (type.parameter) {
ds_set_delete(self.types, type);
if (ds_set_empty(self.types))
delete(id);
}
with (param)
ds_set_add(self.types, type);
type.parameter = param;