public override MetaObject FallbackConvert(MetaObject self, MetaObject onBindingError) { if (Type.IsAssignableFrom(self.LimitType)) { return(new MetaObject( self.Expression, Restrictions.GetTypeRestriction(self.Expression, self.LimitType) )); } return(onBindingError ?? MetaObject.CreateThrow( self, MetaObject.EmptyMetaObjects, typeof(ArgumentTypeException), String.Format("Expected {0}, got {1}", Type.FullName, self.LimitType.FullName) )); }
public override MetaObject FallbackInvoke(MetaObject target, MetaObject[] args, MetaObject errorSuggestion) { return(errorSuggestion ?? MetaObject.CreateThrow(target, args, typeof(NotSupportedException), "Cannot perform call")); }
internal static MetaObject ErrorMetaObject(MetaObject target, MetaObject[] args, MetaObject onBindingError) { return(onBindingError ?? MetaObject.CreateThrow(target, args, typeof(NotImplementedException), ArrayUtils.EmptyObjects)); }