Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Block2.cs
Go to the documentation of this file.
4
6
7internal sealed class Block2 : BlockExpression
8{
9 private object _arg0;
10
11 private readonly Expression _arg1;
12
13 internal override int ExpressionCount => 2;
14
16 {
17 _arg0 = arg0;
18 _arg1 = arg1;
19 }
20
21 internal override Expression GetExpression(int index)
22 {
23 return index switch
24 {
25 0 => ExpressionUtils.ReturnObject<Expression>(_arg0),
26 1 => _arg1,
27 _ => throw Error.ArgumentOutOfRange("index"),
28 };
29 }
30
32 {
33 if (expressions.Count == 2)
34 {
36 {
37 return ExpressionUtils.SameElements(expressions, current);
38 }
40 enumerator.MoveNext();
41 if (enumerator.Current == _arg0)
42 {
43 enumerator.MoveNext();
44 return enumerator.Current == _arg1;
45 }
46 }
47 return false;
48 }
49
54
59}
readonly Expression _arg1
Definition Block2.cs:11
Block2(Expression arg0, Expression arg1)
Definition Block2.cs:15
override ReadOnlyCollection< Expression > GetOrMakeExpressions()
Definition Block2.cs:50
override BlockExpression Rewrite(ReadOnlyCollection< ParameterExpression > variables, Expression[] args)
Definition Block2.cs:55
override Expression GetExpression(int index)
Definition Block2.cs:21
override bool SameExpressions(ICollection< Expression > expressions)
Definition Block2.cs:31
override int ExpressionCount
Definition Block2.cs:13
static ReadOnlyCollection< Expression > ReturnReadOnlyExpressions(BlockExpression provider, ref object collection)
static Exception ArgumentOutOfRange(string paramName)
Definition Error.cs:818