You can check with GIMP_IS_ERASER_TOOL (). If it doesn’t work, then you’ll need to import tools/gimperasertool.h so it can recognize the GimpEraserTool type.
That is the issue I’m having, it’s one of those cases where including other headers creates a chain reaction of further issues.
I try to resolve these up to a point, in this case I felt the code was resisting any attempt to include these types of headers for a reason unknown.
In file included from ../app/tools/gimpdrawtool.h:22,
from ../app/tools/gimpcolortool.h:22,
from ../app/tools/gimppainttool.h:22,
from ../app/tools/gimpbrushtool.h:22,
from ../app/tools/gimperasertool.h:22,
from ../app/core/gimpcontext.c:62:
../app/tools/gimptool.h:50:3: error: unknown type name ‘GimpToolControl’
50 | GimpToolControl *control;
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:59:3: error: unknown type name ‘GdkModifierType’
59 | GdkModifierType modifier_state;
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:60:3: error: unknown type name ‘GdkModifierType’
60 | GdkModifierType button_press_state;
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:61:3: error: unknown type name ‘GdkModifierType’
61 | GdkModifierType active_modifier_state;
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:67:3: error: unknown type name ‘GdkModifierType’
67 | GdkModifierType last_pointer_state;
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:81:3: error: unknown type name ‘GimpCanvasItem’
81 | GimpCanvasItem *progress;
| ^~~~~~~~~~~~~~
../app/tools/gimptool.h:83:3: error: unknown type name ‘GtkWidget’
83 | GtkWidget *progress_grab_widget;
| ^~~~~~~~~
../app/tools/gimptool.h:93:44: error: unknown type name ‘GimpTool’
93 | gboolean (* has_display) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:95:44: error: unknown type name ‘GimpTool’
95 | GimpDisplay * (* has_image) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:98:44: error: unknown type name ‘GimpTool’
98 | gboolean (* initialize) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:101:44: error: unknown type name ‘GimpTool’
101 | void (* control) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:102:44: error: unknown type name ‘GimpToolAction’; did you mean ‘GimpToolOptions’?
102 | GimpToolAction action,
| ^~~~~~~~~~~~~~
| GimpToolOptions
../app/tools/gimptool.h:105:44: error: unknown type name ‘GimpTool’
105 | void (* button_press) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:108:44: error: unknown type name ‘GdkModifierType’
108 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:109:44: error: unknown type name ‘GimpButtonPressType’
109 | GimpButtonPressType press_type,
| ^~~~~~~~~~~~~~~~~~~
../app/tools/gimptool.h:111:44: error: unknown type name ‘GimpTool’
111 | void (* button_release) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:114:44: error: unknown type name ‘GdkModifierType’
114 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:115:44: error: unknown type name ‘GimpButtonReleaseType’
115 | GimpButtonReleaseType release_type,
| ^~~~~~~~~~~~~~~~~~~~~
../app/tools/gimptool.h:117:44: error: unknown type name ‘GimpTool’
117 | void (* motion) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:120:44: error: unknown type name ‘GdkModifierType’
120 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:123:44: error: unknown type name ‘GimpTool’
123 | gboolean (* key_press) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:124:44: error: unknown type name ‘GdkEventKey’
124 | GdkEventKey *kevent,
| ^~~~~~~~~~~
../app/tools/gimptool.h:126:44: error: unknown type name ‘GimpTool’
126 | gboolean (* key_release) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:127:44: error: unknown type name ‘GdkEventKey’
127 | GdkEventKey *kevent,
| ^~~~~~~~~~~
../app/tools/gimptool.h:129:44: error: unknown type name ‘GimpTool’
129 | void (* modifier_key) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:130:44: error: unknown type name ‘GdkModifierType’
130 | GdkModifierType key,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:132:44: error: unknown type name ‘GdkModifierType’
132 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:134:44: error: unknown type name ‘GimpTool’
134 | void (* active_modifier_key) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:135:44: error: unknown type name ‘GdkModifierType’
135 | GdkModifierType key,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:137:44: error: unknown type name ‘GdkModifierType’
137 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:140:44: error: unknown type name ‘GimpTool’
140 | void (* oper_update) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:142:44: error: unknown type name ‘GdkModifierType’
142 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:145:44: error: unknown type name ‘GimpTool’
145 | void (* cursor_update) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:147:44: error: unknown type name ‘GdkModifierType’
147 | GdkModifierType state,
| ^~~~~~~~~~~~~~~
../app/tools/gimptool.h:150:44: error: unknown type name ‘GimpTool’
150 | const gchar * (* can_undo) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:152:44: error: unknown type name ‘GimpTool’
152 | const gchar * (* can_redo) (GimpTool *tool,
| ^~~~~~~~
../app/tools/gimptool.h:154:44: error: unknown type name ‘GimpTool’
154 | gboolean (* undo) (GimpTool *tool,
...