ref: b5135305eafca5a12d50f677a8eb2c85fb92907c
parent: 8d8a5e1bba4fea988fe06c0d14c4b349ba434611
author: Ori Bernstein <[email protected]>
date: Wed Oct 15 12:07:46 EDT 2014
Stub in addstruct(), and turn failed dups into errors.
--- a/opt/match.c
+++ b/opt/match.c
@@ -105,6 +105,11 @@
return t;
}
+static Dtree *addstruct(Dtree *t, Node *pat, Node ***cap, size_t *ncap)
+{
+ return NULL;
+}
+
static Dtree *addpat(Dtree *t, Node *pat, Node ***cap, size_t *ncap)
{
Dtree *ret;
@@ -127,11 +132,13 @@
case Oarr:
ret = addarr(t, pat, cap, ncap);
break;
+ case Ostruct:
+ ret = addstruct(t, pat, cap, ncap);
+ break;
default:
- /* Right now, we just use this code for warning.
- *
- * We shoudl fatal(unsupported match) here*/
- return NULL;
+ ret = NULL;
+ fatal(pat, "unsupported pattern %s of type %s", opstr(exprop(pat)), tystr(exprtype(pat)));
+ break;
}
return ret;