Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SetIndexBinder.cs
Go to the documentation of this file.
2
3namespace System.Dynamic;
4
6{
7 public sealed override Type ReturnType => typeof(object);
8
9 public CallInfo CallInfo { get; }
10
11 internal sealed override bool IsStandardBinder => true;
12
13 protected SetIndexBinder(CallInfo callInfo)
14 {
15 ContractUtils.RequiresNotNull(callInfo, "callInfo");
16 CallInfo = callInfo;
17 }
18
19 public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args)
20 {
21 ContractUtils.RequiresNotNull(target, "target");
22 ContractUtils.RequiresNotNull(args, "args");
23 ContractUtils.Requires(args.Length >= 2, "args");
24 DynamicMetaObject value = args[^1];
25 DynamicMetaObject[] array = args.RemoveLast();
27 ContractUtils.RequiresNotNullItems(array, "args");
28 return target.BindSetIndex(this, array, value);
29 }
30
32 {
33 return FallbackSetIndex(target, indexes, value, null);
34 }
35
37}
virtual DynamicMetaObject BindSetIndex(SetIndexBinder binder, DynamicMetaObject[] indexes, DynamicMetaObject value)
DynamicMetaObject FallbackSetIndex(DynamicMetaObject target, DynamicMetaObject[] indexes, DynamicMetaObject value)
override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args)
DynamicMetaObject FallbackSetIndex(DynamicMetaObject target, DynamicMetaObject[] indexes, DynamicMetaObject value, DynamicMetaObject? errorSuggestion)
SetIndexBinder(CallInfo callInfo)
static void Requires([DoesNotReturnIf(false)] bool precondition, string paramName)
static void RequiresNotNull(object value, string paramName)