zig/test/cases/this.zig
Jimmi Holst Christensen 378d3e4403
Solve the return type ambiguity (#1628)
Changed container and initializer syntax
* <container> { ... } -> <container> . { ... }
* <exrp> { ... } -> <expr> . { ...}
2018-10-15 09:51:15 -04:00

35 lines
592 B
Zig

const assert = @import("std").debug.assert;
const module = @This();
fn Point(comptime T: type) type {
return struct.{
const Self = @This();
x: T,
y: T,
fn addOne(self: *Self) void {
self.x += 1;
self.y += 1;
}
};
}
fn add(x: i32, y: i32) i32 {
return x + y;
}
test "this refer to module call private fn" {
assert(module.add(1, 2) == 3);
}
test "this refer to container" {
var pt = Point(i32).{
.x = 12,
.y = 34,
};
pt.addOne();
assert(pt.x == 13);
assert(pt.y == 35);
}