aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/tuple_init_edge_cases.zig
blob: 24f4ff9bdde06d7bf790b9d2a67fd7a4ccd9e3df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
pub export fn entry1() void {
    const T = @TypeOf(.{ 123, 3 });
    var b = T{ .@"1" = 3 };
    _ = &b;
    var c = T{ 123, 3 };
    _ = &c;
    var d = T{};
    _ = &d;
}
pub export fn entry2() void {
    var a: u32 = 2;
    _ = &a;
    const T = @TypeOf(.{ 123, a });
    var b = T{ .@"1" = 3 };
    _ = &b;
    var c = T{ 123, 3 };
    _ = &c;
    var d = T{};
    _ = &d;
}
pub export fn entry3() void {
    var a: u32 = 2;
    _ = &a;
    const T = @TypeOf(.{ 123, a });
    var b = T{ .@"0" = 123 };
    _ = &b;
}
comptime {
    var a: u32 = 2;
    _ = &a;
    const T = @TypeOf(.{ 123, a });
    var b = T{ .@"0" = 123 };
    _ = &b;
    var c = T{ 123, 2 };
    _ = &c;
    var d = T{};
    _ = &d;
}
pub export fn entry4() void {
    var a: u32 = 2;
    _ = &a;
    const T = @TypeOf(.{ 123, a });
    var b = T{ 123, 4, 5 };
    _ = &b;
}
pub export fn entry5() void {
    var a: u32 = 2;
    _ = &a;
    const T = @TypeOf(.{ 123, a });
    var b = T{ .@"0" = 123, .@"2" = 123, .@"1" = 123 };
    _ = &b;
}
pub const Consideration = struct {
    curve: Curve,
    pub const Curve = union(enum) {
        logistic: Parameters,

        pub const Parameters = struct { f32, f32, f32, f32 };
    };
};
pub export fn entry6() void {
    const cons: []Consideration = &.{
        .{ .curve = .{ .logistic = .{ -7, 1.0, 0 } } },
    };
    _ = cons;
}

// error
// backend=stage2
// target=native
//
// :18:14: error: missing tuple field with index 1
// :25:14: error: missing tuple field with index 1
// :43:14: error: expected at most 2 tuple fields; found 3
// :50:30: error: index '2' out of bounds of tuple 'struct{comptime comptime_int = 123, u32}'
// :63:37: error: missing tuple field with index 3
// :58:32: note: struct declared here