X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/b2983f3591981a916f748362d91ff0e2817552cb..f2ed4293acc558f54f33a04e6bc707edb5a40c03:/test/test.sod diff --git a/test/test.sod b/test/test.sod index f7f3537..776228b 100644 --- a/test/test.sod +++ b/test/test.sod @@ -225,4 +225,33 @@ code c : tests { } } +/*----- Keyword argument propagation --------------------------------------*/ + +[link = SodObject, nick = base] +class T3Base : SodObject { + void m0(?int x) { STEP(x); } + void m1(?) { } +} + +[link = T3Base, nick = mid] +class T3Mid : T3Base { + void base.m0(?int y) { STEP(y); CALL_NEXT_METHOD; } + void base.m1(?) { STEP(4); CALL_NEXT_METHOD; } +} + +[link = T3Mid, nick = sub] +class T3Sub : T3Mid { + void base.m0(?int z) { STEP(z); CALL_NEXT_METHOD; } + void base.m1(?int z) { STEP(z); CALL_NEXT_METHOD; } +} + +code c : tests { + prepare("kwargs"); + { SOD_DECL(T3Sub, t, NO_KWARGS); + T3Base_m0(t, KWARGS(K(z, 0) K(y, 1) K(x, 2))); + T3Base_m1(t, KWARGS(K(z, 3))); + DONE(5); + } +} + /*----- That's all, folks -------------------------------------------------*/