]> git.lizzy.rs Git - rust.git/commitdiff
Port the tests to the decl foo<T> syntax.
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Fri, 12 Aug 2011 13:37:25 +0000 (06:37 -0700)
committerGraydon Hoare <graydon@mozilla.com>
Tue, 16 Aug 2011 22:05:56 +0000 (15:05 -0700)
86 files changed:
src/fuzzer/ast_match.rs
src/fuzzer/ivec_fuzz.rs
src/test/compile-fail/bad-type-env-capture.rs
src/test/compile-fail/item-name-overload.rs
src/test/compile-fail/nested-ty-params.rs
src/test/compile-fail/occurs-check-3.rs
src/test/compile-fail/tag-type-args.rs
src/test/compile-fail/type-arg-out-of-scope.rs
src/test/compiletest/procsrv.rs
src/test/run-fail/bug-811.rs
src/test/run-fail/port-type.rs
src/test/run-pass/alloca-from-derived-tydesc.rs
src/test/run-pass/alt-join.rs
src/test/run-pass/alt-pattern-no-type-params.rs
src/test/run-pass/auto-instantiate.rs
src/test/run-pass/autobind.rs
src/test/run-pass/bind-parameterized-args-2.rs
src/test/run-pass/bind-parameterized-args.rs
src/test/run-pass/block-iter-1.rs
src/test/run-pass/block-iter-2.rs
src/test/run-pass/box-unbox.rs
src/test/run-pass/drop-parametric-closure-with-bound-box.rs
src/test/run-pass/export-non-interference.rs
src/test/run-pass/expr-alt-generic-box1.rs
src/test/run-pass/expr-alt-generic-box2.rs
src/test/run-pass/expr-alt-generic.rs
src/test/run-pass/expr-block-generic-box1.rs
src/test/run-pass/expr-block-generic-box2.rs
src/test/run-pass/expr-block-generic.rs
src/test/run-pass/expr-fn.rs
src/test/run-pass/expr-if-generic-box1.rs
src/test/run-pass/expr-if-generic-box2.rs
src/test/run-pass/expr-if-generic.rs
src/test/run-pass/fixed-point-bind-box.rs
src/test/run-pass/foreach-box-drop.rs
src/test/run-pass/generic-alias-box.rs
src/test/run-pass/generic-bind-2.rs
src/test/run-pass/generic-bind.rs
src/test/run-pass/generic-box.rs
src/test/run-pass/generic-derived-type.rs
src/test/run-pass/generic-drop-glue.rs
src/test/run-pass/generic-exterior-box.rs
src/test/run-pass/generic-fn-box.rs
src/test/run-pass/generic-fn-infer.rs
src/test/run-pass/generic-fn-twice.rs
src/test/run-pass/generic-fn.rs
src/test/run-pass/generic-iter-frame.rs
src/test/run-pass/generic-ivec-leak.rs
src/test/run-pass/generic-ivec.rs
src/test/run-pass/generic-obj-with-derived-type.rs
src/test/run-pass/generic-obj.rs
src/test/run-pass/generic-recursive-tag.rs
src/test/run-pass/generic-tag-alt.rs
src/test/run-pass/generic-tag-corruption.rs
src/test/run-pass/generic-tag-local.rs
src/test/run-pass/generic-tag-values.rs
src/test/run-pass/generic-tag.rs
src/test/run-pass/generic-temporary.rs
src/test/run-pass/generic-tup.rs
src/test/run-pass/generic-type-synonym.rs
src/test/run-pass/generic-type.rs
src/test/run-pass/interior-vec.rs
src/test/run-pass/issue-333.rs
src/test/run-pass/ivec-add.rs
src/test/run-pass/leak-box-as-tydesc.rs
src/test/run-pass/newtype-polymorphic.rs
src/test/run-pass/obj-return-polytypes.rs
src/test/run-pass/resource-generic.rs
src/test/run-pass/resource-in-struct.rs
src/test/run-pass/ret-none.rs
src/test/run-pass/send-type-inference.rs
src/test/run-pass/shadow.rs
src/test/run-pass/simple-alt-generic-tag.rs
src/test/run-pass/simple-generic-alt.rs
src/test/run-pass/simple-generic-tag.rs
src/test/run-pass/size-and-align.rs
src/test/run-pass/swap-2.rs
src/test/run-pass/tag-and-generic-obj.rs
src/test/run-pass/type-param-constraints.rs
src/test/run-pass/type-param.rs
src/test/run-pass/type-params-in-for-each.rs
src/test/run-pass/unify-return-ty.rs
src/test/run-pass/use-uninit-alt.rs
src/test/run-pass/use-uninit-alt2.rs
src/test/run-pass/vec-push.rs
src/test/stdtest/deque.rs

index 0252ecf2a3eeef909f6a08fb333a0f6837a8833b..dbbce0ee8a17bd57e8b005c9216e274b9a86d4a7 100644 (file)
@@ -1,7 +1,7 @@
 use std;
 import std::vec;
 
-fn ivec_equal[T](v: &[T], u: &[T], element_equality_test: fn(&T, &T) -> bool )
+fn ivec_equal<T>(v: &[T], u: &[T], element_equality_test: fn(&T, &T) -> bool )
    -> bool {
     let Lv = vec::len(v);
     if Lv != vec::len(u) { ret false; }
@@ -13,7 +13,7 @@ fn ivec_equal[T](v: &[T], u: &[T], element_equality_test: fn(&T, &T) -> bool )
     ret true;
 }
 
-fn builtin_equal[T](a: &T, b: &T) -> bool { ret a == b; }
+fn builtin_equal<T>(a: &T, b: &T) -> bool { ret a == b; }
 
 fn main() {
     assert (builtin_equal(5, 5));
index e4140898b9df7d9d315e7b139ee6c8ff70938c45..f6681bf70bd790b2be864c55734e8853bfda54fd 100644 (file)
@@ -7,7 +7,7 @@
   two functions, "return the number of possible edits" and "return edit #n"
 
 It would be nice if this could be data-driven, so the two functions could share information:
-  type vec_modifier = rec(fn (&[T] v, uint i) -> [T] fun, uint lo, uint di);
+  type vec_modifier = rec(fn (&<T> v, uint i) -> [T] fun, uint lo, uint di);
   const [vec_modifier] vec_modifiers = ~[rec(fun=vec_omit, 0u, 1u), ...];
 But that gives me "error: internal compiler error unimplemented consts that's not a plain literal".
 https://github.com/graydon/rust/issues/570
 import std::ivec::len;
 import std::int;
 
-//fn vec_reverse(&[T] v) -> [T] { ... }
+//fn vec_reverse(&<T> v) -> [T] { ... }
 
-fn vec_omit[T](v: &[T], i: uint) -> [T] {
+fn vec_omit<T>(v: &[T], i: uint) -> [T] {
     slice(v, 0u, i) + slice(v, i + 1u, len(v))
 }
-fn vec_dup[T](v: &[T], i: uint) -> [T] {
+fn vec_dup<T>(v: &[T], i: uint) -> [T] {
     slice(v, 0u, i) + ~[v.(i)] + slice(v, i, len(v))
 }
-fn vec_swadj[T](v: &[T], i: uint) -> [T] {
+fn vec_swadj<T>(v: &[T], i: uint) -> [T] {
     slice(v, 0u, i) + ~[v.(i + 1u), v.(i)] + slice(v, i + 2u, len(v))
 }
-fn vec_prefix[T](v: &[T], i: uint) -> [T] { slice(v, 0u, i) }
-fn vec_suffix[T](v: &[T], i: uint) -> [T] { slice(v, i, len(v)) }
+fn vec_prefix<T>(v: &[T], i: uint) -> [T] { slice(v, 0u, i) }
+fn vec_suffix<T>(v: &[T], i: uint) -> [T] { slice(v, i, len(v)) }
 
-fn vec_poke[T](v: &[T], i: uint, x: &T) -> [T] {
+fn vec_poke<T>(v: &[T], i: uint, x: &T) -> [T] {
     slice(v, 0u, i) + ~[x] + slice(v, i + 1u, len(v))
 }
-fn vec_insert[T](v: &[T], i: uint, x: &T) -> [T] {
+fn vec_insert<T>(v: &[T], i: uint, x: &T) -> [T] {
     slice(v, 0u, i) + ~[x] + slice(v, i, len(v))
 }
 
@@ -54,7 +54,7 @@ fn vec_insert[T](v: &[T], i: uint, x: &T) -> [T] {
 }
 
 // Returns a bunch of modified versions of v, some of which introduce new elements (borrowed from xs).
-fn vec_edits[T](v: &[T], xs: &[T]) -> [[T]] {
+fn vec_edits<T>(v: &[T], xs: &[T]) -> [[T]] {
     let edits: [[T]] = ~[];
     let Lv: uint = len(v);
 
index 2919fa49dbeaba87b4b3e04bcba7212062444d6e..3e94bdfd9ebca6c7716b56e7e7944113fde72dc1 100644 (file)
@@ -2,7 +2,7 @@
 // xfail-stage2
 // xfail-stage3
 // error-pattern: attempted dynamic environment-capture
-fn foo[T]() {
+fn foo<T>() {
     obj bar(b: T) { }
 }
-fn main() { }
\ No newline at end of file
+fn main() { }
index 218f54ed20ca87f6c83c88c88f66c0554df70cd6..bb1d8bafcd88b22c7375ec93bcb0c74f2cf557aa 100644 (file)
@@ -2,8 +2,8 @@
 // error-pattern: Dynamically sized arguments must be passed by alias
 
 mod foo {
-    fn bar[T](f: T) -> int { ret 17; }
-    type bar[U, T] = {a: int, b: U, c: T};
+    fn bar<T>(f: T) -> int { ret 17; }
+    type bar<U, T> = {a: int, b: U, c: T};
 }
 
-fn main() { }
\ No newline at end of file
+fn main() { }
index 609a850cafa066e906e54b763dbea3af526528e0..413ea8836184cee8b352057e4929867b13176951 100644 (file)
@@ -1,5 +1,5 @@
 // error-pattern:Attempt to use a type argument out of scope
-fn hd[U](v: &[U]) -> U {
+fn hd<U>(v: &[U]) -> U {
     fn hd1(w: &[U]) -> U { ret w.(0); }
 
     ret hd1(v);
index 74a2328f107cc49dced04ab4f8328ee3ab4476bb..802fa934f0c9a47c8663e11671703cb21dc8fb53 100644 (file)
@@ -1,4 +1,4 @@
 // error-pattern:mismatched types
 // From Issue #778
-tag clam[T] { a(T); }
+tag clam<T> { a(T); }
 fn main() { let c; c = a(c); alt c { a[int](_) { } } }
index b43e5329dc25054f8c681fdcead3eb8e6899b97c..538fc36e91cc555f9e75e263dd912443e2aa6fed 100644 (file)
@@ -1,7 +1,7 @@
 // error-pattern: Wrong number of type arguments
 
-tag quux[T] { }
+tag quux<T> { }
 
 fn foo(c: quux) { assert (false); }
 
-fn main() { fail; }
\ No newline at end of file
+fn main() { fail; }
index c79c3607b0a1247a93ebc7f1fa9d8c631ce0200a..a3ae6619b3e8c1db28ba556c1c865c2df2fbb722 100644 (file)
@@ -1,5 +1,5 @@
 // error-pattern:Attempt to use a type argument out of scope
-fn foo[T](x: &T) {
+fn foo<T>(x: &T) {
     fn bar(f: fn(&T) -> T ) { }
 }
-fn main() { foo(1); }
\ No newline at end of file
+fn main() { foo(1); }
index c90dd6a94ba147448d6b1226cf7e0abed42ef738..41a511b396c573932e6095b8bf4107feb3eb40c8 100644 (file)
@@ -167,7 +167,7 @@ fn worker(p: _port<request>) {
     }
 }
 
-fn with_lib_path[T](path: &str, f: fn() -> T ) -> T {
+fn with_lib_path<T>(path: &str, f: fn() -> T ) -> T {
     let maybe_oldpath = getenv(util::lib_path_env_var());
     append_lib_path(path);
     let res = f();
index 048c72b3458cbc50c0f027639012a18516db4b7e..176b95343eb8dbc8b41464e5a0c3ee660c3574c5 100644 (file)
@@ -6,11 +6,11 @@ fn test00_start(ch: chan_t<int>, message: int) {
 type task_id = int;
 type port_id = int;
 
-type chan_t[~T] = {
+type chan_t<~T> = {
     task : task_id,
     port : port_id
 };
 
-fn send[~T](ch : chan_t<T>, data : -T) { fail; }
+fn send<~T>(ch : chan_t<T>, data : -T) { fail; }
 
 fn main() { fail "quux"; }
index 863ae4034c142915df216e32ad91d06d78e2f562..55843e4bbe1573305e1d09924cf6db3b168058e5 100644 (file)
@@ -4,7 +4,7 @@
 import std::comm::mk_port;
 import std::comm::send;
 
-fn echo[~T](c: _chan<T>, oc: _chan<_chan<T>>) {
+fn echo<~T>(c: _chan<T>, oc: _chan<_chan<T>>) {
     // Tests that the type argument in port gets
     // visited
     let p = mk_port[T]();
index ae1f550967898cfc99d3896fe17f416c1bee3f34..00371d3567da76f400f5205dfb1fb41a514f083d 100644 (file)
@@ -1,7 +1,7 @@
-tag option[T] { some(T); none; }
+tag option<T> { some(T); none; }
 
-type r[T] = {mutable v: [option<T>]};
+type r<T> = {mutable v: [option<T>]};
 
-fn f[T]() -> [T] { ret ~[]; }
+fn f<T>() -> [T] { ret ~[]; }
 
 fn main() { let r: r<int> = {mutable v: ~[]}; r.v = f(); }
index 471d2fd58fbdccf5baf9e3be8f75421010292ff2..48e87c9b069e6cfd34e24269083e3e954a8b28ae 100644 (file)
@@ -5,7 +5,7 @@
 import std::option::none;
 import std::option::some;
 
-fn foo[T](y: &option::t<T>) {
+fn foo<T>(y: &option::t<T>) {
     let x: int;
     let rs: [int] = ~[];
     /* tests that x doesn't get put in the precondition for the
index 910377e4008782df5790698c6b43cae812ea63b5..994e9f147e40b33960b241f69b7a496ba40fd853 100644 (file)
@@ -1,4 +1,4 @@
-tag maybe[T] { nothing; just(T); }
+tag maybe<T> { nothing; just(T); }
 
 fn foo(x: maybe<int>) {
     alt x { nothing. { log_err "A"; } just(a) { log_err "B"; } }
index e82aaa2b84b6d049269af18b21d76f3ebea5af47..f8d9ebbb587edf903eb852f2725118177875aa3f 100644 (file)
@@ -2,6 +2,6 @@
 
 
 // -*- rust -*-
-fn f[T, U](x: &T, y: &U) -> {a: T, b: U} { ret {a: x, b: y}; }
+fn f<T, U>(x: &T, y: &U) -> {a: T, b: U} { ret {a: x, b: y}; }
 
-fn main() { log f({x: 3, y: 4, z: 5}, 4).a.x; log f(5, 6).a; }
\ No newline at end of file
+fn main() { log f({x: 3, y: 4, z: 5}, 4).a.x; log f(5, 6).a; }
index 668806802130099f159339ea8ddcb4940093cea5..f8a0f8e3ee7a1d56396ecfb7efe4c1e40725bac1 100644 (file)
@@ -1,4 +1,4 @@
-fn f[T](x: &[T]) -> T { ret x.(0); }
+fn f<T>(x: &[T]) -> T { ret x.(0); }
 
 fn g(act: fn(&[int]) -> int ) -> int { ret act(~[1, 2, 3]); }
 
index f890c1e0e8a6a95d571a25ad031e437160818f25..3646b8ba69121f9333cf26f61379355df032a1e4 100644 (file)
@@ -1,5 +1,5 @@
 fn main() {
-    fn echo[T](c: int, x: fn(&T)) { log_err "wee"; }
+    fn echo<T>(c: int, x: fn(&T)) { log_err "wee"; }
 
     let y = bind echo(42, _);
 
index 2a1d2a97608c43fcfc9253b27d0fb3b15bf70562..53b8f85ea49b63fab1d9d12ed83bba7567a06416 100644 (file)
@@ -1,5 +1,5 @@
 fn main() {
-    fn echo[T](c: int, x: &[T]) { }
+    fn echo<T>(c: int, x: &[T]) { }
 
     let y: fn(&[int])  = bind echo(42, _);
 
index 6f450f7c125143c67068e4773bd875c545881286..47c728af36d736b2407c4a5df75726bc4f57c1bc 100644 (file)
@@ -1,4 +1,4 @@
-fn iter_vec[T](v: &[T], f: &block(&T) ) { for x: T in v { f(x); } }
+fn iter_vec<T>(v: &[T], f: &block(&T) ) { for x: T in v { f(x); } }
 
 fn main() {
     let v = ~[1, 2, 3, 4, 5, 6, 7];
index fd22ac3d570c5b64163bd3f8472fba4e7d9a5287..a6d9455e3f1ff70a61d91bee50888ca1d920e831 100644 (file)
@@ -1,4 +1,4 @@
-fn iter_vec[T](v: &[T], f: &block(&T) ) { for x: T in v { f(x); } }
+fn iter_vec<T>(v: &[T], f: &block(&T) ) { for x: T in v { f(x); } }
 
 fn main() {
     let v = ~[1, 2, 3, 4, 5];
index 4392e01c0a9752d7e63e3694e3e5d66b64f34efa..03618cf5e0ed8204121e11a630a5e1e56dbeca1b 100644 (file)
@@ -1,8 +1,8 @@
 
 
-type box[T] = {c: @T};
+type box<T> = {c: @T};
 
-fn unbox[T](b: &box<T>) -> T { ret *b.c; }
+fn unbox<T>(b: &box<T>) -> T { ret *b.c; }
 
 fn main() {
     let foo: int = 17;
index 06bb931dd581d5d5c192b4fa815f382eee751570..f330f900d2b200278ecbf856a8db10f27ee20e6f 100644 (file)
@@ -1,5 +1,5 @@
 
 
-fn f[T](i: @int, t: &T) { }
+fn f<T>(i: @int, t: &T) { }
 
-fn main() { let x = bind f[char](@0xdeafbeef, _); }
\ No newline at end of file
+fn main() { let x = bind f[char](@0xdeafbeef, _); }
index 23ec4c9eed3c3a43eb0319d92c0c4f6606d633db..e3efcc2835f32a912dc36bd0326f1549b964d951 100644 (file)
@@ -2,6 +2,6 @@
 export foo;
 export main;
 
-tag list_cell[T] { cons(@list_cell<T>); }
+tag list_cell<T> { cons(@list_cell<T>); }
 
 fn main() { }
index 5618c642a7bc5d558cc812a718702ea0d3ee90c1..9f1fd139905ef885336165e35056751c138d645f 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(@T, @T) -> bool ;
+type compare<T> = fn(@T, @T) -> bool ;
 
-fn test_generic[T](expected: @T, eq: &compare<T>) {
+fn test_generic<T>(expected: @T, eq: &compare<T>) {
     let actual: @T = alt true { true { expected } };
     assert (eq(expected, actual));
 }
index 318158485caf82e62082ebbe089967f7cc2ce94b..a512a6c376d5a988ec5dd6f09ba320fffc904b4a 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(&T, &T) -> bool ;
+type compare<T> = fn(&T, &T) -> bool ;
 
-fn test_generic[T](expected: &T, eq: &compare<T>) {
+fn test_generic<T>(expected: &T, eq: &compare<T>) {
     let actual: T = alt true { true { expected } };
     assert (eq(expected, actual));
 }
index 3094331480f29c21a757cf2ac2d8d6eb345f872f..f9a9e55c872fbbbe7085a608d294ee6a87f6c0f7 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(&T, &T) -> bool ;
+type compare<T> = fn(&T, &T) -> bool ;
 
-fn test_generic[T](expected: &T, eq: &compare<T>) {
+fn test_generic<T>(expected: &T, eq: &compare<T>) {
     let actual: T = alt true { true { expected } };
     assert (eq(expected, actual));
 }
index 66825e5c08e4e93443f0a629f964ebaa6a05930e..97469dc5cc3b75f8ab5ca0bafb354d13c35f5cf1 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(@T, @T) -> bool ;
+type compare<T> = fn(@T, @T) -> bool ;
 
-fn test_generic[T](expected: @T, eq: &compare<T>) {
+fn test_generic<T>(expected: @T, eq: &compare<T>) {
     let actual: @T = { expected };
     assert (eq(expected, actual));
 }
index b1fd8e51487616618d8ab8a72a84d45d69ccfff3..9e41231d155614ca389a4d832bd9e6c0a9004755 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(&T, &T) -> bool ;
+type compare<T> = fn(&T, &T) -> bool ;
 
-fn test_generic[T](expected: &T, eq: &compare<T>) {
+fn test_generic<T>(expected: &T, eq: &compare<T>) {
     let actual: T = { expected };
     assert (eq(expected, actual));
 }
index 6a50e2fa33f8c0c6b31f30c4baed63445f198e77..b7f588a5806404318581e1d2c1ad5215dbdfacc2 100644 (file)
@@ -4,9 +4,9 @@
 // -*- rust -*-
 
 // Tests for standalone blocks as expressions with dynamic type sizes
-type compare[T] = fn(&T, &T) -> bool ;
+type compare<T> = fn(&T, &T) -> bool ;
 
-fn test_generic[T](expected: &T, eq: &compare<T>) {
+fn test_generic<T>(expected: &T, eq: &compare<T>) {
     let actual: T = { expected };
     assert (eq(expected, actual));
 }
index c1cd3985daf65b64faf902d1c359673b89457e3f..1bff51000b9cb2549c1560b76c448d0a59a34ff5 100644 (file)
@@ -9,7 +9,7 @@ fn f() -> [int] { ~[10, 11] }
 }
 
 fn test_generic() {
-    fn f[T](t: &T) -> T { t }
+    fn f<T>(t: &T) -> T { t }
     assert (f(10) == 10);
 }
 
index 8e848c6db75ee3f210522907d225015c8ba4dcbc..f23ca216f4ed5fe693187d2a09e4abb658f20eaf 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(@T, @T) -> bool ;
+type compare<T> = fn(@T, @T) -> bool ;
 
-fn test_generic[T](expected: @T, not_expected: @T, eq: &compare<T>) {
+fn test_generic<T>(expected: @T, not_expected: @T, eq: &compare<T>) {
     let actual: @T = if true { expected } else { not_expected };
     assert (eq(expected, actual));
 }
index 5f7c87ac78eda572590cb8187a405d3875bd80f9..0ebeb20d6157df6c252a2e1d7107786091da3257 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-type compare[T] = fn(&T, &T) -> bool ;
+type compare<T> = fn(&T, &T) -> bool ;
 
-fn test_generic[T](expected: &T, not_expected: &T, eq: &compare<T>) {
+fn test_generic<T>(expected: &T, not_expected: &T, eq: &compare<T>) {
     let actual: T = if true { expected } else { not_expected };
     assert (eq(expected, actual));
 }
index 40365ef53f923481005bcc8a4d265b182e9c8f5b..732694d6cee3e6d2fc08b65cdd60ebeddaf243bb 100644 (file)
@@ -4,9 +4,9 @@
 // -*- rust -*-
 
 // Tests for if as expressions with dynamic type sizes
-type compare[T] = fn(&T, &T) -> bool ;
+type compare<T> = fn(&T, &T) -> bool ;
 
-fn test_generic[T](expected: &T, not_expected: &T, eq: &compare<T>) {
+fn test_generic<T>(expected: &T, not_expected: &T, eq: &compare<T>) {
     let actual: T = if true { expected } else { not_expected };
     assert (eq(expected, actual));
 }
index a836b458602f2ffbe3e06df24e10234111b19d26..f93add461a4b48702160da1cc01195f2e7f99972 100644 (file)
@@ -1,8 +1,8 @@
-fn fix_help[A, B](f: @fn(@fn(&A) -> B , &A) -> B , x: &A) -> B {
+fn fix_help<A, B>(f: @fn(@fn(&A) -> B , &A) -> B , x: &A) -> B {
     ret f(@bind fix_help(f, _), x);
 }
 
-fn fix[A, B](f: @fn(@fn(&A) -> B , &A) -> B ) -> @fn(&A) -> B  {
+fn fix<A, B>(f: @fn(@fn(&A) -> B , &A) -> B ) -> @fn(&A) -> B  {
     ret @bind fix_help(f, _);
 }
 
@@ -15,4 +15,4 @@ fn main() {
     let fact = fix(@fact_);
     assert (fact(5) == 120);
     assert (fact(2) == 2);
-}
\ No newline at end of file
+}
index ce75bcde1fd7652fad3ac203d0305901472e88fc..b849d05cc9da249f84e870401b97cb7d9e38730f 100644 (file)
@@ -1,6 +1,6 @@
 
 
-obj ob[K](k: K) {
+obj ob<K>(k: K) {
     iter foo() -> @{a: K} { put @{a: k}; }
 }
 
index e920774a0b3626c0e52159e1be68616a7396d6e0..98cf7708bedfb5fc4fbe78f8f0a3440d7497601a 100644 (file)
@@ -1,10 +1,10 @@
 
 
-fn id[T](t: &T) -> T { ret t; }
+fn id<T>(t: &T) -> T { ret t; }
 
 fn main() {
     let expected = @100;
     let actual = id[@int](expected);
     log *actual;
     assert (*expected == *actual);
-}
\ No newline at end of file
+}
index b4699cb920525670752b87651607c94a53ee2033..499bc2a25d1fafb6e444f32fb0bdbb30637ba046 100644 (file)
@@ -1,10 +1,10 @@
 
 
-fn id[T](t: &T) -> T { ret t; }
+fn id<T>(t: &T) -> T { ret t; }
 
 fn main() {
     let t = {a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7};
     assert (t.f == 6);
     let f0 = bind id(t);
     assert (f0().f == 6);
-}
\ No newline at end of file
+}
index 2f8669d604b7757a375536976c5f058157e20444..bb8e4adfc1f6e4190832c052b9dbb02e186b1d42 100644 (file)
@@ -1,6 +1,6 @@
 
 
-fn id[T](t: &T) -> T { ret t; }
+fn id<T>(t: &T) -> T { ret t; }
 
 fn main() {
     let t = {_0: 1, _1: 2, _2: 3, _3: 4, _4: 5, _5: 6, _6: 7};
@@ -14,4 +14,4 @@ fn main() {
                  _5: int,
                  _6: int}](_);
     assert (f1(t)._5 == 6);
-}
\ No newline at end of file
+}
index d06b9cc8c47634c290244e8602a9f5254528fd56..f5294da042a8b9643dc85c95843602a551a636d1 100644 (file)
@@ -1,8 +1,8 @@
 
 
-fn box[T](x: &{x: T, y: T, z: T}) -> @{x: T, y: T, z: T} { ret @x; }
+fn box<T>(x: &{x: T, y: T, z: T}) -> @{x: T, y: T, z: T} { ret @x; }
 
 fn main() {
     let x: @{x: int, y: int, z: int} = box[int]({x: 1, y: 2, z: 3});
     assert (x.y == 2);
-}
\ No newline at end of file
+}
index cdb30e33fe05b1bfd40ba72efe60bb98f187e579..a5519ec88c230f7abb0a6ccf312cd60693ed2728 100644 (file)
@@ -1,8 +1,8 @@
 
 
-fn g[X](x: &X) -> X { ret x; }
+fn g<X>(x: &X) -> X { ret x; }
 
-fn f[T](t: &T) -> {a: T, b: T} {
+fn f<T>(t: &T) -> {a: T, b: T} {
     type pair = {a: T, b: T};
 
     let x: pair = {a: t, b: t};
@@ -15,4 +15,4 @@ fn main() {
     log b.b;
     assert (b.a == 10);
     assert (b.b == 10);
-}
\ No newline at end of file
+}
index 4a244dc129555fb146f00449fb3359b65357b180..ffadf46e8dd7ec369f6fa670eb259c089628d027 100644 (file)
@@ -1,5 +1,5 @@
 
 
-fn f[T](t: &T) { let t1: T = t; }
+fn f<T>(t: &T) { let t1: T = t; }
 
-fn main() { let x = {x: @10, y: @12}; f(x); }
\ No newline at end of file
+fn main() { let x = {x: @10, y: @12}; f(x); }
index b49f286d12ba503042dbf755a0529d5f174c4243..35c51011ba644b3f07646faac5f0a01166dd2d41 100644 (file)
@@ -1,8 +1,8 @@
 
 
-type recbox[T] = {x: @T};
+type recbox<T> = {x: @T};
 
-fn reclift[T](t: &T) -> recbox<T> { ret {x: @t}; }
+fn reclift<T>(t: &T) -> recbox<T> { ret {x: @t}; }
 
 fn main() {
     let foo: int = 17;
index 1a3420ca3f868e27af9e3a06841a1d458998dd50..ca90cbfd65efbfd429554da2699a03a240788781 100644 (file)
@@ -1,5 +1,5 @@
 
 
-fn f[T](x: @T) -> @T { ret x; }
+fn f<T>(x: @T) -> @T { ret x; }
 
-fn main() { let x = f(@3); log *x; }
\ No newline at end of file
+fn main() { let x = f(@3); log *x; }
index 8f50d3f3c2bc4cd41b28cc8dbd2c7923fa6b8397..4c6597e97d759ede1ff7c4b43cd37d2f95cb2714 100644 (file)
@@ -4,6 +4,6 @@
 // -*- rust -*-
 
 // Issue #45: infer type parameters in function applications
-fn id[T](x: &T) -> T { ret x; }
+fn id<T>(x: &T) -> T { ret x; }
 
-fn main() { let x: int = 42; let y: int = id(x); assert (x == y); }
\ No newline at end of file
+fn main() { let x: int = 42; let y: int = id(x); assert (x == y); }
index 65c3492d5d1d2f24cbac96625dea27f6a2b908d6..7d5fc711244289a92709f1372fa31d6b10de5140 100644 (file)
@@ -3,7 +3,7 @@
 
 // -*- rust -*-
 mod foomod {
-    fn foo[T]() { }
+    fn foo<T>() { }
 }
 
-fn main() { foomod::foo[int](); foomod::foo[int](); }
\ No newline at end of file
+fn main() { foomod::foo[int](); foomod::foo[int](); }
index 016969d026b0de08a1172dc8a090cdd1a1f8207e..c6afc6970713b0a79bb88de5d03106c92a138bfe 100644 (file)
@@ -2,7 +2,7 @@
 
 
 // -*- rust -*-
-fn id[T](x: &T) -> T { ret x; }
+fn id<T>(x: &T) -> T { ret x; }
 
 type triple = {x: int, y: int, z: int};
 
@@ -24,4 +24,4 @@ fn main() {
     y = q.z;
     log y;
     assert (x == y);
-}
\ No newline at end of file
+}
index e4f8609e59b8f1115b1026e222cd5356ef916777..b575fe4809bca907b59e48580f40c5cab8f5756d 100644 (file)
@@ -4,6 +4,6 @@
 // Contrived example? No. It showed up in rustc's resolve pass.
 iter i() { put (); }
 
-fn foo[T](t: &T) { let x: int = 10; for each j: () in i() { log x; } }
+fn foo<T>(t: &T) { let x: int = 10; for each j: () in i() { log x; } }
 
 fn main() { foo(0xdeadbeef_u); }
index 725b6870431529003dd0985a2b17c0c023675415..f9755e176b97400e59d2a511e0fe1549163b22b5 100644 (file)
@@ -1,4 +1,4 @@
-tag wrapper[T] { wrapped(T); }
+tag wrapper<T> { wrapped(T); }
 
 fn main() { let w = wrapped(~[1, 2, 3, 4, 5]); }
 
index e05edc5c2d77927fb90527a6495542e2f76916f0..39ba083a5a36c835a2f0eea43fb60c795357d4c7 100644 (file)
@@ -1,3 +1,3 @@
-fn f[T](v: @T) { }
+fn f<T>(v: @T) { }
 fn main() { f(@~[1, 2, 3, 4, 5]); }
 
index 53e813c3ccbf04204a50965755ce6e9047bf085b..e0d92fd1d4ccc1534422fff978c57aba279585bc 100644 (file)
@@ -1,6 +1,6 @@
 
 
-obj handle[T](data: T) {
+obj handle<T>(data: T) {
     fn get() -> T { ret data; }
 }
 
index 8e1da513026172e592bc24124873a8219eded3a9..0b2978c5960c3e679c94304a032d77a1a6328109 100644 (file)
@@ -1,6 +1,6 @@
 
 
-obj buf[T](data: {_0: T, _1: T, _2: T}) {
+obj buf<T>(data: {_0: T, _1: T, _2: T}) {
     fn get(i: int) -> T {
         if i == 0 {
             ret data._0;
index 92d5c354f00166e8ee180d4c880447902549b28a..fa9f1016a3113dd8fda73eadf0d1ae26f73f10b5 100644 (file)
@@ -1,6 +1,6 @@
 
 
-tag list[T] { cons(@T, @list<T>); nil; }
+tag list<T> { cons(@T, @list<T>); nil; }
 
 fn main() {
     let a: list<int> =
index 4adf719a741530fe74b363d2bd6b8e9c6806d60e..0edb4899ab03ea4929b6db0924e2dd52645d3ce1 100644 (file)
@@ -1,8 +1,8 @@
 
 
-tag foo[T] { arm(T); }
+tag foo<T> { arm(T); }
 
-fn altfoo[T](f: &foo<T>) {
+fn altfoo<T>(f: &foo<T>) {
     let hit = false;
     alt f { arm[T](x) { log "in arm"; hit = true; } }
     assert (hit);
index e5f800676ea9d01cde26e38b6592738ae74f97a6..13019735c2610c243e1c7c794c30a4b05deca398 100644 (file)
@@ -2,6 +2,6 @@
 
 
 // This causes memory corruption in stage0.
-tag thing[K] { some(K); }
+tag thing<K> { some(K); }
 
-fn main() { let x = some("hi"); }
\ No newline at end of file
+fn main() { let x = some("hi"); }
index ae10ba7946326d488c6f234d775be85b19e50079..529cec476d0c861ca43799f0e2a73982fc869e5a 100644 (file)
@@ -1,5 +1,5 @@
 
 
-tag clam[T] { a(T); }
+tag clam<T> { a(T); }
 
-fn main() { let c = a(3); }
\ No newline at end of file
+fn main() { let c = a(3); }
index c85abc4778b5b364860d5d837aa9c07d7e9223c0..38ad190a913fd97ee1cf7ffaf9f5b62606c1c329 100644 (file)
@@ -2,7 +2,7 @@
 
 
 // -*- rust -*-
-tag noption[T] { some(T); }
+tag noption<T> { some(T); }
 
 fn main() {
     let nop: noption<int> = some[int](5);
index a6175646bed10845ee65cef320d95b64d145489c..3434f00b4488046e4b9719ff3d39bb7f0fb87fa5 100644 (file)
@@ -1,5 +1,5 @@
 
 
-tag option[T] { some(@T); none; }
+tag option<T> { some(@T); none; }
 
 fn main() { let a: option<int> = some[int](@10); a = none[int]; }
index 4fec91d4952bca6d147956115dab224a392a4dba..fe7d1dcd6e5494eea40ea17308f1ead122bad8c9 100644 (file)
@@ -4,10 +4,10 @@
 
 fn chk(a: &int) { log a; assert (a == 1); }
 
-fn apply[T](produce: fn() -> T , consume: fn(&T) ) { consume(produce()); }
+fn apply<T>(produce: fn() -> T , consume: fn(&T) ) { consume(produce()); }
 
 fn main() {
     let produce: fn() -> int  = mk;
     let consume: fn(&int)  = chk;
     apply[int](produce, consume);
-}
\ No newline at end of file
+}
index 3e15a37bcb834ceebbded2b88f9fe1566b1c40ce..bdd8ddf12686501fc18a2cd178b12ffab276e1be 100644 (file)
@@ -1,4 +1,4 @@
-fn get_third[T](t: &(T, T, T)) -> T {
+fn get_third<T>(t: &(T, T, T)) -> T {
     let (_, _, x) = t;
     ret x;
 }
@@ -7,4 +7,4 @@ fn main() {
     log get_third((1, 2, 3));
     assert (get_third((1, 2, 3)) == 3);
     assert (get_third((5u8, 6u8, 7u8)) == 7u8);
-}
\ No newline at end of file
+}
index a58c86b3e5923c2861f30332bd1b89cce5459c5d..d05e9218a564578e209c6a08b587439c5e11d62c 100644 (file)
@@ -1,9 +1,9 @@
 
 
-type foo[T] = {a: T};
+type foo<T> = {a: T};
 
-type bar[T] = foo<T>;
+type bar<T> = foo<T>;
 
-fn takebar[T](b: &bar<T>) { }
+fn takebar<T>(b: &bar<T>) { }
 
 fn main() { }
index 93aba151eb18682de5cbe73e66b6f3fceddea7cd..000ee686d3cc86159812f335a12108107ec815f7 100644 (file)
@@ -1,6 +1,6 @@
 
 
-type pair[T] = {x: T, y: T};
+type pair<T> = {x: T, y: T};
 
 fn main() {
     let x: pair<int> = {x: 10, y: 12};
index dec51540cff42fa262a73ecced44c35385acdeac..28995a5b3ac9dffae4d000d57df5469d6e234e2f 100644 (file)
@@ -3,7 +3,7 @@
 import rusti::ivec_len;
 
 native "rust-intrinsic" mod rusti {
-    fn ivec_len[T](v: &[T]) -> uint;
+    fn ivec_len<T>(v: &[T]) -> uint;
 }
 
 fn main() {
index 8df73a317ce941c4e125924951e6942c5f7ebf18..fa93645418cf2b4d04c2e6d43c8c151e22b38483 100644 (file)
@@ -1,5 +1,5 @@
-fn quux[T](x: &T) -> T { let f = id[T]; ret f(x); }
+fn quux<T>(x: &T) -> T { let f = id[T]; ret f(x); }
 
-fn id[T](x: &T) -> T { ret x; }
+fn id<T>(x: &T) -> T { ret x; }
 
-fn main() { assert (quux(10) == 10); }
\ No newline at end of file
+fn main() { assert (quux(10) == 10); }
index edf42f2fa910605e97e00fee4412ef9f55e04f23..8dd2c32f86bfc5fcd808a415f521ee7f6fbb6b3c 100644 (file)
@@ -1,4 +1,4 @@
-fn double[T](a: &T) -> [T] { ret ~[a] + ~[a]; }
+fn double<T>(a: &T) -> [T] { ret ~[a] + ~[a]; }
 
 fn double_int(a: int) -> [int] { ret ~[a] + ~[a]; }
 
index d71aa100ff5a3e04fa78750e628012df1126d03b..d48887304ef10d5569a454722b6084266f53c563 100644 (file)
@@ -1,5 +1,5 @@
 
 
-fn leaky[T](t: &T) { }
+fn leaky<T>(t: &T) { }
 
-fn main() { let x = @10; leaky[@int](x); }
\ No newline at end of file
+fn main() { let x = @10; leaky[@int](x); }
index 09e138982bef5bcb73f9cd36ca7c44b37f4aa67c..637b1b8103b8d37322aa690dea59c1733b9527cc 100644 (file)
@@ -1,8 +1,8 @@
-tag myvec[X] = [X];
+tag myvec<X> = [X];
 
-fn myvec_deref[X](mv: &myvec<X>) -> [X] { ret *mv; }
+fn myvec_deref<X>(mv: &myvec<X>) -> [X] { ret *mv; }
 
-fn myvec_elt[X](mv: &myvec<X>) -> X { ret mv.(0); }
+fn myvec_elt<X>(mv: &myvec<X>) -> X { ret mv.(0); }
 
 fn main() {
     let mv = myvec(~[1, 2, 3]);
index 7e5d16339c070b3b011d4d26d006ac8f371a6934..397eafd33cae23e97e813ec09f5e40f915f2ece3 100644 (file)
@@ -2,11 +2,11 @@
 
 
 // -*- rust -*-
-tag clam[T] { signed(int); unsigned(uint); }
+tag clam<T> { signed(int); unsigned(uint); }
 
-fn getclam[T]() -> clam<T> { ret signed[T](42); }
+fn getclam<T>() -> clam<T> { ret signed[T](42); }
 
-obj impatience[T]() {
+obj impatience<T>() {
     fn moreclam() -> clam<T> { be getclam[T](); }
 }
 
index eebe23ecbb8427d030b3f892b16e053f27b2478f..6ab2eb308b64e322fcb3f747a095c07cbf5b684f 100644 (file)
@@ -1,4 +1,4 @@
-resource finish[T](arg: {val: T, fin: fn(&T) }) { arg.fin(arg.val); }
+resource finish<T>(arg: {val: T, fin: fn(&T) }) { arg.fin(arg.val); }
 
 fn main() {
     let box = @mutable 10;
@@ -6,4 +6,4 @@ fn main() {
 
     { let i <- finish({val: box, fin: dec_box}); }
     assert (*box == 9);
-}
\ No newline at end of file
+}
index 9a191b4d07472d0c7434a155b4b5e380c18b0168..6e7e8dc6bfdb07a7902b8046187379c9f0fe1bb9 100644 (file)
@@ -7,7 +7,7 @@
     *i = false;
 }
 
-tag option[T] { none; some(T); }
+tag option<T> { none; some(T); }
 
 fn sink(res: option<close_res>) {}
 
index 1d0d4fbc396a02ae5fdcc848262fa1ce9c4a1f43..a10508b7f25e55ad4dfbd105ef3b9d407db88321 100644 (file)
@@ -1,7 +1,7 @@
 
 
-tag option[T] { none; some(T); }
+tag option<T> { none; some(T); }
 
-fn f[T]() -> option<T> { ret none; }
+fn f<T>() -> option<T> { ret none; }
 
 fn main() { f[int](); }
index 92cff8ba8c437b158d88e69b3ab9bad4f0b06d78..4dd7f8bf28eb0602fd72b8f50a408d4b04f33db3 100644 (file)
@@ -4,9 +4,9 @@
 import std::comm::mk_port;
 
 // tests that ctrl's type gets inferred properly
-type command[K, V] = {key: K, val: V};
+type command<K, V> = {key: K, val: V};
 
-fn cache_server[K, V](c: _chan<_chan<command<K, V>>>) {
+fn cache_server<K, V>(c: _chan<_chan<command<K, V>>>) {
     let ctrl = mk_port[_chan<command<K, V>>]();
     send(c, ctrl.mk_chan());
 }
index 238723b32bc103d99c4a2f8737a186d6876169a1..b024b7b9a8f6bd9925b34ebe1c5e87a7670aafdf 100644 (file)
@@ -10,7 +10,7 @@ fn foo(c: [int]) {
     }
 }
 
-tag t[T] { none; some(T); }
+tag t<T> { none; some(T); }
 
 fn main() {
     let x = 10;
index 8399f2795f3fb5e7d834c943c890872e55610b17..ac6d8f11f539049bcf7e0adba43590e6b2c0b82a 100644 (file)
@@ -1,5 +1,5 @@
 
 
-tag opt[T] { none; }
+tag opt<T> { none; }
 
-fn main() { let x = none[int]; alt x { none[int]. { log "hello world"; } } }
\ No newline at end of file
+fn main() { let x = none[int]; alt x { none[int]. { log "hello world"; } } }
index 30256c168852e56360c9a5b28ac512472863f14b..de731c007ea134ae3e3df2b5971085b308d25232 100644 (file)
@@ -1,5 +1,5 @@
 
 
-tag clam[T] { a(T); }
+tag clam<T> { a(T); }
 
-fn main() { let c = a(2); alt c { a[int](_) { } } }
\ No newline at end of file
+fn main() { let c = a(2); alt c { a[int](_) { } } }
index 159febd39868a80231eaf17f7924ccefb5cf62b3..49bf69bde7437638ab71e2e2d9981af6bd7eb721 100644 (file)
@@ -1,5 +1,5 @@
 
 
-tag clam[T] { a(T); }
+tag clam<T> { a(T); }
 
-fn main() { }
\ No newline at end of file
+fn main() { }
index 85db2e44cf5f36f5c32b4bdc33a1f3358a371dab..996073fc906fcae78ea897620abae67c4a5993ab 100644 (file)
@@ -2,9 +2,9 @@
 
 
 // -*- rust -*-
-tag clam[T] { a(T, int); b; }
+tag clam<T> { a(T, int); b; }
 
-fn uhoh[T](v: &[clam<T>]) {
+fn uhoh<T>(v: &[clam<T>]) {
     alt v.(1) {
       a[T](t, u) { log "incorrect"; log u; fail; }
       b[T]. { log "correct"; }
index 943c9a49b3a20c040a2eab1c5841987e5d305650..155d71399e57a7afd808debb861191d41d656e50 100644 (file)
@@ -1,4 +1,4 @@
-fn swap[@T](v: &[mutable T], i: int, j: int) { v.(i) <-> v.(j); }
+fn swap<@T>(v: &[mutable T], i: int, j: int) { v.(i) <-> v.(j); }
 
 fn main() {
     let a: [mutable int] = ~[mutable 0, 1, 2, 3, 4, 5, 6];
index d13c11522d7bbeb9eea56960f080d242a176e5a4..eecba139f33d90573b0e63d04305b8f63f4c6e31 100644 (file)
@@ -2,8 +2,8 @@
 
 tag colour { red; green; }
 
-obj foo[T]() {
+obj foo<T>() {
     fn meth(x: &T) { }
 }
 
-fn main() { foo[colour]().meth(red); }
\ No newline at end of file
+fn main() { foo[colour]().meth(red); }
index 34ebdadcd9567e8c2903ac428ca33909cafeadb8..e1c80d31fb7d248008208040c8fd1b0b9656b18b 100644 (file)
@@ -1,6 +1,6 @@
-fn p_foo[T](pinned: &T) {  }
-fn s_foo[@T](shared: &T) {  }
-fn u_foo[~T](unique: &T) {  }
+fn p_foo<T>(pinned: &T) {  }
+fn s_foo<@T>(shared: &T) {  }
+fn u_foo<~T>(unique: &T) {  }
 
 resource r(i: int) { }
 
@@ -22,4 +22,4 @@ fn main() {
 
     //u_foo(~10);
     u_foo(10);
-}
\ No newline at end of file
+}
index 65cf9ed31ad3e9266d3769aab36db14d848fe46a..36ef46420a9a8d0a532e2fd90b17471e4f7ecc7b 100644 (file)
@@ -1,5 +1,5 @@
 
 
-type lteq[T] = fn(&T) -> bool ;
+type lteq<T> = fn(&T) -> bool ;
 
 fn main(args: [str]) { }
index a75a1010895bcd977e417f2a8795c61fc61c10b1..b8e2f5fc8a8fc77e6afb6b0f56ff1a588f23334f 100644 (file)
@@ -5,7 +5,7 @@
     while lo_ < hi { put lo_; lo_ += 1u; }
 }
 
-fn create_index[T](index: &[{a: T, b: uint}], hash_fn: fn(&T) -> uint ) {
+fn create_index<T>(index: &[{a: T, b: uint}], hash_fn: fn(&T) -> uint ) {
     for each i: uint in range(0u, 256u) { let bucket: [T] = ~[]; }
 }
 
index f9f8e6725ca6fc5d715cec981f6cacc0249b44b7..8d36f2b4b557f6d8ae4a8cf9acc666ee54fcadcd 100644 (file)
@@ -4,8 +4,8 @@
 use std;
 import std::unsafe;
 
-fn null[T]() -> *T { unsafe::reinterpret_cast(0) }
+fn null<T>() -> *T { unsafe::reinterpret_cast(0) }
 
 fn main() {
     null[int]();
-}
\ No newline at end of file
+}
index 2b316ab64c80a71a99cc70a404615705618845f3..43985cac7ca66cf5aca28d4b0a913938805b12ab 100644 (file)
@@ -1,11 +1,11 @@
 
 
-fn foo[T](o: &myoption<T>) -> int {
+fn foo<T>(o: &myoption<T>) -> int {
     let x: int = 5;
     alt o { none[T]. { } some[T](t) { x += 1; } }
     ret x;
 }
 
-tag myoption[T] { none; some(T); }
+tag myoption<T> { none; some(T); }
 
 fn main() { log 5; }
index 78edf8feb596d40bc8b9b6b6748e1dbee9bc7e02..c9021328cea2076bed9fc38a3d017b430769c200 100644 (file)
@@ -1,11 +1,11 @@
 
 
-fn foo[T](o: &myoption<T>) -> int {
+fn foo<T>(o: &myoption<T>) -> int {
     let x: int;
     alt o { none[T]. { fail; } some[T](t) { x = 5; } }
     ret x;
 }
 
-tag myoption[T] { none; some(T); }
+tag myoption<T> { none; some(T); }
 
 fn main() { log 5; }
index bbf10b0587c2f57345d9a561429c5b1fa1d76a65..6e54bd7467e178798a4bf25457c472f55b452d96 100644 (file)
@@ -1,5 +1,5 @@
 
 
-fn push[T](v: &mutable [mutable? T], t: &T) { v += ~[t]; }
+fn push<T>(v: &mutable [mutable? T], t: &T) { v += ~[t]; }
 
 fn main() { let v = ~[1, 2, 3]; push(v, 1); }
index f2d47b83a466ad6052eccfb6eb1e2f9de2606d3b..0c53895bd37004948d3bc2b2161c7aade5df2b83 100644 (file)
@@ -79,9 +79,9 @@ fn test_boxes(a: @int, b: @int, c: @int, d: @int) {
     assert (deq.get(3) == d);
 }
 
-type eqfn[T] = fn(&T, &T) -> bool ;
+type eqfn<T> = fn(&T, &T) -> bool ;
 
-fn test_parameterized[@T](e: eqfn<T>, a: &T, b: &T, c: &T, d: &T) {
+fn test_parameterized<@T>(e: eqfn<T>, a: &T, b: &T, c: &T, d: &T) {
     let deq: deque::t<T> = deque::create[T]();
     assert (deq.size() == 0u);
     deq.add_front(a);
@@ -113,7 +113,7 @@ fn test_parameterized[@T](e: eqfn<T>, a: &T, b: &T, c: &T, d: &T) {
 
 tag taggy { one(int); two(int, int); three(int, int, int); }
 
-tag taggypar[@T] { onepar(int); twopar(int, int); threepar(int, int, int); }
+tag taggypar<@T> { onepar(int); twopar(int, int); threepar(int, int, int); }
 
 type reccy = {x: int, y: int, t: taggy};
 
@@ -138,7 +138,7 @@ fn taggyeq(a: &taggy, b: &taggy) -> bool {
           }
         }
     }
-    fn taggypareq[@T](a: &taggypar<T>, b: &taggypar<T>) -> bool {
+    fn taggypareq<@T>(a: &taggypar<T>, b: &taggypar<T>) -> bool {
         alt a {
           onepar[T](a1) {
             alt b { onepar[T](b1) { ret a1 == b1; } _ { ret false; } }