aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-16 17:07:22 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-16 17:07:22 -0400
commite80571e36f858fa1fc695e5e40e453294304401f (patch)
tree7bc85e98802cd4351cf0c2776b6dffd9fe912b46
parentf4f5fd4fdd9315667f048c578f3a441e6710250d (diff)
Remove enum type prefix when printing enum
-rw-r--r--docs/enums.md4
-rw-r--r--stdlib/enums.c5
-rw-r--r--test/enums.tm8
-rw-r--r--test/optionals.tm4
4 files changed, 10 insertions, 11 deletions
diff --git a/docs/enums.md b/docs/enums.md
index c73379f8..72e4f3be 100644
--- a/docs/enums.md
+++ b/docs/enums.md
@@ -63,9 +63,9 @@ func increment(arg:ArgumentType -> ReturnType):
...
>> increment(AnInt(5))
-= ReturnType.AnInt(6)
+= AnInt(6)
>> increment(SomeText("HI"))
-= ReturnType.Nothiing
+= Nothiing
```
This lets us have overlapping tag names for different types, but smartly infer
diff --git a/stdlib/enums.c b/stdlib/enums.c
index fb0b93a4..b66a1711 100644
--- a/stdlib/enums.c
+++ b/stdlib/enums.c
@@ -75,13 +75,12 @@ public Text_t Enum$as_text(const void *obj, bool colorize, const TypeInfo_t *typ
int32_t tag = *(int32_t*)obj;
NamedType_t value = type->EnumInfo.tags[tag-1];
if (!value.type || value.type->size == 0)
- return Text$format(colorize ? "\x1b[36;1m%s\x1b[m.\x1b[1m%s\x1b[m" : "%s.%s", type->EnumInfo.name, value.name);
+ return Text$format(colorize ? "\x1b[1m%s\x1b[m" : "%s", value.name);
ptrdiff_t byte_offset = sizeof(int32_t);
if (value.type->align && byte_offset % value.type->align > 0)
byte_offset += value.type->align - (byte_offset % value.type->align);
- return Text$concat(Text$format(colorize ? "\x1b[36;1m%s\x1b[m." : "%s.", type->EnumInfo.name),
- generic_as_text(obj + byte_offset, colorize, value.type));
+ return generic_as_text(obj + byte_offset, colorize, value.type);
}
PUREFUNC public bool Enum$is_none(const void *x, const TypeInfo_t*)
diff --git a/test/enums.tm b/test/enums.tm
index c2ffce4c..a5ed64ba 100644
--- a/test/enums.tm
+++ b/test/enums.tm
@@ -17,11 +17,11 @@ func choose_text(f:Foo->Text):
func main():
>> Foo.Zero
- = Foo.Zero
+ = Zero
>> Foo.One(123)
- = Foo.One(123)
+ = One(123)
>> Foo.Two(123, 456)
- = Foo.Two(x=123, y=456)
+ = Two(x=123, y=456)
>> one := Foo.One(123)
>> one.One
@@ -59,7 +59,7 @@ func main():
>> choose_text(Foo.Four(1,2,3,4))
= "Four"
>> choose_text(Foo.Last("XX"))
- = 'else: Foo.Last("XX")'
+ = 'else: Last("XX")'
i := 1
cases := [Foo.One(1), Foo.One(2), Foo.Zero]
diff --git a/test/optionals.tm b/test/optionals.tm
index 3ef7f28e..0b2a2209 100644
--- a/test/optionals.tm
+++ b/test/optionals.tm
@@ -218,12 +218,12 @@ func main():
!! ...
!! Enums:
>> yep := Enum.maybe(yes)
- = Enum.Y(123) : Enum?
+ = Y(123) : Enum?
>> nope := Enum.maybe(no)
= none : Enum?
>> if yep:
>> yep
- = Enum.Y(123)
+ = Y(123)
else: fail("Falsey: $yep")
>> if nope:
fail("Truthy: $nope")