aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/sets.md7
-rw-r--r--src/compile.c4
2 files changed, 4 insertions, 7 deletions
diff --git a/docs/sets.md b/docs/sets.md
index 740a37f3..023547dd 100644
--- a/docs/sets.md
+++ b/docs/sets.md
@@ -12,16 +12,17 @@ b := {20, 30}
## Syntax
-Sets are written using `{}` curly braces with comma-separated items:
+Sets are written using `{...}` curly braces with comma-separated items:
```tomo
nums := {10, 20, 30}
```
-Empty sets must specify the item type explicitly:
+Empty sets must specify the set type explicitly and use `{/}` for an empty set
+(because `{}` is an empty table).
```tomo
-empty : {Int} = {}
+empty : {Int} = {/}
```
For type annotations, a set that holds items with type `T` is written as `{T}`.
diff --git a/src/compile.c b/src/compile.c
index 688901ac..8658c057 100644
--- a/src/compile.c
+++ b/src/compile.c
@@ -2010,10 +2010,6 @@ CORD compile_to_type(env_t *env, ast_t *ast, type_t *t)
return compile_typed_table(env, ast, t);
} else if (t->tag == SetType && ast->tag == Set) {
return compile_typed_set(env, ast, t);
- } else if (t->tag == SetType && ast->tag == Table) {
- auto table = Match(ast, Table);
- if (!table->default_value && !table->fallback && !table->entries)
- return compile_to_type(env, WrapAST(ast, Set), t);
}
type_t *actual = get_type(env, ast);