public override DataType copy() { var result = new DelegateType(delegate_symbol); result.source_reference = source_reference; result.value_owned = value_owned; result.nullable = nullable; foreach (DataType arg in get_type_arguments()) { result.add_type_argument(arg.copy()); } result.is_called_once = is_called_once; return(result); }
public DelegateType get_handler_type() { var type_sym = (ObjectTypeSymbol)signal_symbol.parent_symbol; var sender_type = SemanticAnalyzer.get_data_type_for_symbol(type_sym); var result = new DelegateType(signal_symbol.get_delegate(sender_type, this)); result.value_owned = true; if (result.delegate_symbol.get_type_parameters().Count > 0) { foreach (var type_param in type_sym.get_type_parameters()) { var type_arg = new GenericType(type_param); type_arg.value_owned = true; result.add_type_argument(type_arg); } } return(result); }