Skip to content

Commit 9368572

Browse files
committed
Distinguish the tag associated with an enum type object from type tags representing enum types.
1 parent 1585a2e commit 9368572

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

Sources/LispKit/Primitives/EnumLibrary.swift

+6-1
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,11 @@ public final class EnumLibrary: NativeLibrary {
4747
// Enum types
4848
self.define(Procedure("enum-type?", self.isEnumType))
4949
self.define(Procedure("make-enum-type", self.makeEnumType))
50+
self.define(Procedure("enum-type-type-tag", self.enumTypeId))
5051
self.define(Procedure("enum-type-size", self.enumTypeSize))
5152
self.define(Procedure("enum-min", self.enumMin))
5253
self.define(Procedure("enum-max", self.enumMax))
53-
self.define(Procedure("enum-type-tag", self.enumTypeId))
54+
self.define(Procedure("enum-type-tag", self.enumTypeTag))
5455
self.define(Procedure("enum-type-enums", self.enumTypeEnums))
5556
self.define(Procedure("enum-type-names", self.enumTypeNames))
5657
self.define(Procedure("enum-type-tags", self.enumTypeTags))
@@ -336,6 +337,10 @@ public final class EnumLibrary: NativeLibrary {
336337
return self.enumAsExpr(etype.enumCount - 1, for: etype)
337338
}
338339

340+
private func enumTypeTag(expr: Expr) throws -> Expr {
341+
return try self.enumType(from: expr).tag
342+
}
343+
339344
private func enumTypeId(expr: Expr) throws -> Expr {
340345
return .symbol(try self.enumType(from: expr).id)
341346
}

0 commit comments

Comments
 (0)