deprecate O(n) union field type helpers in std.meta

Users should be using @FieldType() instead.
This commit is contained in:
Carter Snook 2025-03-21 12:42:29 -05:00 committed by Linus Groh
parent adee3ee9a2
commit 149eace5d5

View File

@ -693,8 +693,10 @@ test activeTag {
try testing.expect(activeTag(u) == UE.Float);
}
/// Deprecated: Use @FieldType(U, tag_name)
const TagPayloadType = TagPayload;
/// Deprecated: Use @FieldType(U, tag_name)
pub fn TagPayloadByName(comptime U: type, comptime tag_name: []const u8) type {
const info = @typeInfo(U).@"union";
@ -706,8 +708,7 @@ pub fn TagPayloadByName(comptime U: type, comptime tag_name: []const u8) type {
@compileError("no field '" ++ tag_name ++ "' in union '" ++ @typeName(U) ++ "'");
}
/// Given a tagged union type, and an enum, return the type of the union field
/// corresponding to the enum tag.
/// Deprecated: Use @FieldType(U, @tagName(tag))
pub fn TagPayload(comptime U: type, comptime tag: Tag(U)) type {
return TagPayloadByName(U, @tagName(tag));
}