@@ -8,6 +8,11 @@ const mem = std.mem;
88const maxInt = std .math .maxInt ;
99const native_endian = builtin .target .cpu .arch .endian ();
1010
11+ fn errorSetContains (set : []const std.builtin.Type.Error , name : []const u8 ) bool {
12+ for (set ) | e | if (mem .eql (u8 , e .name , name )) return true ;
13+ return false ;
14+ }
15+
1116test "int to ptr cast" {
1217 if (builtin .zig_backend == .stage2_spirv ) return error .SkipZigTest ;
1318
@@ -885,8 +890,8 @@ test "peer type resolution: error set supersets" {
885890 const error_set_info = @typeInfo (ty );
886891 try expect (error_set_info == .error_set );
887892 try expect (error_set_info .error_set .? .len == 2 );
888- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
889- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
893+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
894+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
890895 }
891896
892897 // B superset of A
@@ -895,8 +900,8 @@ test "peer type resolution: error set supersets" {
895900 const error_set_info = @typeInfo (ty );
896901 try expect (error_set_info == .error_set );
897902 try expect (error_set_info .error_set .? .len == 2 );
898- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
899- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
903+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
904+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
900905 }
901906}
902907
@@ -913,19 +918,19 @@ test "peer type resolution: disjoint error sets" {
913918 const error_set_info = @typeInfo (ty );
914919 try expect (error_set_info == .error_set );
915920 try expect (error_set_info .error_set .? .len == 3 );
916- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
917- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
918- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 2 ]. name , "Three" ));
921+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
922+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
923+ try expect (errorSetContains ( error_set_info .error_set .? , "Three" ));
919924 }
920925
921926 {
922927 const ty = @TypeOf (b , a );
923928 const error_set_info = @typeInfo (ty );
924929 try expect (error_set_info == .error_set );
925930 try expect (error_set_info .error_set .? .len == 3 );
926- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
927- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
928- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 2 ]. name , "Three" ));
931+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
932+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
933+ try expect (errorSetContains ( error_set_info .error_set .? , "Three" ));
929934 }
930935}
931936
@@ -944,9 +949,9 @@ test "peer type resolution: error union and error set" {
944949
945950 const error_set_info = @typeInfo (info .error_union .error_set );
946951 try expect (error_set_info .error_set .? .len == 3 );
947- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
948- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
949- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 2 ]. name , "Three" ));
952+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
953+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
954+ try expect (errorSetContains ( error_set_info .error_set .? , "Three" ));
950955 }
951956
952957 {
@@ -956,9 +961,9 @@ test "peer type resolution: error union and error set" {
956961
957962 const error_set_info = @typeInfo (info .error_union .error_set );
958963 try expect (error_set_info .error_set .? .len == 3 );
959- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
960- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
961- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 2 ]. name , "Three" ));
964+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
965+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
966+ try expect (errorSetContains ( error_set_info .error_set .? , "Three" ));
962967 }
963968}
964969
@@ -978,8 +983,8 @@ test "peer type resolution: error union after non-error" {
978983
979984 const error_set_info = @typeInfo (info .error_union .error_set );
980985 try expect (error_set_info .error_set .? .len == 2 );
981- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
982- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
986+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
987+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
983988 }
984989
985990 {
@@ -990,8 +995,8 @@ test "peer type resolution: error union after non-error" {
990995
991996 const error_set_info = @typeInfo (info .error_union .error_set );
992997 try expect (error_set_info .error_set .? .len == 2 );
993- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 0 ]. name , "One" ));
994- try expect (mem . eql ( u8 , error_set_info .error_set .? [ 1 ]. name , "Two" ));
998+ try expect (errorSetContains ( error_set_info .error_set .? , "One" ));
999+ try expect (errorSetContains ( error_set_info .error_set .? , "Two" ));
9951000 }
9961001}
9971002
0 commit comments