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); }