using T; class T { static f1 (i : int, s : string) : void { ignore (i); ignore (s) } static t1 () : void { f1 (i = 1, "foo") } // E: unnamed parameter found after a named parameter static t2 () : void { f1 (i = "foo", s = "foo") } // E: in argument #1.* needed.*int.*got.*string static t3 () : void { f1 (i = 1, s = 1) } // E: in argument #2.* needed .*string.*got.*int static t4 () : void { f1 (s = "foo", i = "foo") } // E: in argument #1.* needed.*int.*got.*string static t5 () : void { f1 (s = 1, i = 1) } // E: in argument #2.* needed .*string.*got.*int static t6 () : void { f1 (s = "foo", i = 1) } // OK static t7 () : void { f1 (1, s = "foo") } // OK static t8 () : void { f1 (1, "foo") } // OK static t9 () : void { f1 (1, i = 1) } // E: keyword parameter `i' already specified as an unnamed parameter static t10 () : void { f1 (1, i = 1, s = "foo") } // E: keyword parameter `i' already specified as an unnamed parameter static t11 () : void { f1 (foo = 1, i = 1) } // E: no such keyword parameter `foo' among valid parameter names } /// BUG #00022: module M { foo (x : int, y : int) : void { ignore (x + y); } bar (ele : int, mele : int, dudki : int, gosp : int, malutki : int) : void { ignore (ele + mele + dudki + gosp + malutki); } bar (ele : int, mele : int, dudki : int, gosp : int, malutki : int, ojdanadana : int) : void { ignore (ele + mele + dudki + gosp + malutki + ojdanadana); } Main () : void { foo (3, x = 4); // E: keyword parameter `x' already specified as an unnamed parameter foo (3, qux = 4); // E: no such keyword parameter `qux' among valid parameter names bar (ele = 7, mele = 28, dudki = 32, malutki = 77); // E: .*gosp.*ojdanadana } }