zig/test/cases/compile_errors/invalid_compare_string.zig
Veikka Tuominen e2509ddbe6 AstGen: add error for invalid string comparisons
These operations are allowed because the string literals are just
pointers but they produce unexpected results. These errors prevent
beginners from shooting themselves in the foot while still allowing
advanced users to circumvent them if they desire to do so.

Closes #8290
2022-12-03 00:09:23 +02:00

30 lines
528 B
Zig

comptime {
var a = "foo";
if (a == "foo") unreachable;
}
comptime {
var a = "foo";
if (a == ("foo")) unreachable; // intentionally allow
}
comptime {
var a = "foo";
switch (a) {
"foo" => unreachable,
else => {},
}
}
comptime {
var a = "foo";
switch (a) {
("foo") => unreachable, // intentionally allow
else => {},
}
}
// error
// backend=stage2
// target=native
//
// :3:11: error: cannot compare strings with ==
// :12:9: error: cannot switch on strings