fn g[X](X x) -> X {
ret x;
}
fn f[T](T t) -> tup(T,T) {
type pair = tup(T,T);
let pair x = tup(t,t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b._0;
log b._1;
check (b._0 == 10);
check (b._1 == 10);
}
fn g[X](&X x) -> X {
ret x;
}
fn f[T](&T t) -> tup(T,T) {
type pair = tup(T,T);
let pair x = tup(t,t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b._0;
log b._1;
check (b._0 == 10);
check (b._1 == 10);
}
fn g[X](&X x) -> X {
ret x;
}
fn f[T](&T t) -> tup(T,T) {
type pair = tup(T,T);
let pair x = tup(t,t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b._0;
log b._1;
assert (b._0 == 10);
assert (b._1 == 10);
}
fn g[X](&X x) -> X {
ret x;
}
fn f[T](&T t) -> tup(T,T) {
type pair = tup(T,T);
let pair x = tup(t,t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b._0;
log b._1;
check (b._0 == 10);
check (b._1 == 10);
}
fn g[X](&X x) -> X {
ret x;
}
fn f[T](&T t) -> tup(T,T) {
type pair = tup(T,T);
let pair x = tup(t,t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b._0;
log b._1;
assert (b._0 == 10);
assert (b._1 == 10);
}
fn g[X](&X x) -> X { ret x; }
fn f[T](&T t) -> tup(T, T) {
type pair = tup(T, T);
let pair x = tup(t, t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b._0;
log b._1;
assert (b._0 == 10);
assert (b._1 == 10);
}
fn g[X](&X x) -> X { ret x; }
fn f[T](&T t) -> rec(T a, T b) {
type pair = rec(T a, T b);
let pair x = rec(a=t, b=t);
ret g[pair](x);
}
fn main() {
auto b = f[int](10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g[X](x: &X) -> X { ret x; }
fn f[T](t: &T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g[pair](x);
}
fn main() {
let b = f[int](10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<X>(x: &X) -> X { ret x; }
fn f<T>(t: &T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g[pair](x);
}
fn main() {
let b = f[int](10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<X>(x: &X) -> X { ret x; }
fn f<T>(t: &T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<@X>(x: &X) -> X { ret x; }
fn f<@T>(t: &T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<@X>(x: X) -> X { ret x; }
fn f<@T>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<X>(x: X) -> X { ret x; }
fn f<T>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<copy X>(x: X) -> X { ret x; }
fn f<copy T>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log b.a;
log b.b;
assert (b.a == 10);
assert (b.b == 10);
}
fn g<copy X>(x: X) -> X { ret x; }
fn f<copy T>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log_full(core::debug, b.a);
log_full(core::debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
fn g<copy X>(x: X) -> X { ret x; }
fn f<copy T>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
fn g<X: copy>(x: X) -> X { ret x; }
fn f<T: copy>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
ret g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
fn g<X: copy>(x: X) -> X { return x; }
fn f<T: copy>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
return g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
fn g<X: Copy>(x: X) -> X { return x; }
fn f<T: Copy>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
return g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X: Copy>(x: X) -> X { return x; }
fn f<T: Copy>(t: T) -> {a: T, b: T} {
type pair = {a: T, b: T};
let x: pair = {a: t, b: t};
return g::<pair>(x);
}
fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X: Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T: Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X: Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T: Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
assert (b.a == 10);
assert (b.b == 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
log(debug, b.a);
log(debug, b.b);
fail_unless!((b.a == 10));
fail_unless!((b.b == 10));
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
debug!(b.a);
debug!(b.b);
fail_unless!((b.a == 10));
fail_unless!((b.b == 10));
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
debug!(b.a);
debug!(b.b);
assert!((b.a == 10));
assert!((b.b == 10));
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
debug!(b.a);
debug!(b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: copy t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
debug!(b.a);
debug!(b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X:Copy>(x: X) -> X { return x; }
struct Pair<T> {a: T, b: T}
fn f<T:Copy>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: copy t, b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
info!(b.a);
info!(b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[deriving(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
info!(b.a);
info!(b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[deriving(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
info2!("{:?}" ,b.a);
info2!("{:?}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[deriving(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
info!("{:?}" ,b.a);
info!("{:?}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[deriving(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
println!("{:?}" ,b.a);
println!("{:?}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
extern crate debug;
fn g<X>(x: X) -> X { return x; }
#[deriving(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
println!("{:?}" ,b.a);
println!("{:?}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[deriving(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
println!("{}" ,b.a);
println!("{}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[derive(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<int>(10);
println!("{}" ,b.a);
println!("{}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn g<X>(x: X) -> X { return x; }
#[derive(Clone)]
struct Pair<T> {
a: T,
b: T
}
fn f<T:Clone>(t: T) -> Pair<T> {
let x: Pair<T> = Pair {a: t.clone(), b: t};
return g::<Pair<T>>(x);
}
pub fn main() {
let b = f::<isize>(10);
println!("{}" ,b.a);
println!("{}", b.b);
assert_eq!(b.a, 10);
assert_eq!(b.b, 10);
}