commit
b66547e98c
|
@ -4172,7 +4172,13 @@ static IrInstruction *ir_gen_var_decl(IrBuilder *irb, Scope *scope, AstNode *nod
|
||||||
buf_sprintf("cannot set section of local variable '%s'", buf_ptr(variable_declaration->symbol)));
|
buf_sprintf("cannot set section of local variable '%s'", buf_ptr(variable_declaration->symbol)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Temporarily set the name of the IrExecutable to the VariableDeclaration
|
||||||
|
// so that the struct or enum from the init expression inherits the name.
|
||||||
|
Buf *old_exec_name = irb->exec->name;
|
||||||
|
irb->exec->name = variable_declaration->symbol;
|
||||||
IrInstruction *init_value = ir_gen_node(irb, variable_declaration->expr, scope);
|
IrInstruction *init_value = ir_gen_node(irb, variable_declaration->expr, scope);
|
||||||
|
irb->exec->name = old_exec_name;
|
||||||
|
|
||||||
if (init_value == irb->codegen->invalid_instruction)
|
if (init_value == irb->codegen->invalid_instruction)
|
||||||
return init_value;
|
return init_value;
|
||||||
|
|
||||||
|
|
|
@ -550,12 +550,6 @@ test "parse unsigned comptime" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dummy field because of https://github.com/zig-lang/zig/issues/557.
|
|
||||||
// At top level because of https://github.com/zig-lang/zig/issues/675.
|
|
||||||
const Struct = struct {
|
|
||||||
unused: u8,
|
|
||||||
};
|
|
||||||
|
|
||||||
test "fmt.format" {
|
test "fmt.format" {
|
||||||
{
|
{
|
||||||
var buf1: [32]u8 = undefined;
|
var buf1: [32]u8 = undefined;
|
||||||
|
@ -588,6 +582,10 @@ test "fmt.format" {
|
||||||
assert(mem.eql(u8, result, "u3: 5\n"));
|
assert(mem.eql(u8, result, "u3: 5\n"));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
// Dummy field because of https://github.com/zig-lang/zig/issues/557.
|
||||||
|
const Struct = struct {
|
||||||
|
unused: u8,
|
||||||
|
};
|
||||||
var buf1: [32]u8 = undefined;
|
var buf1: [32]u8 = undefined;
|
||||||
const value = Struct {
|
const value = Struct {
|
||||||
.unused = 42,
|
.unused = 42,
|
||||||
|
|
|
@ -499,12 +499,29 @@ test "@canImplicitCast" {
|
||||||
}
|
}
|
||||||
|
|
||||||
test "@typeName" {
|
test "@typeName" {
|
||||||
|
const Struct = struct {
|
||||||
|
};
|
||||||
|
const Union = union {
|
||||||
|
unused: u8,
|
||||||
|
};
|
||||||
|
const Enum = enum {
|
||||||
|
Unused,
|
||||||
|
};
|
||||||
comptime {
|
comptime {
|
||||||
assert(mem.eql(u8, @typeName(i64), "i64"));
|
assert(mem.eql(u8, @typeName(i64), "i64"));
|
||||||
assert(mem.eql(u8, @typeName(&usize), "&usize"));
|
assert(mem.eql(u8, @typeName(&usize), "&usize"));
|
||||||
|
// https://github.com/zig-lang/zig/issues/675
|
||||||
|
assert(mem.eql(u8, @typeName(TypeFromFn(u8)), "TypeFromFn(u8)"));
|
||||||
|
assert(mem.eql(u8, @typeName(Struct), "Struct"));
|
||||||
|
assert(mem.eql(u8, @typeName(Union), "Union"));
|
||||||
|
assert(mem.eql(u8, @typeName(Enum), "Enum"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn TypeFromFn(comptime T: type) type {
|
||||||
|
return struct {};
|
||||||
|
}
|
||||||
|
|
||||||
test "volatile load and store" {
|
test "volatile load and store" {
|
||||||
var number: i32 = 1234;
|
var number: i32 = 1234;
|
||||||
const ptr = (&volatile i32)(&number);
|
const ptr = (&volatile i32)(&number);
|
||||||
|
|
Loading…
Reference in New Issue