Files
Flee/ExpressionElements/MemberElements/Miscellaneous.cs

40 lines
1.1 KiB
C#

using System;
using Flee.ExpressionElements.Base;
using Flee.InternalTypes;
namespace Flee.ExpressionElements.MemberElements
{
internal class ExpressionMemberElement : MemberElement
{
private readonly ExpressionElement _myElement;
public ExpressionMemberElement(ExpressionElement element)
{
_myElement = element;
}
protected override void ResolveInternal()
{
}
public override void Emit(FleeILGenerator ilg, IServiceProvider services)
{
base.Emit(ilg, services);
_myElement.Emit(ilg, services);
if (_myElement.ResultType.IsValueType == true)
{
EmitValueTypeLoadAddress(ilg, this.ResultType);
}
}
protected override bool SupportsInstance => true;
protected override bool IsPublic => true;
public override bool IsStatic => false;
public override bool IsExtensionMethod => false;
public override System.Type ResultType => _myElement.ResultType;
}
}