]> git.proxmox.com Git - rustc.git/blob - src/test/compile-fail/structure-constructor-type-mismatch.rs
Imported Upstream version 1.0.0~beta
[rustc.git] / src / test / compile-fail / structure-constructor-type-mismatch.rs
1 // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 struct Point<T> {
12 x: T,
13 y: T,
14 }
15
16 type PointF = Point<f32>;
17
18 struct Pair<T,U> {
19 x: T,
20 y: U,
21 }
22
23 type PairF<U> = Pair<f32,U>;
24
25 fn main() {
26 let pt = PointF {
27 //~^ ERROR structure constructor specifies a structure of type
28 //~| expected f32
29 //~| found integral variable
30 x: 1,
31 y: 2,
32 };
33
34 let pt2 = Point::<f32> {
35 //~^ ERROR structure constructor specifies a structure of type
36 //~| expected f32
37 //~| found integral variable
38 x: 3,
39 y: 4,
40 };
41
42 let pair = PairF {
43 //~^ ERROR structure constructor specifies a structure of type
44 //~| expected f32
45 //~| found integral variable
46 x: 5,
47 y: 6,
48 };
49
50 let pair2 = PairF::<i32> {
51 //~^ ERROR structure constructor specifies a structure of type
52 //~| expected f32
53 //~| found integral variable
54 x: 7,
55 y: 8,
56 };
57
58 let pt3 = PointF::<i32> {
59 //~^ ERROR wrong number of type arguments
60 //~| ERROR structure constructor specifies a structure of type
61 x: 9,
62 y: 10,
63 };
64 }