typePrint(returnType);
printType(returnType);
    public void visitMethodDeclaration(JMethodDeclaration self,                                       int modifiers,                                       CType returnType,                                       String ident,                                       JFormalParameter[] parameters,                                       CClassType[] exceptions,                                       JBlock body) {        p.newLine();        // TODO: figure out what kind of function this is        // (phase, handler, helper are special).        // Treat init and work functions specially.        if (ident.equals("init") || ident.equals("work"))        {            p.print(ident);        }	else if (ident.equals("initWork")) 	{	    // initWork is the compiler's name for "prework"	    p.print("prework");	}        else        {            // p.print(CModifier.toString(modifiers));            typePrint(returnType);            p.print(" ");            p.print(ident);            p.print("(");            int count = 0;                        for (int i = 0; i < parameters.length; i++) {                if (count != 0) {                    p.print(", ");                }                                // if (!parameters[i].isGenerated()) {                parameters[i].accept(this);                count++;                // }            }            p.print(")");        }        // Print I/O rates for initWork function, if they're available.        if (ident.equals("initWork")) // or a phase function?        {            SIRTwoStageFilter filter = (SIRTwoStageFilter)theStream;	    p.print(" pop " + filter.getInitPop());	    p.print(" peek " + filter.getInitPeek());	    p.print(" push " + filter.getInitPush());        }        // Print I/O rates for work function, if they're available.        if (ident.equals("work")) // or a phase function?        {            SIRFilter filter = (SIRFilter)theStream;            if (filter.getPop() != null)            {                p.print(" pop ");                filter.getPop().accept(this);            }            if (filter.getPeek() != null)            {                p.print(" peek ");                filter.getPeek().accept(this);            }            if (filter.getPush() != null)            {                p.print(" push ");                filter.getPush().accept(this);            }        }                if (declOnly)        {            p.print(";");            return;        }        p.newLine();        if (body != null) {            body.accept(this);        } else {            p.print(";");        }        p.newLine();    }