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)); }
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); }