Type *Parse_(CYPool &pool, const char **name, char eos, bool named, Callback callback) {
char next = *(*name)++;
Type *Parse_(CYPool &pool, const char **name, char eos, bool named, Callback callback) {
char next = *(*name)++;
type->data.data.type = Parse_(pool, name, eos, named, callback);
type->data.data.type = Parse_(pool, name, eos, named, callback);
case typename_P: return "#";
case union_P: return pool.strcat("(", Unparse(pool, &type->data.signature), ")", NULL);
case string_P: return "*";
case typename_P: return "#";
case union_P: return pool.strcat("(", Unparse(pool, &type->data.signature), ")", NULL);
case string_P: return "*";
- if (type->data.data.type == NULL)
- return "^v";
- else if (type->data.data.type->primitive == function_P)
+ // XXX: protect against the weird '"' check in Parse_
+ _assert(type->data.data.type != NULL);
+ if (type->data.data.type->primitive == function_P)
return "^?";
else
return pool.strcat("^", Unparse(pool, type->data.data.type), NULL);
return "^?";
else
return pool.strcat("^", Unparse(pool, type->data.data.type), NULL);