- if (sym == ly_symbol2scm ("Engraver_group_engraver"))
- return new Engraver_group_engraver ();
- else if (sym == ly_symbol2scm ("Performer_group_performer"))
- return new Performer_group_performer();
- else if (sym == ly_symbol2scm ("Score_engraver"))
- return new Score_engraver();
- else if (sym == ly_symbol2scm ("Score_performer"))
- return new Score_performer();
- else if (sym == ly_symbol2scm ("Recording_group_engraver"))
- return new Recording_group_engraver();
-
- assert (0);
+ if (scm_is_eq (sym, ly_symbol2scm ("Engraver_group")))
+ return new Engraver_group ();
+ else if (scm_is_eq (sym, ly_symbol2scm ("Performer_group")))
+ return new Performer_group ();
+ else if (scm_is_eq (sym, ly_symbol2scm ("Score_engraver")))
+ return new Score_engraver ();
+ else if (scm_is_eq (sym, ly_symbol2scm ("Score_performer")))
+ return new Score_performer ();
+
+ error (_f ("fatal error. Couldn't find type: %s",
+ ly_symbol2string (sym).c_str ()));
+ scm_flush (scm_current_error_port ());
+ scm_display (sym, scm_current_error_port ());
+ scm_flush (scm_current_error_port ());
+
+ exit (2);
+