aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/compile_errors.zig')
-rw-r--r--test/compile_errors.zig45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index cbde0e9b99..0ed02b70ca 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -2186,4 +2186,49 @@ pub fn addCases(cases: &tests.CompileErrorContext) {
,
".tmp_source.zig:3:5: error: alignstack set twice",
".tmp_source.zig:2:5: note: first set here");
+
+ cases.add("storing runtime value in compile time variable then using it",
+ \\const Mode = @import("builtin").Mode;
+ \\
+ \\fn Free(comptime filename: []const u8) -> TestCase {
+ \\ TestCase {
+ \\ .filename = filename,
+ \\ .problem_type = ProblemType.Free,
+ \\ }
+ \\}
+ \\
+ \\fn LibC(comptime filename: []const u8) -> TestCase {
+ \\ TestCase {
+ \\ .filename = filename,
+ \\ .problem_type = ProblemType.LinkLibC,
+ \\ }
+ \\}
+ \\
+ \\const TestCase = struct {
+ \\ filename: []const u8,
+ \\ problem_type: ProblemType,
+ \\};
+ \\
+ \\const ProblemType = enum {
+ \\ Free,
+ \\ LinkLibC,
+ \\};
+ \\
+ \\export fn entry() {
+ \\ const tests = []TestCase {
+ \\ Free("001"),
+ \\ Free("002"),
+ \\ LibC("078"),
+ \\ Free("116"),
+ \\ Free("117"),
+ \\ };
+ \\
+ \\ for ([]Mode { Mode.Debug, Mode.ReleaseSafe, Mode.ReleaseFast }) |mode| {
+ \\ inline for (tests) |test_case| {
+ \\ const foo = test_case.filename ++ ".zig";
+ \\ }
+ \\ }
+ \\}
+ ,
+ ".tmp_source.zig:37:16: error: cannot store runtime value in compile time variable");
}