This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
@@ -0,0 +1,70 @@
using System;
using System.Reflection.Emit;
namespace System.Linq.Expressions
{
/// <summary>Represents a named parameter expression.</summary>
// Token: 0x0200002E RID: 46
public sealed class ParameterExpression : Expression
{
// Token: 0x06000248 RID: 584 RVA: 0x0000C004 File Offset: 0x0000A204
internal ParameterExpression(Type type, string name)
: base(ExpressionType.Parameter, type)
{
this.name = name;
}
/// <summary>Gets the name of the parameter.</summary>
/// <returns>A <see cref="T:System.String" /> that contains the name of the parameter.</returns>
// Token: 0x17000033 RID: 51
// (get) Token: 0x06000249 RID: 585 RVA: 0x0000C018 File Offset: 0x0000A218
public string Name
{
get
{
return this.name;
}
}
// Token: 0x0600024A RID: 586 RVA: 0x0000C020 File Offset: 0x0000A220
private void EmitLocalParameter(EmitContext ec, int position)
{
ec.ig.Emit(OpCodes.Ldarg, position);
}
// Token: 0x0600024B RID: 587 RVA: 0x0000C034 File Offset: 0x0000A234
private void EmitHoistedLocal(EmitContext ec, int level, int position)
{
ec.EmitScope();
for (int i = 0; i < level; i++)
{
ec.EmitParentScope();
}
ec.EmitLoadLocals();
ec.ig.Emit(OpCodes.Ldc_I4, position);
ec.ig.Emit(OpCodes.Ldelem, typeof(object));
ec.EmitLoadStrongBoxValue(base.Type);
}
// Token: 0x0600024C RID: 588 RVA: 0x0000C09C File Offset: 0x0000A29C
internal override void Emit(EmitContext ec)
{
int num = -1;
if (ec.IsLocalParameter(this, ref num))
{
this.EmitLocalParameter(ec, num);
return;
}
int num2 = 0;
if (ec.IsHoistedLocal(this, ref num2, ref num))
{
this.EmitHoistedLocal(ec, num2, num);
return;
}
throw new InvalidOperationException("Parameter out of scope");
}
// Token: 0x040000BD RID: 189
private string name;
}
}