示例#1
0
        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);
        }
示例#2
0
        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);
        }