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

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

private EmitNormalizedArrayIndex ( Boo.Lang.Compiler.Ast.SlicingExpression sourceNode, Expression index ) : void
sourceNode Boo.Lang.Compiler.Ast.SlicingExpression
index Boo.Lang.Compiler.Ast.Expression
Результат void
        void EmitNormalizedArrayIndex(SlicingExpression sourceNode, Expression index)
        {
            bool isNegative = false;
            if (CanBeNegative(index, ref isNegative)
                && !_rawArrayIndexing
                && !AstAnnotations.IsRawIndexing(sourceNode))
            {
                if (isNegative)
                {
                    Dup();
                    _il.Emit(OpCodes.Ldlen);
                    LoadIntExpression(index);
                    _il.Emit(OpCodes.Add);
                }
                else
                {
                    Dup();
                    LoadIntExpression(index);
                    Call(RuntimeServices_NormalizeArrayIndex);
                }
            }
            else
                LoadIntExpression(index);
        }
EmitAssembly