#include "checks.h"
static void
-check_duplicate(Class *c, Node *node, char *id, int line_no,
+check_duplicate(Class *c, Node *node, const char *id, int line_no,
gboolean underscore)
{
GList *l;
for(l = c->nodes; l != NULL; l = g_list_next(l)) {
Node *n = l->data;
- char *nid;
+ const char *nid;
int nline_no;
gboolean here_underscore = FALSE;
if(n->type == METHOD_NODE) {
}
static void
-check_duplicate_named(Class *c, Node *node, char *id, int line_no)
+check_duplicate_named(Class *c, Node *node, const char *id, int line_no)
{
GList *l;
for(l = c->nodes; l != NULL; l = g_list_next(l)) {
Node *n = l->data;
- char *nid;
+ const char *nid;
int nline_no;
if(n->type == METHOD_NODE) {
Method *m = (Method *)n;
}
return num;
}
+
+gboolean
+find_get_type (Class *c)
+{
+ GList *l;
+ for(l = c->nodes; l != NULL; l = g_list_next(l)) {
+ Node *n = l->data;
+ Method *m = (Method *)n;
+ if(n->type == METHOD_NODE &&
+ strcmp (m->id, "get_type") == 0) {
+ if (m->method != REGULAR_METHOD ||
+ m->scope != PUBLIC_SCOPE ||
+ m->args != NULL) {
+ error_printf (GOB_ERROR, m->line_no,
+ "get_type method must be a "
+ "regular public method with "
+ "no arguments");
+ }
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}