From a5a5029a80a14be46c244b5bcca63e5e2cd9026f Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 15:00:36 +0330 Subject: std.Io.print/println take any mix of printable arguments (compiler expands per type); docs, conformance --- tests/conformance/3-expressions/print_varargs.zc | 14 ++++++++++++++ .../3-expressions/print_varargs_fresh_object.zc | 6 ++++++ 2 files changed, 20 insertions(+) create mode 100644 tests/conformance/3-expressions/print_varargs.zc create mode 100644 tests/conformance/3-expressions/print_varargs_fresh_object.zc (limited to 'tests/conformance/3-expressions') diff --git a/tests/conformance/3-expressions/print_varargs.zc b/tests/conformance/3-expressions/print_varargs.zc new file mode 100644 index 0000000..6918c8c --- /dev/null +++ b/tests/conformance/3-expressions/print_varargs.zc @@ -0,0 +1,14 @@ +// expect: a b 42 -7 1.500000//name: zc/6/ +// spec 3.11.7 +include rt, std; +char* make_name() { char* s = rt.new(3); s[0] = 'z'; s[1] = 'c'; s[2] = 0; return s; } +fn main() { + float f = 1.5; + std.Io.print("a"); + std.Io.println(" b ", 42, " ", -7, " ", f); + std.Io.println(); + std.Io.println("name: ", make_name()); + int x = 3; + std.Io.println(x * 2); +} +// zc0: skip diff --git a/tests/conformance/3-expressions/print_varargs_fresh_object.zc b/tests/conformance/3-expressions/print_varargs_fresh_object.zc new file mode 100644 index 0000000..5cba2a4 --- /dev/null +++ b/tests/conformance/3-expressions/print_varargs_fresh_object.zc @@ -0,0 +1,6 @@ +// expect error: a new object can't be printed +// spec 3.11.7 +include rt, std; +struct node { int v; }; +fn main() { std.Io.println(rt.new(node)); } +// zc0: skip -- cgit v1.2.3