From 45c667eb21b1edde991435871523ece82793b449 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Thu, 6 Oct 2022 06:33:21 -0400 Subject: [PATCH] behavior: fix redefined exports --- test/behavior.zig | 8 +------- .../export_self_referential_type_info.zig | 2 +- test/behavior/generics.zig | 9 +++++---- test/behavior/type_info.zig | 15 ++++----------- 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/test/behavior.zig b/test/behavior.zig index 2f5d752087..3e4a45c992 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -211,13 +211,7 @@ test { _ = @import("behavior/export.zig"); } - if (builtin.zig_backend != .stage2_arm and - builtin.zig_backend != .stage2_x86_64 and - builtin.zig_backend != .stage2_aarch64 and - builtin.zig_backend != .stage2_wasm and - builtin.zig_backend != .stage2_c and - builtin.zig_backend != .stage1) - { + if (builtin.zig_backend != .stage2_wasm) { _ = @import("behavior/export_self_referential_type_info.zig"); } } diff --git a/test/behavior/export_self_referential_type_info.zig b/test/behavior/export_self_referential_type_info.zig index f822a81a13..0982985cee 100644 --- a/test/behavior/export_self_referential_type_info.zig +++ b/test/behavior/export_self_referential_type_info.zig @@ -1 +1 @@ -export const foo: c_int = @boolToInt(@typeInfo(@This()).Struct.is_tuple); +export const self_referential_type_info: c_int = @boolToInt(@typeInfo(@This()).Struct.is_tuple); diff --git a/test/behavior/generics.zig b/test/behavior/generics.zig index 4a483ec0d5..a0c21a75d8 100644 --- a/test/behavior/generics.zig +++ b/test/behavior/generics.zig @@ -361,13 +361,14 @@ test "nested generic function" { test "extern function used as generic parameter" { const S = struct { - extern fn foo() void; - extern fn bar() void; - inline fn baz(comptime _: anytype) type { + extern fn usedAsGenericParameterFoo() void; + extern fn usedAsGenericParameterBar() void; + inline fn usedAsGenericParameterBaz(comptime _: anytype) type { return struct {}; } }; - try expect(S.baz(S.foo) != S.baz(S.bar)); + try expect(S.usedAsGenericParameterBaz(S.usedAsGenericParameterFoo) != + S.usedAsGenericParameterBaz(S.usedAsGenericParameterBar)); } test "generic struct as parameter type" { diff --git a/test/behavior/type_info.zig b/test/behavior/type_info.zig index b85d39d7bb..48f2e3e22d 100644 --- a/test/behavior/type_info.zig +++ b/test/behavior/type_info.zig @@ -355,19 +355,12 @@ fn testOpaque() !void { } test "type info: function type info" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; - - // wasm doesn't support align attributes on functions - if (builtin.target.cpu.arch == .wasm32 or builtin.target.cpu.arch == .wasm64) return error.SkipZigTest; - try testFunction(); comptime try testFunction(); } fn testFunction() !void { - const fn_info = @typeInfo(@TypeOf(foo)); + const fn_info = @typeInfo(@TypeOf(typeInfoFoo)); try expect(fn_info == .Fn); try expect(fn_info.Fn.alignment > 0); try expect(fn_info.Fn.calling_convention == .C); @@ -375,12 +368,12 @@ fn testFunction() !void { try expect(fn_info.Fn.args.len == 2); try expect(fn_info.Fn.is_var_args); try expect(fn_info.Fn.return_type.? == usize); - const fn_aligned_info = @typeInfo(@TypeOf(fooAligned)); + const fn_aligned_info = @typeInfo(@TypeOf(typeInfoFooAligned)); try expect(fn_aligned_info.Fn.alignment == 4); } -extern fn foo(a: usize, b: bool, ...) callconv(.C) usize; -extern fn fooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize; +extern fn typeInfoFoo(a: usize, b: bool, ...) callconv(.C) usize; +extern fn typeInfoFooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize; test "type info: generic function types" { if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;