From 4b06dc574ba7d3ae50795cbe4f10d4be6e9c64a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Tue, 1 Feb 2011 13:40:04 -0500 Subject: Add very minimal support for native modules. For now they must be empty. --- src/test/run-pass/native2.rs | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/test/run-pass/native2.rs (limited to 'src/test') diff --git a/src/test/run-pass/native2.rs b/src/test/run-pass/native2.rs new file mode 100644 index 00000000..abb63352 --- /dev/null +++ b/src/test/run-pass/native2.rs @@ -0,0 +1,5 @@ +native "rust" mod rustrt { +} + +fn main(vec[str] args) { +} -- cgit v1.2.3 From dd3ed6139a6fc6fda15403d0b5679535959945e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Wed, 2 Feb 2011 10:43:57 -0500 Subject: Add most of the plumbing for native items and add support for parsing native type declarations. --- src/test/run-pass/native2.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src/test') diff --git a/src/test/run-pass/native2.rs b/src/test/run-pass/native2.rs index abb63352..b848ec8c 100644 --- a/src/test/run-pass/native2.rs +++ b/src/test/run-pass/native2.rs @@ -1,4 +1,5 @@ native "rust" mod rustrt { + type vbuf; } fn main(vec[str] args) { -- cgit v1.2.3 From 57bb9d809bb029caf7b38042a433153bb965e1fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Fri, 4 Feb 2011 11:10:04 -0500 Subject: Parse function declarations. --- src/test/run-pass/native2.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'src/test') diff --git a/src/test/run-pass/native2.rs b/src/test/run-pass/native2.rs index b848ec8c..a6df93f5 100644 --- a/src/test/run-pass/native2.rs +++ b/src/test/run-pass/native2.rs @@ -1,5 +1,6 @@ native "rust" mod rustrt { type vbuf; + fn vec_buf[T](vec[T] v, uint offset) -> vbuf; } fn main(vec[str] args) { -- cgit v1.2.3 From 8122e0c54280545c28e8067c0e3a19253fe3aa9b Mon Sep 17 00:00:00 2001 From: Rafael Avila de Espindola Date: Mon, 7 Feb 2011 12:46:28 -0500 Subject: Add support for native mod foo = "bar" ... --- src/test/run-pass/native2.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/test') diff --git a/src/test/run-pass/native2.rs b/src/test/run-pass/native2.rs index a6df93f5..4d2f0ad9 100644 --- a/src/test/run-pass/native2.rs +++ b/src/test/run-pass/native2.rs @@ -3,5 +3,9 @@ native "rust" mod rustrt { fn vec_buf[T](vec[T] v, uint offset) -> vbuf; } +native mod libc = "libc.dylib" { + fn write(int fd, rustrt.vbuf buf, uint count) -> int; +} + fn main(vec[str] args) { } -- cgit v1.2.3 From ff6864aa5ca14795ae0e23e97e0e67b1122a6b68 Mon Sep 17 00:00:00 2001 From: Rafael Avila de Espindola Date: Mon, 7 Feb 2011 14:57:34 -0500 Subject: Fix expressions with paths with more than one element. --- src/test/run-pass/path.rs | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/test/run-pass/path.rs (limited to 'src/test') diff --git a/src/test/run-pass/path.rs b/src/test/run-pass/path.rs new file mode 100644 index 00000000..e94d32eb --- /dev/null +++ b/src/test/run-pass/path.rs @@ -0,0 +1,8 @@ +mod foo { + fn bar(uint offset) { + } +} + +fn main(vec[str] args) { + foo.bar(0u); +} -- cgit v1.2.3 From b7dfbc9db079a6c55d9e716d295f87597752b668 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Wed, 9 Feb 2011 13:19:20 -0800 Subject: Fix bug in test and un-XFAIL 4 tests now passing on rustc. --- src/test/run-pass/generic-type-synonym.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/run-pass/generic-type-synonym.rs b/src/test/run-pass/generic-type-synonym.rs index 4ddc8946..c3d2a9d5 100644 --- a/src/test/run-pass/generic-type-synonym.rs +++ b/src/test/run-pass/generic-type-synonym.rs @@ -1,4 +1,4 @@ type foo[T] = tup(T); type bar[T] = foo[T]; -fn takebar[T](bar[T] b) {} +fn takebar[T](&bar[T] b) {} fn main() {} \ No newline at end of file -- cgit v1.2.3 From 6461cf30de748fbe310640cd9c195965fc3da229 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 30 Jan 2011 17:38:46 -0500 Subject: Add compile-fail tests for tail calls --- src/test/compile-fail/tail-non-call.rs | 10 ++++++++++ src/test/compile-fail/tail-typeck.rs | 13 +++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/test/compile-fail/tail-non-call.rs create mode 100644 src/test/compile-fail/tail-typeck.rs (limited to 'src/test') diff --git a/src/test/compile-fail/tail-non-call.rs b/src/test/compile-fail/tail-non-call.rs new file mode 100644 index 00000000..2742d1fe --- /dev/null +++ b/src/test/compile-fail/tail-non-call.rs @@ -0,0 +1,10 @@ +// error-pattern: Non-call expression in tail call + +fn f() -> int { + auto x = 1; + be x; +} + +fn main() { + auto y = f(); +} \ No newline at end of file diff --git a/src/test/compile-fail/tail-typeck.rs b/src/test/compile-fail/tail-typeck.rs new file mode 100644 index 00000000..10b95546 --- /dev/null +++ b/src/test/compile-fail/tail-typeck.rs @@ -0,0 +1,13 @@ +// error-pattern: mismatched types + +fn f() -> int { + be g(); +} + +fn g() -> uint { + ret 0u; +} + +fn main() { + auto y = f(); +} \ No newline at end of file -- cgit v1.2.3 From f17a3421e01399bcc1a6f8540273d7b4440397a1 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 9 Feb 2011 22:36:37 -0500 Subject: Cleanup for 'be' statement and comments about future typestate --- src/test/compile-fail/tail-non-call.rs | 2 +- src/test/compile-fail/tail-typeck.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/test') diff --git a/src/test/compile-fail/tail-non-call.rs b/src/test/compile-fail/tail-non-call.rs index 2742d1fe..00a451f6 100644 --- a/src/test/compile-fail/tail-non-call.rs +++ b/src/test/compile-fail/tail-non-call.rs @@ -7,4 +7,4 @@ fn f() -> int { fn main() { auto y = f(); -} \ No newline at end of file +} diff --git a/src/test/compile-fail/tail-typeck.rs b/src/test/compile-fail/tail-typeck.rs index 10b95546..64beedb9 100644 --- a/src/test/compile-fail/tail-typeck.rs +++ b/src/test/compile-fail/tail-typeck.rs @@ -10,4 +10,4 @@ fn g() -> uint { fn main() { auto y = f(); -} \ No newline at end of file +} -- cgit v1.2.3 From 277334890dabd85c1015da666e2700dfe9950e2d Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 10 Feb 2011 19:13:39 -0800 Subject: Add alt-pattern-lit.rs test. --- src/test/run-pass/alt-pattern-lit.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/test/run-pass/alt-pattern-lit.rs (limited to 'src/test') diff --git a/src/test/run-pass/alt-pattern-lit.rs b/src/test/run-pass/alt-pattern-lit.rs new file mode 100644 index 00000000..91190260 --- /dev/null +++ b/src/test/run-pass/alt-pattern-lit.rs @@ -0,0 +1,17 @@ +fn altlit(int f) -> int { + alt (f) { + case (10) { + log "case 10"; + ret 20; + } + case (11) { + log "case 11"; + ret 22; + } + } +} + +fn main() { + check (altlit(10) == 20); + check (altlit(11) == 22); +} -- cgit v1.2.3 From 0ebfb8227c190609e80af3fb52b9813c4b282cc0 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 13 Feb 2011 00:49:04 -0500 Subject: Add support for unsigned binops. Closes #57 --- src/test/run-pass/arith-unsigned.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/test/run-pass/arith-unsigned.rs (limited to 'src/test') diff --git a/src/test/run-pass/arith-unsigned.rs b/src/test/run-pass/arith-unsigned.rs new file mode 100644 index 00000000..3fac3714 --- /dev/null +++ b/src/test/run-pass/arith-unsigned.rs @@ -0,0 +1,24 @@ +// Unsigned integer operations + +fn main() { + check (0u8 < 255u8); + check (0u8 <= 255u8); + check (255u8 > 0u8); + check (255u8 >= 0u8); + check (250u8 / 10u8 == 25u8); + check (255u8 % 10u8 == 5u8); + check (0u16 < 60000u16); + check (0u16 <= 60000u16); + check (60000u16 > 0u16); + check (60000u16 >= 0u16); + check (60000u16 / 10u16 == 6000u16); + check (60005u16 % 10u16 == 5u16); + check (0u32 < 4000000000u32); + check (0u32 <= 4000000000u32); + check (4000000000u32 > 0u32); + check (4000000000u32 >= 0u32); + check (4000000000u32 / 10u32 == 400000000u32); + check (4000000005u32 % 10u32 == 5u32); + + // 64-bit numbers have some flakiness yet. Not tested +} -- cgit v1.2.3 From 10befcd9a4d9f68e2dbec84c4a86450a021143fb Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 17 Feb 2011 16:23:31 -0800 Subject: Add type parameters to tag types --- src/test/run-pass/generic-tag.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/run-pass/generic-tag.rs b/src/test/run-pass/generic-tag.rs index 1fd88255..68d7c18f 100644 --- a/src/test/run-pass/generic-tag.rs +++ b/src/test/run-pass/generic-tag.rs @@ -6,4 +6,4 @@ tag option[T] { fn main() { let option[int] a = some[int](@10); a = none[int]; -} \ No newline at end of file +} -- cgit v1.2.3 From cbe8d222a82c14485cf416c4b85fd5e58363c0e0 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 21 Feb 2011 00:56:09 -0500 Subject: Implement sha-1 in standard library. Closes #228 --- src/test/run-pass/lib-sha1.rs | 115 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 src/test/run-pass/lib-sha1.rs (limited to 'src/test') diff --git a/src/test/run-pass/lib-sha1.rs b/src/test/run-pass/lib-sha1.rs new file mode 100644 index 00000000..57e3cdc8 --- /dev/null +++ b/src/test/run-pass/lib-sha1.rs @@ -0,0 +1,115 @@ +// -*- rust -*- + +use std; + +import std.sha1; +import std._vec; +import std._str; + +fn main() { + + type test = rec(str input, vec[u8] output); + + fn a_million_letter_a() -> str { + auto i = 0; + auto res = ""; + while (i < 100000) { + res += "aaaaaaaaaa"; + i += 1; + } + ret res; + } + + // Test messages from FIPS 180-1 + let vec[test] fips_180_1_tests = + vec( + rec(input = "abc", + output = vec(0xA9u8, 0x99u8, 0x3Eu8, 0x36u8, 0x47u8, + 0x06u8, 0x81u8, 0x6Au8, 0xBAu8, 0x3Eu8, + 0x25u8, 0x71u8, 0x78u8, 0x50u8, 0xC2u8, + 0x6Cu8, 0x9Cu8, 0xD0u8, 0xD8u8, 0x9Du8) + ), + rec(input = "abcdbcdecdefdefgefghfghighij" + + "hijkijkljklmklmnlmnomnopnopq", + output = vec(0x84u8, 0x98u8, 0x3Eu8, 0x44u8, 0x1Cu8, + 0x3Bu8, 0xD2u8, 0x6Eu8, 0xBAu8, 0xAEu8, + 0x4Au8, 0xA1u8, 0xF9u8, 0x51u8, 0x29u8, + 0xE5u8, 0xE5u8, 0x46u8, 0x70u8, 0xF1u8) + ) + // FIXME: This test is disabled because it takes some + // minutes to run under rustboot+valgrind. It may be + // possible to reenable once things are more optimized. + /*, + rec(input = a_million_letter_a(), + output = vec(0x34u8, 0xAAu8, 0x97u8, 0x3Cu8, 0xD4u8, + 0xC4u8, 0xDAu8, 0xA4u8, 0xF6u8, 0x1Eu8, + 0xEBu8, 0x2Bu8, 0xDBu8, 0xADu8, 0x27u8, + 0x31u8, 0x65u8, 0x34u8, 0x01u8, 0x6Fu8) + ) + */ + ); + + // Examples from wikipedia + let vec[test] wikipedia_tests = + vec( + rec(input = "The quick brown fox jumps over the lazy dog", + output = vec(0x2fu8, 0xd4u8, 0xe1u8, 0xc6u8, 0x7au8, + 0x2du8, 0x28u8, 0xfcu8, 0xedu8, 0x84u8, + 0x9eu8, 0xe1u8, 0xbbu8, 0x76u8, 0xe7u8, + 0x39u8, 0x1bu8, 0x93u8, 0xebu8, 0x12u8) + ), + rec(input = "The quick brown fox jumps over the lazy cog", + output = vec(0xdeu8, 0x9fu8, 0x2cu8, 0x7fu8, 0xd2u8, + 0x5eu8, 0x1bu8, 0x3au8, 0xfau8, 0xd3u8, + 0xe8u8, 0x5au8, 0x0bu8, 0xd1u8, 0x7du8, + 0x9bu8, 0x10u8, 0x0du8, 0xb4u8, 0xb3u8) + ) + ); + + auto tests = fips_180_1_tests + wikipedia_tests; + + fn check_vec_eq(vec[u8] v0, vec[u8] v1) { + check (_vec.len[u8](v0) == _vec.len[u8](v1)); + auto len = _vec.len[u8](v0); + auto i = 0u; + while (i < len) { + auto a = v0.(i); + auto b = v1.(i); + check (a == b); + i += 1u; + } + } + + // Test that it works when accepting the message all at once + auto sh = sha1.mk_sha1(); + for (test t in tests) { + sh.input_str(t.input); + auto out = sh.result(); + check_vec_eq(t.output, out); + sh.reset(); + } + + // Test that it works when accepting the message in pieces + for (test t in tests) { + auto len = _str.byte_len(t.input); + auto left = len; + while (left > 0u) { + auto take = (left + 1u) / 2u; + sh.input_str(_str.substr(t.input, len - left, take)); + left = left - take; + } + auto out = sh.result(); + check_vec_eq(t.output, out); + sh.reset(); + } +} + + +// Local Variables: +// mode: rust; +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// compile-command: "make -k -C .. 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; +// End: -- cgit v1.2.3 From c4df39609c9c09c450dd8fe5905a8e6fbeb5f181 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 22 Feb 2011 18:58:07 -0500 Subject: Rename std._io to std.io since 'io' is no longer a keyword --- src/test/run-pass/lib-io.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/test') diff --git a/src/test/run-pass/lib-io.rs b/src/test/run-pass/lib-io.rs index 66394435..e0665fb6 100644 --- a/src/test/run-pass/lib-io.rs +++ b/src/test/run-pass/lib-io.rs @@ -1,7 +1,7 @@ // -*- rust -*- use std; -import std._io; +import std.io; import std._str; fn test_simple(str tmpfilebase) { @@ -11,11 +11,11 @@ fn test_simple(str tmpfilebase) { log frood; { - let _io.buf_writer out = _io.new_buf_writer(tmpfile, vec(_io.create())); + let io.buf_writer out = io.new_buf_writer(tmpfile, vec(io.create())); out.write(_str.bytes(frood)); } - let _io.buf_reader inp = _io.new_buf_reader(tmpfile); + let io.buf_reader inp = io.new_buf_reader(tmpfile); let str frood2 = _str.from_bytes(inp.read()); log frood2; check (_str.eq(frood, frood2)); -- cgit v1.2.3 From eac75b76486ec54f677b2460f09635380437b125 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 22 Feb 2011 20:23:38 -0500 Subject: Teach rustc about reserved keywords --- src/test/compile-fail/reserved-dec.rs | 5 +++++ src/test/compile-fail/reserved-f128.rs | 5 +++++ src/test/compile-fail/reserved-f16.rs | 5 +++++ src/test/compile-fail/reserved-f80.rs | 5 +++++ src/test/compile-fail/reserved-m128.rs | 5 +++++ src/test/compile-fail/reserved-m32.rs | 5 +++++ src/test/compile-fail/reserved-m64.rs | 5 +++++ 7 files changed, 35 insertions(+) create mode 100644 src/test/compile-fail/reserved-dec.rs create mode 100644 src/test/compile-fail/reserved-f128.rs create mode 100644 src/test/compile-fail/reserved-f16.rs create mode 100644 src/test/compile-fail/reserved-f80.rs create mode 100644 src/test/compile-fail/reserved-m128.rs create mode 100644 src/test/compile-fail/reserved-m32.rs create mode 100644 src/test/compile-fail/reserved-m64.rs (limited to 'src/test') diff --git a/src/test/compile-fail/reserved-dec.rs b/src/test/compile-fail/reserved-dec.rs new file mode 100644 index 00000000..d8c204d9 --- /dev/null +++ b/src/test/compile-fail/reserved-dec.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int dec = 0; +} diff --git a/src/test/compile-fail/reserved-f128.rs b/src/test/compile-fail/reserved-f128.rs new file mode 100644 index 00000000..63d00f70 --- /dev/null +++ b/src/test/compile-fail/reserved-f128.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int f128 = 0; +} diff --git a/src/test/compile-fail/reserved-f16.rs b/src/test/compile-fail/reserved-f16.rs new file mode 100644 index 00000000..bfb14cd8 --- /dev/null +++ b/src/test/compile-fail/reserved-f16.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int f16 = 0; +} diff --git a/src/test/compile-fail/reserved-f80.rs b/src/test/compile-fail/reserved-f80.rs new file mode 100644 index 00000000..33e8bd5e --- /dev/null +++ b/src/test/compile-fail/reserved-f80.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int f80 = 0; +} diff --git a/src/test/compile-fail/reserved-m128.rs b/src/test/compile-fail/reserved-m128.rs new file mode 100644 index 00000000..c4d36bf7 --- /dev/null +++ b/src/test/compile-fail/reserved-m128.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int m128 = 0; +} diff --git a/src/test/compile-fail/reserved-m32.rs b/src/test/compile-fail/reserved-m32.rs new file mode 100644 index 00000000..bdb3a427 --- /dev/null +++ b/src/test/compile-fail/reserved-m32.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int m32 = 0; +} diff --git a/src/test/compile-fail/reserved-m64.rs b/src/test/compile-fail/reserved-m64.rs new file mode 100644 index 00000000..034884a6 --- /dev/null +++ b/src/test/compile-fail/reserved-m64.rs @@ -0,0 +1,5 @@ +// error-pattern:reserved keyword + +fn main() { + let int m64 = 0; +} -- cgit v1.2.3 From ffcb4613700c968041f891985927b77f70a51c0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Wed, 23 Feb 2011 14:06:37 -0500 Subject: Parse the abi in native modules. --- src/test/run-pass/native2.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/test') diff --git a/src/test/run-pass/native2.rs b/src/test/run-pass/native2.rs index 4d2f0ad9..4815345a 100644 --- a/src/test/run-pass/native2.rs +++ b/src/test/run-pass/native2.rs @@ -3,9 +3,18 @@ native "rust" mod rustrt { fn vec_buf[T](vec[T] v, uint offset) -> vbuf; } +native "rust" mod bar = "foo" { +} + +native mod zed { +} + native mod libc = "libc.dylib" { fn write(int fd, rustrt.vbuf buf, uint count) -> int; } +native "cdecl" mod baz { +} + fn main(vec[str] args) { } -- cgit v1.2.3 From 0a65283c5eeae0b98fff7d213dbaad59889e677e Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 23 Feb 2011 18:39:27 -0800 Subject: Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot. --- src/test/run-pass/generic-fn-box.rs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/test/run-pass/generic-fn-box.rs (limited to 'src/test') diff --git a/src/test/run-pass/generic-fn-box.rs b/src/test/run-pass/generic-fn-box.rs new file mode 100644 index 00000000..e821a784 --- /dev/null +++ b/src/test/run-pass/generic-fn-box.rs @@ -0,0 +1,9 @@ +fn f[T](@T x) -> @T { + ret x; +} + +fn main() { + auto x = f(@3); + log *x; +} + -- cgit v1.2.3 From 5332250d3bddf509994832965f3c5d7b68662ce4 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 24 Feb 2011 13:51:18 -0800 Subject: Revert "Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot." due to test failures This reverts commit 0a65283c5eeae0b98fff7d213dbaad59889e677e. --- src/test/run-pass/generic-fn-box.rs | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/test/run-pass/generic-fn-box.rs (limited to 'src/test') diff --git a/src/test/run-pass/generic-fn-box.rs b/src/test/run-pass/generic-fn-box.rs deleted file mode 100644 index e821a784..00000000 --- a/src/test/run-pass/generic-fn-box.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn f[T](@T x) -> @T { - ret x; -} - -fn main() { - auto x = f(@3); - log *x; -} - -- cgit v1.2.3 From dcd65fac199d3caac4b1019304ef5e1b480f31ff Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 24 Feb 2011 13:51:53 -0800 Subject: Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot. --- src/test/run-pass/generic-fn-box.rs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/test/run-pass/generic-fn-box.rs (limited to 'src/test') diff --git a/src/test/run-pass/generic-fn-box.rs b/src/test/run-pass/generic-fn-box.rs new file mode 100644 index 00000000..e821a784 --- /dev/null +++ b/src/test/run-pass/generic-fn-box.rs @@ -0,0 +1,9 @@ +fn f[T](@T x) -> @T { + ret x; +} + +fn main() { + auto x = f(@3); + log *x; +} + -- cgit v1.2.3 From 7a1d01effcfa5763bc62aefba40f67ad2130d28d Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 25 Feb 2011 12:37:03 -0800 Subject: rustc: Push type parameters down through alt tag patterns; add a test --- src/test/run-pass/generic-tag-box-alt.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/test/run-pass/generic-tag-box-alt.rs (limited to 'src/test') diff --git a/src/test/run-pass/generic-tag-box-alt.rs b/src/test/run-pass/generic-tag-box-alt.rs new file mode 100644 index 00000000..2727885a --- /dev/null +++ b/src/test/run-pass/generic-tag-box-alt.rs @@ -0,0 +1,19 @@ +tag foo[T] { + arm(@T); +} + +fn altfoo[T](foo[T] f) { + auto hit = false; + alt (f) { + case (arm[T](?x)) { + log "in arm"; + hit = true; + } + } + check (hit); +} + +fn main() { + altfoo[int](arm[int](@10)); +} + -- cgit v1.2.3 From 6c24d0403b2e8fefecc5eea11933d493a01f1daf Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 25 Feb 2011 15:49:08 -0800 Subject: Revert "rustc: Push type parameters down through alt tag patterns; add a test" due to valgrind failures This reverts commit 7a1d01effcfa5763bc62aefba40f67ad2130d28d. --- src/test/run-pass/generic-tag-box-alt.rs | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 src/test/run-pass/generic-tag-box-alt.rs (limited to 'src/test') diff --git a/src/test/run-pass/generic-tag-box-alt.rs b/src/test/run-pass/generic-tag-box-alt.rs deleted file mode 100644 index 2727885a..00000000 --- a/src/test/run-pass/generic-tag-box-alt.rs +++ /dev/null @@ -1,19 +0,0 @@ -tag foo[T] { - arm(@T); -} - -fn altfoo[T](foo[T] f) { - auto hit = false; - alt (f) { - case (arm[T](?x)) { - log "in arm"; - hit = true; - } - } - check (hit); -} - -fn main() { - altfoo[int](arm[int](@10)); -} - -- cgit v1.2.3 From 9528c34774ff27b112c9e66afff6e10fa7021635 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 23 Feb 2011 23:48:01 -0500 Subject: Begin implementing #fmt in rustc --- src/test/run-pass/syntax-extension-fmt.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/test') diff --git a/src/test/run-pass/syntax-extension-fmt.rs b/src/test/run-pass/syntax-extension-fmt.rs index 65e7647e..66fe4fd7 100644 --- a/src/test/run-pass/syntax-extension-fmt.rs +++ b/src/test/run-pass/syntax-extension-fmt.rs @@ -1,5 +1,13 @@ use std; +import std._str; + +fn test(str actual, str expected) { + log actual; + log expected; + check (_str.eq(actual, expected)); +} + fn main() { - auto s = #fmt("hello %d friends and %s things", 10, "formatted"); - log s; + test(#fmt("hello %d friends and %s things", 10, "formatted"), + "hello 10 friends and formatted things"); } -- cgit v1.2.3 From 1c60399257cde71fc265eb10cae1f398a0ac2516 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 24 Feb 2011 23:22:36 -0500 Subject: Begin work on #fmt parsing --- src/test/run-pass/syntax-extension-fmt.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/test') diff --git a/src/test/run-pass/syntax-extension-fmt.rs b/src/test/run-pass/syntax-extension-fmt.rs index 66fe4fd7..a0f51c27 100644 --- a/src/test/run-pass/syntax-extension-fmt.rs +++ b/src/test/run-pass/syntax-extension-fmt.rs @@ -1,10 +1,10 @@ -use std; -import std._str; +//use std; +//import std._str; fn test(str actual, str expected) { log actual; log expected; - check (_str.eq(actual, expected)); + //check (_str.eq(actual, expected)); } fn main() { -- cgit v1.2.3 From f1500e5872d03e3ec3b140060641136a2ff5a15a Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 26 Feb 2011 20:51:02 -0500 Subject: Add fold, typecheck and trans for expr_ext --- src/test/run-pass/syntax-extension-fmt.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/test') diff --git a/src/test/run-pass/syntax-extension-fmt.rs b/src/test/run-pass/syntax-extension-fmt.rs index a0f51c27..0d1d7082 100644 --- a/src/test/run-pass/syntax-extension-fmt.rs +++ b/src/test/run-pass/syntax-extension-fmt.rs @@ -8,6 +8,7 @@ fn test(str actual, str expected) { } fn main() { - test(#fmt("hello %d friends and %s things", 10, "formatted"), - "hello 10 friends and formatted things"); + /*test(#fmt("hello %d friends and %s things", 10, "formatted"), + "hello 10 friends and formatted things");*/ + log #fmt("test"); } -- cgit v1.2.3 From fe5de6bfffee3c277f540517b5766547f34e81c7 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 27 Feb 2011 14:30:44 -0500 Subject: Parse parameter types for fmt extension --- src/test/run-pass/syntax-extension-fmt.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/test') diff --git a/src/test/run-pass/syntax-extension-fmt.rs b/src/test/run-pass/syntax-extension-fmt.rs index 0d1d7082..b7076c81 100644 --- a/src/test/run-pass/syntax-extension-fmt.rs +++ b/src/test/run-pass/syntax-extension-fmt.rs @@ -1,14 +1,13 @@ -//use std; -//import std._str; +use std; +import std._str; fn test(str actual, str expected) { log actual; log expected; - //check (_str.eq(actual, expected)); + check (_str.eq(actual, expected)); } fn main() { - /*test(#fmt("hello %d friends and %s things", 10, "formatted"), - "hello 10 friends and formatted things");*/ - log #fmt("test"); + test(#fmt("hello %d friends and %s things", 10, "formatted"), + "hello 10 friends and formatted things"); } -- cgit v1.2.3 From 7350b7ff238c886018ecd3924298fa63895dd2f8 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 27 Feb 2011 22:18:27 -0500 Subject: Add more #fmt tests --- src/test/run-pass/syntax-extension-fmt.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/test') diff --git a/src/test/run-pass/syntax-extension-fmt.rs b/src/test/run-pass/syntax-extension-fmt.rs index b7076c81..ebb09f96 100644 --- a/src/test/run-pass/syntax-extension-fmt.rs +++ b/src/test/run-pass/syntax-extension-fmt.rs @@ -10,4 +10,7 @@ fn test(str actual, str expected) { fn main() { test(#fmt("hello %d friends and %s things", 10, "formatted"), "hello 10 friends and formatted things"); + test(#fmt("d: %d", 1), "d: 1"); + test(#fmt("i: %i", 2), "i: 2"); + test(#fmt("s: %s", "test"), "s: test"); } -- cgit v1.2.3 From 5c7db0cde15adfda5b43112ee86d4bfe3bd9ee82 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 3 Mar 2011 15:19:26 -0800 Subject: Rewrite rustboot's flow-graph wiring passes to be less awful. Add test for nested control-flow constructs. --- src/test/run-pass/typestate-cfg-nesting.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/run-pass/typestate-cfg-nesting.rs (limited to 'src/test') diff --git a/src/test/run-pass/typestate-cfg-nesting.rs b/src/test/run-pass/typestate-cfg-nesting.rs new file mode 100644 index 00000000..8f050646 --- /dev/null +++ b/src/test/run-pass/typestate-cfg-nesting.rs @@ -0,0 +1,26 @@ + +fn f() { + + auto x = 10; + auto y = 11; + if (true) { + alt (x) { + case (_) { + y = x; + } + } + } else { + } +} + +fn main() { + + auto x = 10; + auto y = 11; + if (true) { + while (false) { + y = x; + } + } else { + } +} -- cgit v1.2.3 From bed457d3a7244b317c54962d80b460294b846c27 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 6 Mar 2011 13:51:42 -0500 Subject: Change io.fileflag to a tag type. Remove FIXME --- src/test/run-pass/lib-io.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/run-pass/lib-io.rs b/src/test/run-pass/lib-io.rs index e0665fb6..0c0bcdcd 100644 --- a/src/test/run-pass/lib-io.rs +++ b/src/test/run-pass/lib-io.rs @@ -11,7 +11,7 @@ fn test_simple(str tmpfilebase) { log frood; { - let io.buf_writer out = io.new_buf_writer(tmpfile, vec(io.create())); + let io.buf_writer out = io.new_buf_writer(tmpfile, vec(io.create)); out.write(_str.bytes(frood)); } -- cgit v1.2.3 From abbcc0385dfde85c4254ea0278add7b4c6945885 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 7 Mar 2011 14:05:16 -0800 Subject: Poison ty_param values in trans; fix buggy parametric obj and box malloc paths. Add generic-box test. --- src/test/run-pass/generic-box.rs | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/test/run-pass/generic-box.rs (limited to 'src/test') diff --git a/src/test/run-pass/generic-box.rs b/src/test/run-pass/generic-box.rs new file mode 100644 index 00000000..856f3aff --- /dev/null +++ b/src/test/run-pass/generic-box.rs @@ -0,0 +1,8 @@ +fn box[T](&tup(T,T,T) x) -> @tup(T,T,T) { + ret @x; +} + +fn main() { + let @tup(int,int,int) x = box[int](tup(1,2,3)); + check (x._1 == 2); +} \ No newline at end of file -- cgit v1.2.3 From 3869b3bfe489fc8db37b4436a9a38e732cc3d219 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 7 Mar 2011 15:12:41 -0800 Subject: Modernize test/run-pass/generic-recursive-tag.rs. Un-XFAIL it in rustboot. --- src/test/run-pass/generic-recursive-tag.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/test') diff --git a/src/test/run-pass/generic-recursive-tag.rs b/src/test/run-pass/generic-recursive-tag.rs index ad06345b..b9596b0d 100644 --- a/src/test/run-pass/generic-recursive-tag.rs +++ b/src/test/run-pass/generic-recursive-tag.rs @@ -1,8 +1,9 @@ tag list[T] { cons(@T, @list[T]); - nil(); + nil; } fn main() { - let list[int] a = cons[int](10, cons[int](12, cons[int](13, nil[int]()))); -} \ No newline at end of file + let list[int] a = cons[int](@10, @cons[int](@12, @cons[int](@13, + @nil[int]))); +} -- cgit v1.2.3