diff src/ov-class.cc @ 7972:5bf4e2c13ed8

make superiorto and inferiorto work
author John W. Eaton <jwe@octave.org>
date Fri, 25 Jul 2008 14:25:35 -0400
parents 22a18f206121
children 265a821f6555
line wrap: on
line diff
--- a/src/ov-class.cc
+++ b/src/ov-class.cc
@@ -1097,15 +1097,6 @@
   return built_in_class_names.find (cn) != built_in_class_names.end ();
 }
 
-static void
-set_class_relationship (const std::string& sup_class,
-			const std::string& inf_class)
-{
-  // FIXME
-
-  warning ("class precedence not implemented");
-}
-
 DEFUN (superiorto, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} superiorto (@var{class_name})\n\
@@ -1130,7 +1121,10 @@
 		{
 		  std::string this_class_name = fcn->name ();
 
-		  set_class_relationship (this_class_name, class_name);
+		  if (! symbol_table::set_class_relationship (this_class_name,
+							      class_name))
+		    error ("superiorto: precedence already set for %s and %s",
+			   this_class_name.c_str (), class_name.c_str ());
 		}
 	      else
 		{
@@ -1174,7 +1168,13 @@
 		{
 		  std::string this_class_name = fcn->name ();
 
-		  set_class_relationship (class_name, this_class_name);
+		  symbol_table::set_class_relationship (class_name,
+							this_class_name);
+
+		  if (! symbol_table::set_class_relationship (this_class_name,
+							      class_name))
+		    error ("inferiorto: precedence already set for %s and %s",
+			   this_class_name.c_str (), class_name.c_str ());
 		}
 	      else
 		error ("inferiorto: cannot give user-defined class lower precedence than built-in class");