authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-07-11 19:51:20+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-07-11 19:51:20+03:00
log2e6688ae27389dcb0d72f2a297b44eca95a02516
tree82e80565957b5c8ee127317bea3e713523332bc7
parent2e037fd827487ce94ae0beb313a1f0536085d61e
signature Commit is signed but in an unrecognized format.

Add test for `@typeInfo` declarations showing up in declaration order

Both the stage1 and std lib HashMap implementations now preserve insertion order

1 files changed, 16 insertions(+), 0 deletions(-)

test/stage1/behavior/type_info.zig+16
...@@ -409,3 +409,19 @@ test "type info: value is correctly copied" {...@@ -409,3 +409,19 @@ test "type info: value is correctly copied" {
409 expect(@typeInfo([]u32).Pointer.size == .Slice);409 expect(@typeInfo([]u32).Pointer.size == .Slice);
410 }410 }
411}411}
412
413test "Declarations are returned in declaration order" {
414 const S = struct {
415 const a = 1;
416 const b = 2;
417 const c = 3;
418 const d = 4;
419 const e = 5;
420 };
421 const d = @typeInfo(S).Struct.decls;
422 expect(std.mem.eql(u8, d[0].name, "a"));
423 expect(std.mem.eql(u8, d[1].name, "b"));
424 expect(std.mem.eql(u8, d[2].name, "c"));
425 expect(std.mem.eql(u8, d[3].name, "d"));
426 expect(std.mem.eql(u8, d[4].name, "e"));
427}