astgen: fix var decl source locations

This commit is contained in:
Andrew Kelley 2021-03-25 19:39:30 -07:00
parent b9c5a1fdf5
commit 4fd3a2e8e8
2 changed files with 61 additions and 61 deletions

View File

@ -1240,7 +1240,7 @@ fn varDecl(
.gen_zir = gz, .gen_zir = gz,
.name = ident_name, .name = ident_name,
.inst = init_inst, .inst = init_inst,
.src = gz.nodeSrcLoc(node), .src = name_src,
}; };
return &sub_scope.base; return &sub_scope.base;
} }
@ -1300,7 +1300,7 @@ fn varDecl(
.gen_zir = gz, .gen_zir = gz,
.name = ident_name, .name = ident_name,
.inst = casted_init, .inst = casted_init,
.src = gz.nodeSrcLoc(node), .src = name_src,
}; };
return &sub_scope.base; return &sub_scope.base;
} }
@ -1328,7 +1328,7 @@ fn varDecl(
.gen_zir = gz, .gen_zir = gz,
.name = ident_name, .name = ident_name,
.ptr = init_scope.rl_ptr, .ptr = init_scope.rl_ptr,
.src = gz.nodeSrcLoc(node), .src = name_src,
}; };
return &sub_scope.base; return &sub_scope.base;
}, },
@ -1357,7 +1357,7 @@ fn varDecl(
.gen_zir = gz, .gen_zir = gz,
.name = ident_name, .name = ident_name,
.ptr = var_data.alloc, .ptr = var_data.alloc,
.src = gz.nodeSrcLoc(node), .src = name_src,
}; };
return &sub_scope.base; return &sub_scope.base;
}, },

View File

@ -1001,43 +1001,43 @@ pub fn addCases(ctx: *TestContext) !void {
); );
} }
//{ {
// var case = ctx.exe("basic import", linux_x64); var case = ctx.exe("basic import", linux_x64);
// case.addCompareOutput( case.addCompareOutput(
// \\export fn _start() noreturn { \\export fn _start() noreturn {
// \\ @import("print.zig").print(); \\ @import("print.zig").print();
// \\ exit(); \\ exit();
// \\} \\}
// \\ \\
// \\fn exit() noreturn { \\fn exit() noreturn {
// \\ asm volatile ("syscall" \\ asm volatile ("syscall"
// \\ : \\ :
// \\ : [number] "{rax}" (231), \\ : [number] "{rax}" (231),
// \\ [arg1] "{rdi}" (@as(usize, 0)) \\ [arg1] "{rdi}" (@as(usize, 0))
// \\ : "rcx", "r11", "memory" \\ : "rcx", "r11", "memory"
// \\ ); \\ );
// \\ unreachable; \\ unreachable;
// \\} \\}
// , ,
// "Hello, World!\n", "Hello, World!\n",
// ); );
// try case.files.append(.{ try case.files.append(.{
// .src = .src =
// \\pub fn print() void { \\pub fn print() void {
// \\ asm volatile ("syscall" \\ asm volatile ("syscall"
// \\ : \\ :
// \\ : [number] "{rax}" (@as(usize, 1)), \\ : [number] "{rax}" (@as(usize, 1)),
// \\ [arg1] "{rdi}" (@as(usize, 1)), \\ [arg1] "{rdi}" (@as(usize, 1)),
// \\ [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")), \\ [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
// \\ [arg3] "{rdx}" (@as(usize, 14)) \\ [arg3] "{rdx}" (@as(usize, 14))
// \\ : "rcx", "r11", "memory" \\ : "rcx", "r11", "memory"
// \\ ); \\ );
// \\ return; \\ return;
// \\} \\}
// , ,
// .path = "print.zig", .path = "print.zig",
// }); });
//} }
ctx.compileError("function redefinition", linux_x64, ctx.compileError("function redefinition", linux_x64,
\\fn entry() void {} \\fn entry() void {}
@ -1051,26 +1051,26 @@ pub fn addCases(ctx: *TestContext) !void {
\\} \\}
, &[_][]const u8{":2:3: error: this is an error"}); , &[_][]const u8{":2:3: error: this is an error"});
//{ {
// var case = ctx.obj("variable shadowing", linux_x64); var case = ctx.obj("variable shadowing", linux_x64);
// case.addError( case.addError(
// \\export fn _start() noreturn { \\export fn _start() noreturn {
// \\ var i: u32 = 10; \\ var i: u32 = 10;
// \\ var i: u32 = 10; \\ var i: u32 = 10;
// \\ unreachable; \\ unreachable;
// \\} \\}
// , &[_][]const u8{ , &[_][]const u8{
// ":3:9: error: redefinition of 'i'", ":3:9: error: redefinition of 'i'",
// ":2:9: note: previous definition is here", ":2:9: note: previous definition is here",
// }); });
// case.addError( case.addError(
// \\var testing: i64 = 10; \\var testing: i64 = 10;
// \\export fn _start() noreturn { \\export fn _start() noreturn {
// \\ var testing: i64 = 20; \\ var testing: i64 = 20;
// \\ unreachable; \\ unreachable;
// \\} \\}
// , &[_][]const u8{":3:9: error: redefinition of 'testing'"}); , &[_][]const u8{":3:9: error: redefinition of 'testing'"});
//} }
//{ //{
// // TODO make the test harness support checking the compile log output too // // TODO make the test harness support checking the compile log output too