static void Method_p(CTX, ksfp_t *sfp, int pos, kwb_t *wb, int level) { kMethod *mtd = sfp[pos].mtd; kParam *pa = kMethod_param(mtd); DBG_ASSERT(IS_Method(mtd)); if(level != 0) { MethodAttribute_p(_ctx, mtd, wb); } kwb_printf(wb, "%s %s.%s%s", TY_t(pa->rtype), TY_t(mtd->cid), T_mn(mtd->mn)); if(level != 0) { size_t i; kwb_putc(wb, '('); for(i = 0; i < pa->psize; i++) { if(i > 0) { kwb_putc(wb, ',', ' '); } if(FN_isCOERCION(pa->p[i].fn)) { kwb_printf(wb, "@Coercion "); } kwb_printf(wb, "%s %s", TY_t(pa->p[i].ty), SYM_t(pa->p[i].fn)); } // if(Param_isVARGs(DP(mtd)->mp)) { // knh_write_delimdots(_ctx, w); // } kwb_putc(wb, ')'); } }
static void kMethod_WriteToBuffer(KonohaContext *kctx, kMethod *mtd, KGrowingBuffer *wb) { kParam *pa = Method_param(mtd); Method_WriteAttributeToBuffer(kctx, mtd, wb); KLIB Kwb_printf(kctx, wb, "%s %s.%s%s", TY_t(pa->rtype), TY_t(mtd->typeId), MethodName_t(mtd->mn)); { size_t i; KLIB Kwb_Write(kctx, wb, "(", 1); for(i = 0; i < pa->psize; i++) { if(i > 0) { KLIB Kwb_Write(kctx, wb, ", ", 2); } if(FN_isCOERCION(pa->paramtypeItems[i].fn)) { KLIB Kwb_printf(kctx, wb, "@Coercion "); } KLIB Kwb_printf(kctx, wb, "%s %s", TY_t(pa->paramtypeItems[i].ty), SYM_t(pa->paramtypeItems[i].fn)); } KLIB Kwb_Write(kctx, wb, ")", 1); } }