-static int compound_types_equal(const compound_type_t *type1,
- const compound_type_t *type2)
-{
- if(type1->type.type != type2->type.type)
- return 0;
- if(type1->symbol != type2->symbol)
- return 0;
-
- /* anonymous types? */
- if(type1->symbol == NULL) {
- /* previous tests should already have checked for this */
- assert(type1 != type2);
- /* anonymous types are only equal if they are the very same type */
- return 0;
- }
-
- /* non-anonymous types with same symbol are equal */
- return 1;
-}
-
-static int enum_types_equal(const enum_type_t *type1, const enum_type_t *type2)
-{
- if(type1->symbol != type2->symbol)
- return 0;
-
- /* anonymous types? */
- if(type1->symbol == NULL) {
- /* previous tests should already have checked for this */
- assert(type1 != type2);
- /* 2 anonymous enums are never equal */
- return 0;
- }
-
- /* non-anonymous types with same symbol are equal */
- return 1;
-}
-
-static int method_types_equal(const method_type_t *type1,
- const method_type_t *type2)
+static bool function_types_equal(const function_type_t *type1,
+ const function_type_t *type2)