Boo.Lang.Compiler.Steps.EmitAssembly.EmitLoadField C# (CSharp) Метод

EmitLoadField() приватный Метод

private EmitLoadField ( Expression self, IField fieldInfo ) : void
self Boo.Lang.Compiler.Ast.Expression
fieldInfo IField
Результат void
        void EmitLoadField(Expression self, IField fieldInfo)
        {
            if (fieldInfo.IsStatic)
            {
                if (fieldInfo.IsLiteral)
                {
                    EmitLoadLiteralField(self, fieldInfo);
                }
                else
                {
                    if (fieldInfo.IsVolatile)
                        _il.Emit(OpCodes.Volatile);
                    _il.Emit(IsByAddress(fieldInfo.Type) ? OpCodes.Ldsflda : OpCodes.Ldsfld,
                        GetFieldInfo(fieldInfo));
                }
            }
            else
            {
                LoadMemberTarget(self, fieldInfo);
                if (fieldInfo.IsVolatile)
                    _il.Emit(OpCodes.Volatile);
                _il.Emit(IsByAddress(fieldInfo.Type) ? OpCodes.Ldflda : OpCodes.Ldfld,
                    GetFieldInfo(fieldInfo));
            }
            PushType(fieldInfo.Type);
        }
EmitAssembly