public virtual object make(List args) { Method make = method("make", false); if (make != null && make.isPublic()) { int numArgs = args == null ? 0 : args.sz(); List p = make.@params(); if ((numArgs == p.sz()) || (numArgs < p.sz() && ((Param)p.get(numArgs)).hasDefault())) { return(make.m_func.callList(args)); } } Slot defVal = slot("defVal", false); if (defVal is Field) { return(((Field)defVal).get(null)); } if (defVal is Method) { return(((Method)defVal).m_func.callList(null)); } throw Err.make("Type missing 'make' or 'defVal' slots: " + this).val; }