@@ -627,49 +627,50 @@ auto parser::apply_type_meta_functions( declaration_node& n )
627627 // For each metafunction, apply it
628628 for (auto & meta : n.meta_functions )
629629 {
630- rtype.set_meta_function_name ( meta->to_string () );
630+ auto name = meta->to_string ();
631+ rtype.set_meta_function_name ( name );
631632
632- if (meta-> to_string () == " interface" ) {
633+ if (name == " interface" ) {
633634 interface ( rtype );
634635 }
635- else if (meta-> to_string () == " polymorphic_base" ) {
636+ else if (name == " polymorphic_base" ) {
636637 polymorphic_base ( rtype );
637638 }
638- else if (meta-> to_string () == " ordered" ) {
639+ else if (name == " ordered" ) {
639640 ordered ( rtype );
640641 }
641- else if (meta-> to_string () == " weakly_ordered" ) {
642+ else if (name == " weakly_ordered" ) {
642643 weakly_ordered ( rtype );
643644 }
644- else if (meta-> to_string () == " partially_ordered" ) {
645+ else if (name == " partially_ordered" ) {
645646 partially_ordered ( rtype );
646647 }
647- else if (meta-> to_string () == " copyable" ) {
648+ else if (name == " copyable" ) {
648649 copyable ( rtype );
649650 }
650- else if (meta-> to_string () == " basic_value" ) {
651+ else if (name == " basic_value" ) {
651652 basic_value ( rtype );
652653 }
653- else if (meta-> to_string () == " value" ) {
654+ else if (name == " value" ) {
654655 value ( rtype );
655656 }
656- else if (meta-> to_string () == " weakly_ordered_value" ) {
657+ else if (name == " weakly_ordered_value" ) {
657658 weakly_ordered_value ( rtype );
658659 }
659- else if (meta-> to_string () == " partially_ordered_value" ) {
660+ else if (name == " partially_ordered_value" ) {
660661 partially_ordered_value ( rtype );
661662 }
662- else if (meta-> to_string () == " struct" ) {
663+ else if (name == " struct" ) {
663664 cpp2_struct ( rtype );
664665 }
665- else if (meta-> to_string () == " enum" ) {
666+ else if (name == " enum" ) {
666667 cpp2_enum ( rtype );
667668 }
668- else if (meta-> to_string () == " flag_enum" ) {
669+ else if (name == " flag_enum" ) {
669670 flag_enum ( rtype );
670671 }
671672 else {
672- error ( " (temporary alpha limitation) unrecognized metafunction name '" + meta-> to_string () + " ' - currently the supported names are: interface, polymorphic_base, ordered, weakly_ordered, partially_ordered, copyable, basic_value, value, weakly_ordered_value, partially_ordered_value, struct, enum, flag_enum" );
673+ error ( " (temporary alpha limitation) unrecognized metafunction name '" + name + " ' - currently the supported names are: interface, polymorphic_base, ordered, weakly_ordered, partially_ordered, copyable, basic_value, value, weakly_ordered_value, partially_ordered_value, struct, enum, flag_enum" );
673674 return false ;
674675 }
675676 }
0 commit comments