Emit() 공개 메소드

public Emit ( ObjExpr fn, TypeBuilder tb ) : void
fn ObjExpr
tb TypeBuilder
리턴 void
예제 #1
0
        protected override void EmitMethods(TypeBuilder tb)
        {
            for (ISeq s = RT.seq(_methods); s != null; s = s.next())
            {
                FnMethod method = (FnMethod)s.first();
                method.Emit(this, tb);
            }

            if (IsVariadic)
            {
                EmitGetRequiredArityMethod(_typeBuilder, _variadicMethod.RequiredArity);
            }

            List <int> supportedArities = new List <int>();

            for (ISeq s = RT.seq(_methods); s != null; s = s.next())
            {
                FnMethod method = (FnMethod)s.first();
                supportedArities.Add(method.NumParams);
            }

            EmitHasArityMethod(_typeBuilder, supportedArities, IsVariadic, IsVariadic ? _variadicMethod.RequiredArity : 0);
        }