+ if (c->type) {
+ switch (c->type->type) {
+ case PSI_T_BOOL:
+ case PSI_T_INT:
+ case PSI_T_FLOAT:
+ case PSI_T_DOUBLE:
+ case PSI_T_STRING:
+ break;
+ default:
+ data->error(data, val->token, PSI_WARNING,
+ "Invalid default value type '%s', "
+ "expected one of bool, int, float/double or string.",
+ type->name->val);
+ return false;
+ }
+ }