Example #1
0
            public bool Resolve(TypeResolveContext trc, bool errors)
            {
                if (Type.Resolve(trc, errors))
                {
                    return(true);
                }

                arg_class = Type.ResultConversion;

                if (arg_class == null)
                {
                    conv      = RuleArgConversion.None;
                    arg_class = Type;
                }
                else
                {
                    // The arg type is some primitive type (bool, string)
                    // that we must convert from a result wrapper

                    Type type = Type.AsSystem;

                    if (type == null)
                    {
                        throw new Exception("Can't handle convertible user types");
                    }

                    if (type.IsValueType)
                    {
                        conv = RuleArgConversion.ToValueType;
                    }
                    else
                    {
                        conv = RuleArgConversion.ToRefType;
                    }
                }

                return(arg_class.Resolve(trc, errors));
            }
Example #2
0
	    public bool Resolve (TypeResolveContext trc, bool errors)
	    {
		if (Type.Resolve (trc, errors))
		    return true;

		arg_class = Type.ResultConversion;

		if (arg_class == null) {
		    conv = RuleArgConversion.None;
		    arg_class = Type;
		} else {
		    // The arg type is some primitive type (bool, string)
		    // that we must convert from a result wrapper

		    Type type = Type.AsSystem;

		    if (type == null)
			throw new Exception ("Can't handle convertible user types");

		    if (type.IsValueType)
			conv = RuleArgConversion.ToValueType;
		    else
			conv = RuleArgConversion.ToRefType;
		}

		return arg_class.Resolve (trc, errors);
	    }