!7 set flag _MethodCache_debug. sclass Bla { S ok() { ret 'jaOK; } int yo(int x) { ret x+5; } S yo(S x) { ret 'ja + x; } S testMe(int x) { ret 'int; } } sclass DaStatic { sS sOK() { ret 'sJaOK; } static int yo(int x) { ret x+5; } sS yo(S x) { ret 'ja + x; } } p-exp { twice { assertEqualsVerbose('jaOK, callOpt_cached(new Bla, 'ok)); assertNull(callOpt_cached(new Bla, 'sOK)); assertEqualsVerbose(15, callOpt_cached(new Bla, 'yo, 10)); assertEqualsVerbose('jaX, callOpt_cached(new Bla, 'yo, 'X)); assertNull(callOpt_cached(new Bla, 'yoyo)); assertNull(callOpt_cached(new Bla, 'yo, 5.0)); assertNull(callOpt_cached(Bla, 'ok)); // non-static method assertNull(callOpt_cached(new Bla, 'testMe, 'test)); assertNull(callOpt_cached(DaStatic, 'ok)); assertEqualsVerbose('sJaOK, callOpt_cached(DaStatic, 'sOK)); assertEqualsVerbose(15, callOpt_cached(DaStatic, 'yo, 10)); assertEqualsVerbose('jaX, callOpt_cached(DaStatic, 'yo, 'X)); assertNull(callOpt_cached(DaStatic, 'yoyo)); assertNull(callOpt_cached(DaStatic, 'yo, 5.0)); } }