private void AddReferencedVariable(MemberElement previous) { if ((previous != null)) { return; } if ((_myVariableType != null) || MyOptions.IsOwnerType(this.MemberOwnerType) == true) { ExpressionInfo info = (ExpressionInfo)MyServices.GetService(typeof(ExpressionInfo)); info.AddReferencedVariable(MyName); } }
private void EmitFirst(FleeILGenerator ilg) { if ((MyPrevious != null)) { return; } bool isVariable = (_myVariableType != null); if (isVariable == true) { // Load variables EmitLoadVariables(ilg); } else if (MyOptions.IsOwnerType(this.MemberOwnerType) == true & this.IsStatic == false) { this.EmitLoadOwner(ilg); } }
public override void Emit(FleeILGenerator ilg, IServiceProvider services) { base.Emit(ilg, services); ExpressionElement[] elements = _myArguments.ToArray(); // If we are an on-demand function, then emit that and exit if ((_myOnDemandFunctionReturnType != null)) { this.EmitOnDemandFunction(elements, ilg, services); return; } bool isOwnerMember = MyOptions.IsOwnerType(this.Method.ReflectedType); // Load the owner if required if (MyPrevious == null && isOwnerMember == true && this.IsStatic == false) { this.EmitLoadOwner(ilg); } this.EmitFunctionCall(this.NextRequiresAddress, ilg, services); }